30 April, 2009

Mas cosas sobre gwt y derivados

A ver por donde empiezo, que son muchas las novedades/experiencias acumuladas los últimos días sobre gwt, buenas y no tan buenas:

SmartClient

1- El rendimiento de smartclient, sobre todo en ie y equipos poco potentes, deja bastante que desear. Especialmente utilizando grids con muchas columnas. Varios fueron los intentos por solucionarlo: precargar imágenes antes de mostrar componente, activar caché, hacer rollover sobre color de fondo y no sobre imagen, setShowAllRecords(false), personalizar estilo filas setBaseStyle(”estilo_filas_grid”). En fin, que no soy el único quejica, aqui un hilo significativo en los foros, el problema parece que está en la raíz.

2- Soporte: 2 caras 1 cruz

Dos problemas de maquetación, y dos envíos a los foros de smartclient.

Cara, una duda sobre la existencia de un flowlayout perfectamente resuelta por uno de los usuarios.

Cruz, un problema al intentar posicionar un DisclosurePanel de gwt dentro de un window de smartclient con posición absoluta, ni una sola respuesta. Finalmente lo solucioné con un SectionStack de smartclient, pero nada de posiciones absolutas.

Otra cara, contacto directo vía mail con gente de smartclient, siempre responden :-) .

3- Integración gwt-smartclient: Al hilo de estos problemas, comentar que la integración de componentes gwt con smartclient no es buena. Así que si elegimos smartclient tendremos que usar muchos componentes smartclient para evitar problemas de maqueta.

De cualquier forma no puede haber queja del soporte.

Gracias a smartclient por ofrecer una librería gratuita sobre gwt como esta. Pero queremos mas y sobre todo mejor, estaremos atentos.

gwt-exporter

Desde javahispano me entero de la existencia de gwt-exporter. Aun existiendo librerías javascript libres (jquery&otras) tan buenas, prácticas, con gran comunidad, etc, es muy interesante la posibilidad de desarrollar una propia librería bajo gwt para que después terceras personas/equipos la usen desde javascript al estilo jquery&otras.

Google Plugin for Eclipse

Desde que hace tiempo probé sin éxito cypal, no habia buscado alternativas y me valía la simple estructura generada por los scripts de gwt. Ahora google publica Google Plugin for Eclipse, tanto para gwt como para App Engine, un nuevo pasito.

Gwt 1.6

Nueva versión de gwt. Aqui lo nuevo, a modo de resumen:

Nueva estructura de proyecto: Bien! se eliminan los (.launch, .compile, .shell) y se añade fichero de tareas ant.

Se sustituyen Listeners por Handlers.

Nuevos widgets, DatePicker, DateBox y LazyPanel, no llegan no ¡queremos mas!.

Creación y activación de eventos nativos.

Mejoras en el Modo Hosted.

Slider

Que gwt todavía no tenga un slider pasa (está en la incubadora). Pero que ext gwt no tenga slider en su versión stable ya es demasiado, si, lo incluyen en su próxima versión 2.0.

Google!, que sepas que echamos de menos nuevos y mejores widgets, ya se que no me escucha pero hay que intentarlo.

Ext GWT nativo

Me gusta que la implementación de extgwt sea de forma nativa sobre gwt y no se utilicen librerías externas. En general (aun con los problemas que comenté en el post anterior) la integración con gwt está mas conseguida y el rendimiento es mucho mejor que en smartclient, aunque me pese es así.

Sobre el semestre en la uoc, lo mas destacable: TALF2 me mata.

Sobre El quinto día, mantengo lo dicho quitando el último capítulo (que pesado).

Me he enganchado desde el principio a El Ocho, imprescindible para los jugones del ajedrez ;-)

30 January, 2009

Volviendo a j2ee, comenzando con Maven (eclipse, tomcat)

Este pequeño descanso en la uoc esta viniendo muy bien, tanto para descansar como para probar cosillas que tenía en el baúl de los recuerdos, ya sabéis, para eso de "sentirse vivo" tecnológicamente hablando.

Después de 2 días iniciándome en RoR, en realidad de rails apenas he visto nada todavía, simplemente he preparado el entorno, familiarizado con ruby, me peleé un poco con las gemas y mysql, y ejecuté algunos de sus comandos para crear una aplicación rails, modelo, controlador.
Logo maven
Pues eso, que después de estos 2 días y por razones que no vienen a cuento he estado probando maven (desde el curso de j2ee tenía pendiente echarle un vistazo). La experiencia esta siendo muy satisfactoria, lejos de la complejidad de la que muchos compañeros me habían hablado.

