miércoles, 28 de julio de 2010

Actualizaciones automáticas de Software

Con esto de la democratización de Internet se ha impuesto una funcionalidad, especialmente en las herramientas de libre distribución: las actualizaciones automáticas.

Generalmente, y de forma superficial, esta opción es un verdadero e insoportable coñazo. Lo siento mucho, pero eso de que cada vez que arrancas la aplicación, o incluso cuando ya estás trabajando con ella, te salga una ventanita diciéndote que hay una funcionalidad maravillosa, pero que tú jamás utilizarás, que deberías descargarte si no quieres convertirte en una momia tecnológica, es, sencillamente, un coñazo (y me remito a la definición de la rae).

Teniendo en cuenta esto, siempre he sido un claro detractor de esta medida, que tengo deshabilitada en la mayoría de herramientas que utilizo. Sin embargo, puede que mi filosofía de vida cambie radicalmente a partir de hoy.

Haciendo un repaso rápido, me he dado cuenta de que la mayoría de las utilidades con las que trabajo en mi día a día, y que tengo en alta estima, son el súmmum de lo obsoleto (otras no tanto, pero también). Por ejemplo:


  • TortoisseCVS: va por la versión 1.10.10, y yo estoy en la 1.10.9.
  • Stimulsoft: va por la 2010.1, y yo uso la ¡¡¡2006.4!!!
  • Winrar: nunca se me ocurrió pensar que existiese algo más allá de mi Winrar 3.42 (del año 2004), cuando ya van por el 3.93.
  • VideoLan (VLC): va por la 1.1.0, y yo estoy en la 1.0.5.
  • SnagIT: sigo utilizando la versión 7, y ya está disponible la 10.
  • Ireport: me actualicé hace un par de meses a la 3.7.1, pero había estado hasta entonces con la 1.3.0...
  • Filezilla: trabajo con la 3.0.0, existiendo la 3.3.3.
  • Adobe Reader: tengo el 6, y existe la 9.3.3.
  • Internet Explorer: muchos dirán que el hecho de usar Explorer es en sí mismo un enorme retraso. En mi defensa diré que utilizo, por este orden, Chrome, Explorer y Firefox. El caso es que sigo con la espectacular versión 6.
  • Etcétera, etcétera.

El siguiente paso es evaluar si realmente este desfase en que me hallo me está haciendo perder prestaciones interesantes, porque como indicaba antes, muchas veces las nuevas versiones no aportan nada interesante para determinados usuarios; pero teniendo en cuenta lo anticuado que estoy, lo más probable es que actualizarme me sirva para ahorrar tiempo o mejorar el uso en alguno de los casos.

Yendo más lejos, no sólo se trata de versiones de la misma aplicación, sino incluso de buscar herramientas mejores. Este caso lo he vivido por ejemplo al pasar de WinCVS a TortoisseCVS, o de WinDiff a BeyondCompare. Aunque para esto no sirven las actualizaciones automáticas, y tendremos que currárnoslo informándonos por ahí para estar al día.

La conclusión del día es que las actualizaciones automáticas son un buen invento. Un poco petardas, vale, pero al final nos hacen la vida más fácil.

Y como diría este gran personaje: ¡modernícese, tío!


lunes, 26 de julio de 2010

¿En qué posición salgo en Google?

Hoy en día se puede decir que si uno no sale en Google, no está en Internet.

Este buscador es la página de inicio de una gran parte de los usuario de Internet, y el recurso casi único cuando uno necesita información sobre algún tema, y no conoce ninguna página Web concreta.

Por tanto, la pregunta que todos los webmasters, bloggers, y demás especímenes de la red, nos hacemos alguna vez en nuestras vidas, es: ¿salgo en Google?.

Pues para contestar a esa pregunta he desarrollado un programa muy simple, al que puedes darle el nombre de tu Web o dominio, y una cadena de búsqueda; con esa información él te dirá en qué posición estás en el buscador number one.

