Jorge Fuertes

Consultor de sistemas infomáticos.
Administración de sistemas, desarrollo.

Programación

Mi primer programa en Go

300px-Ken_n_dennis

Me he decidido a probar esta cosa del “Go”, o “go-lang” de Google, al ver en la Wikipedia que uno de los que diseñaron el lenguaje es Ken Thompson.

El nombre es desafortunado, resulta difícil encontrar recursos en Internet al ser demasiado genérico, pero bueno, si vamos buscando por “golang” y “go-lang” la cosa mejora un poco.

He hecho un pequeño servidor concurrente que, cuando nos conectamos admite dos comandos: ping y end. Al primero responde con pong y al segundo con una despedida y una desconexión.

Hasta ahí nada impresionante, aunque lo bueno empieza cuando vemos el código, menos de sesenta líneas y porque lo he adornado pillando el hostname para probar más cosas, y, aquí lo bueno de verdad, es plenamente concurrente, podemos abrirle todas las conexiones que queramos que el tío va lanzando procesos internos hasta que se quemen los recursos (evidentemente habría que establecer límites y controles en un servidor de verdad).

Sin más os dejo el código por si tenéis curiosidad:

Configuraciones yaml en Padrino

Hace unos días que estoy jugando con el framwork Padrino. Se trata de una serie de añadidos sobre el microframework Sinatra que permiten utilizarlo para hacer aplicaciones más grandes. Pese a que parto de cierto desconocimiento de Ruby (el lenguaje en el que está programado y que se utiliza para desarrollar sobre él) creo que puedo decir que la curva de entrada es muy suave y que es divertido programar con él.

Necesitaba que mi aplicación de pruebas leyese al principio unos ficheros con datos en yaml para utilizarlos desde las vistas. Lo conseguí en un rato aunque no estoy orgulloso del código que seguro que a alguno de vosotros se os ocurre como mejorar, o yo mismo lo mejoraré en el futuro sabiendo algo más de ruby, pero de momento funciona. He escrito una página en el wiki de Padrino y podéis encontrarla aquí.

Configurando Git

Cada vez que quiero configurar un poco git no me acuerdo de como es y tengo que buscarlo, así que aquí lo anoto por si a alguien más le sirve:

# Nombre
git config --global user.name "Jorge Fuertes AKA Queru"
# Email
git config --global user.email jorge@jorgefuertes.com
# Alias para acortar comandos usuales
git config alias.ci commit
git config alias.co checkout
git config alias.st status
git config alias.br branch
# Salida coloreada
git config --global color.ui true

Para más opciones os recomiendo esta referencia de configuración de git.

Relacionado: Lo mismo pero en un script.

QMID: Queru’s Mail IMAP Dispatcher

Un clasificador de correo mediante protocolo IMAP, que puede funcionar en cualquier servidor, en un cron y clasificar el correo en otro servidor con una cuenta IMAP. Está escrito en php-cli y cualquiera puede meterle mano fácilmente. Si a alguien le es de utilidad, lo tiene en github:

README:


------------------------------
     ___  __  __ ___ ____
    / _ \|  \/  |_ _|  _ \
   | | | | |\/| || || | | |
   | |_| | |  | || || |_| |
    \__\_\_|  |_|___|____/

 Queru's Mail IMAP Dispatcher
------------------------------

INTRODUCTION:

QMID it's a mail sorter or dispatcher that's connect with your mail server using IMAP
and executes the rules defined at "qmid-rules.conf" over the Inbox messages, doing
the required actions like move, copy or delete the message.

ADVANTAGES OVER YOUR MUA RULES AND OTHER SYSTEMS:

  - QMID can live at mail server or at any server wich can connect to your imap server.
  - QMID can run from the cron, and execute the rules totally unatended.
  - QMID mantains your server folders clean and sorted.
  - You can connect to server with your mobile or tablet, and have the mail
    pre-sorted by QMID. Don't need to use your big computer's mua to sort.
  - QMID can be very fast if it's in the same server that your email.
  - Opensource and free (as in freedom). You can adapt it to meet your needs.
  - And finally, QMID it's KISS (Keep It Simple Stupid), very light, very clean, very easy
    to configure and install.

¿PHP 5.x para rato?

PHP5 es una gran tecnología. Funciona muy bien, es muy rápido, más que muchos que aseguran serlo, y tiene una completa implementación de objetos bastante fácil de manejar y sin molestar a quién sólo quiere programar unos scripts de forma procedural.

Todavía se ha liberado hace poco, en junio, la versión 5.3 de este popular lenguaje. Esta versión incuye algunas cosas que estaban previstas para la 6, como los namespaces, lo que me hace pensar que la versión 6 va a tardar un tiempo.

Según leo en tecnoretales, Zeev Suraski ha declarado que pasará bastante tiempo antes de que sea lanzada la versión 6. Sin embargo creo que es muy interesante que vayamos conociendo cuales son las novedades en las que están trabajando para dicha versión: