Novedades en el tutorial

Después de una larga vacación, estoy retomando el tutorial (ni tan larga, hace unos meses hice una corrección al Ejemplo1).

Inicialmente he traducido el ejemplo3 al inglés, y pues veremos de hacerlo pronto con el ejemplo4, para luego poner algún ejemplo mas. Ah si, también he subido todo el código al repositorio en sourceforge (a pesar que los .zip de cada ejemplo, vienen con código fuente incluido):

Saludos.

P.D. Acabo de añadir a las descargas un solo comprimido con todos los ejemplos: Ejemplos del tutorial

Saludando a una vieja amiga

Pues hace unos años cuando adquirí una nueva PC (una Pentium IV), pude pasar al almacén mi valiente Pentium. Y unos años después llegaron a mi restos de un par de PCs MMX, pude revivir una usando algunas partes de mi Pentium, y de una manera muy mal agradecida, la dejé en el olvido.

Pero pasaron los años y la MMX que la usaban mis padres, murió (no se si la tarjeta madre o el procesador), y pues entre prueba y prueba, vi que mi valiente Pentium, seguía viva, razón por la que decidí rectificar mi error, pero esta vez con piezas de la MMX.

Y aquí están las fotos de mi trabajo, hasta parece arte jeje, tuve que limpiar mucho, pero el resultado fue bueno.

Aquí la estaba limpiando

Limpiando mi pc

Ya con algunas piezas

Ya con algunas piezas, aunque sin los buses aún

Aqui ya levantando D.O.S. o como quise pensar… 133 Megahertz de puro poder jeje.

133 megahertz de puro poder

Y así quedó, aunque me falta instalarle el mítico windows 95.

Así quedó, que linda.

Y para comentar, es una:
Pentium de 133 Mhz (con turbo)
Tarjeta Madre M535
48Mb de RAM
4Gb de Disco Duro Western Digital
Tarjeta de video Trident con 4Mb de memoria
Tarjeta de video Yamaha (PCI)
Lector de CD LG
Y le agregué una tarjeta de red D-Link y para los que dicen “Ni USB tiene”, pues le añadí una tarjeta adaptadora de USB. Falta ver si funcionan.

Ahora solo me falta ponerle nombre, e instalar el Sistema Operativo y los jueguitos que tenía (ya quiero jugar Earthworm Jim) jeje.

Un poco de hacking, seleccionar contactos en facebook

Creo que todos los que hemos creado un evento en facebook o administramos un grupo, alguna vez necesitamos seleccionar a todos los contactos, pero nos da flojera hacer click en todos los contactos, para esto algunas personas desarrollaron un script javascript que funcionó por un tiempo.

Este script, buscaba un id ‘friends’, pero como los cuates de Facebook no son tontos, hicieron que el id del elemento a buscar se genere aleatoriamente, ahora en vez de usar el id estático: ‘friends’, se genera una cadena extraña.

Para pillar la cadena, debemos usar un addon de firefox llamado ‘firebug’ o en el navegador Safari, una vez habilitadas las herramientas de desarrollo, solo hay que iniciar el Inspector Web, creo que en IE también hay una extensión similar

Tanto en Firefox, como en Safari, se debe hacer click en el ícono de la lupa para inspeccionar elementos, y buscar el panel principal de la lista de contactos a añadir, para luego encontrar su id en el código fuente.

Captura de pantalla fb

Una vez que tenemos el id, pues solo necesitamos ejecutar el script que ya todos conocen (reemplazando el id donde se debe), aunque le hice unas pequeñas modificaciones.


javascript:elms=document.getElementById('AQUI_VA_EL_ID').getElementsByTag
Name('input');for(var fid in elms){if(typeof elms[fid] === 'object')
{elms[fid].click()}}

Para los que sabemos un poquitín de javascript, vemos que la cosa es fácil, el script busca el ‘div’ que contiene la lista de contactos (usando el id del ‘div’), dentro busca los elementos de tipo ‘input’ (que serían los checkbox), y les hace click.