Eso sí, esta herramienta es un tanto "peligrosa". Los chicos de Google, que son unos cracks, están perfectamente preparados contra ataques de denegación de servicio y esas historias, por lo que si abusas de este programita sabrán que estás utilizando un robot, y te bloquearán. Tampoco es grave, porque no son rencorosos y no lo harán de por vida, pero no es el objetivo de esta aplicación tocarle la moral a los amigos de Google, así que por favor, cuidadito con lo que hacéis.

También hay que decir que el programa no está ni mucho menos afinado al 100%, y la posición que devuelve puede no ser exacta, pero seguro que te servirá para localizarte rápidamente.

Para comprender un poco cómo funciona, explicar que puedes hacer peticiones a Google pasándole los parámetros en la url. Los parámetros con los que se juega son:

- q - lo más importante, la cadena de búsqueda.
- start - indica a partir de qué posición se quieren los resultados.
- num - el número de resultados que se quiere obtener en la petición.
- lr - es el lenguaje de los resultados; para buscar en español se debe pasar el valor lang_es.

Como ejemplo, actualmente este blog aparece en la posición 17 si haces una búsqueda no exacta de "Implantar ITIL".


jueves, 22 de julio de 2010

Cómo forzar el salto de línea (wrap) en un JLabel

Un post rápido y sencillo.

En algunas ocasiones, por el motivo que sea, utilizamos el componente JLabel para mostrar mensajes cuyo tamaño no conocemos en tiempo de desarrollo. En estos casos nos podemos encontrar con que el ancho que hemos dado al campo no es suficiente para recoger todo el texto.

Se nos puede ocurrir como solución ampliar la altura, pero si simplemente hacemos eso veremos que la línea no se rompe al llegar al final del componente, por lo que no conseguimos resolver el problema.

Pero no hay que preocuparse, porque la solución es muy simple, ya que con añadir etiquetas html al texto obtendremos el efecto que necesitamos.


Tutorial de OpenESB

En estos días, cumpliendo mi amenaza final de este post, he publicado en DebugModeOn una serie de artículos que conforman un tutorial de introducción a OpenESB. En él se muestra paso a paso cómo desarrollar un ejemplo simple en el que se genera un proceso que realiza invocaciones a distintas tecnologías como Bases de Datos Oracle, Servicios Web, el sistema de ficheros, etc.

Para mayor comodidad publico aquí también la versión completa en un único documento.


Por cierto, en la barra lateral del blog podéis encontrar un enlace a mi perfil de DebugModeOn.

lunes, 19 de julio de 2010

Implantación de ITIL

Se habla mucho hoy día de la "Implantación de ITIL"; y de hecho abundan en Internet las ofertas de trabajo relacionadas con esta actividad.

Parece que se está creando cierto sectarismo en torno a ITIL; está en la cresta de la ola, y todos quieren subirse porque si no, hoy en día, no eres nadie. Gestionar un servicio sin itilizarlo pronto se convertirá en un delito.

Pero, ¿es tan necesario implantar ITIL? Pues desde mi punto de vista, sí, pero no. A ver cómo lo explico...

ITIL define un conjunto de buenas prácticas a la hora de gestionar un departamento informático, que son mayoritariamente aceptadas y consideradas adecuadas. Por tanto, sí que puede decirse que seguir esas prácticas es, de forma general, beneficioso.

Sin embargo hay que hacer una serie de consideraciones. La primera, y una de las más importantes, es que hay que tener presente que ITIL proporciona buenas prácticas en una serie de ámbitos diferentes, aunque complementarios, y que en la mayoría de los casos uno no implanta ITIL, tal cual. Lo que se debe hacer es conocer ITIL, pensar qué nos ofrece que nos pueda aportar valor, adaptarlo a nuestras necesidades, y entonces, implantarlo.

Esto implica que ITIL no se implanta; ITIL te guía, es algo así como la luz en nuestras habituales tinieblas, pero raramente nos servirá si pretendemos utilizarlo como una unidad rígida e indivisible.

Según las características del departamento en que trabajemos nos interesará aplicar buenas prácticas en lo que se refiere a gestión de incidentes, o a gestión de la configuración, pero quizá no tengamos que hacer tanto hincapié en la gestión financiera, por ejemplo.

