miércoles, 24 de diciembre de 2014

Uso de pencil para prototipado rápido de pantallas


Una de las herramientas más potentes que he descubierto durante el 2014 es Pencil. Se trata de un producto Open Source que permite realizar prototipos rápidos de pantallas de aplicaciones, para mostrar al usuario final

La mayor potencia de la herramienta es que además de venir con componentes visuales que simulan muchos tipos de aplicaciones (por ejemplo para iOs y Android), también permite realizar tus propias plantillas de componentes (denominadas Stencils) para adaptarlas a tu propio estilo de pantallas (así lo hicimos para el framework Atlas de la Comunidad de Madrid).

Ejemplo con Stencil iOs

Ejemplo con Stencil Android


Otra de las ventajas de esta herramienta es que te permite exportar las pantallas a diversos formatos, entre ellos a HTML, con la peculiaridad de que puedes enlazar unas pantallas con otras al realizar click, de forma que puedes simular el comportamiento básico de un usuario dentro del prototipo (por ejemplo pulsando en un botón para ir a otra pantalla, haciendo click en un enlace para realizar cierta acción, etc.). Puedes descargar diferentes formatos de exportación (templates) en la página de descargas de google code.

Las últimas versiones también permiten pintar diagramas de flujo, con unos resultados bastante profesionales:

Te recomiendo que pruebes la herramienta, para mí ha sido todo un descubrimiento.
Puedes descargarla en el siguiente enlace, tiene versión disponible para Windows, Linux y Mac.

lunes, 8 de diciembre de 2014

Visita a la exposición de Nikola Tesla en Madrid



Ayer estuve visitando la exposición Nikola Tesla: Suyo es el futuro, en el Espacio Fundación Telefónica de Madrid.
Se trata de una exposición muy interesante dedicada al genio de la electricidad y la mecánica, muchos de cuyos inventos se atribuyeron otros como Edison o Marconi (recordar que Marconi ganó el Nobel por el descubrimiento de la radio, que en realidad había sido realizado por Tesla - aunque hasta 1943 no se reconoció este hecho).
Si queréis leer más sobre Nikola Tesla (considerado por algunos como el mayor geek de todos los tiempos), podéis leer algunas de las últimas entradas que le han dedicado en Microsiervos.
Os dejo algunas de las fotos que tomé durante la visita, que recomiendo a todo el que tenga un rato para acercarse (estará hasta el 15 de febrero de 2015).


















miércoles, 3 de diciembre de 2014

Cambio de trabajo, y uso de Freemind para realizar esquemas de la oposición


Recientemente he cambiado de trabajo. Como sabéis los que seguís el blog desde sus comienzos, me encontraba desde 2008 trabajando en la Agencia de Informática y Comunicaciones de la Comunidad de Madrid (ICM), en el Área de Arquitectura de Software a cargo entre otras cosas del equipo de desarrollo del framework Atlas y la normativa de proyectos de Business Intelligence (ya os lo conté en algún balance, aunque en los últimos meses estuve también involucrado con temas de Arquitectura de Sistemas).

Como os comento, últimamente ha cambiado bastante el rumbo de mi carrera profesional. Desde hace sólo un par de días me encuentro trabajando en las Cortes Generales (compuestas por el Congreso de los Diputados y el Senado), como Asesor Facultativo de Informática. Los asesores facultativos son un cuerpo de funcionarios de las cortes que se encargan de funciones de asistencia y asesoramiento, realización de informes, estudios y propuestas sobre temas concretos (en mi caso en materia de informática y tecnología en general).

Me incorporo a mis nuevas funciones con mucha ilusión (como un niño con zapatos nuevos :-), ganas de trabajar y vocación de servicio público.
Han sido unos meses bastante frenéticos, la última etapa de preparación de la oposición ha requerido mi dedicación absoluta, esa ha sido la causa de que haya tenido el blog un poco abandonado (desde mis andanzas en agosto con la Raspberry Pi).

El temario de la oposición de Asesor Facultativo en las Cortes Generales está compuesto por dos bloques claramente diferenciados, un primer bloque con 56 temas jurídicos e histórico-constitucionales, y un segundo bloque con 100 temas de tecnologías de la información. Lamentablemente no existe un temario que pueda descargarse de Internet o adquirirse en alguna academia, y aunque algunos temas del bloque de informática coinciden con el temario TIC A1 de la AGE, otros muchos son particulares de esta oposición, incluidos los 56 de la parte jurídica e histórica. Por este motivo gran parte de la preparación de la oposición consiste en la elaboración propia del contenido de los temas.

Durante la elaboración del temario, he descubierto una herramienta que desconocía, y que me ha servido para realizar esquemas de los temas de manera ágil y con resultados muy satisfactorios. Se trata de Freemind, una herramienta Open Source que puede descargarse de manera gratuita de su página web. Me ha sorprendido la agilidad y facilidad con la que pueden crearse los esquemas, si aprendes tres o cuatro atajos de teclado no necesitas apenas utilizar el ratón para crear esquemas complejos con diversos niveles de profundidad.
Os incluyo aquí un ejemplo de esquema correspondiente al Tema 15: Los procedimientos parlamentarios de control del Ejecutivo: cuestión de confianza y moción de censura. La investidura. Interpelaciones y mociones. Preguntas: sus clases. Proposiciones no de ley.
Os recomiendo encarecidamente que probéis Freemind, como os comento se trata de una herramienta estupenda, con funcionalidades dignas de cualquier aplicación comercial, pero con las ventajas del código abierto y la descarga gratuita.


domingo, 3 de agosto de 2014

Framework Atlas de la Comunidad de Madrid en una Raspberry Pi con Tomcat y MySql

Después de mis primeros pasos con la Raspberry Pi y algunos experimientos esta semana, he decidido hacer una prueba de concepto, tratando de ejecutar una aplicación realizada con el Framework Atlas de la Comunidad de Madrid (en el que como sabéis llevo años involucrado) en un servidor Tomcat 7 contra una base de datos MySql, ambos instalados en la Raspberry.

Instalación de las Herramientas
Para ello, y tras comprobar que la JDK1.7 de Oracle ya viene incluída en Rapsbian, lo primero que he tenido que hacer es instalar el acceso remoto por SSH, de manera que a partir de entonces todo el trabajo lo he realizado desde mi PC, conectándome por SSH o por Escritorio Remoto a la Raspberry cuando ha sido necesario.
Lo siguiente ha sido instalar el servidor Tomcat 7. Instalar Tomcat ha sido fácil, basta con descargar el fichero apache-tomcat-7.0.55.tar.gz y descomprimirlo en el directorio donde quieras ejecutar tomcat (en mi caso en "/home/pi/java/tomcat/apache-tomcat-7.0.55").
Para poder ejecutar las aplicaciones Atlas en el servidor Tomcat también he tenido que tocar un poco la instalación por defecto de Tomcat, he eliminado la versión de la librería de Expression Language que viene en "/home/pi/java/tomcat/apache-tomcat-7.0.55/lib" y he añadido a ese directorio las siguientes librerías adicionales:
el-api-2.2.jar
el-impl-2.2.jar
jstl-1.2.jar
Después he instalado MySql en la Raspberry, según se indica en esta página. Una vez instalado, he tenido que conectarme y crear una base de datos de ejemplo llamada "atlas", y un usuario con el mismo nombre para poder acceder a ella. He utilizado las siguientes sentencias:
mysql -u root -p
Enter password:
mysql> CREATE DB atlas
mysql> USE atlas
mysql> CREATE USER 'atlas'@'localhost' IDENTIFIED BY 'atlas';
mysql> GRANT ALL PRIVILEGES ON atlas.* TO 'atlas'@'localhost'
mysql> FLUSH PRIVILEGES;
mysql> quit
Como ya tenía configurado en mi PC con Windows el filesystem compartido con la Raspberry, he decidido por agilidad realizar la aplicación de pruebas en el PC, y una vez generado el war copiarlo a la Raspberry para desplegarlo en Tomcat.

Entorno de Desarrollo y Arquetipo Web
Una vez descargado e instalado el DVD para el desarrollo de aplicaciones Atlas, he creado un Arquetipo Web básico para tratar de hacerlo correr en la Raspberry.
Para crear las tablas en la base de datos para el ejemplo que viene configurado en el Arquetipo Web, he tenido que modificar ligeramente el script de creación de objetos de base de datos que viene en la ruta "src/test/resources/schema_arquetipo_oracle.sql", he creado un fichero llamado "schema_arquetipo_mysql.sql" en el que he cambiado el tipo de datos Number de Oracle por el Int de MySql, y he eliminado la creación de las secuencias (no las necesitaba para mi prueba básica).