No es tan simple para los que no son devs, pero yo creo que ayuda.

Problemas con Mac OS X 10.6.7 (Mail y Dashboard)

El problema
Hace un tiempo apliqué la actualización 10.6.7 del OSx, pero esto me causó algunos problemas:
1. No podía quitar el Mail (command+Q), se cerraba la ventana, pero la aplicación seguía corriendo (el menú no se cerraba), y la única forma de cerrar el Mail, era matando el proceso.

2. El Dashboard se congelaba, por ejemplo, tengo el Dictionary como widget del Dashboard, y ni bien escribía una o dos letras, o cambiaba el diccionario, se congelaba el dashboard, y lo mismo pasaba con los demás widgets. Y al igual que el Mail, solo podía reiniciar el dashboard, matando el proceso.

¿Qué hize?

  • Lo primero que hice, fue limpiar la PRAM (Reiniciar presionando option+command+P+R), no funcionó
  • la segunda posibilidad, era problemas en el disco, revisé el disco con la utilidad de discos, y me pidió reparar el disco arrancando desde el DVD del Leopard. Reinicie mi macbook presionando la tecla C (para que inicie desde el disco), y reparé el disco y los permisos. Pero el problema no se fue.
  • En este punto, empecé a navegar en el Internet para buscar posibles soluciones. Encontré que el problema del Mail, tiene que ver con las cuentas IMAP (por ejemplo mi cuenta en google mail), recomiendan en un foro eliminar las cuentas IMAP del Mail, reiniciar la macbook y volver a añadir la cuenta. Ya eliminé mi cuenta de google mail del Mail, y vi que el problema se arregló porque ya puedo quitar el Mail normalmente, después de publicar esta entrada, reiniciaré mi macbook y añadiré nuevamente la susodicha cuenta.

    Para el otro problema del dashboard, no encontré algún foro que me de información útil. Primero pensé que podría ser algún widget problemático, los fui quitando uno a uno y el problema seguía. Luego busqué si había instalado algún widget de terceros para borrarlo y ver si este era el problema, pero nada, no tenía nada “extra” instalado.

    Entonces recordé que puedo ver los logs del sistema en la Consola (Applications/Utilities/Console), y noté ahí que occurrían ciertos eventos de advertencia de este tipo:
    DashboardClient Warning [110ee0] |Mingler|Error| failed to connect to the server: NSInvalidReceivePortException connection went invalid while waiting for a reply

    Ya con este log, hice la búsqueda en google y llegué a:
    Apple Support Communities

    Donde en resumen dice que de hay que borrar:
    [UserHome]/Library/Application Support/SyncServices/Local
    Y listo, desaparecen las advertencias de la consola, y ya no se congela el dashboard.

Y eso es todo, espero les sea útil, y no se tarden tanto como yo en resolver el problema.

Compilando con Ant en Leopard.

En el proyecto en el que trabajo, usamos Ant desde IntelliJ IDEA para compilar y desplegar el mismo.

Necesito ejecutar unos tests con TestNG desde Ant, pero no desde IDEA, sino desde consola, y al querer ejecutar los tests salió una excepción:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file

Esta es debido a que se está usando un JDK para ejecutar la aplicación que es una versión anterior al JDK con que se compiló la misma.

Verificando en algunos foros, me doy cuenta que Ant usa el JDK que esta referenciado por la variable de entorno JAVA_HOME, y como en OsX, se puede definir el JDK a usar por defecto de otra manera, entonces yo no tenía definida la variable JAVA_HOME.

Para definir que quiero usar el JDK 1.6, tengo que editar el archivo .profile del folder Home de mi cuenta de usuario, claro que primero tengo que habilitar la característica para ver todos los archivos en Finder (o usar mUCommander si prefieren).

Para habilitar el ver todos los archivos en el Finder:
1. En la consola, ejecutar: defaults write com.apple.Finder AppleShowAllFiles YES
2. Reiniciar el Finder (alt + click derecho en el ícono del Finder y “Forzar reinicio”).

Para volver a la normalidad, los mismos pasos, pero se cambia el “YES” por “NO”