Por otro lado, la implantación de ITIL conlleva una tarea primordial de concienciación. Para que nos entendamos, una buena práctica es lavarse las manos antes de comer. Pero esa buena práctica no se puede implantar. Si quieres que tu hijo lo haga tienes que concienciarle, explicarle que es necesario, hacer que se comprometa, y, en última instancia, pegarle un cosqui de vez en cuando para que te haga caso.

Por tanto la implantación de ITIL conlleva la necesidad de formar y "educar" tanto al personal del departamento informático, como a sus usuarios (que suelen ser bastante más duros).

Por último, algo que puede parecer obvio, pero que no lo es para todos, es que la implantación de ITIL es un proceso laaaaargo como la misma vida. No tiene sentido plantarse en una organización, decir hay que hacer esto, y hay que hacerlo así, y quitarse del medio.

El camino hacia las buenas prácticas ITIL es largo y, normalmente, tortuoso. Requiere de un plan bien trazado, de mucha fuerza, y de dosis infinitas de paciencia.
Ánimo a todos los que habéis emprendido este camino.

viernes, 16 de julio de 2010

Cómo borrar una tabla en Writer (OpenOffice)

Open Office es una alternativa muy interesante para los que estamos cansados de andar peleándonos con las licencias de unos pocos días y el maldito clip animado del Office de Microsoft.


Sin embargo, también puede ser un dolor de cabeza para los que venimos de ese misterioso mundo que es el de Microsoft. Por ejemplo, a la hora de hacer algo tan simple como borrar una tabla en el procesador de textos ("el Word", en lenguaje coloquial).

Tengo que confesar mi frustración al haber necesitado varios minutos para realizar esta tarea; en gran parte por culpa de mi estúpido orgullo, que me decía que de ninguna manera iba a tener que buscar en Internet para hacer algo tan simple.

Ni el botón suprimir, ni el de retroceso, ni un espacio o intro, ni ninguna de las opciones del menú contextual. Ni siquiera la función de cortado. Ninguna de ellas conseguía que la maldita tabla desapareciese de mi página.

Hasta que, derrotado, me dio por echar un vistazo al menú Tabla, y ahí encontré un submenú fascinante, borrar, con una opción maravillosa: tabla.

He de reconocer que una vez que lo conoces, está hasta bien, porque puedes eliminar la tabla sin siquiera seleccionarla, pero sigue sin parecerme normal que no exista una posibilidad para eliminar una tabla sin tener que coger el ratón (o pulsar alt + a + b + t).

Así que desde aquí propongo a los desarrolladores de Writer que se copien de Microsoft y den funcionalidades distintas a las teclas suprimir y retroceso. Ya que tenemos dos, aprovechémoslas.

Por cierto, también se puede eliminar la tabla seleccionando todas sus filas o columnas, y accediendo a sus opciones homónimas en el menú contextual, que incluyen una opción borrar.

-1 a la usabilidad de Writer.

Ejecutable Java

Una pregunta que todos nos hacemos alguna vez cuando empezamos a trabajar con Java es: ¿cómo creo un ejecutable para mis programas? Esta pregunta, normalmente, parte de una laguna conceptual, ya que no tiene ninguna lógica. Java es un lenguaje interpretado, cuyos programas corren sobre la máquina virtual, luego no tiene sentido pensar en un ejecutable, que es algo que se lanza directamente sobre la máquina real.

De todas formas, posiblemente, lo que la mayoría de nosotros quiere decir con esa pregunta es: ¿¿en serio tengo que escribir java -jar programa.jar en la línea de comandos cada vez que quiero arrancar mi aplicación?? ¿¿No existe una forma de tener un iconito en el escritorio, y hacer doble clic sobre él??

Pues sí, claro. De hecho existen varias alternativas para tener un "ejecutable" java; pero es importante tener claro que en ningún caso se trata de un ejecutable realmente.

