Code Monkey escrito en Delphi

Si eres programador, probablemente has escuchado la canción Code Monkey, que trata sobre un día de un programador cuyo jefe solo le obliga a escribir código. Pues en el siguiente video, verás la letra de la canción escrita en el lenguaje Delphi al mismo ritmo de la canción y lo mejor de todo es que el código compila, así que disfruta de un rato geek:

Hace 6 años en esa fecha: Archlinux 2009.02 ha sido lanzado

Liberado jQuery Archive List 3.0

Luego de mas de un año sin poder dedicarme a este proyecto personal, he podido liberar la versión 3.0 de jQuery Archive List un widget de WordPress para mostrar el historial de sitio de una mejor manera y con efectos de jQuery. El salto a la versión 3, es debido a grandes cambios en el código de Javascript y en algunas cosas internas de plugin.

Entre las mejoras de esta nueva versión podrán encontrar:

  • Re-escritura completa del código Javascript, ahora ocupa menos espacio, código mas entendible y debería funcionar mas rápido.
  • Finalmente he agregado soporte para tipos de entradas personalizadas, así que puedes usar este widget si tienes tipos de contenido personalizados.
  • Agregué la clase active a los elementos que enlazan a la página actual.
  • Agregué el atributo de título a los enlaces para generar código HTML validado por la W3C.
  • Se agregó traducción al Holadés (gracias a Patrick Schreibing).
  • Se migró la selección de categorías al API de WordPress.
  • Se solucionó errores de exclusión de categorías.
  • Se solucionó el error de la ausencia de la clase expanded  en los meses (gracias to pjarts).
  • Se solucionó el error de no expandirse los meses al seleccionar algunas opciones.

Descárgalo desde el gestor de Plugins de WordPress o desde el sitio oficial de jQuery Archive List Widget. Y cualquier reporte o duda, no te olvides de reportarla en los foros de soporte de WordPress.

Optimiza el HTML, CSS, JS e imágenes de tu sitio web con Gulp

Uno de los retos de los desarrolladores web al momento de crear páginas web, es encontrar el equilibrio perfecto entre ofrecer un sitio con excelente apariencia visual y usabilidad, pero cuyo tamaño sea lo menor posible para que la carga sea rápida. Pues un sitio web rápido permite: tener mas visitas con el rendimiento actual del servidor, se ahorran costos de ancho de banda, los usuarios sienten que es una buena página y navegan mas tiempo por ella, entre otras. Este procedimiento incluye varias tareas que realizan muchos desarrolladores web como: usar las versiones reducidas (comprimidas) de Javascript, comprimir y ofuscar nuestro código del lado del cliente,  optimizar las imágenes del sitio, comprimir los archivos CSS, combinar todos los archivos CSS y Javascript en un sólo archivo (para cada tecnología) para reducir el número de conexiones, etc. Algo que no es complicado pero consume tiempo y que se debe repetir cada vez que se hacen cambios en el sitio.

Gulp

Como este proceso es repetitivo y consume tiempo, lo mejor es hacer un script que automatice cada etapa, pero hoy en día existen herramientas como que nos permite facilitar todo lo mencionado anteriormente. En este artículo hablaré sobre Gulp, una herramienta para automatizar tareas que hace lo mismo que GruntJS pero es mas fácil de usar y entender.

¿Cómo empezar?

Para instalarlo, lo hacemos a través Node Package Manager de forma global para que se instale como un comando del sistema y poder ejecutarlo en cualquier parte:

npm install -g gulp

Luego en la raíz del proyecto creamos un archivo gulpfile.js donde especificaremos las tareas a realizar:

var gulp = require('gulp');
gulp.task('default', function() {
});

Añadir una tarea

Una tarea es un conjunto de procesos, por ejemplo, optimizar el código JS consiste en: reemplazar algunas liberias por sus versiones CDN, utilizar las versiones minificadas de librerías de terceros, luego concatenar los archivos, minificar y actualizar las referencias en el HTML. Cada uno de estos procesos podemos encontrarlos en el buscador de complementos de Gulp (en caso de no existir alguna puedes crearla y publicarla en Github) y se instalan con npm.

Gulp posee una importante característica: su sistema de flujos entre tareas. Cada una de ellas recibe un conjunto de data (generalmente archivos), realiza un proceso en ella y produce nueva data para ser enviada como entrada a otro flujo. Esto permite a tareas que modifiquen gran de archivos, hacer este procedimiento en RAM y solo escribir en el disco cuando ya se ha terminado de procesar todos los archivos, por lo que se ejecutará muy rápido.