Ahora hay que editar el archivo “.profile” que se encuentra en la carpeta “home” de la cuenta de usuario (dicha carpeta tiene el mismo nombre del a cuenta de usuario) y añadir esta línea:

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home

Además y puse en este archivo la ruta a ANT:

export ANT_HOME=/Volumes/Work/externalProjects/apache-ant-1.7.1
export PATH=$ANT_HOME/bin:$PATH

Para verificar que se usa el JDK correcto, traté de compilar el proyecto, pero me salió una excepción de memoria insuficiente:

java.lang.OutOfMemoryError: Java heap space

Entonces, tenemos que aumentar el tamaño de la memoria que puede usar Ant para compilar el proyecto, ésto se puede hacer de varias formas, pero elegí el usar la variable de entorno ANT_OPS, es decir añadí esto al archivo “.profile”:

export ANT_OPTS=-Xmx256m

Y listo, con eso ya solucioné mis pequeños inconvenientes al compilar con Ant en Leopard.

Hotmail soporta POP3!

Pues no podía creerlo, me acaba de llegar el mail que Hotmail o Windows Live Mail ahora soporta POP3, ya no se necesitan plug-ins en los clientes para poder revisar las cuentas.

Pos al fin los amigos de Microsoft nos dan una mano, parece que el mundo esta cambiando jeje.

Aquí pongo la dirección a la página de Microsoft donde hay documentación para la configuración de POP3:
POP3 en Hotmail

Deben hacer click en: Agregar una cuenta POP3….

Actualización: No se si a alguien más le pasó, pero yo tenía problemas al enviar mis mails por el SMTP de live mail usando Mac Mail, lo solucioné modificando ciertos parámetros de configuración del servidor.

En Mac Mail:

* Abrimos: Mail/Preferencias/Cuentas/(cuenta live mail)
* En la lista de servidores salientes SMTP, seleccionamos: “Editar lista de servidores”
* Seleccionamos la configuración del servidor a modificar, y “Avanzado”
* En “Autenticación” seleccionamos “Contraseña, y completamos los datos requeridos (en cuenta ponemos nuestra cuenta completa ejemplo: hola@hotmail.com).

Cerramos la vista de configuración (guardamos los cambios) y listo, ahora puedo mandar mails por este servidor.

Tutorial de JasperReports

Hola a todos, les cuento que al fin inicié el tutorial de JasperReports que tenía en mente hace un tiempo. 

El tutorial tiene la particularidad que se dedicará a ver el API de JasperReports, para así poder crear reportes usando el mismo.

Espero sea de ayuda, por ahora puse el primer ejemplo para irlo analizando, es algo básico y en él se explica cómo ejecutar un reporte.
Ir al tutorial

Mensajería instantánea en OSx, ¿y si quiero una videollamada?

A lo mejor muchos, al igual que yo, nos encanta usar el iChat para estar en contacto con nuestros compañeros de MSN o GoogleTalk, a pesar que tengamos que sacrificar muchas funcionalidades que no podemos usar debido a Jabber Transport (o al iChat mismo), por ejemplo la transferencia de archivos, las llamadas, imágenes de contacto diferentes para cada cuenta, pero a lo mejor lo mas triste, las video conferencias.

En ese afán, traté de buscar algún otro programa que permita eso, mientras espero que Trillian Astra salga a la luz (no entiendo que pasa con los muchachos de Cerulean Studios, ya van años del anuncio de Trillian Astra, y hasta ahora nada).  

