Nota del autor

Si la entrada que estás leyendo carece de imágenes, no se ve el vídeo que teóricamente lleva incrustado o el código fuente mostrado aparece sin formato, podéis conocer los motivos aquí. Poco a poco iré restableciendo la normalidad en el blog.
Este blog es un archivo de los artículos situados previamente en Lobosoft.es y ha dejado de ser actualizado. Las nuevas entradas pueden encontrarse en www.lobosoft.es. Un saludo,
Lobosoft.

sábado, 31 de mayo de 2008

Un manual de referencia Python en Firefox

Una de las características más interesantes de Firefox es su capacidad de extensión mediante la adición de add-ins que ofrecen distintas funcionalidades. Navegando encontré un manual de referencia de Python lo suficientemente interesante como para tenerlo en los marcadores. Pero si además deseamos tenerlo como un panel lateral (sidebar task pane) de Firefox, la instalación pasa por la sencilla creación de un Javascript que lleve a cabo esta tarea. El código podría quedar así:


[js]function addMozillaPanel() {
if ((typeof window.sidebar == "object")  && (typeof window.sidebar.addPanel == "function")) {
window.sidebar.addPanel ("Referencia de Python", "http://www.edgewall.org/python-sidebar/html/toc-tutorial.html","");
} else {
alert ("Lo sentimos, pero necesita Firefox o Mozilla para instalar el manual.");
}
}
[/js]

Y podríamos probar su efectividad incluyendo un enlace que realizase la llamada al Javascript.

manual.PNG


Debería agregarse un nuevo marcador llamado Referencia de Python, y al pulsar sobre el mismo, aparecería una barra lateral con el manual de referencia disponible.

jueves, 29 de mayo de 2008

Arquitectura

Kay



La mayoría del software actual es muy parecido a una pirámide egipcia, con millones de ladrillos puestos unos encima de otros sin una estructura integral, simplemente realizada a base de fuerza bruta y miles de esclavos
Alan Kay

El espacio, la última frontera

 


ussenterprise.PNG


