un mes fuera de juego

Después de un mes fuera de juego por una serie de motivos personales, intento retomar la normalidad escribiendo de nuevo. Durante este mes me han sucedido algunas cosas que van a condicionar de alguna manera mis actividades a medio plazo, incluidos los temas de programación.

La primera de ellas es que tengo un nuevo ordenador. Después del enfado con los precios de los nuevos portatiles de Apple pensé que el iMac sería mi último ordenador de Apple. Sucedió que me enteré de una tienda donde vendián MacBook blancos, el modelo de 2.1GHz, 1GB de RAM y 110GB de HD a un precio bastante asequible. No tuve mucho tiempo para pensarlo pues en la tienda sólo quedaba uno de estos ordenadores y lo compré. Pensé que era el complemento ideal para el iMac y realmente me apetecía tener de nuevo un portátil además de que su reducido tamaño viene muy bien para poder llevarlo de acá para allá. He ampliado la memoria a 2GB por menos de 24 € y el ordenador funciona muy bien. Así que de momento el iMac sigue en la enfermería y el MacBook es mi ordenador de trabajo en casa. Es un gustazo poder sentarte en cualquier parte con el ordenador y ponerte a trabajar donde más a gusto estás en cada momento del día.

La segunda es que por temas de trabajo estuve cacharreando un poco con Java. Este lenguaje nunca fue santo de mi devoción, quizá porque no me acabaron de gustar el aspecto de las aplicaciones de escritorio hechas con Swing o porqué siempre lo consideré un lenguaje demasiado complejo. Como decía, tuve que hacer un pequeño trabajo con Java, para lo cual tuve que utilizar NetBeans y empezó a picarme la curiosidad. La verdad es que visto de una manera objetiva es un lenguaje que tiene todos los puntos a favor para desarrollar con el: es gratuito y casi libre, multiplataforma, sirve tanto para hacer aplicaciones web como de escritorio, hay muchísima información sobre el mismo, muchísimas herramientas para trabajar con él y existe una amplia comunidad de programadores que lo respaldan. Esta primera toma de contacto me ha hecho ver la debilidad de los muchos prejuicios que siempre he tenido con este lenguaje y a abierto mi interés por aprender más de él.

Por último, me declaro seducido por ‘Los hombres que no amaban a las mujeres’, el primer libro de la trilogía Millenium de Steig Larsson. Las primeras 500 páginas del libro se me han hecho cortas, y hace tiempo que no disfrutaba tanto con un libro. Aprovecho cualquier momento libre para leer las aventuras de Mikael Blomkvist y Lisbeth Salander, una pareja un tanto peculiar que me están haciendo pasar unos momentos de lectura sumamente agradables.

a mi iMac le ha salido una rayita

A mi iMac le ha salido una rayita que cruza la pantalla de arriba abajo. La raya es de color amarillo y tiene un pixel de ancho. Cuando le cambio la resolución a la pantalla la raya sigue en el mismo sitio. No es que me impida trabajar, pero me chincha mucho ver la rayita dichosa. Menos mal que contraté una ampliación de garantía, porque el ordenador tiene más de un año y no tengo claro que me entrase en la garantía si no hubiese contratado la ampliación.Ahora toca hacer backup de todo lo que tengo metido en el ordenador, llevarlo al servicio técnico y esperar que la cosa se resuelva rápido. Menos mal que he conseguido que me presten un ordenador mientras dure la reparación, que espero que sea breve.

declutter, la palabra de moda

Una de mis grandes manías tiene que ver con el entorno de programación, con el sitio físico donde realizo mi trabajo. Intento ser organizado en mi estudio, controlar el caos de mi mesa de trabajo y las estanterías donde guardo libros, apuntes, papeles y revistas. Algunos de mis programas nacieron con la intención de intentar organizar este caos, como es el caso de Cuaderno de Bitácora y Azeta, pero muchas veces más que una herramienta lo que se necesita para ser organizado es una actitud mental. Por eso, de un tiempo para acá leo algunos blogs sobre productividad personal que tratan sobre el tema. En castellano mis preferidos son El Canasto, Hábitos Vitales, IQ vital y El inconformista. Hay un concepto recurrente en estos blogs que es el de intentar simplificar los aspectos relacionados con el trabajo y la vida. Este simplificar no se refiere unicamente a hacer algo mas sencillo, sino a eliminar todo lo innecesario. Como es habitual los americanos llevan el decluttering al paroxismo y aplican este concepto a todos los órdenes de la vida, desde la organización doméstica a las relaciones personales.Volviendo al tema de la programación podemos hacer decluttering de muchas maneras, desde refactorizando nuestro código fuente a ser organizado con la instalación de nuestro PC. Algunas ideas para este decluttering de nuestro PC son las siguientes:

  • Instala unicamente aquellas aplicaciones que vayas a usar.
  • Utiliza unicamente un programa de cada categoría: editor de código, procesador de texto, etc.
  • Desinstala aquellas aplicaciones que no hayas usado en un periodo grande de tiempo, por ejemplo en los últimos tres meses.
  • Usa un sistema rápido de recuperación para instalar rapidamente aquellas aplicaciones que necesites.
  • Ten una estructura de carpetas organizado por temática que te permita localizar rapidamente lo que buscas.
  • Ten un escritorio despejado, sin sobrecargarlo de iconos. El escritorio de mi PC está organizado en carpetas, que son las mismas desde hace años, y dentro están los accesos directos a las aplicaciones que uso. Uno de mis escritorios.
  • Utiliza un lanzador de aplicaciones. Contribuirá a mantener despejado tu escritorio.
  • Realiza limpiezas periódicas de tu PC con herramientas como CCleaner u Onyx.