Para verlo en acción, haremos una tarea para reducir el tamaño de los archivos JS como ejemplo, entonces nuestro primer paso es instalar el plugin uglify con NPM:

npm install --save-dev gulp-uglify

Luego se deben hacer dos cosas en el archivo gulpfile.js, una es importar esta el complemento en las dependencias y asignarla a una variable, luego con esta variable podemos ejecutar la función que se encargará de (en este caso) reducir el tamaño del código javascript. Para ello debemos hacer lo siguiente:

var uglify = require('gulp-uglify');
gulp.task('comprimir', function() {
gulp.src('lib/*.js')
.pipe(uglify())
.pipe(gulp.dest('dist'))
});

Como podrás observar, hemos creado una tarea llamada comprimir , que recibe un conjunto de archivos (los archivos JS ubicados dentro de /lib), crea una tubería y ejecuta uglify que se encargará de comprimir cada uno de los archivos, finalmente entrega el resultado a la tubería que se enviará a la ruta de destino (esta se puede definir a donde uno desee). Así sucesivamente podemos ir creando procesos como los mencionados anteriormente y luego agruparlo en unas tareas mas generales, por ejemplo, tareas para generar una versión para depurar (cuya fuente no este comprimida), una versión para producción, una versión de producción para pruebas, entre otros. Esto lo puedes hacer al final haciendo algo como esto:

gulp.task('produccion', ['comprimir', 'copiar','cdn', 'less']);

Ejecutar las tareas

Finalmente puedes ejecutar el comando gulp en la raíz de tu proyecto y empezará a realizar todas las tareas de forma automática. En caso de que quieras ejecutar solo una tarea, puedes pasar por parámetro el nombre de la tarea:

gulp produccion

Con esto generas la versión de producción, o  por ejemplo, si tienes una tarea llamada less para generar los archivos CSS desde LESS, simplemente ejecuta:

gulp less

Tareas recomendadas

Para optimizar un sitio web, generalmente utilizo imagemin, jshint, minify-css, notify, imagemin-pngquant, uglify, usemin. Con estas puedo comprimir imágenes, mejorar el código javascript, concatenar archivos, reducir el tamaño, entre otros. Aunque te recomiendo leer un artículo de Addy Osmani sobre optimización de webs, pues lista una gran cantidad de tareas que puedes ir probando para usar al momento de mejorar tus sitios.

Finalmente, como te darás cuenta con Gulp puedes crear sitios web mas óptimos y ahorrando mucho tiempo. Existen una gran cantidad de tareas existentes que puedes agregar a tu proyecto y facilitar tu trabajo, por eso te recomiendo chequearlas en el buscador de plugins de Gulp y si no existe, puedes crearla y ayudar a otros programadores que necesiten algo similar.

Hace 3 años en esa fecha: Google Chrome para Android

Mi entrevista en Coders Venezuela sobre desarrollo de WordPress y mas

Hace unas semanas acepte la invitación de Osledy Bazo para participar en un proyecto de un podcast para Coders Venezuela sobre desarrolladores web Venezolanos, porque desde hace varios años soy seguidor del sitio y me gusta participar en este tipo de cosas. La entrevista, esta centrada en el desarrollo para WordPress, donde he estado realizando trabajos y plugins de código abierto desde hace tiempo. Sin embargo, en algunas partes hablo un poco sobre mi vida personal, trabajos, ideas, la academia, entre otras cosas.

En fin, les recomiendo escuchar la entrevista y si les gustó, compártanlo para apoyar este proyecto, pues me parece interesante para conocer programadores locales.

Enlace del podcast:

Segundo Podcast de Coders Venezuela – Miguel Angel Useche sobre desarrollo de plugins para WordPress.

Hace 4 años en esa fecha: Dear Microsoft (un carta abierta por Dan Bull)

Hace 9 años en esa fecha: Como desactivar los tabs del msn.

¡Mi blog cumple sus primeros 10 años!

En este mes de enero se cumplieron los primeros 10 años de haber iniciado este blog, a pesar que el sitio lo hice en el 2003, no fue sino hasta principios de 2005 que empecé a escribir artículos sobre mis opiniones sobre temas que ocurren el mundo informático. En ese momento ya habían pasado varios años del surgimiento de bloggers y no era “la moda” tener uno, pero mi motivación inicial fue de expresar mis opiniones en un sitio propio, pues en esa época las redes sociales no se usaban masivamente (o no existían) y no habían sitios como Medium o Twitter donde pudiese expresar o compartir algo.

Evolución en estos 10 años

