Iniciando un proyecto con appfuse 2.0M5
Hay una cambio de época con la aparición de Appfuse. Antes, en la programacion Java para la web todo era oscuro, para iniciar un proyecto tardabas dias en establecer el esqueleto de la aplicacion, y para añadir funcionalidad, replicabas cientos de lineas que ya tenías en librerías o guardadas en algun archivo de texto.
Con appfuse crear el esqueleto de una aplicacion web con Java es extremadamente sencillo, vamos a ver lo facil que es crear una aplicacion java con las operaciones basicas CRUD .
Instalamos Maven 2, Java 5 y Mysql .(creo que esto no hace falta explicarlo)
Instalamos appfuse en la modalidad mas sencilla empleando para la presentacion JSF (el resto de combinaciones se pueden ver aquí):
mvn archetype:create -DarchetypeGroupId=org.appfuse -DarchetypeArtifactId=appfuse-basic-jsf -DremoteRepositories=http://static.appfuse.org/repository
-DarchetypeVersion=2.0-m5 -DgroupId=com.mycompany.app -DartifactId=myproject
Sustituimos com.company.app por el paqquete que queramos y myproject igual. Ahora generamos con maven todo lo necesario para empezar a desarrollar desde eclipse, nos situamos en el directorio myproject recien creado:
mvn jetty:run-war (probamos la simple aplicacion accesible a través de http://localhost:8080) mvn -Declipse.workspace= eclipse:add-maven-repo (para que el eclipse reconozca la variable M2 del appfuse, es necesario ejecutar esto indicando el workspace de nuestro eclipse ~/workspace).Mas aquí.
Ahora que tenemos la base instalada, ya desde el eclipse importamos el proyecto: File > Import > Existing Projects into Workspace
Empezamos a desarrollar un nuevo POJO llamado Persona con todo lo que le rodea (Modelo, Servicio y Web): Creamos el paquete com.mycompany.app.model y dentro de el la clase Persona que extiende BaseObject:
package com.mycompany.app.model;
import org.appfuse.model.BaseObject;
import javax.persistence.Entity; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.GeneratedValue; import javax.persistence.Column;
public class Persona extends BaseObject { private Long id; private String firstName; private String lastName;
/* Generate your getters and setters using your favorite IDE: In Eclipse: Right-click -> Source -> Generate Getters and Setters */ }
Sobre la persistencia tenemos toda la info aqui. Añadimos anotaciones para Hibernate: Entity identifica la clase con la tabla:
@Entity public class Persona extends BaseObject {
Ahora indicamos cual es la PK (Primary Key) y como se generará:
@Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { return this.id; }
El resto de campos se declaran con la anotacion Column:
@Column(name="first_name", length=50) public String getFirstName() { return this.firstName; } ... @Column(name="last_name", length=50) public String getLastName() { return this.lastName; }
Con esto ya tenemos creado nuestro Pojo Persona, ahora mapeamos esta clase dentro del archivo de configuracion de Hibernate (src/main/resources/hibernate.cfg.xml):
Ahora si ejecutamos el siguiente comando maven, genera la tabla de la base de datos asociada a este POJO:
$ mvn compile hibernate3:hbm2ddl
Finalmente para que se genere la capa de servicio y las paginas web ejecutamos:
mvn appfuse:install -Dentity
Y probamos la aplicacion en la pagina http://localhost:8080 publicando el resultado con Jetty:
$ mvn jetty:run-war
Como diría Matt Raible ...
Yeah Baby, Yeah: BUILD SUCCESSFUL Total time: 9 seconds
Screencast en linux, más fácil todavía
Hace algún tiempo, escribí un post sobre como hacer screencast desde linux, desde aquella el panorama ha cambiado un poco, ahora es mucho mas facil hacer screencasts desde linux, sobre todo desde la aparicion de algunos programas como screenkast (GPL) ó demorecorder (de pago) que aunque en el fondo, siguen usando la misma tecnología de antes (VNC o sesiones virtuales nuevas) han facilitado enormemente la tarea.
Screenkast, es hasta el momento el programa que me ha resultado más fácil de usar para realizar screencasts. Se puede instalar a través de apt-get, y al ejecutarlo tan solo tenemos que realizar dos acciones para empezar a grabar:
- VNC -> Start Server
- y File -> New
Con esto ya estaremos dentro de una sesión VNC que se está grabando, al cerrar la ventana VNC, el programa importa la captura realizada y nos permite editarla , añadiendole globos de texto, recuadros de comentarios, etc ..
Olvidate del ratón, Tips and Tricks
Siempre me ha gustado la idea de usar atajos de teclado para las acciones mas comunes, pero ahora leyendo un par de articulos he ido un poco mas allá en mi idea de deshacerme por completo del ratón, o al menos intentarlo ;).
La idea no es por capricho, obviamente, es una cuestion de productividad y salud. Desplazar la muñeca al ratón para moverlo es una perdida de tiempo importante, que además, se realiza con bastante frecuencia.
Principalmente en el ordenador uso el Firefox, con lo que la instalación de extensiones para aumentar los atajos de teclado son indispensables.
Acelerando el uso de Firefox
-
- Hit-a-Hint: Extensión que nos permite ver un atajo de teclado para todos los links en pantalla cuando pulsamos la barra espaciadora. Link
Search Keys: Extensión que añade atajos de teclado (los numeros del 0 al 10) para los resultados de la búsqueda realizada en el google. Link- Atajos Frecuentes (lista completa):
- Hit-a-Hint: Extensión que nos permite ver un atajo de teclado para todos los links en pantalla cuando pulsamos la barra espaciadora. Link
ALT-IZQ
- : Página anterior- ALT-DER: Página siguiente
- CTRL-W: Cerrar pestaña
- CTRL-T: Nueva pestaña
- CTRL-PageUp: Ir a la pestaña siguiente
- CTRL-PageDown: Ir la la pestaña anterior
- ALT-D: Ir a la casilla de introducir dirección
- ALT-D + TAB: Ir al buscador
Recomendaciones para usuarios linux
En linux es molesto que el cursor del ratón no se oculte automaticamente cuando no se usa, con lo que es necesario la instalacion de una aplicacion llamada unclutter (apt-get), que simplemente se añade al inicio (.gnomerc, .xsession, o a donde querais) tal que así:
$ unclutter -idle 2 (2 segundos sin tocar el ratón y se oculta)
Enlaces relacionados Estos son algunos de los enlaces mas interesantes que he encontrado en relación con este artículo:
- http://weblogs.asp.net/jgalloway/archive/2006/06/14/Mouseless-Computing.aspx
- http://www.lifehacker.com/software/feature/hack-attack-mouseless-firefox-139495.php
De nuevo cambio de terminal, Blackberry Pearl (8100)
El plan de Queres Tecnologías es proveer a todos los trabajadores con la mas moderna tecnología, que nos ayude a mejorar la productividad y a vivir mejor, basandose en esa premisa nos ha conseguido la Blackberry Pearl ... cuantas ganas tenia de poseer un terminal nuevo y util, que me permita leer el correo electronico, tener mi agenda personal y si es posible leer las noticias diarias mientras tomo el café con un lector RSS.
Aplicaciones Indispensables
- Google Talk: lo mismo que en el escritorio, pero para la Blackberry, indispensable para estar on-line todo el día (si es que quieres ;), Bajalo aquí.
- Google maps: Mas que nada por curiosidad, todos los mapas de google en la palma de la mano, se ven perfectamente aunque el zoom va algo lento (me imagino que mas bien será cosa del operador), Bajalo aquí.
- NewsGator Go! : De todos los lectores de news que le probado, este es el mejor con mucha diferencia, la unica pega es que es de pago. las alternativas son AvantGo (que no acaba de funcionar bien en mi terminal) PicoNews ( malo , malo ...) y algun otro. Más info aquí.
- JiveTalk : Mensajeria que integra Yahoo, Google Talk, MSN, Jabber, ICQ, ... está en la version beta, pero tiene muy buena pinta. Como es una beta , tienes que solicitar una prueba por mail, mas info aquí.
- Opera Mini : Aun no lo probé pero me han hablado muy bien de él. Desde la BlackBery bajalo aquí.
- Funambol Blackberry Sync, este me escaralló el terminal una vez, pero si se consigue hacer funcionar cumple el sueño de tener el calendario, las Notas, los TODOs y la agenda de contactos sincronizada entre la BlackBerry y el evolution/Outlook (o el que useis). Para usarlo teneis toda la info necesaria aquí.
- (UPDATED 30-mar-07) Otra aplicación bastante útil es el cliente de correo Gmail para la Blackberry, se puede descargar en 2 versiones, para gmail.com aqui, y para los dominios que tengais alojados en google aqui.
- (UPDATED 30-mar-07) Nuevamente me encuentro otra aplicacion que resuelve un problema que tenía con la Blackberry, el Bloqueo automatico del teclado al cabo de un tiempo, el programa se llama autolock, es gratis y bloque el teclado cuando se apaga la pantalla del terminal (trascurridos un par de minutos o como esté configurado). Lo podeis bajar de aqui.
Algunos problemas o defectos que me he encontrado
- No he encontrado una opcion para grabar notas de voz , me parece increible, pues si que se pueden grabar y enviar notas de voz mediante MMS, sin embargo no se pueden almacenar notas de voz, algo que me parece indispensable. (UPDATED) Estoy evaluando una aplicacion que hace esto mismo y es gratuita para uso personal, el vNotes.
- Grabar video con la camara. Ya que la BlackBerry Pearl trae una camara para hacer fotos, por que no se puede grabar video con ella ¿? Seguro que es sencillo de implementar
Resumen funcional
El teclado Semi-Qwerty no es tan cómodo como los teclados Qwerty de las anteriores Blackberry, pero es mas rápido y fácil que los habituales teclados Nokia de 3 letras por tecla. Ademas el sistema de compleccion y reconocimiento de palabras es bastante bueno, y es complicado tener que corregir alguna palabra (incluso mezclando español con inglés). La bola con la que nos movemos a través del menú está bastante currada y logra perfectamente su funcionalidad, que es moverse rapidamente por los menús y ayudarnos a completar las palabras cuando no las reconozca el sistema.
Links Interesantes
Mi nueva consola ... PSP + Locoroco, ¿ como podía estar sin ellos ?
Es la primera consola portatil que pruebo, y no solo eso, sino que es la primeta que compro ;) . La consola vale unos 240 € (segun donde la compreis, claro) y trae una tarjeta de memoria de 1GB, que es indispensable si piensas en jugar a tus copias piratas y no gastar demasiado el lector de discos que trae.
Hasta hace poco unicamente jugaba al Gran theft Auto y al Burnout 3, 2 de los mejores juegos para la PSP a mi juicio. Pero probando unas demos, ví el Locoroco ... y estoy totalmente enganchado a él. Es el primer juego que me acabo entero varias veces, y eso hacía tiempo que no me pasaba. La mayoría de los juegos modernos me aburren antes de llegar al final. Es con diferencia el mejor juego para la PSP que he probado (y he probado unos cuantos). Es original, con buenos graficos y bastante largo, aunque me gustaría que lo fuese más ;) .
Sony a demostrado con la PSP que haciendo consolas es la que se lleva la palma.
Guía práctica para cambiar de empresa ...
Cuando llevamos trabajando 2 o 3 años en la misma empresa, todos nos hacemos la misma pregunta: "¿No será hora de cambiar de empresa ?". La respuesta no es facil, voy a intentar anotar aqui todo lo que he recopilado al respecto para que no se me olvide revisarlo en el futuro :)
La pregunta que me ha ayudado mucho es "¿Me veo trabajando en la empresa actual dentro de 5 años ?", fácil, ehh ;). Es fácil decidirse a cambiar de empresa si no te ves en ella cuando tengas 30 o 35 años.
En realidad esta es una medida preventiva, sin embargo hay otros factores que nos pueden ayudar bastante a la hora de tomar una decisión u otra. 
- Si cuando vas a tomar café, los jefes no te quitan ojo de encima, humm esto no pinta bien ....
- Si el o los jefes gritan o hablan exageradamente alto en el lugar de trabajo (contigo o a otra persona), la educacion es importante, no anima mucho la cosa ...
- Si observas acciones injustas hacia tus compañeros, pon tus barbas a remojar ;), Hay que tener en cuenta que probablemente a ti te traten bien por que el proyecto al que estes asociado es rentable, pero si las cosas no se hacen bien puede dejar de serlo.
- Si ves que la empresa no invierte sus ganancias en la propia empresa (ordenadores nuevos, sillas ergonomicas, software original, ...) , esto es muy mala señal, pues lo primero debería ser la vista, la espalda y salud en general de los trabajadores de la empresa, y no el coche nuevo del jefe, el chalet en la playa o un terreno en Marina d'Or.
A fin de cuentas no es tan dificil averiguar si es hora de cambiar de empresa, yo creo que una buena medida para la rotación en una empresa consultora tipo es de unos 2 ó 3 años. Seguramente este periodo baja o sube en función de las respuestas a los puntos de arriba, pero la experiencia apoya estos datos.
Y de reyes ... Blackberry 7290
Esta lejos de ser el último modelo de Blackberry, pero aun así mis primeras impresiones con la blackberry son francamente muy buenas.
La blackberry me la ha conseguido mi hermano a través de ebay, y lo único que he tenido que hacer es liberarla, pues venía bloqueada para un operador de telefonía francés (curiosamente la filial del mio español). Una vez liberada (25€ en una tienda de esas que liberan de todo) metes la SIM y a rular ... incluso me deja usar el servicio de correo electronico (tecnologia PUSH de RIM), que es de lo mejor que he visto.
Este servicio lo proporciona el operador de telefonía y es el que se encarga de "avisar" a la BlackBerry de que hay correo nuevo en tu cuenta POP/IMAP y descargarlo automaticamente al dispositivo, es sin duda el servicio estrella del dispositivo. La pantalla de 240x160 con 65.000 colores ,es mas que suficiente para la mayoria de las aplicaciones. El teclado es comodisimo, y se pueden escribir correos o SMSs a una velocidad sorprendente. Las aplicaciones de Agenda, Calendario, Notas, etc son bastante completas y funcionales. Aplicaciones como google talk o Messenger se hacen imprescindibles cuando antes ni las hechaba ni en falta. Si quieres estar comunicado fuera de la oficina o de casa , este es tu dispositivo.
El único problema que veo es que aun no he sido capaz de visualizar los anexos a los correos, pero me da que es un problema de configuración o de mi operador. Otro problema es que al ser tan antiguo este modelo, los tonos son unicamente en midi, y no tiene grabación de notas de voz.
En resumen, las Blackberry son dispositivos poco usados en España, pero que tienen una gran acojida en otros paises. Es muy útil la tecnología PUSH para el que necesite el correo electrónico en todo momento.
Firefox 2.0
Recientemente he escrito un post sobre los plugins mas interesantes para el firefox. Con la aparición de la version 2.0 de Firefox, muchos de ellos han quedado obsoletos . Quizás el mas importante sea el Tab Mix Plus, que ha dejado de funcionar por completo, sin embargo las funcionalidades mas importantes de este plugin pueden ser sustituidas por otro metodos:
Para restaurar sesiones automáticamente basta con ir a las Preferencias del Firefox en la pestaña Main y poner el desplegable Startup adecuado. Otro metodo es poner el parametro browser.startup.page=3 del firefox, para hacerlo solo tenemos que escribir about:config en la direccion a navegar y pulsar intro. Otra funcionalidad interesante era la de Colorear las pestañas de paginas que aun no leimos, eso lo conseguimos con el plugin: ColoUnReadTabs que podemos descargar aqui.
El resto de funcionalidad del Tab Mix Plus es poco relevante para mi, con lo que no me he puesto ni siquiera a buscar substitutos.
Los otros plugins que menciono en mi post funcionan perfectamente, con lo que ya se puede instalar la version 2.0 del Firefox con tranquilidad.
Emacs: Coloreando la sintaxis