La primera opción es crear un fichero .bat, y dentro meter los comandos para situarnos en la ubicación de nuestro programa y lanzarlo. Un ejemplo lo podemos ver con la herramienta JMeter. En la carpeta bin de su instalación encontraremos un fichero jmeter.bat, que hace esto básicamente, fijando montones de parámetros e historias antes, eso sí.

La segunda opción sería simplemente la de indicarle a nuestro amigo Windows que a la hora de abrir los ficheros con extensión jar tiene que utilizar la máquina virtual de Java. Esto lo podemos hacer seleccionando el menú Abrir con... sobre el jar, y eligiendo el correspondiente java.exe. Si le decimos al sistema operativo que utilice siempre esa opción podremos ejecutar los jar con doble clic sobre ellos.

Por último queda otra opcion que nunca he utilizado personalmente, que son los muchos programas que generan "ejecutables java", como exe4j, IzPack o JSmooth. Por lo que he podido ver, en general lo que hacen es simular de alguna forma lo que haría un ejecutable (algunos incluso ofrecen la posibilidad de incluir la JVM dentro del fichero de la aplicación). 

En cualquier caso hay que tener presente que los programas Java se lanzan siempre sobre la JVM, y por tanto no tiene sentido hablar de ejecutables tal cual.

miércoles, 14 de julio de 2010

Incluir librerías en el jar con NetBeans

Cuando desarrollamos una aplicación de escritorio con NetBeans, de forma automática se genera una carpeta dist dentro del proyecto. En ella se crean el jar de la aplicación, y otra carpeta lib, que contiene las librerías que se utilizan en nuestro programa.

Para trabajar en desarrollo esta situación no presenta inconvenientes. Sin embargo, cuando queremos distribuir el jar de nuestra aplicación, nos encontramos que tenemos que distribuir también la carpeta con las librerías, cuando lo más cómodo sería trabajar con un único fichero.

La forma en que NetBeans crea la distribución de nuestro proyecto viene especificada en el fichero build.xml, que podemos encontrar en el directorio raíz del mismo. Éste, si no lo hemos tocado, no tiene más que un montón de comentarios, y una descripción que no aporta demasiado.


Si queréis editar el fichero directamente desde el IDE, podéis hacerlo accediendo a la pestaña Files, en la que se puede ver la carpeta del proyecto completa.

Para crear un único jar con todas las librerías del proyecto, añadiremos un elemento target al fichero, denominado package-for-store. En él indicaremos el nombre del jar que vamos a generar, el directorio dentro de nuestro proyecto en el que queremos que se cree, y el contenido del fichero: el jar generado por netbeans, y todos los jar de la carpeta lib.

El resultado sería algo así.



La forma de trabajo seguirá siendo la misma, pero cuando tengamos completo el desarrollo, y necesitemos crear nuestro jar con todo el contenido para poder llevárnoslo a donde queramos, no tenemos más que ir a la pestaña Files, hacer clic derecho sobre el build.xml, y seleccionar Run Target - Other Targets - package-for-store (el nombre del target que hemos añadido al build).

En el directorio que hayamos indicado tendremos el jar con todo el contenido.

sábado, 3 de julio de 2010

No puedo borrar el texto seleccionado en Word

Más de una vez me ha pasado que al seleccionar texto en el Word, y tratar de sobrescribirlo o borrarlo, no he podido. Y siempre he pensado que era porque el procesador de textos "namber guan" se había levantado cachondo, y ya está.

Pero no, hay una razón detrás de esto. Existe una opción en el menú Herramientas - Opciones (hablo de la versión 2003, que fue la última versión seria que salió), en la pestaña Edición, que dice: "Reemplazar la selección al escribir".



Pues es simple; tal como dice, cuando esa opción no está marcada, el texto seleccionado no se reemplaza al escribir, ni se elimina utilizando la tecla de borrado (sí con la de suprimir).

Lo que no he conseguido averiguar es por qué de vez en cuando le da por ahí, cuando puedo asegurar y aseguro que nunca he desmarcado esa opción, al menos voluntariamente. Supongo que habrá alguna combinación de teclas maligna que habré pulsado sin querer.