Porque lo fácil es difícil

Programar Manejadores de Eventos para SharePoint 2007 es fácil: un par de renglones de código, el ensamblado en el GAC, algo de registración y listo…


Pero lo fácil es difícil. Esta semana he estado luchando a brazo partido con algo que debería ser sencillo. Los requisitos: un usuario necesita subir archivos desde su Windows Explorer a un sitio determinado de WSS usando la Vista de Explorador de una Lista, y el sistema tiene que cambiar el nombre del archivo agregándole un código único al final; cuando oyes lo que te piden haces cuentas de cuánto tiempo va a costarte: Una hora para tomar café y pensar como lo vas a hacer, media hora preparando e iniciando maquinas virtuales, creando un proyecto de Visual Studio, y pensando como lo vas a hacer, 10 minutos programando los 10 renglones de código necesarios, 10 segundos compilando e instalando, una hora para tomar café y pensar cómo vas decirle al cliente que algo así cuesta ocho horas de trabajo… en total: ocho horas de trabajo.


Pero como lo fácil es difícil, los problemas empiezan inmediatamente al tratar de instalar todo en un sistema de prueba (por supuesto todo ha sido probado en tu sistema de desarrollo y funciona como un sueño).


1 – Todo el código (los 10 renglones) los metes en un try/catch para atrapar los errores que, por supuesto, nunca van a ocurrir. Sorpresa: en el servidor recibes un mensaje que el usuario no tiene derechos para escribir en el EventLog… después de horas de andar buscando porqué, encuentras que Windows R2 tiene pólizas muy estrictas, solamente algunos usuarios pueden escribir en el. Un Manejador de Eventos ejecuta en el contexto del usuario que ejecuta el Grupo de Trabajo de IIS, que, por supuesto, no tiene derechos suficientes.


2 – Ningún problema, piensas: como no me dejan subirle los derechos a esa cuenta, simplemente tiro los mensajes a un archivo de texto. Sorpresa: la cuenta tampoco tiene derechos para escribir en ningún lado.


3 – Un Impersonador para poder escribir en algún lado. Los Impersonadores de SharePoint 2003 no funcionan con SharePoint 2007, y los Impersonadores incluidos con SharePoint 2007 no funcionan con Manejadores de Eventos, fantástico. Otro par de horas creando un Impersonador que funcione con SharePoint 2007 Y con Manejadores de Eventos…


4 – Todo funciona bien ahora… hmmmm… no, nada funciona. O mejor dicho, funciona en el sistema de desarrollo, pero no en el de producción. Te sale un vago error (“The file “http://bla-bla/file.xxx” is checked out or locked for editing by SERVIDORgustavo”) que, como todos los errores de SharePoint, no dice nada: El usuario es un administrador y tiene todos los derechos para hacer lo que quiera, y el archivo lo ha subido el mismo, así que no puede estar bloqueado por sí mismo (Gustavo no puede bloquear archivos de Gustavo). Esto lo puedo solucionar fácilmente, piensas (por eso de que nunca aprendes que lo fácil en SharePoint es difícil): antes de hacer los cambios, simplemente haces un CheckIn. None… te sale otro error “El archivo ha sido modificado por Gustavo”, y no sucede nada.


5 – Muchas gracias, eso ya lo sabía, yo estoy modificando mis propios archivos, pero cuénteme porque no lo cambia en lugar de estar hablando idioteces… Dos días he dado el asunto por perdido, hasta que hoy, por eso de lo de cabezadura, le he medido otras cuatro horas pensando que podía pasar: hmmmm de nuevo…, el primer error me dice que está bloqueado… SharePoint tiene dos bloqueos de archivos, uno de larga duración (cuando el usuario hace un CheckOut del documento) y otro de corta duración (en el momento que aprietas “Guardar”, SharePoint bloquea el archivo por unos cuantos segundos para evitar que dos usuarios guarden cosas al mismo tiempo). El primero no es, pues el documento apenas se está subiendo, y ya intente hacer un CheckIn sin resultado, así que tiene que ser el segundo. Qué pasa si le pones un delay? BINGO, funciona. Con un retraso de 5 segundos no pasa nada, con 8 tampoco, con 10 segundos funciona!


Después de todo, algo que debería haber costado máximo una hora de trabajo ha costado más o menos dos días, por eso de que lo fácil es difícil…


Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…

Microsoft Office Live Developer Portal

Un pequeño comentario para hacerle notar a toda(o)s los fans de SharePoint (?) la existencia del portal para desarrolladores de Microsoft Office Live: http://msdn2.microsoft.com/en-us/office/aa905514.aspx


Como todo el mundo sabe (y si no lo saben, aquí se los cuento), Office Live es construido sobre la base de Windows SharePoint Services 3.0. Por lo tanto, usuarios de Office Live pueden utilizar todos los trucos que WSS acepta, como la creación de plantillas y soluciones personalizadas de InfoPath, asi como el uso de sus WebServices para interactuar programáticamente con el sistema.


En el sitio pueden encontrar el nuevo SDK para Live Office así como crear una cuenta de prueba por 30 días para ensayar cómo funciona el sistema.


El unico “problema” con todo el asunto es que la gran mayoría del trabajo de desarrollo que se puede hacer hay que realizarlo con el SharePoint Designer, pero esa es otra historia…


Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…

Computadores Quánticos y SharePoint

Una compañía canadiense, D-Wave Systems (http://www.dwavesys.com/) ha anunciado el primer computador quántico comercial (http://www.dwavesys.com/index.php?mact=News,cntnt01,detail,0&cntnt01articleid=4&cntnt01origid=15&cntnt01returnid=21).


Para los que no se acuerdan qué es esto, aunque las partes más finas se me escapan porque mi ignorancia es tan grande como mi falta de conocimientos, les puedo recordar que un computador quántico funciona con “qubits” en lugar de “bits”. Como todos sabemos, un bit tiene dos estados definidos; un qubit puede estar en cualquier cantidad de estados superpuestos al mismo tiempo (no me pregunten cómo es eso posible, solamente les cuento lo poco que me acuerdo de mis clases cuando era un adolecente). Esto significa que con un par de qubits (300, si no me acuerdo mal) se puede crear una memoria más grandes que todos los átomos existentes en nuestro universo.


Pues bien, una de las ventajas de un computador quántico es que hace (o podría hacer, mejor dicho) cálculos más rápidamente de lo que cualquiera de nuestros computadores actuales puede hacer, con mucho menos consumo de energía. Si es cierto lo que asegura esta compañía, dentro de poco nuestros computadores de silicio estarían listos para el basurero. Una desventaja computadores quántico es que probablemente solamente se podrían usar para resolver problemas de manipulación de datos en grandes volúmenes, así que no serian apropiados para crear interfaces de usuarios.


Viendo el sitio de D-Wave Systems me ha dado por pensar como sería una instalación de SharePoint en un computador quántico. Teniendo en cuenta que para el mayor sistema de SharePoint existente en el momento (la intranet de Microsoft, 12 Terabytes y 350.000 sitios) se usa una granja de casi 30 servidores en total, que necesitaríamos si usáramos un computador quántico? Un solo servidor, que consume la electricidad de una lámpara de escritorio? No estaría mal del todo…


Mi sueño siempre ha sido tener un servidor personal basado en un modesto Cray XD1 (http://www.cray.com/products/xd1/index.html), que produce un moderado 106 GFlops, pero estoy dispuesto a cambiar mis sueños, si es que se puede ordenar uno de estos computadores. Por supuesto que sueños, sueños son, pues de todas formas no lo podría pagar, pero que me divertiría un montón programando un bicho de este tipo, de eso no hay duda…


Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…