Cambiando el JDK para ejecutar IntelliJ IDEA

8 10 2008

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).





Configuración de DB2 en NHibernate

16 09 2008

En respuesta al comentario de Erick en un post anterior (y disculpas por la demora), yo utilicé NHibernate con DB2 9 Express en Windows 2003 Server. Para tener un mecanismo de transacciones utilicé el patrón OpenSessionInView que explican en la misma documentación de Hibernate (para .Net podemos encontrar una explicación aqui: http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx).

Además tuve que instalar el DB2 Client porque éste trae el .Net Provider para DB2, y según la documentación de NHibernate, la conexión a DB2 la hice mediante ODBC, la configuración que utilicé es la siguiente:

<add key="hibernate.connection.driver_class" value="NHibernate.Driver.OdbcDriver"/>
<add key="hibernate.connection.connection_string"value="driver={IBM DB2 ODBC DRIVER};Database=burro;hostname=xxx.xxx.xxx.xxx;port=50000;protocol=TCPIP; uid=dbuser; pwd=dbpassword"/>
<add key="show_sql" value="true"/>
<add key="hibernate.dialect" value="NHibernate.Dialect.DB2Dialect"/>
<add key="hibernate.connection.isolation" value="ReadCommitted"/>

Espero sea de ayuda.





Problem with charts in JasperReports solved :)

4 09 2008

Today (yesterday indeed) I am happy, I finally found the problem with the charts api in my code.

Some time ago (some years) I was working with JasperReports version 1.1.0. we (the team in my work) has implemented a web front end for reports, the user can configure his reports with the front end, i.e. select columns included in the report, grouping columns, totalizators, configure a chart and so on (obviously without knowledge of databases or sql, all in a web application).

As lead of the report engine, I used the JasperReports API, a really interesting technology, but not perfect yet.

The problem arise when we upgrade to the version 2.0.5 of JR, when the user want to generate a Chart in the first page (title band) of the report, the chart was correctly generated but only a few data of the report was generated (e.g. one page of three). Otherwise when the user want to generate the chart in the last page (summary band) then all the data of the report was correctly generated, but the chart was wrong rendered (only the title).

See the last below:

 

Chart problem

Chart problem

I posted in the JR forums without results. I has tried some changes in the code (evaluation times, reset types, etc), without results. I have updated to the version 3 of JR, but the problem continues and I can´t found something related in the release notes.

Finally today I start to review the problem again from the basics, I start to create a chart with a JRXML, then I found finally the problem.

I implemented a chart using a subDataSet and a dataSetRun, when the dataSetRun has the dataSourceExpression set to the report data source the problem arise.

Sample:
<pieChart>
   <chart isShowLegend="true" evaluationTime="Report">
      <reportElement x="50" y="0" width="200" height="200"/>
      <box>
         <pen lineWidth="1"/>
      </box>
      <chartTitle position="Top">
      <titleExpression>"My Pie chart"</titleExpression></chartTitle>
   </chart>
   <pieDataset>
      <dataset incrementType="None" >
         <datasetRun subDataset="chartSubDataSet">
            <dataSourceExpression>$P{REPORT_DATA_SOURCE}</dataSourceExpression>
         </datasetRun>
      </dataset>
      <keyExpression>$F{officeNumber}</keyExpression>
      <valueExpression>$V{chartOfficeGroup_COUNT}</valueExpression>
   </pieDataset>
   <piePlot><plot/></piePlot>
</pieChart>

Removing the dataSourceExpression from the chart definition solved the problem. In the code with the problem, I was passing all the parameters from the report parameters list (jasperDesign.getParametersList) including the REPORT_DATA_SOURCE, avoiding it, the problem was solved.

See below the correct chart:

 

Chart problem solved

Chart problem solved

I don´t expect to have a complete documentation for OSS libraries, but in this case should be a good time saver to get this chage log in some text file,  I think this problem can be a side effect, but the JR guys know it (I suspect ;) .





El chiste de la semana

8 08 2008