Modificaciones sobre el Arquetipo Web
Lo primero que he tenido que modificar sobre el Arquetipo Web recién generado ha sido el fichero "web/src/main/resources/environment.properties" para configurar la conexión contra la base de datos MySql:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/atlas
jdbc.username=atlas
jdbc.password=atlas
hibernate.dialect=org.hibernate.dialect.MySQLDialect
También he configurado en ese fichero la ruta donde se generan los archivos de log:
monitor.FILE.directorioCliente=/home/pi/java/tomcat/apache-tomcat-7.0.55/logs
Además de configurar la conexión, he tenido que añadir la siguiente dependencia de Maven al fichero "web/pom.xml" para incluir en el war el driver Jdbc de MySql:
También he tenido que modificar el fichero "src/main/webapp/META-INF/context.xml" para configurar la conexión con la base de datos en Tomcat, dejando el siguiente contenido:
Por último y antes de generar el war he tenido que editar el fichero "web/src/main/resources/conf/applicationContext-security-hostPolitica.xml" para añadirle la política a utilizar cuando se acceda a la aplicación a través de la IP de la Raspberry:


Modificaciones sobre el "war" y arranque
Realizadas todas estas modificaciones, he generado el war para el entorno local utilizando "maven clean install" sin ningún perfil. En ese momento he intentado desplegar tal cuál el war en el Tomcat de la Raspberry (copiándolo al subdirectorio "webapps"), pero ha surgido un problema con la librería "aspectj", ya que Atlas 1.2.7 está preparado para correr sobre JDK1.6, y no sobre 1.7. Para arreglar el problema he tenido que abrir el war y eliminar del directorio WEB-INF/lib las dos librerías de aspectj:
       aspectjrt-1.6.0
       aspectjweaver-1.6.0
Y en su lugar he puestos las del mismo nombre pero que corresponden a la versión 1.7.0.
Hecho esto el war ya estaba listo, lo he copiado al directorio "webapps" de la instalación de Tomcat y tras arrancar el servidor de aplicaciones (lo que ha durado 5 minutos)... VOILA!
Han sido varias horas hasta que he tenido la aplicación funcionando pero ha valido la pena. Aunque el rendimiento de la Raspberry con la aplicación deja bastante que desear, he conseguido el objetivo de la prueba de concepto, y por el camino he aprendido mucho sobre el funcionamiento de mi nuevo juguete ;-)





jueves, 31 de julio de 2014

Cómo ver los ficheros de la Raspberry Pi desde tu PC con Windows


Hace poco que me hice con una Raspberry Pi, y hoy he comenzado a trastear con ella.
Lo primero que he hecho ha sido instalar NOOBS para poder tener varias distribuciones en mi tarjeta SD de 16 Gb, y luego he instalado una primera con Raspbian, una versión reducida de Debian preparada para la Raspberry Pi.
Mi intención es comenzar a programar en Java para la Raspberry Pi. Después de crear mi primer pequeño programa en Java para comprobar que funcionaba tanto el compilador (javac) como la máquina virtual (ya viene incluida con Raspbian la JDK 1.7 de Oracle), quiero realizar el desarrollo en Eclipse desde Mi PC con Windows 7 (Eclipse requiere un equipo más potente para funcionar bien), y luego ejecutándolo en la Raspberry (quiero hacer algunas pruebas con PI4J, y finalmente instalar un servidor Tomcat 7).
Para ello, lo primero que he hecho es montar un servidor samba en la Raspberry, de forma que pueda verla como una unidad de red remota en mi PC con Windows 7, y quiero contaros cómo lo he hecho, basado sobre todo en estos dos enlaces:


Mi priper intento ha sido instalar los paquetes de samba, ejecutando:
sudo apt-get install samba samba-common-bin

Pero esto da un error descargando uno de los paquetes, por lo que he tenido primero que actualizar la base de datos de apt-get para que descargue los paquetes correctos, ejecutando:
sudo apt-get update

Una vez hecho esto he vuelto a intentar instalar los paquetes de samba, esta vez con éxito:
sudo apt-get install samba samba-common-bin

