abandonar la zona de confort

Durante los últimos 15 años mi zona de confort ha estado delimitada por el uso de sistemas operativos Windows y desarrollo de programas con xHarbour y FWH. Con este par de lenguajes he sido capaz de hacer programación de escritorio en entornos Windows y me he sentido muy cómodo con ellos. Han servido para mi propósito al crear primero jsnsoftware y luego alanit, que era vender software de acuerdo a la modalidad de distribución conocida como shareware. La aventura ha sido muy satisfactoria a nivel personal, pues me ha permitido aprender muchas cosas relativas a hacer y vender software empaquetado. Ha sido una de las cosas que he hecho en mi vida de la que estoy más orgulloso.

Hace tres años que compré mi primer Mac. Desde entonces que tengo el gusanillo de programar en OS X, pero siempre han surgido cosas que me han hecho aplazar el aprendizaje. Quizás la más importante haya sido que Windows era mi primer sistema operativo como usuario. Cuando tenía que arrancar el ordenador para hacer alguna cosa, casi siempre arrancaba Windows. Cuando arrancada Mac era para hacer alguna tarea específica que no podía hacer con Windows. Sin embargo, en el último año las tornas han cambiado. Ahora Mac OS X es mi primer sistema operativo, con el que arranco habitualmente el ordenador, y sólo arranco Windows cuando tengo que hacer alguna tarea específica que no puedo hacer con Mac OS X. Sin embargo el cambio no es completo, me falta precisamente lo que más me gusta hacer con un ordenador: programar.

Así que he decidido retomar el empeño de aprender Cocoa y hacer software para Mac OS X. Esto supone definitivamente abandonar mi zona de confort y entrar en un terreno totalmente desconocido para mi. Aunque en verano los niños mandan, quiero dedicarme a leer el libro de la vespa cuando tenga un ratito, teniendo presente una frase del prólogo del libro que me ha encantado: Antes de continuar, te aseguro que no eres tonto y que simplemente algunas cosas son difíciles. Armado con esta simple afirmación y la cabeza descansada, estás listo para aprender Cocoa.

enlaces 23.junio.2010

En el último año he sufrido un cambio en mi trabajo de día. He pasado de dedicarme básicamente a programar a pasar a dirigir un grupo de programadores. La verdad es que la tarea no es fácil, pues supone un cambio de mentalidad grande, así que me llaman la atención post dedicados a gestionar grupos de trabajo. Como estos:

En otra temática, pero para mi relacionada, me ha gustado mucho este post de David Bonilla sobre gestión de información, sobre todo el párrafo que dice «Mi primera labor como CEO de una empresa siempre sería la misma: prohibir el Excel y derivados. El Excel puede ser una de las herramientas más dañinas para la actividad de una empresa y debería utilizarse únicamente como última solución y como herramienta de apoyo, nunca de trabajo «. Aunque suene un poco rádical, estoy completamente de acuerdo con el planteamiento.

become an xcoder en español

xcoderHace unos días visité la web de Cocoalab y vi que el libro Become an Xcoder estaba traducido a español. Debido a mi renovado interés en Cocoa, me tomé la molestia de preparar un PDF del libro para poderlo imprimir y leer mas cómodamente. La traducción del libro no la he hecho yo, lo único que he hecho es generar el PDF que dejo para descargar. El libro lo he alojado en Box.net y se puede visualizar en el sitio antes de descargar.

Descargar Conviertete en un Xcoder

de nuevo interesado en cocoa

Pese a que en mi trabajo de día vamos de cabeza a programar en Java, sigo dándole vueltas al tema de aprender Cocoa. Las aplicaciones hechas en Java para entornos Mac OS X muchas veces dejan mucho que desear, sobre todo en el aspecto de interfaz de usuario. Además, desde que Apple contrató al desarrollador de los macwidgets su blog está prácticamente muerto lo cual hace presagiar un negro futuro al proyecto.