Desde el blog de linuxhaters, es un comentario a un post, que me causa mucha gracia (http://linuxhaters.blogspot.com/2008/08/yay.html#disqus_thread). Aqui va:

“linux for humans”
Hey, guess what! the other linux distros are for animals!





Disposición de teclado en Macbook para WindowsXP (Parallels VM)

30 07 2008

Dado que hago desarrollo Web, a veces necesito hacer tests usando IE, como en Leopard no hay forma de instalar el IE (a no ser alguna versión antigua si es que la encuentro), necesito Windows.

Como casi ya no utilizo Windows, a no ser para este tipo de tareas, decidí crear una máquina virtual usando el software de parallels.

Aqui surgió un problemita, la disposición del teclado en español en WindowsXP, algunas teclas no estaban en el lugar que deberían (por ejemplo la tecla /).

Después de probar con algunas configuraciones, encontré que el teclado funciona bien (eso espero) en idioma español con la disposición “Latinoamérica” (por defecto esta con la disposición de “Variación del español”).





The macbook keyboard in WindowsXP (parallels VM)

30 07 2008

As a web developer, test the development in the most used Internet browsers is a requirement, and in order to test in IE, Windows is needed.

I only will use Windows to few tasks (I almost don´t use it since I get my macbook with Leopard), then I have intalled the Parallels software, and created a Windows XP VM.

I have a little problem with the keyboard layout, my macbook has the western spanish keyboard, but in the parallels VM there is not correctly recognized (some keys has a different action), the first problem was writing a url, the / character is in a different key. 

I have tried with several layuots, but finally I have found the correct (I suspect so), the correct layuot in WindowsXP is Español/Latinoamérica.





Traducción en el Diccionario de Leopard

14 06 2008

Se puede añadir diccionarios para tener traducciones de palabras en el Diccionario de MacOSX.

Este método consiste en convertir los diccionarios de StarDict al formato de Diccionario de MacOSX, esto usando la herramienta DictUnifier, les dejo la guía aqui:

http://davidtse916.wordpress.com/2008/01/24/adding-dictionaries-to-the-built-in-dictionary-application-in-leopard/

Pero aquí tuve unos problemas extraños, bajé los diccionarios de I2E (inglés-español y viceversa) que vienen en formato .tar.gz2.tar, obviamente el DictUnifier no los reconocía, entonces los descomprimí, los volví a comprimir usando 

tar jcvf diccionario.tar.bz2 (carpeta_diccionario) 

Tratando con este archivo tampoco lo reconocía, tuve que descomprimirlo otra vez y volverlo a comprimir con el mismo comando tar, y recién funcionó. Me pregunto si será algo relacionado al encoding.





Sony Ericsson K510i con iSync

14 06 2008

Actualizado (Febrero 2009) Por algún motivo, el plug-in que menciono aqui, ya no funciona (por lo menos a mi no me funciona con el Osx 10.5.6), así que añado un enlace al plugin de pacamac que si funciona.

http://panamac.wordpress.com/2007/11/15/sincronizar-el-sony-ericsson-k510a-con-isync-en-leopard/

Puse ese plug-in en:  ”iSync/Contents/PlugIns/ApplePhoneConduit.syncdevice/Contents/PlugIns”

Fin de la actualización

Acabo de reinstalar mi Leopard, esto porque lo ensucié un poco con ports (MacPorts) y esas cosas para unos experimentos que hacía.

Así que ahora que estoy configurando de nuevo mis cosas, pes pondré rápido los enlaces a la información para configurar el iSync para que reconozca el Sony Ericsson K510i para sincronización.

La guía que funciona esta aqui: 

http://calilandia.wordpress.com/2007/05/21/isync-tu-sonyericsson-k510i-con-tu-mac/

Y el plug-in lo pueden bajar de aqui:

http://macncell.com/index_html/archive/2006/06/21/sony-ericsson-k510-isync-plugin

Con esa configuración puedo configurar mi teléfono celular mediante bluetooth con la agenda y el iCal.





Cambiando las opciones de VM para IntelliJ Idea

11 06 2008

Para mis tareas de desarrollo web con J2EE utilizo el IntelliJ Idea. Para mi buena suerte existe la versión de este excelente IDE para Leopard, pero un problemilla que tengo es la administración de memoria que hace.

Puesto que el proyecto en el que trabajo es realmente grande, y tiene variados tipos de contenidos (páginas jsp, clases java, plantillas de reportes de JasperReports, funciones Javascript, archivos de configuración de struts y spring,  todo lo relacionado con EJBs, etc. etc.), con la configuración por defecto de Idea obtenía errores como el OutOfMemoryException.

Para cambiar las opciones de VM de Idea tuve que seguir varios pasos:

1. Abrir la carpeta donde esta instalado el IntelliJ Idea (en mi caso, en aplicaciones)

2. Ver el contenido del paquete (click derecho y “Mostrar contenido del paquete”)

3. Editar Contents/Info.plist (aquí encontramos las opciones de VM)

Para tener una idea de como se debe configurar, podemos ver este artículo en los blogs de IntelliJ: http://blogs.jetbrains.com/idea/2006/04/configuring-intellij-idea-vm-options/

La mía quedó así (por ahora):

<key>VMOptions</key>
<string>-Xms64m -Xmx290m -XX:MaxPermSize=184m -Xbootclasspath/p:../lib/boot.jar -ea</string>




Información segura en Leopard

4 06 2008

Como ahora uso mi MacBook tanto en mi trabajo (para desarrollo de software) como en mi casa, estuve pensando como proteger la información de la empresa contenida en mi laptop, en el caso de un extravío, nadie debería poder acceder a esa información.

Navegando, encontré algunas herramientas que encriptan carpetas, pero no me convence la idea, en todo caso usaría FileVault, pero vi muchas desventajas en eso, también estuve pensando que a lo mejor podría crear una tarea en Automator que al final del día comprima (y encripte) la carpeta donde esta la información y al principio del día haga lo contrario… pero era lo menos elegante que podía hacer.

Hasta que encontré en la documentación de Leopard el tema de las imágenes de disco, y me di cuenta que por ahí iba la solución, crear una imagen de disco encriptada con la información (documentos, código, etc.) que uso en mi trabajo, la podría montar antes de trabajar, y des-montarla al terminar.

También me preocupaba un poco el costo de procesamiento, puesto que cuando montamos la imagen, es como si fuera otra unidad, y los contenidos se actualizan sobre la marcha, es decir que si copié o eliminé o modifique contenidos de la imagen, al des-montar la misma, todo ya esta actualizado y encriptado, pero un amigo mackero me dijo que ni se notaba.

Aquí muestro cómo lo hice.

1. Abrir Aplicaciones/Utilidades/Utilidad de Discos

2. En el menú vamos a: Archivo/Nueva/Imagen de disco a partir de carpeta

Menu de nueva imagen

3. Luego seleccionamos la carpeta de la que queremos hacer la imagen

4. Luego hay que completar algunos parámetros exigidos, como el nombre de la carpeta, ubicación, el formato de la imagen (yo elegí lectura/escritura), y el algoritmo de encriptación.

5. Finalmente nos pide ingresemos la contraseña, y hay que esperar que termine de crearse la imagen, se crea un archivo .dmg que cuando le hacemos doble click, se monta como una unidad cualquiera, podemos trabajar sobre ella como si fuera cualquier unidad, claro que cuando la des-montemos tendremos una imagen encriptada.