Aunque suene poco tiempo, para un sitio web es bastante, es casi que la mitad de vida de la web y obviamente durante este tiempo muchas cosas han cambiado, por eso quiero compartirles mi experiencia a lo largo de este tiempo en diversos aspectos:

Tecnológico

La primera versión constaba de HTML puro, luego de varios artículos me dí cuenta que no era viable seguir así, por ello migré a Simple PHP Blog, para ese entonces (2005) no sabía usar las base de datos e instalé este motor que me permitía montar un blog con todas las características sin tener que usar una B.B.D.D. Luego por recomendación de Richzendy, en algún punto del 2006 migré a WordPress que es el motor que todavía sigo usando, aunque lo he estado actualizando según las necesidades tecnológicas: agregando versión para móviles, luego diseño adaptable, uso de estándares, soporte a varios navegadores, he  realizado 4 cambios de diseño a lo largo de años, mejoras en rendimiento, entre otras.

Como autor

A lo largo de estos 10 años, he cambiado bastante como escritor. Respecto al contenido, si leen mis primeros artículos, observarán mi extremismo hacia el software libre. Cuando empecé estaba en la etapa que descubres el software libre y deseas que todo aplicación en el mundo sea GPL, por eso generalmente mis primeros artículos era criticando a Microsoft o al software propietario, pero luego maduré y empecé a compartir mas sobre programación, aplicaciones que recomiendo, libros del área informática, experiencias, eventos locales, entre otros.

Un gran cambio respecto a hace una década, es la periodicidad de publicaciones, pasé de escribir cada 3-4 días a 2 o 3 veces al mes debido a menor disponibilidad de tiempo y como se popularizaron las redes sociales, puedo expresar ciertas cosas en ellas y no tengo la necesidad de extenderme escribiendo una entrada del blog. Hace unos años noté que el mayor tráfico de visitantes proviene desde los buscadores con la necesidad de leer sobre un tema en particular. Por eso, me concentro ahora en crear artículos de mejor calidad, evito repetir cosas que se pueden conseguir en otros lugares y no siento presión de estar escribiendo artículos lo mas seguido posible.

Otro cambio que se puede notar a lo largo de estos años, es mi forma de redactar. Al principio era muy informal al igual que mi forma de hablar, pero al momento de ganar visitantes de otros países tuve que ajustar algunas palabras para usar un español mas internacional y tal vez por madurez mental, ahora escribo mas formal pero manteniendo similitudes con mi forma de hablar.

Profesionalmente

Este blog es el producto de mayor importancia para mí, al hospedarlo y mantenerlo yo mismo, me permitió aprender antes que muchos todo el proceso de desarrollo web y descubrir el área a la que me quería dedicar como profesional. En cada actualización de la plataforma he logrado aprender nuevas tecnologías web y me obliga estar al día, los artículos de tecnología me ha permitido usarlo como currículo al momento de mostrar mi experiencia, algunos lectores se han convertido en clientes al observar mi experiencia en algún lado.

En el 2009, tuve la necesidad de crear algunos complementos de WordPress para solventar unos problemas que tenía este blog, los decidí liberar bajo licencia abierta y me permitió dedicarme un tiempo a desarrollo de sitios con este CMS, inclusive conseguir unos clientes muy buenos.

Mi artículos preferidos