apple y el sindrome de estocolmo

El pasado martes hubo keynote y se presentaron los nuevos portátiles de Apple. Frente a los rumores de que habría una bajada de precios en los nuevos modelos, estos son aun más caros que los anteriores. Sin embargo, leyendo algunos de los blogs sobre Apple en castellano, muchos de los post se dedican a justificar el precio de las nuevas máquinas. Tan sólo algún post crítico, pero pocos. Como si todos los seguidores de Apple hubieran quedado tan alucinados con los nuevos cacharros que son incapaces de verle la matrícula, como si todos fuesen empleados de Apple o padeciesen el síndrome de Estocolmo.Yo tengo en casa un iMac del que estoy muy contento. Como ordenador de mesa no tiene comparación en cuanto a calidad, ocupa muy poco espacio y es muy silencioso. Pero tengo tan claro que ahora mismo me compraría un portatil de Apple. No con esos precios. No entro ni salgo en la calidad del ordenador, que por otra parte no he visto, ni en la maravillosa carcasa hecha con un innovador proceso de fabricación, ni en todas las demás mejoras e innovaciones del ordenador. Me parece sencillamente un precio descabellado.Sigo pensando que los mac son excelentes ordenadores, que en determinados sectores de actividad su potencial es mucho mayor que cualquier otro entorno, pero creo que con precios como los presentados esta semana pierden la oportunidad de ganar mercado y ser una alternativa real para el usuario medio.Hace poco comentaba con un amigo, linuxero convencido, que lo de Apple era algo inexplicable. Que mucha gente que criticaba a Microsoft con su política sobre Windows se pasaba a Apple y se quedaba tan contento, cuando Apple es doblemente propietaria en cuanto al hardware y al software sobre sus productos. No me queda más remedio que darle la razón a mi amigo y decirle que al final acabaremos todos con Linux.

mediaboxAdvanced

 En mi anterior entrada comentaba que en la nueva web quería mostrar los pantallazos de las aplicaciones mediante un efecto de lightbox. Estuve probando lightbox y slimbox y los dos me gustaron. El problema vino a la hora de mostrar videos de una manera similar. El motivo de querer mostrar videos es por mostrar la potencia del autocompletado, que es la nueva funcionalidad de los programas.Estuve probando videobox, pero no conseguí hacerlo funcionar al mismo tiempo ni lightbox ni con slimbox. Por lo visto hay problemas entre las versiones de mootools que usa videobox y slimbox, y entre videobox y lightbox porque usan eventos similares para cosas distintas y hay conflictos entre ellos. Como no soy un experto en javascript me puse a buscar una librería que ofreciera la funcionalidad conjunta, mostrar imágenes y videos con el efecto de lightbox, y encontré mediaboxAdvanced que ha resultado ser la solución a todos mis problemas. Permite mostrar imágenes, videos y otros elementos de la manera que yo quiero.De momento he probado a subir el video del autocompletado a YouTube, pero le cambia la resolución a una menor a la original del video con lo que se pierde calidad. Tengo que probar con otros sitios de almacenamiento de videos para ver de mostrar el video a la resolución original sin que pierda calidad.Como primicia para los lectores del blog, aquí teneis el video del autocompletado en Cuaderno de Bitácora.

[youtube]http://es.youtube.com/watch?v=AXG7MH-oUkI[/youtube]

acerca de la web alanit’08