Es algo natural que cada 3 o 4 meses a los que nos pasamos 10 horas delante de la pantalla del ordenador, nos salte el chip de la locura y se nos de por aprender alguna tecnologia nueva, ya sea un lenguaje, una nueva arquitectura, o un editor de textos.
Pues bien, en esta ocasion le ha tocado el turno a emacs, ya hacía un monton de tiempo que queria aprender a usarlo (yo soy un usuario de vim ya desde pequeñito), y por fin he encontrado un hueco para probarlo. Con lo primero con lo que me encuentro es que NO viene habilitado por defecto el syntax highlight , algo que considero un requisito imprescindible, preguntádole a google, me cuenta que hay que habilitar la opción :
(global-font-lock-mode 1)
en el archivo ~/.emacs, cosa facil ... Segun el manual, es obvio que global-font-lock-mode=1 quiere decir que syntax-highlight=1. Puffffff ... quizás sea mas intuitivo el syntax on del vim , pero para gustos hay colores. La lista de atajos de teclado es bastante larga, pero los mas usados son bastante faciles de recordar.
Tunel ssh , el poder de la encriptacion
Muchos de nosotros usamos el ssh para conectarnos a maquinas unix remotas, para realizar tareas de administracion, para entrar en la shell y revisar el correo, para programar, para cientos de cosas. Ya hace algún tiempo vengo usando ssh para encriptar mis conexiones al servidor de correo IMAP/SMTP, pero recientemente en la oficina de un cliente tienen todas las conexiones WEB salientes monitorizadas y a mi no me apetece que espien las webs que visito, con lo que he empleado de nuevo los tuneles ssh.
Por lo tanto estas son las instrucciones para montar un tunel ssh que nos permita navegar a traves de un proxy que tengamos en un ordenador remoto (en el ordenador de casa, mismo).
Instalamos Squid en el ordenador remoto en el puerto 3128.
Instrucciones en entorno de escritorio Linux
En el ordenador local establecemos un tunel ssh que mapea el puerto LOCAL 23128 con el puerto remoto 3128:
coffman@bender$ ssh -N -l username -L 23128:localhost:3128 ip.servidor.casa
Con esto nos pedirá el password del usuario username en el ordenador remoto de casa y quedará establecido el tunel siguiente :
|----------- S S H T U N N E L ---------| host: localhost <-----------------------------------------> ip.servidor.casa tcp port: 23128 3128
Instrucciones de configuracion en Windows
TODO: Pendiente de realizar capturas y conseguir un sistema operativo windows
Instrucciones de configuracion del Navegador (común)
De modo que para conectar con el navegador a internet ya solo tenemos que configurarlo para que use un proxy local (que en realidad está mapeado con el squid remoto):

El proceso para establecer un tunel ssh contra un servidor de correo IMAP/SMTP es similar :
coffman@bender ssh -N -l username -L 2125:localhost:25 server.smtp
Enlaces relacionados:
http://www.afp548.com/Articles/security/ssh-tunnels.html
Ya podemos navegar seguros y en modo anonimo ;)