Ya instalado el servidor samba, he editado el fichero de configuración de Samba:
sudo vi /etc/samba/smb.conf
He modificado las siguientes entradas:
workgroup = WORKGROUP 
(así se llama mi grupo de trabajo de Windows, aquí deberías poner el de Tu PC)
wins support = yes
Al final del fichero también he añadido la siguiente sección, para compartir la carpeta "/home/pi":
[pihome]
  comment= Pi Home
  path=/home/pi
  browseable=Yes
  writeable=Yes
  only guest=no
  create mask=0777
  directory mask=0777
  public=no

Una vez modificado el fichero he reiniciado el servicio de samba:
sudo /etc/init.d/samba restart

Y por último he establecido la password del usuario pi para su acceso por samba:
sudo smbpasswd -a pi
(meter dos veces la password)

Con esto ya he conseguido que apareciese la Raspberry Pi en la red de Windows 7:

Al intentar entra solicita el usuario y la contraseña (pi/la password configurada), y ya podemos acceder a la Raspberry Pi como si fuese una carpeta de red de un equipo Windows:
Ahora llega el momento de instalar Tomcat, os mantendré informados ;-)

jueves, 1 de mayo de 2014

1 de Mayo: El nacimiento de la Vía Láctea según el Calendario Cósmico


Estoy viendo Cosmos 2014, el remake de la mítica serie de Carl Sagan. Acabo de empezar y me está encantando el concepto de Calendario Cósmico que presentan. Se trata de visualizar la historia del Universo como si encajase toda dentro de un año, de forma que el 1 de Enero a las 00:00h hubiese ocurrido el Big Bang, y actualmente estuviésemos en el 31 de Diciembre a las 24:00h.
En este año cósmico, cada mes son 1250 millones de años. Cada día son 40 millones de años y cada segundo unos 500 años de nuestra historia.

Da vértigo darse cuenta de la magnitud temporal de la vida del Universo y lo insignificante de nuestra existencia. En esta escala cósmica, la Vía Láctea (la galaxia donde habitamos) no se forma si no hasta el 1 de Mayo (hoy es su cumpleaños cósmico!). Varios meses cósmicos después, el 9 de Septiembre se forma el Sistema Solar, y nuestro querido Planeta Tierra no se forma hasta el 14 de septiembre, y la vida aparece el 25 de Septiembre. Pero no es hasta la última hora del año, el 31 de Diciembre a las 23:00h cuando aparece el Homo Sapiens, nuestro más cercano antepasado. Algunas cifras más del calendario cósmico:

  • 1 de Enero 00:00h: Se produce el Big Bang, la explosión inicial  que dio origen al universo.
  • 1 de Enero 00:10h: Se produce la formación de los primeros átomos y la energía irradiada va llenando poco a poco el naciente espacio-tiempo.
  • 9 de Septiembre 00:00h: Se produce la formación del Sistema Solar a partir de una nube de gas y polvo.
  • 25 de Septiembre 00:00h: En la Tierra hacen su aparición los primeros seres vivientes (microscópicos).
  • 15 de Diciembre 00:00h: Se rompe el monopolio de las algas verde-azules con la llamada Explosión Cámbrica, donde los seres vivos se diversificaron de forma violenta adaptándose a los ambientes más diferentes.
  • 24 de Diciembre 00:00h: Aparecen los dinosaurios, dominadores absolutos del planeta durante 160 millones de años, hasta su extinción el 29 de diciembre.
  • 31 de Diciembre 23:00h: Aparece el Homo Sapiens.
  • 31 de Diciembre 23:59:00h: El hombre comienza a vivir en la edad de piedra.
  • 31 de Diciembre 23:59:52h: Surge el imperio babilónico.
  • 31 de Diciembre 23:59:56h: Los tiempos de Jesús y del emperador romano Augusto.
  • 31 de Diciembre 23:59:59h: Cristóbal Colón descubre América.
  • 31 de Diciembre 24:00h: Tiempo presente.
Aquí os dejo un vídeo de la serie original de Carl Sagan:



Más información sobre el Calendario Cósmico aquí, aquí o aquí.

miércoles, 23 de abril de 2014

Algunas fotos tomadas con el microscopio que me regalaron

Hoy he desempolvado el microscopio que me regalaron hace un par de años, y he tomado algunas fotos curiosas. Ya tomé varias fotos allá por enero de 2011, hoy he probado algunas cosas nuevas, aquí os dejo las fotos.

Madera:



Algodón:


Epidermis (quemada, de las vacaciones :-)



Monda de Naranja:




Más información sobre el microscopio aquí