Maven al igual que ant es una utilidad para... automatizar muchas de las tareas en el desarrollo de un proyecto (compilar, desplegar, descargar librerías, pasar tests de unidad, empaquetar, etc etc). Si conoceis ant estaréis pensando que no es nada nuevo, en realidad se podría decir que es una evolución de ant, incluso podemos integrar las dos utilidades para ejecutar tareas ant desde maven.

Comentar que un proyecto maven tiene una estructura global mas o menos fija (que se puede variar, pero ni lo he probado ni lo necesito). Cuando creamos un proyecto mediante la linea de comandos mvn archetype:create -DgroupId=net.jsanroman -DartifactId=aprendiendoMaven, o añadiendo el parámetro -DarchetypeArtifactId=maven-archetype-webapp para un proyecto web, se crea una estructura como la que podeis encontrar en la documentación.

Maven, además de la maravillosa funcionalidad de descarga automática de jars, bien de un repositorio externo, o de nuestra propia red local (típica situación de un equipo de desarrollo de muchas personas sobre un mismo proyecto), tiene preparadas para nosotros multitud de tareas y plugins, por ejemplo el despliegue de nuestro proyecto en un tomcat mediante el tomcat-maven-plugin, simplemente ejecutando mvn tomcat:deploy, aunque antes tendremos que configurar ciertos parametros en el fichero de configuración de maven pom.xml:
dentro de proyect>build:

  1. <plugin>
  2.    <groupId>org.codehaus.mojo</groupId>
  3.    <artifactId>tomcat-maven-plugin</artifactId>
  4.    <configuration>
  5.       <warFile>${project.build.directory}/${project.build.finalName}.war</warFile>
  6.       <update>true</update>
  7.       <path>/facturablock_plain</path>
  8.       <username>admin</username>
  9.       <password>admin</password>
  10.    </configuration>
  11. </plugin>

Configuramos por ejemplo en path de la aplicación a desplegar, el usuario y clave de nuestro manager de tomcat, y la localización de nuestro fichero war a desplegar, aquí mas documentación.

Para que maven sepa que jars debe descargar para nuestro proyecto también lo indicaremos en este mismo fichero pom.xml:

  1. <dependency>
  2.    <groupId>javax.servlet</groupId>
  3.    <artifactId>servlet-api</artifactId>
  4.    <version>2.4</version>
  5.    <scope>compile</scope>
  6. </dependency>

Le indicamos que se descargue la api de servlets. Tenemos un listado completo de librerias en http://mirrors.ibiblio.org/pub/mirrors/maven2/.

Maven se integra con diferentes ide's: netbeans, idea, eclipse. Yo solo he probado con eclipse, para el que hay varios plugins, aunque sin duda para mi el mejor es m2eclipse. No cometáis la misma torpeza que yo, que con las ansias de avanzar ni me fijé en el tipo de errores que daba su instalación, y simplemente que depende de otros plugins para poder ser instalado, aquí tenéis la lista http://docs.codehaus.org/display/M2ECLIPSE/Installation+Requirements.

Aunque todavía me quedan muchas cosas que ver de maven, métricas o integración continua, ya tengo lo básico en funcionamiento, y aquí dejo los 4 comandos básicos, en realidad son "mi recordatorio" que soy muy despistado :$:

  • Creamos nuevo proyecto: mvn archetype:create -DgroupId=net.jsanroman -DartifactId=aprendiendoMaven -DarchetypeArtifactId=maven-archetype-webapp
  • Compilamos proyecto: mvn compile
  • Empaquetamos proyecto: mvn package
  • Copiar jar de proyecto a repositorio local de maven: mvn install
  • Desplegar proyecto web en tomcat: mvn tomcat:deploy
  • Generar sitio web (si si como el de maven): mvn site:site

13 January, 2009

Desactivando spotlight, bienvenido quicksilver, ¿quicksilver para gnome=gnomedo?


Llevo un tiempo con problemas de rendimiento en mi nuevo macbook ocasionados por un proceso llamado "mdworker", el proceso que indexa el contenido de tu disco para spotlight. Este proceso llega a picos de cpu del 90% y no tiene fin, una vez termina de indexar vuelve una y otra vez.

Así que no me ha quedado otra que desactivar spotlight, ahora si es una máquina :-), lo que he hecho ha sido esto:

  1. sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

para volver a activarlo simplemente debeis cambiar unload por load:

  1. sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

Luego para quitar la lupa de la barra superior simplemente debemos renombrar o eliminar el fichero de aplicación: /System/Library/CoreServices/Spotlight.app reiniciamos y listo.