Acabo de leer que Alexander Courage, el compositor de la banda sonora de Star Trek ha fallecido a los 88 años de edad. La que fuese una de las series de culto de cualquier aficionado a la ciencia ficción (“llegar donde ningún hombre ha llegado jamás”), y avanzada predicción de un futuro plagado de bitácoras electrónicas (ya sabéis, "Cuaderno de bitácora. Año estelar 2008.05”), seguida de numerosas secuelas, ya en televisión, ya en el cine, siempre ha mantenido de una u otra forma la música de Courage, que también compuso los temas musicales de Perdidos en el Espacio y Viaje al fondo del mar, entre otros.


Aunque no se trate en puridad de una noticia relacionada con la informática, sí que cala hondo en nuestra vena friki (recordemos que el pasado día 25 fue el Día del Orgullo Friki y el Día de la Toalla, como ya comenté por otro sitio...) , y no quería dejar pasar la noticia sin un breve comentario.


 


courage.jpg


Descanse en paz.

Editando los recursos de un binario

 


xnresource02.JPG


Hace unos días que recomendaba un par de herramientas para editar los recursos de archivos binarios (como DLLs o ejecutables) a través de un ejemplo de modificación del cuadro de diálogo de una DLL. Ayer descubrí una nueva, investigando, que además es open source. Se trata de XN Resource Editor, una evolución de Resource Hacker que además permite editar los recursos mediante una interfaz gráfica bastante agradable. Podemos modificar así los iconos mediante un editor de iconos, o modificar los cuadros de diálogo como si estuviésemos ante un editor de formularios (ventanas) de Windows, en Visual Basic o Visual Studio. Dejo por aquí un par de capturas para que veáis qué tal está la aplicación.



xnresource01.JPG

miércoles, 28 de mayo de 2008

Juego sucio

No reconocer a día de hoy que nuestro planeta posee una cantidad finita de recursos sólo puede ser síntoma de ignorancia supina o necedad. Es por ello, y porque de su salud depende nuestra existencia, que se hace cada vez más necesario ser conscientes de este hecho, limitando nuestro consumo (consumismo, más bien) y optimizando el uso de los recursos, reciclando y contaminando menos.


home-2.jpg


El auge de la industria tecnológica requiere más y mejores medidas para regular la emisión de contaminantes y reciclar la mayor parte de materiales y componentes de los productos fabricados. Hace un año, Greenpeace emitió un informe, a resultas de las investigaciones que llevaron a cabo en esta materia, clasificando las principales empresas del sector en función de la gestión más o menos respetuosa con el medio ambiente que llevasen a cabo. En dicho informe la compañía de Steve Jobs, Apple, no salió muy bien parada, pero sí Lenovo o Nokia, por poner un par de ejemplos. Un año después, Greenpeace lanza otro informe, esta vez centrado en el incipiente mercado de la informática de consumo, en particular en su vertiente más lúdica, la de las videoconsolas. En el informe de Greenpeace, se resume un estudio centrado en las videoconsolas más conocidas, y los resultados no pueden ser más desoladores. Si bien es cierto que, en general, se ha reducido el uso de sustancias contaminantes en los materiales y el proceso de fabricación de las consolas, no lo es menos que siguen usándose habitualmente productos como el cloruro de vinilo (para la fabricación del PVC), ftalatos, berilio, bromo o arsénico. Las compañías (Nintendo, Sony y Microsoft, principalmente), se defienden de las acusaciones indicando que sus productos se comercializan siguiendo las leyes de los países en que son distribuidas. Ante esto, Greenpeace arguye que la Comunidad Europea no contempla las videoconsolas como juguetes aun cuando son ampliamente usadas por niños, por lo que su distribución no se rige por unas leyes más estrictas que impedirían, de ser aplicadas, su comercialización. A esta problemática, la de su uso y distribución, se suma la de los desechos que terminan en muchos casos en vertederos incontrolados, en países en vías de desarrollo, y de la que sólo una parte son reciclados.


Ante esto, nos queda plantearnos, como consumidores afectados por las políticas empresariales que buscan el bajo coste y la mayor ganancia, hasta qué punto dejaremos pasar estos juegos sucios sin levantar la voz.



Game Over.
Insert coin???










coin.gifcoin.gifcoin.gifcoin.gifcoin.gif

basura-tecnologica-guiyu.jpg

Visionarios…

Watson



"Creo que existe mercado para unos cinco ordenadores en todo el mundo."
Thomas Watson, Presidente de IBM, 1943


Olsen



"No hay ninguna razón por la que una persona normal pueda necesitar una computadora en su casa." Ken Olsen, 1977


Que tengan una política un tanto... digamos... detestab... esto... agresiva, no quiere decir que no tengan visión comercial:

Gates



"Un ordenador en cada oficina, en cada casa. Microsoft en cada uno de los ordenadores." Misión de Microsoft, 1975.

Bromas aparte, lo que sí es cierto es que en apenas unos años, la visión que de la informática tenían tanto los profesionales como los profanos en la materia cambió radicalmente. Una Historia tan breve como intensa.

martes, 27 de mayo de 2008

10 REM Una de BASIC.

Dijkstra




Es prácticamente imposible enseñar programación correctamente a estudiantes que han estado expuestos al lenguaje BASIC con anterioridad. Como potenciales programadores, tienen la mente mutilada sin esperanza alguna de regeneración.
Edsger Wybe Dijkstra


Y no lo dijo un cualquiera. Recordemos a Dijkstra por su célebre algoritmo de los caminos mínimos o el famoso artículo que escribió bajo el título Go To Statement Considered Harmful.

viernes, 23 de mayo de 2008

L Sharp (L#)

 


lsharp.png


Que el .NET Framework constituye el soporte de múltiples lenguajes es algo conocido por todos. Hoy, buscando información sobre unos determinados componentes me he encontrado con un ejemplo con extensión ".ls", de L Sharp. ¿Qué es L# .NET? Bien, se trata de una implementación de Lisp para .NET, que tiene un par de años de antigüedad. Aunque no es muy reciente, no he podido resistirme a traerlo al blog, ya que no deja de resultar curioso ver cómo se están llevando lenguajes a la plataforma de Microsoft.


Como ejemplo, un par de botones. El obligatorio “Hola Mundo” y una implementación de la sucesión de Fibonacci, otro clásico de las matemáticas, de la computación y, cómo no, de este blog.



;;; Hola mundo en L Sharp

(WriteLine Console "Hola Mundo"

 


;;; L Sharp Fibonacci

; Fibonacci, recursivo
(= fibonacci (fn (n)
(if (eql n 0) 0
(if (eql n 1) 1
(+ (fibonacci (- n 1)) (fibonacci (- n 2)))))))

; Los primeros 15 número de la serie de Fibonacci
(to i 15
(prl (fibonacci i)))

miércoles, 21 de mayo de 2008

Modificando ventanas de diálogo en Windows

Cuando dejamos solo el ordenador, es recomendable bloquearlo para evitar la intromisión de cualquier persona en el equipo. De no hacerlo así, podrían robarnos información o alterar el estado del sistema, instalando algún software malintencionado. Esto, que es una de las máximas de la seguridad informática (seguridad física), puede conseguirse fácilmente mediante el atajo de teclado [Windows]+L, como veíamos hace unos días.


Pues bien, si deseamos hacer que desaparezca el cuadro de diálogo que aparece en esta situación, indicando que el equipo ha sido bloqueado y que para restaurarlo debemos volver a hacer login en el mismo, tras pulsar la combinación de teclas [CTRL]+[ALT]+[SUPR], sólo tenemos que seguir unos sencillos pasos.


La información de los recursos de Windows se encuentra, en buena parte, en las DLL que ejecutan determinados procesos. En concreto, la información del diálogo que comentamos se encuentra en el archivo msgina.dll, que podemos encontrar en dos ubicaciones: c:\windows\system32 y c:\windows\system32\dllcache.


A la hora de editar una DLL, podemos hacerlo principalmente de dos formas. La primera, editando el código en ensamblador de la misma (desensamblándola, pues, con herramientas como el debugger OllyDbg), o accediendo a los recursos que proporciona la propia DLL, con herramientas del tipo Resource Tuner (de pago) o Resource Hacker (gratuita). Entre los parámetros que podremos alterar de una DLL se encuentran los iconos que contiene, mensajes o, incluso, su visibilidad.


Procedemos entonces a modificar la DLL usando Resource Hacker, pero primero es conveniente realizar una copia de seguridad de la DLL original. Que luego nunca se sabe cómo terminan estos experimentos. Tras hacer la copia, procedemos a abrir la DLL, que podrá darnos varios mensajes de error por estar bloqueada por Windows, y en este caso deberíamos modificar una copia y, posteriormente, sobrescribir las originales, en sus dos ubicaciones, antes de la carga de Windows, mediante la consola de recuperación o un LiveCD de Linux, por ejemplo. En el caso en que no sea así, el cambio será inmediato.



reshacker01.PNG


Buscamos, dentro del árbol de recursos, el correspondiente al Dialog 1900, y lo abrimos. Mostrará una información similar a la siguiente:



1900 DIALOGEX 6, 18, 274, 69
STYLE DS_FIXEDSYS | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
CAPTION "Computer Locked"
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
FONT 8, "MS Shell Dlg"
{
CONTROL "This computer is in use and has been locked.", 1752, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 37, 7, 230, 8
CONTROL "Text", 1902, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 37, 21, 230, 26
CONTROL "Press Ctrl-Alt-Del to unlock this computer.", 1754, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 37, 54, 230, 8
CONTROL "", 2403, STATIC, SS_ICON | WS_CHILD | WS_VISIBLE, 7, 5, 21, 20
}

El contenido podrá cambiar, evidentemente, dependiendo del idioma en que tengamos instalado el sistema operativo. Aquí podríamos cambiar el tipo de letra del cuadro de diálogo, el mensaje que nos muestra o vincularle algún icono a mostrar. Pero no haremos nada de esto. Simplemente cambiamos su contenido:



1900 DIALOGEX 0, 0, 0, 0
STYLE WS_POPUP | WS_VISIBLE
CAPTION ""
LANGUAGE LANG_ENGLISH, 0x3
FONT 0, ""
{
}

Pulsamos en Compile Script, y guardamos los cambios. Recordad que debe hacerse en las dos copias de la DLL. Puede que el sistema muestre una alerta indicando que se ha modificado un elemento integrante del SO y que puede ser peligroso. De ser así, aceptaremos el cambio. Si el mensaje que muestra es sobre el bloque del archivo, que no podrá ser sobrescrito, deberemos dar un rodeo para reemplazar el fichero, como apuntaba antes, haciendo uso de la Consola de recuperación o alguna otra herramienta.


Una vez modificadas las dos copias de las DLL, y tras reiniciar el equipo, si procedemos a bloquearlo veremos que ha desaparecido el diálogo correspondiente al mensaje en cuestión. Sin embargo, accederemos al equipo como siempre, pulsando [CTRL]+[ALT]+[SUPR] e identificándonos.


¿Qué utilidad puede tener esto? Por un lado, si tenemos una imagen de fondo de escritorio, al bloquear el equipo aparecerá sin la molesta ventana. Por otro, y en ambientes bromistas donde dejar el equipo desprotegido puede ser peligroso, puede servirnos para hacer la del “cazador cazado”, es decir, poner como fondo de pantalla una captura de la misma (mediante [Impr Pant], y guardando posteriormente una imagen que usaremos como fondo), ya que al bloquear el equipo, dará la impresión de estar completamente desprotegido. Si alguien intenta hacer algo, evidentemente, no podrá hacerlo (recordemos que está completamente bloqueado), y se irá con un palmo de narices ;).

martes, 20 de mayo de 2008

Atajos de teclado en Windows

teclado.jpg


Usar el teclado para controlar nuestro ordenador es, desde el comienzo de los tiempos, más rápido que controlarlo mediante el ratón u otros periféricos. Sin embargo, con la llegada de los entornos gráficos y de ventanas, el uso del ratón se ha impuesto y simplificado el uso de las aplicaciones. Sin embargo, cuando usamos una aplicación como un editor de texto, una hoja de cálculo o un entorno de programación, sigue siendo más rápido conocer las diversas combinaciones de teclas existentes para realizar nuestro trabajo de forma más eficiente. Windows, como sistema operativo, también tiene bastantes atajos de teclado disponibles. Algunos, tan conocidos como los controlcés y controuves que usa todo el mundo. Otros, un poco más discretos y anónimos, que resultan de combinar la tecla de Windows (sí, la del logo, entre Control y Alt) con alguna otra tecla. Para aquellos que amen el teclado o, simplemente, para los momentos en que el ratón deja de funcionar por algún problema de configuración, aquí dejo un breve resumen de atajos de teclado:




  • [Windows]: Muestra u oculta el menú de Inicio.

  • [Windows]+[Pausa]: Cuadro de diálogo de propiedades del sistema.

  • [Windows]+[D]: Muestra el escritorio.

  • [Windows]+[M]: Minimiza todas las ventanas.

  • [Windows]+[SHIFT]+[M]: Restaura las ventanas minimizadas.

  • [Windows]+[E]: Abre Mi PC.

  • [Windows]+[F]: Busca una carpeta o fichero.

  • [Windows]+[CTRL]+[F]: Busca un ordenador en la red.

  • [Windows]+[F1]: Muestra la ayuda de Windows.

  • [Windows]+[L]: Bloquea el teclado, mostrando la ventana de login.

  • [Windows]+[R]: Cuadro de diálogo Ejecutar.

  • [Windows]+[U]:Abre el Utility Manager.

  • [Tecla de aplicación]: Muestra un menú contextual para el elemento seleccionado.


En la web de soporte de Microsoft se muestran los métodos abreviados de teclado para Windows y para Windows XP.

jueves, 15 de mayo de 2008

El ágora de Lobosoft

A principios de marzo (del día 2 es esta entrada que edito y publico hoy) pensé en montar un foro en torno al que se estableciese otra vía de comunicación entre los lectores del blog, más abierta y fluida. Estuve haciendo pruebas con phpBB, el conocido sistema de gestión de foros en PHP, y aunque el rendimiento del mismo es bastante elevado, la verdad es que me desencantó un poco porque "encajarlo" en el blog requería bastante tiempo y esfuerzo, y el resultado obtenido no era el que deseaba. En la noche de hoy he estado probando varios plugins bastante interesantes, de los que hablaré en próximos días, y uno de ellos, WP-Forum, me ha encantado. Aunque apenas he tenido tiempo para probarlo (arreglar un problema con la función date, que no terminaba de funcionar, y configurar algunos foros a prueba), la verdad es que la sensación de fluidez e integración con Wordpress que me ha dado ha sido considerable. A falta de mejorarlo y traducirlo (traducción al español de WP-Forum) lo pongo en marcha hoy, esperando que sea un punto de encuentro y de puesta en común de conocimientos.


 


lobosoftforo.gif


Como recuerdo de lo que pudo haber sido, dejo aquí la entrada original:


Captura de pantalla del foro




Dado que día a día se incrementa el número de visitantes al blog, a que muchas de las búsquedas que llevan aquí a sus lectores son reiterativas y, por lo que puedo ver en las estadísticas, en ocasiones se trata el tema buscado en detalle y otras, apenas de una forma sesgada, me he decidido a abrir un foro en el que poder debatir sobre todo tipo de temas relacionados con el blog: seguridad informática, programación, juegos, etc. Aquí se podrán plantear preguntas y responder a las dudas que surjan, o proponer nuevos temas para ser tratados en el blog.


De momento tiene un carácter experimental (ver si resulta útil y bienvenida, y si realmente es usada por los lectores del blog). Espero que sea una herramienta práctica y complementaria al propio blog. El acceso al mismo, en la dirección www.lobosoft.es/foro/o desde el botón habilitado en la cabecera del blog.


Sobre Wordpress y plugins. Evitando los hotlinks

forbid1.png


Usar imágenes de otros sitios web en el propio, es una omisión a todas las reglas de netiqueta. Pero usarlas directamente desde el otro sitio, es decir, incluyendo la referencia a las mismas desde la etiqueta HTML (por ejemplo, con ) atenta contra cualquier regla del buen gusto, y contra la economía del pobre pardillo a quien le estemos robando el ancho de banda.

Por eso, y dado que en un entorno hostil como Internet, donde cada vez más usuarios, bien sea por picaresca, bien por desconocimiento de las más elementales normas de ciberconvivencia, realizan esta práctica, me he visto obligado a indagar, instalar y, ahora, recomendar, un plugin bastante interesante para Wordpress. Se trata de Hotlink Protection, un plugin que evita precisamente esta práctica de hotlinking, como la llaman los angloparlantes. Si alguien hace una referencia a una de nuestras imágenes de este modo, el plugin la sustituirá por una de aviso que definamos a nuestro gusto (y, obvia decirlo, que evitaremos sea demasiado pesada, o podríamos fenecer envenenados por nuestra propia medicina), o bien devuelve un enlace "roto" a la imagen.


forbid.png


Aviso: El plugin parece funcionar sólo con las entradas escritas o editadas con posterioridad a la instalación del mismo. Por eso, si probáis con alguna imagen antigua posiblemente no funcione correctamente.

martes, 13 de mayo de 2008

Importar entradas de Blogger desde Wordpress

Aunque el blog de Lobosoft tiene poco más de cinco meses de vida, mi experiencia como blogger (aunque odie la moda de usar anglicismos para definir cualquier cosa, lo cierto es que es más breve usar este término que hablar de alguien que escribe en una bitácora, y el de bloguero me gusta menos aún) se remonta un año atrás. Como ya apunté en algún lugar de un blog indeterminado, aunque hace años (tal vez más de los que quisiera) que me dedico a montar páginas webs, propias y ajenas, siempre fui reticente a poseer un blog, a pesar del innegable interés de apertura democrática de la red a todas las personas que, sin poseer grandes conocimientos informáticos, podían expresarse y compartir opiniones con el resto del ciberespacio. Esto, que ha sido el punto de partida de la tan traída y llevada Web 2.0, terminó por contagiarme, y ahora no es uno, sino que son tres los blogs que poseo y en los que escribo sobre diversos temas. Y la cuenta suma y sigue, con colaboraciones en otros dos blogs, alguna que otra web, y lo que se avecina en próximas sorpresas para los lectores de Lobosoft y que espero que lleguen en breve. Imagino que echaba de menos los tiempos en que colaboraba en diversas revistas y publicaciones de Granada y Jaén, hace algunos años.


Pero vayamos al grano. Mi intención hoy es mostrar cómo podemos migrar un blog de Blogger a Wordpress y no morir en el intento. Para aquellos que, como yo, iniciaran su andadura "bloguera" como usuarios del servicio de blogs de Google (Blogger), posiblemente acumularían numerosas entradas en su bitácora antes de descubrir que no existe una forma rápida y eficaz de realizar una copia de seguridad de la bitácora, o de exportar los datos a otras plataformas. Tiempo después, pasé a usar Wordpress , tras evaluar varios CMS dedicados a la gestión de blogs. El primer blog personal en que usé Wordpress fue Lobosoft, y el sistema, sin ser perfecto, me ha gustado tanto que hace unos días decidí migrar el blog de Blogger a Wordpress. Aunque hace un tiempo hice alguna prueba en este sentido, al producirse un determinador error en el proceso de importación de entradas desistí y no volví a intentarlo.


Es curioso, porque en Wordpress existe un sistema de exportación/importación de entradas que funciona con otras versiones de Wordpress y diversos CMS entre los que se cuenta Blogger, pero sin embargo no funciona correctamente. Ni en las versiones anteriores de Wordpress, ni en la actual 2.5, se lleva a cabo adecuadamente el proceso. El motivo parece ser una actualización en los sistemas de cuentas de Google-Blogger, ya que he probado con varias de ellas, y en algunas parece funcionar y en otras no. Aunque existen plugins dedicados a brindar esta funcionalidad, me he encontrado con problemas en los mismos que impide realizar una correcta importación de datos. Así las cosas, y si todo lo demás falla, tal vez sea de ayuda el siguiente proceso. Accedemos al menú Administrar-> Importar (Manage->Import), y seleccionamos la opción Blogger. Nos advierte que para continuar con el proceso, debemos autorizar nuestro blog ante el servicio de cuentas de Google para que se pueda establecer una conexión segura y llevar a cabo la importación de entradas y comentarios.


 


blogger01.PNG


Ante esto, simplemente introducimos nuestro nombre de usuario y contraseña de la cuenta Google. En este momento podemos encontrarnos con un error como el siguiente:

blogger02.PNG


De ir bien todo, se nos mostraría una lista de los blogs de Blogger que tenemos asociados a la cuenta de Google, para que seleccionásemos aquel que deseamos importar. Tras esto, se produciría la importación de entradas, páginas, comentarios y etiquetas correspondientes, y deberíamos realizar la asociación entre éstas y uno de los usuarios de nuestro blog de Wordpress.


Pues bien, el truco es sencillo. Por algún motivo, el sistema de blogs de Wordpress.com sí que ofrece este servicio de importación sin que se produzca el error (y eso que se supone que el software que descargamos de Wordpress.org es el mismo usado en la versión de hosting de Wordpress). De modo que el proceso es tan simple como realizar la importación de las entradas desde una cuenta de Wordpress.com para, justo a continuación, exportarlas a un archivo XML que usaremos para restablecerlas en el blog definitivo.

domingo, 11 de mayo de 2008

Local Cooling, o el ahorro energético al alcance de nuestro PC

 


localcooling.jpg


Que el planeta está en peligro, y no precisamente por la alarma ante meteoritos que caigan del cielo, o por la llegada de seres alienígenas que dispongan de una tecnología tan avanzada como mala idea gasten. El problema lo tenemos dentro, con el voraz consumo de recursos con que el hombre está esquilmando el planeta. Con la continua contaminación de la atmósfera y el consumo energético desorbitado.

Si queremos ser más consecuentes con la protección del medio ambiente, debemos tener en cuenta el consumo de electricidad que tenemos en el uso continuo de nuestros ordenadores y sus periféricos. Para ayudarnos a concienciarnos de cómo ahorrar energía, de qué dispositivos consumen más, o cómo ajustar el modo de ahorro de energía al máximo, ha surgido Local Cooling, un software que nos permite llevar a cabo una auditoría energética de nuestro PC. Lo he estado probando y la verdad es que resulta bastante interesante, ya no sólo para usarlo en casa, sino en empresas donde se mantienen en uso numerosos ordenadores, y por tanto el consumo de energía es más notable.


 


localcooling01.PNG


Con Local Cooling conseguiremos ahorrar energía y, por tanto dinero. Y el medio ambiente de nuestra querida Tierra lo agradecerá.

jueves, 8 de mayo de 2008

Noticias sobre Windows Workflow Foundation (WWF)

En estos días en los que ando investigando sobre Windows Workflow Foundation como una implementación específica de un lenguaje de especificación de dominio (DSL) y su potencial para desarrollar modelos de negocio he encontrado un par de blogs que me gustaría recomendar a los lectores de Lobosoft. Se trata, por un lado, del blog de Pablo C. García, en el que se hace una interesante introducción a los workflows y, en particular, expone un estudio basado en los patrones de workflow diseñados por las universidades de Eindhoven y Queensland que sirven para poner a prueba cualquiera de estos sistemas, y pueden encontrarse en la dirección de Workflow Patterns.


Por otro lado, el blog de Carlos Segura tiene varias entradas referentes a un curso de introducción a WWF que pueden ser también de interés por su enfoque didáctico.


Y por supuesto, en breve Losoboft contará con ejemplos referentes a esta interesante tecnología, especialmente enfocados desde su relación con los DSL, que ya introdujimos en su momento.

miércoles, 7 de mayo de 2008

Un explorador de archivos con múltiples pestañas

Aquellos que trabajamos de forma intensiva con el ordenador, a lo largo de la jornada de trabajo podemos terminar acumulando varias ventanas del explorador de archivos abiertas. Esto, que en principio no tiene mayores implicaciones que un leve aumento en el consumo de memoria del equipo, así como una serie de tareas abiertas en la barra del mismo nombre (generalmente agrupadas si usamos Windows a partir de versión XP de este sistema operativo), puede llegar a ser un verdadero incordio. Si nos gustan las pestañas en el navegador, al estilo de Firefox o Internet Explorer 7, tal vez tengamos la solución a este problema.



ietab1.PNG


Firefox disponde de un add in denominado IE Tab, que permite abrir instancias de Explorer dentro de una pestaña del navegador. Así, si instalamos dicho add in y pulsamos con el botón derecho del ratón sobre un enlace, nos ofrecerá la posibilidad de abrirlo usando Explorer DENTRO de Firefox. Pues bien, si deseamos que actúe además como un explorador de archivos, basta con acceder al menú de configuración del add in (Herramientas -> Opciones de IE Tab) y añadir la regla “file:///*” para que cualquier archivo del sistema de ficheros local sea abierto con Explorer.


ietab2.PNG


Ahora, si creamos una nueva pestaña en Firefox (Ctrl+T o Archivo->Nueva pestaña) y escribimos en la barra de direcciones, por ejemplo, C:, mostrará desde la misma el explorador de archivos en dicha ubicación.


ietab3.PNG

[08/05/2008] Edito para añadir :

Jugueteando un poco con Firefox acabo de ver algo que me ha llamado la atención. En la parte inferior derecha aparece el pequeño zorro, como puede observarse en la imagen. Al posicionar sobre él el puntero del ratón, aparece un mensaje que nos indica que se trata de una funcionalidad de IE Tab.


 


ietabinf1.PNG


Es un añadido muy interesante para desarrolladores web, por un lado, y para usuarios cansados de cambiar de navegador cuando una determinada página web no funciona correctamente por usar alguna característica propia de uno de estos dos navegadores, y no soportada por el otro. En numerosas ocasiones encontramos páginas web que no se visualizan correctamente, o que no ofrecen las prestaciones deseadas por el usuario, y debemos cambiar de navegador para verla correctamente. Ahora no sería necesario, bastando un simple clic de ratón sobre esta opción para visualizar la web con el otro motor del navegador. Una sencilla prueba del funcionamiento de IE Tab podemos tenerla haciendo pasar a Firefox “interfaz” la prueba de Acid2 usando ambos motores: el propio de Firefox y el de Internet Explorer (6 ó 7, en la mayoría de casos):




  • Firefox:


ietabinf2.PNG




  • Explorer (6):


 


ietabinf3.PNG

martes, 6 de mayo de 2008

Promoción rusa de Gmail

Hay veces que toca criticar, y esto puede darse por los más diversos motivos, pero como dicen en mi tierra, "lo que es, es". Y a Google, en originalidad, la verdad es que es difícil plantarles cara. Leo en Mangas Verdes, un blog a través del que han accedido a Lobosoft, una noticia sobre la promoción de Gmail desde Google Rusia, y la verdad es que el vídeo no tiene desperdicio. A ver qué os parece:


 


http://www.youtube.com/v/aCNSWwAJNZE&rel=0;rel=0

Despliegue de nuestro propio DSL

Hace unos días veíamos cómo crear una herramienta personalizada mediante el uso de las DSL Tools que proporciona el SDK de Visual Studio 2008. Si bien podemos desarrollar y probar nuestro DSL que a tal efecto proporciona el Experimental Hive de Visual Studio, lo cierto es que una vez desarrollado el producto, e incluso durante el proceso de desarrollo, podemos desear comprobar cómo funciona el mismo en un entorno de pre-producción. Para ello, debemos generar un proyecto de despliegue (un setup) para el proyecto DSL, y aunque no es un proceso precisamente trivial, ya que implica la vinculación de extensiones de archivos a nuestro editor DSL mediante la modificación del Registro de Windows, y la instalación de determinados archivos en ubicaciones muy específicas, lo cierto es que el propio Visual Studio proporciona un tipo de proyecto que puede facilitarnos la tarea.


En principio, como avanzamos, realizar un proyecto de instalación de un DSL no es algo sencillo, a pesar de lo que pueda parecernos inicialmente cuando empezamos a trabajar con ellos, ya que estamos hablando de la instalación de un Visual Studio Package. Para obtener el mejor rendimiento y aprovechar al máximo la capacidad del instalador deberíamos hacernos con WiX (Windows Instaler XML), un potente entorno de despliegue basado en XML, y distribuido libre de licencia por Microsoft. Existe un excelente tutorial de WiX en Internet, además de lo que podemos leer en la página oficial del producto, y también podemos usar herramientas comerciales como la Software Factories Toolkit, que al fin y al cabo está basada en WiX.


En cualquier caso, y de momento, vamos a basarnos en el proyecto de instalación para DSLs que incorpora Visual Studio, y que también se basa en WiX para crear un entorno sencillo aunque en principio limitado para la instalación de nuestros productos.


En principio, para la instalación de un diseñador DSL necesitaremos los archivos siguientes:




  • .msi del diseñador.

  • .msi del DSL Tools Redistributable, ya que si el equipo destino de la instalación no tiene instaladas las DSL Tools (a partir del SDK de Visual Studio) el diseñador no funcionaría. También es posible que necesitemos registrar una Package Load Key (PLK). En la página de VS Extensibility de Microsoft se puede encontrar más información sobre este proceso. En cualquier caso, la PLK se aplicará sobre la clase package (Shell\Package.tt), mediante el atributo VSShell::ProvideLoadKey(keynumber)]. La PLK se almacenará en el fichero de recursos VSPackage.resx.

  • setup.exe, encargado de instalar en el orden adecuado, y si son necesarios, los distintos .msi.

  • settings.ini, con la configuración necesaria para el setup.exe.

  • Archivos adicionales, como el Readme o la licencia del producto.


 


dslsetup01.PNG


Así pues, comenzaremos el trabajo de generación del instalador abriendo nuestra solución DSL (compuesta por los proyectos DSL y DSL Package), y agregando un nuevo proyecto de tipo DSL Setup. El proyecto se compone básicamente de una serie de archivos, cuya finalidad es la siguiente:

  • .dslsetup: información sobre los componentes del DSL. A partir de la misma los text templates (.tt) generarán los archivos necesarios para la compilación de WiX. En este archivo se añadirán todos los recursos necesarios para la instalación y funcionamiento del DSL (.TT's, .DLL's, etc.).

  • settins.ini: información para setup.exe. Identifica el .msi del producto, incluyendo su nombre. Sólo debe modificarse si el nombre del producto sufre algún cambio.

  • Strings.wxl: UI del wizard de instalación. Permite cambiar los lenguajes, localización, etc.

  • Product.ico: El icono del producto. Será el que Windows muestre en el Panel de Control, dentro de Añadir y Quitar Programas.


Si realizamos cualquier cambio en la definición del diseñador DSL deberemos seguir los siguientes pasos:




  1. Rebuild de los proyectos DSL y DSL Package.

  2. Regenerar los ficheros para WiX a partir de los Text Templates.

  3. Rebuild del proyecto DSL Setup.


Además de esto, para disponer del proyecto DSL en nuestro instalador deberemos hacer lo siguiente:




  1. Ejecutar el proyecto DSL para abrir el Visual Studio Experimental Hive. Una vez dentro, limpiaremos el proyecto DSL para dejarlo tal y como nos gustaría que quedase un nuevo proyecto basado en el mismo (únicamente los archivos .tt necesarios y algún fichero del modelo recién creado, por ejemplo Sample1.mydsl), y hacer un Clean Up del proyecto.

  2. Seleccionamos el proyecto en la solución.

  3. Dentro del menú Archivo (File) de Visual Studio Experimental Hive, seleccionamos la opción de Exportar Plantilla (Export Template).
    dslsetup02.PNG

  4. Copiar la plantilla de proyecto recién creada en el proyecto Setup. Podemos darle el nombre: Nombreproyecto.Code.tt).

  5. Añadir a .dslsetup la línea:




  6. Ejecutar (run) todos los Text Templates de la solución DSL para regenerar los archivos de WiX.


Tras compilar toda la solución, tendremos un instalador para nuestro DSL.

 


dslsetup03.PNG


Si lo instalamos en un equipo nuevo, podremos crear un nuevo proyecto correspondiente a nuestro DSL simplemente entrando en Visual Studio, indicando que deseamos crear un nuevo proyecto y seleccionando la plantilla de entre las que tenemos disponibles en la sección "Mis Plantillas".



dslsetup04.PNG


Aquí vemos cómo quedaría un proyecto de este tipo. Tendríamos, para el proyecto, las herramientas que diseñamos en el DSL, asociadas a sus Shapes correspondientes:


 


dslsetup05.PNG


También vemos la estructura del proyecto, idéntica a la que exportamos del Experimental Hive.


dslsetup06.PNG


Y un programa diseñado en este lenguaje podría quedar así:


 


dslsetup07.PNG


Por último, basta con ejecutar nuevamente el setup, y seleccionar la opción de eliminar el producto de nuestro equipo, si deseamos dejarlo tal y como l teníamos originariamente.