Además Apple va tomando posturas de fuerza respecto al desarrollo para la plataforma iPhone, que es la misma que se usa para el iPad. Un par de lecturas interesantes sobre el tema están en Daring Fireball en español, en concreto El nuevo acuerdo para los desarrolladores del iPhone prohibe el uso del compilador de Adobe que convierte aplicaciones de Flash al iPhone y Por qué ha cambiado Apple la sección 3.3.1 del acuerdo de desarrollo para el iPhone. Lo que se dice en estos post es que Apple va cerrando puertas a que sus dispositivos se programen con entorno de desarrollo de otras empresas. Impide el uso de compiladores cruzados, que primero desarrollen la aplicación en un entorno distinto y luego compilen para los dispositivos de Apple usando sus SDK y librerías. Es una postura muy radical pero, como dice Daring Fireball, lo que tiene claro Apple es que no va a permitir que nadie le marque el ritmo en el desarrollo de sus dispositivos.

colossus 4.5

Ya se encuentra disponible la versión 4.5 de Colossus, mi programa de gestión de contraseñas. La principal novedad de esta versión es el cambio en la manera en que el programa muestra las claves, puesto que en ningún momento se llega a desencriptar el fichero de claves sino que se desencriptan unicamente para visualizarlas. El método anterior de desencriptado del fichero de claves podía ocasionar la perdida de consistencia del fichero, y alguna vez he tenido un disgusto con esto. Con el nuevo sistema no hay peligro de inconsistencia puesto que el fichero no sufre procesos completos de encriptado y desencriptado. Además hay alguna mejora estética nueva, como la rejilla de datos a la Windows 7 y alguna cosilla más.

Colossus se distribuye bajo licencia Creative Commons Reconocimiento – No Comercial – Sin Obras Derivadas 2.0.

cls45-acercade

lecturas de invierno, Mankell y Faulks

Uno de los motivos por los cuales ha decaido el ritmo de programación en alanit es debido a que paso más tiempo que antes leyendo. Fui uno de los millones de personas que el año pasado leyó la trilogía de Millenium y esto abrió la puerta a un nuevo género que apenas antes había leido: el de la novela negra, y este invierno este ha sido el género principal que he leído.

Comencé con El hombre inquieto, de Henning Mankell. Lo compré sin haber leido antes a Mankell, pero acerté por completo. Me gustó mucho y decidí comenzar por el principio de la serie, así que leí también Asesinos sin rostro y continué con Los perros de Riga. Los dos me gustaron bastante, y pasé a ser un incondicional del inspector Wallander.

El siguiente libro que leí tenía una temática completamente distinta. Está ambientado en la primera guerra mundial y el libro se llama La canción del cielo y está escrito por Sebastian Faulks. No se como se cruzó en mi camino, pero lo pasé muy bien leyéndolo. Cuando leo un libro únicamente me importa si me gusta la trama y que me entretenga, no soy ningún crítico literario, pero creo que este libro está muy bien escrito y que Faulks es un pedazo de novelista.

El siguiente libro, que estoy leyendo ahora, lo compré por equivocación. Fui buscando el siguiente de Wallander y cogí El retorno del profesor de baile. Es un libro escrito también por Henning Mankell, de novela negra, pero no es Wallander el protagonista, sino un joven policía llamado Stefan Lindman. Para mi, a mitad de la lectura, es el mejor libro que he leido de Mankell hasta ahora. La trama me gusta más que la de los otros libros de Mankell que he leido y el libro me tiene completamente absorbido.

lis.to un gestor de tareas donde hay mucho que aprender

Desde hace unos días vengo probando lis.to. Es un gestor de tareas sencillo, que permite crear tareas y organizarlas por carpeta que pueden ser de proyectos, contextos, o lo que quieras. A cada tarea le puedes asignar una fecha y una hora de finalización y poner un recordatorio de manera que te avise antes de la finalización.

listo1

Cuando se edita una tarea se puede rellenar toda la información en una ‘entrada rápida’, indicando la fecha de finalización y la carpeta mediante los símbolos = y @. Además se puede añadir un texto libre a la tarea y el programa lo resalta con un icono en la lista de tareas.

listo21

