viernes, 27 de febrero de 2009

Recuperar documento Word con Google Apps

Sintomas:
No podemos abrir un documento con Microsoft Word. Probablemente porque está corrupto.

Resolución:
Subir el documento a Google Docs.
Probablemente lo leerá sin problemas aunque es posible que se pierda algún fragmento.
Con el mismo Google Docs podremos editarlo e imprimirlo.
También, si lo consideramos necesario, podemos bajarlo de nuevo en formato Word. Estará reparado y podremos abrirlo con Word.

Comentarios:
Es una solución elegante porque nos permite reparar sin instalar ninguna herramienta en el equipo.
Mas alla de aspectos técnicos, resulta triste que Microsoft Word no pueda reparar un documento en su propio formato.
Recuerdo una organización que en 1995 migró de WordPerfect a MS-Word por que esté último recuperaba mejor los documentos de versiones anteriores WordPerfect que el editor original en sus nuevas versiones.
Si el futuro está en las aplicaciones on-line, Microsoft debería jubilar el viejo código de Charles Simonyi y desarrollar un nuevo procesador. O quizás dejar paso a Open Office.

Contexto:
Encontré esta solución cuando ayer a las 19:30 mi hija y sus amigas descubrieron que no podían imprimir un trabajo que debía presentar al día siguiente. Después de pelearme durante tres horas con KBs de MS, búsquedas en Google y herramientas demo de recuperación, y cuando ya pensaba en instalar Open Office, se me ocurrió probar y ¡Voilá!.
Lo irónico es que desde hace dos o tres años vengo diciéndole a mi hija que utilicen Google Docs en lugar de llevar el documento en la llave USB de casa en casa.
Supongo que seguirá sin hacerme caso.

viernes, 13 de febrero de 2009

Error accediendo a Cumulus Web Services desde .NET

Sintomas:
Al utilizar desde .net mensajes de los web services de Cumulus (DAM Canto) que no devuelven respuesta se produce el error: La operación unidireccional devolvió un mensaje no Null con Action=''
Solución:
Editar manualmente el archivo reference.vb generado por el asistente de referencias de servicio.
Cambiar en los contratos de mensaje el atributo IsOneWay:=de false a true

lunes, 9 de febrero de 2009

Desencadenadores y linq

Sintomas:
Obtenemos errores del tipo fila no existente al submitchanges que afectan a una tabla donde hemos añadido un trigger o desencadenador que cambia la fila insertadas.
Resolución:
Finalmente creo que es mejor prescindir del desencadenador en estos casos.
Explicación:
El problema aparece cuando:
- leemos una fila
- la modificamos y la guardamos (submit changes)
- la volvemos a modificar y la volvemos a guardar.

La causa esta clara nuestra copia local de la fila no coincide con la existente en el servidor que ha sido modificada por el Trigger despues de la primera operación de guardado.

jueves, 5 de febrero de 2009

Web Control Menu, Chrome y Internet Explorer 8

Sintomas
El control Web Menu de Visual Studio 2008 no funciona bien en Chrome ni en Internet Explorer 8.
Solución
Existen varias soluciones (basta hacer una busqueda). Por mi parte lo he resuelto mediante un metatag en el fuente HTML

meta equiv="X-UA-Compatible" content="IE=EmulateIE7"

Y mediante el siguiente código en VB.

Private Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit
If Request.ServerVariables("http_user_agent").Contains("MSIE(8.0)") Or Request.ServerVariables("http_user_agent").Contains("AppleWebKit") Then Page.ClientTarget = "uplevel"
End Sub

Novedades posteriores
Parece que la solución oficial esta disponible en este blog pero yo esperaría a que sea oficial de verdad.

Cancelar la combinación en curso

Sintomas:
Cuando vas a aumentar la capacidad de un disco en una VM de hyper-V, te dice que no puedes editar el disco porque tienes instantaneas.
Eliminas las instantaneas pero sigues sin poder editar.
Curiosamente en el menú contextual de la maquina y en el de accciones aparece una opción "cancelar la combinación en curso".
Solución:
Esperar fijandose en el informe de combinación que aparece a la derecha de la maquina virtual.
Explicación:
Al eliminar una instantanea (snapshot) deben combinarse dos archivos uno que contiene el disco en su estado original y otro que contiene los cambios realizandose.
El motivo de escribir este post es incluir este vinculo http://itproctology.blogspot.com/2008/03/snapshottingnot-your-checkpointing.html
que creo es muy conveniente leer antes de comenzar a utilizar las instantaneas como copias de seguridad.