Ahora utilizo quicksilver, funciona muy bien y parece que es una de las mejores aplicaciones para "osx". Por lo menos no está dando problemas.

Y para terminar me acabo de encontrar gnomedo, parece el quicksilver para ubuntu, ya lo estoy instalando y si merece la pena dejaré mis impresiones.

9 October, 2008

GuiMags: Jugando a prototipar formularios

En GuiMags han tenido una idea mejor para diseñar prototipos de formularios que el lapiz/papel o el programa de turno.

Han creado pequeñas cartulinas magnéticas con diferentes formas de controles de formulario (botones, pestañas, combos, radio buttons, cajas de texto, checkbox, controles numéricos, slider), que podamos tocar, mover, colocar sobre una pizarra, pintorrear por encima, borrar y volver a pintorrear. Desde luego una forma pero que muy ágil, habrá que probar cuanto de reales son los resultados.

Yo ya estoy pidiendo una cajita para mi próxima pizarra, eso si la Students (29.95$), que estamos en crisis.

27 July, 2008

Contabilidad casera con HomeBank

HomeBank

Pues si, para eso que mi abuela hacía solo con su cabeza, administrar sus dineros, yo voy a intentar hacerlo con HomeBank.

¿Porque utilizar HomeBank si mi abuela era capaz de hacerlo de memoria?, puff pues principalmente porque la abuela todavía tiene un coco tremendo y yo no le llego ni a la suela de los zapatos. Después, porque cuando uno comienza a tener varias entradas/salidas (y eso que no tengo hipoteca) puede resultar fácil perderse si no administra bien sus cuentas.

HomeBank tiene una interfaz muy intuitiva y amigable, también probé GNUCash pero este me parece demasiado complejo/liante y yo necesitaba algo muy sencillo, que no tenga que estructurar demasiado mis cuentas y no deba dedicarle demasiado tiempo, de lo contrario a la primera de cambio lo dejaría de lado. Simplemente quiero registrar gastos/ingresos mas importantes, operaciones automáticas (sueldo, letras, etc.) y una previsión futura del saldo de mi cuenta. Ahora ya sé cuando podré comprarme mi nuevo portatil por ejemplo ;-), creo que falta poco, lo siguiente será decidirse mac vs pc (ubuntu jugará un papel decisivo en la lucha).

8 July, 2008

Nautilus svn, el tortoise linuxero

Cuando me pasé a ubuntu busqué y rebusqué algo parecido a tortoisesvn, estaba muy acostumbrado a trabajar con el. Al final no encontré nada parecido y me quedé con los clientes de eclipse y netbeans (que están muy bien por cierto), con kdesvn y con la línea de comandos claro.

Pero estos días he descubierto nautilussvn. Un cliente subversion que se integra bastante bien con nautilus el explorador de ficheros de gnome. Le faltan muchas opciones, pero para echar un vistazo a los ficheros modificados y no commiteados o para subir ciertos cambios de una forma ágil esta muy pero que muy bien.

Nautilus svn

Su creador Jason Field ha publicado el proyecto en el repositorio de código de google para todo el que quiera participar, ¡ánimo!.

PD: Acabo de recibir 2 sms de la uoc, he aprobado las 2 asignaturas a las que me presenté, esto merece una gran celebración!! :-).

21 May, 2008

Controlando mi tiempo con Hamster

Captura hamster
Desde que trabajo con una relativa flexibilidad de horarios necesito mas que nunca llevar un estricto control sobre el tiempo que dedico a ciertas tareas.

En otros posts pasados había hablado de rememberthemilk como un fantástico gestor de tareas online, que había mejorado considerablemente en las últimas versiones y sobre todo con su última integración con gmail. Lo mantengo y sigo utilizando. Pero ahora necesito además asignar tiempos a estas tareas, o mejor, a un conjunto de estas.

Después de unas semanas de prueba con varias utilidades: gtimer, gnotime, wmwork, worklog, gtimelog creo que finalmente he encontrado lo que buscaba: hamster. Visualmente correcto, funcionalmente sencillo pero suficiente, justo lo que necesito, alta/baja de tareas agrupadas por categorías y asignación de tiempos a cada tarea. Suficientes resúmenes estadísticos e integración con la barra de menús de gnome.

Pero como sabéis hace un tiempo que me pasé a xfce, así que he tenido que instalar el xfce4-xfapplet-plugin mediante el que podemos incluir en nuestra barra de menú de xfce cualquier applet gnome.

Powered by WordPress
Bajo licencia Creative Commons
Contacto sanroman.javier at gmail.com