Uno que probé es “Mercury” (http://mercury.im/), y la verdad no me gusta mucho, es una interfaz gráfica muy tosca aún, no es estable porque se cae sin explicación, pero por lo menos permite unos segundos de video por MSN.

Fuera de Mercury, tenemos Pidgin (http://pidgin.im/about/)  y Adium (http://www.adiumx.com/), el primero lo probé en Windows hace mucho tiempo, y es un software bueno, pero no permite el uso de la cámara aún, Adium no lo probé, pero está basado en la misma librería que Pidgin, así que no creo que traiga muchas sorpresas.

Me queda por probar aMSN, alguna vez ya lo probé, pero ahora dicen ser capaces de usar la webcam, la verdad no me gusta la interfaz gráfica de este programa, pero merece probarlo.

Finalmente, para llamadas y video llamadas, el que a mi mas me gusta y el que mejor funciona, sin duda Skype (http://www.skype.com), por suerte es gratuito, a lo mejor no se lo puede comparar con los otros IMs porque solo soporta su propio protocolo, pero me gusta mucho su estabilidad y calidad, y la interfaz gráfica no esta nada mal.

Software interesante I

Este año, al fin adquirí mi Mac, una macbook blanca. 

Entre todo el SW para OSX que tuve que probar como proceso de la migración (antes usaba Windows), puedo mencionar (ojo, solo mencionar) varios con los que me quedé, o me gustaría quedarme:

* Leopard: Un gran sistema operativo, me encanta, no es perfecto aún, pero me fascina como funcionan las cosas aquí. Claro que si no estuviera en una Mac, pues perdería seguramente algo de mérito. He notado que a los niños les encanta ver la manzana en parte trasera de la pantalla de la laptop, siempre andan preguntándome el precio de mi laptop.

* VLC: Yo creo que es uno de los mejores reproductores de multimedia para OSX, antes usaba Quicktime con Caviar para ciertos formatos, pero VLC se las sabe todas (y es freeware).

* Transmission: Me encanta este cliente de bitTorrent, tiene todo el L&F aqua, sin duda un digno sw para OSX (y es freeware).

* iGetter: Busqué mucho tiempo programas administradores de descargas, Speed Download, es un producto bien trabajado, pero no tiene una versión gratuita. iGetter, es un administrador de descarga muy bueno, tiene muchas funcionalidades, y es freeware (bueno, tienes que esperar unos segundos para poder trabajar), además que no rompe con el L&F aqua que tanto nos gusta.

* iSQL Viewer: Este front-end JDBC para bases de datos, está aún en las etapas iniciales. Tiene algunos problemas, y le falta muchas funcionalidades, pero sin duda es muy liviano, es decir que no consume excesivos recursos, mientras permite las funcionalidades básicas de un buen front end para Bases de datos. DBVisualiser, que es un producto mas completo (front end JDBC para BD), es realmente pesado, algo que me sorprende para un front-end (lo usé también en Windows, y es pesado). iSQL Viewer tiene un gran futuro, siempre que no empiece a engordar.

* Omni Tools: los productos de “The Omni Group” son los mas bonitos que encontré para las tareas que requería. Usé el Omni Plan (equivalente a Ms Project) y Omni Graffle (Equivalente a Visio). Me sorprende sus capacidades de exportación (compatibles con sus contrapartes de Ms), pero ante todo su L&F y lo hermoso de sus diagramas. A Omni Graffle le falta más diagramas (yo trabajo bastante con UML, y algunos no los tengo en Omni Graffle), y en OmniPlan no pude encontrar la forma de configurar el calendario, pero lo más desventajoso supongo (para mi bolsillo), es que son productos de pago, y no son justamente los mas económicos. Pero si pudiera, me quedaría con estos dos productos.

Cambiando el JDK para ejecutar IntelliJ IDEA

Otra vez un post para IDEA, uno de estos días, reporte un bug y al fijarme el build de mi instalación de IDEA (Menú “About IntelliJ IDEA”), veo que está ejecutandose con el JDK 1.5 y no con el 1.6 que tengo instalado (pero si estaba usando el JDK1.6 para compilar mis proyectos).

Como las configuraciónes están en el archivo info.plist dentro del paquete de IDEA, tuve que cambiar algunas cosas:

      <key>JVMVersion</key>

      <string>1.6*</string>

      <key>JVMArchs</key>

      <string>x86_64</string>

Creo que no se necesita explicación, es bastante obvio, ahora si estoy ejecutando IDEA con el ultimo JDK además en 64 bits (antes estaba como x86_32).