La siguiente lista incluye los 5 artículos con mayor significado y su respectiva razón para escogerlos, me costó escogerlo pero luego por eliminación me quedé con los siguientes:

  • ¿Google dominará el mundo? (Nov. 2005): me sorprende que en el primer año del blog, hace 10 años, ya tenía en mi mente la idea de Google dominando en el mundo, mas aún al tomar en cuenta que en esa época no existía Android ni Chrome, ni Google tenía el poder que posee ahora. Eso me recuerda que he estado paranoico desde hace 10 años con el poder de Google que cada vez parece ser mayor.
  • Análisis ( Review ) de Archlinux 0.8 ‘Voodoo’ (Abril 2007): es especial porque este análisis le gustó tanto a las personas, que el artículo está enlazado en Distrowatch, la página mas famosa sobre distribuciones de Linux. Fue la primera vez que un sitio importante enlazaba a contenido de mi blog, lo cual me alegró mucho en ese tiempo. A pesar de los años, sigo recibiendo tráfico desde allí, si leen el artículo y observan los comentarios, se nota como la filosofía de Arch sigue vigente.
  • Mi opinión sobre la ley de videojuegos bélicos en Venezuela (Nov. 2009): fue un artículo escrito tarde en la noche en mi primera portátil, recuerdo que en ese momento tenía mucha rabia de que el gobierno de mi país hiciera una ley tan estúpida, el blog me sirvió como medio de expresión y me ayudó a calmarme. Al principio dudé en escribirlo porque nunca había tocado temas políticos, pero la respuesta fue muy positiva, me ayudó a conocer gente interesante en redes sociales que compartía mi opinión. Hace unos años me enteré que el artículo fue usado como cita para una tesis que estudiaron del tema, algo que me gustó bastante saber.
  • El software libre y su mezcla con la política en Venezuela (Mar. 2011): este artículo recuerdo que lo hice tras discusiones con varias personas a través de Twitter, donde para algunos colaborar/usar/apoyar el software libre te hacía partidario del chavismo (un movimiento político de izquierda en el país). Como también había vivido la experiencia fuera del teclado, escribí un artículo para tratar de hacerle a entender la gente que el software y la política de un país son movimientos e ideales aparte. Lo mas interesante fue ver la discusión que se formó en los comentarios, cada quien defendiendo su punto de vista y expresándose libremente :).
  • Disminución de la libertad de la información en la red en Venezuela (Feb. 2014): escrito en una época muy difícil en mi país, específicamente en la ciudad donde vivo. Inspirado tras un corte del servicio de Internet por varios días en el ISP del gobierno, después de varias censuras y bloqueos a sitios de Internet por parte del gobierno, como hacktivista y defensor de la libertad de la red a cargo de un blog del área informática muy visitado en la región…sentí la obligación de expresar sobre como poco a poco la calidad de la libertad en la red de redes en mi país ha bajado. Traté de explicar en un lenguaje simple el problema y como sabía que era un tema muy delicado, utilicé varias fuentes confiable para certificar que la información que transmitía no era falsa o politizada. La respuesta fue grande, muchos periodistas y personas ajenas a la informática ayudaron a transmitir el mensaje, me contactaron y logré establecer relaciones…¿Blogueras? Y confieso al día siguiente de su publicación, tuve la mayor cantidad de visitas en un día hasta el momento (aunque eso no era lo que buscaba).

Nota: Al momento de seleccionar estas 5 entradas, me llamó la atención como las 3 últimas son sobre problemas que ocurren en el país. No me había dado cuenta como para mí, es importante expresar mi punto de vista sobre problemas de índole venezolano a lectores de todas partes del mundo, a pesar que es un blog de tecnología.

Curiosidades

  • Al momento de publicar esta entrada, es el artículo mas largo que he escrito en el blog.
  • De los 472 artículos escritos en estos 10 años, solo he borrado 1 de finales del 2005 sobre el uso de RedHat en la administración pública. Hace unos años lo leí, me dio pena ver mi extremismo de software libre y lo borré.
  • Desde el 2007 el blog genera ingresos superiores al costo del dominio y servidor de almacenamiento.
  • A principios de 2015 por primera vez: cambié el nombre del blog, eliminé el Tux personalizado de la página principal, cambié las páginas de errores que fueron hechas en el 2003, el sitio inicial pasó a “archivo” y no le daré mas mantenimiento.
  • El sitio ha tenido los siguientes URL: http://usuarios.lycos.com/skatox, skatox.tk, skatox.com.ve (me regalaron y luego me lo quitaron), skatox.co.ve y desde el 2007 conservo el .com. Hasta hace unos meses la versión .tk estuvo funcionando sin problemas.
  • La mayoría de visitantes vienen de España y México, no de Venezuela :(.

Agradecimientos

Principalmente quiero agradecer a los lectores (sobre todo a los que comentan) porque son la mayor inspiración para mí para seguir escribiendo, luego agradezco a quienes comparten el contenido pues ayudan a transmitir el mensaje a mas personas. A Richzendy que ha sido el asesor técnico no oficial del blog (CMS, hosting, etc.) e inicialmente junto a Xombra, Gubatron, KodeGeek (no recuerdo otro de esa época que siga activo) que indirectamente me motivaron a crear un blog propio. A Planeta Linux por todos estos años compartiendo mi contenido por ahí, a Damian porque cuando tenía blog fue el primero en enlazarme, a Ghostbar y Alex quienes me enseñaron a monetizar el blog, a todos quienes me siguen enlazando y recientemente a Gespadas pues su blog me trae muchos visitantes, Planeta VaSlibre por tomar en cuenta este blog, y cualquier persona que haya entrado a es está página, disculpen sin no nombré a alguno.

Interesante como algo era un experimento, se volvió en un hobbie que genera dinero y forma parte de mí, espero volver a escribir un artículo similar el 2025 sobre los 20 años del blog.

Hace 8 años en esa fecha: Trusted Computing