Hace algún tiempo comenté que quería probar cms ligeros para la nueva web de alanit, que he dado en llamar alanit’08. La verdad es que pronto deseché la idea del cms porque no tenía nada claro como integrar el proceso de compra con el cms. El siguiente paso fue probar con WordPress, pues ahí tenía la posibilidad de hacer la página de compra como una página con entrada independiente del blog. Así que me puse a mirar plantillas para coger ideas, y me llamó mucho la atención las plantillas de tipo magazine, en especial una llamada Mimbo. Creo que a estas plantillas se le pueden sacar mucho provecho para hacer publicaciones on-line que quieran evitar el formato blog tradicional.Al final he optado por hacer la web a mano. Como había cosas de CSS que no tenía claras, en especial el modelo de cajas, me he leido el manual de Introducción a CSS de librosweb.net que recomiendo encarecidamente. El manual es realmente bueno, y no creo que desmerezca de cualquier libro que se pueda comprar en una librería. También he estado mirando editores html/php/css y he encontradado uno que me ha gustado mucho. Se llama WeBuilder 2008 y es un editor de código orientado a lenguajes web muy recomendable.En cuanto a la web en si, he optado por un diseño ligero y está bastante influenciada por alguna web de software para Mac que he visitado ultimamente. Va a tener una sóla página por cada programa donde muestre todo lo relacionado con el mismo. Quiero mostrar capturas de pantalla con Lightbox y también quiero incluir videos para mostrar la funcionalidad de autocompletado. He hecho pruebas de screencasts con una aplicación gratuita llamada TipCam y funciona bien. Ahora tengo el problema de que Lightbox no se lleva bien con videobox, y que este último no muestra FLV que es el formato de salida por defecto de TipCam. Como alternativa estoy viendo la posibilidad de subir los videos a YouTube y tirar de ahí, pero es algo que tengo que probar.

Pero todo esto a ratitos, cuando el señorito me deja.

programa de registro de usuarios

En alanit además de los programas que vendemos tenemos un programa de uso interno: RUX, nuestro programa de registro de usuarios. Este programa lo usamos para muchas cosas, la principal es anotar los datos de nuestros usuarios para llevar el control de las licencias vendidas. Luego esta información nos permite desde generar los datos de registro para enviarlo al usuario hasta realizar listados de estadísticas de ventas por meses. Otro punto fuerte del programa es la generación de la información para el pago de impuestos de los programas vendidos. Muchas veces los usuarios pierden los datos de registro, por ejemplo al cambiar de PC o formatear el que tienen, y RUX nos sirve para comprobar que versión del programa registró el usuario y volverle a enviar su registro. RUX genera la licencia del programa, que se manda por e-mail al usuario. También genera listas de correo para hacer  mailings cuando sacamos una nueva versión o alguna promoción de software.El programa permite capturar los datos de registro desde el portapapeles, al que se han pegado desde el formulario de registro que recibimos cada vez que alguien registra un programa. El alta del registro también se puede hacer via teclado, o duplicando los datos de un registro anterior.El aspecto del programa es el siguiente:

El formulario donde se introducen los datos de cada registro es el siguiente:

diseño de iconos

Una de los elementos que ayuda a dar el salto de calidad a un programa es un icono propio y reconocible. Tanto si piensas hacerlo tu mismo, como si lo vas a encargar a un profesional debes tener en cuenta estos 10 errores en el diseño de iconos que no debes cometer.Todos los iconos de los programas de alanit son personalizados, partiendo de ideas propias para cada uno de ellos. Cuando encargamos un icono primero pensamos nosotros el diseño que debe tener y luego le pasamos la información al diseñador, que es quien le da forma a nuestras ideas.

compilación condicional

La compilación condicional es una característica de los lenguajes que usan preprocesador y permite incluir un determinado trozo de código en la compilación en función de una directiva de compilación.  En xHarbour podemos definir una directiva de compilación usando el flag -d al invocar al compilador, de esta manera:

xharbour miprograma.prg -d__directiva__

Dentro de nuestro programa usaremos la sentencia #ifdef para indicar que acción ejecutaremos en caso de tener definida la directiva de compilación:

#ifdef __directiva__Accion1() #else Accion2() #endif

Si al compilar el programa tendremos definida la __directiva__ en el ejecutable unicamente se incluirá la llamada a Accion1(), mientras si no la tenemos definida sólo se incluirá la llamada a Accion2().La pregunta del millón es: ¿ en que difiere esto de usar una variable de nuestra clase aplicación o una variable global ? Pues que si hacemos esto estamos dejando rastro de lo que hacemos, en el ejecutable se incluye la sentencia condicional y se ejecuta cada vez que corre la aplicación. Con la compilación condicional no introducimos la sentencia condicional en el ejecutable, sino unicamente la acción deseada en función de si la directiva está o no presenteal compilar.Usando la compilación condicional es muy sencillo crear versiones distintas de un mismo programa con un mínimo esfuerzo, con la particularidad de que no dejamos ningún rastro en nuestro programa de que tenemos distintas versiones del mismo.