No es una aplicación compleja, sino que te haces con ella en cinco minutos, pero que más allá de su uso me ha llamado la atención la manera en que está hecho. En primer lugar lis.to está hecha con Java y el interfaz gráfico con Swing. Es multiplataforma y funciona perfectamente en Windows y en Mac. En Windows la interfaz parece más nativa que en Mac, sobre todo por dos cosas: la barra de iconos deja bastante que desear y el panel lateral tipo iTunes tampoco está muy logrado. Sin embargo hay otras muchas cosas muy bien hechas y que quiero aprender cómo están hechas. La primera es que las tareas no se guardan en ninguna base de datos, sino en un archivo XML. También me ha gustado la manera de hacer el autocompletado cuando se asigna una carpeta en la entrada rápida. Lo último que me ha llamado la atención es la manera de desplegar/replegar parte del formulario de edición de tareas cuando se pulsan los triángulos azules. Como se puede descargar un jar y se puede descomprimir, se puede curiosear las clases que se han usado el programa y, con un poco de suerte y un mucho de google, encontrarlas y estudiarlas.

Actualización 15/Mar/2010: Lis.to está alojado en Google code y se puede descargar su código en este enlace: http://code.google.com/p/listo/. Pulsando el la pestaña código y haciendo checkout con un cliente subversion podemos descargar todo el código fuente.

próximas actualizaciones de programas en alanit

En las próximas semanas voy a liberar nuevas versiones de mis programas Colossus y Findemes. Las nuevas versiones de estos programas están casi listas, aunque en el caso de Findemes tengo una duda respecto a una nueva funcionalidad que me lleva bastante mareado. La nueva versión de Colossus está terminada y la de Findemes está al 90%. Ahora sólo queda probar la comida para perros.

En la nueva versión de Colossus los cambios son principalmente internos, solucionando uno de los mayores problemas que tenían las versiones anteriores y que era el encriptado/desencriptado completo del fichero de claves. Hasta ahora, cuando se salía del programa la última operación era encriptar por completo los ficheros de datos para que la información no fuera accesible. Al arrancar el programa estos datos se desencriptaban y quedaban desencriptados mientras se ejecutaba el programa. Con la nueva versión los datos siempre permanecen encriptados y lo que hace el programa es aplicar el desencriptado para visualizar la información, pero sin llegar nunca a desencriptar por completo los datos. La verdad es que esta manera de mostrar las contraseñas es mucho más sencilla que lo que hacía hasta ahora, y mucho menos problemática. Hay algún cambio estético en el programa, como la rejilla de datos a la Windows 7 pero el aspecto del programa sigue siendo el mismo.

colossus450

Respecto a Findemes los cambios han sido mayores. En primer lugar he añadido gestión de cuentas corrientes al programa, que era una funcionalidad que la han pedido muchos usuarios. El tema es que a mi nunca me han gustado los programas de contabilidad personal que están basados en cuentas, pero al final he claudicado y he introducido esta funcionalidad en el programa. Sin embargo el uso de cuentas corrientes es opcional, se pueden seguir llevando el control de ingresos y gastos sin que obligatoriamente se tengan que reflejar en una cuenta corriente. La introducción de las cuentas corrientes ha afectado a los mantenimientos de apuntes y de apuntes periódicos, así que he tenido que retocarlos todos. También he hecho otros cambios menores, como un formulario que muestra un balance de ingresos y gastos por fechas sin tener que recurrir a un listado. Lo único que queda pendiente antes de liberar la nueva versión es el tema de traspaso entre cuentas corrientes. No se si añadir la opción de realizar traspasos entre cuentas corrientes en la gestión de apuntes o en un mantenimiento separado. Si hago lo primero tendré que añadir campos a la tabla de apuntes y a lo mejor enredo mucho la cosa. Pero hacer un mentenimiento separado no me convence, así que sigo dándole vueltas a la cabeza hasta que decida que hacer. Muchas veces los atascos en los programas consisten en no saber cómo implementar una determinada funcionalidad, no en no saber implementarla.

findemes2

enlaces 05.febrero.2010

Un par de enlaces sobre Java:

  • El traje nuevo del emperador un post al que llegué via Javahispano donde el autor cuenta sus impresiones de la adquisición de Sun por parte de Oracle tras el webcast de esta donde explicaban su estrategia a seguir tras la adquisición. En Javahispano también se ha escrito sobre esta webcast pero en tono mas neutro.
  • El blog de Jonathan Giles es un sitio que publica semanalmente enlaces a post relacionados con Swing y JavaFx principalmente. Muy interesante para ir viendo lo que se mueve en estas dos partes integrantes del entorno Java.