99 bottles of beer

Septiembre 23rd, 2008

Se trata de una canción muy tonta en inglés, que cuenta desde 99 botellas de cerveza hacia atrás, repitiendo siempre la misma estrofa.
99 bottles of beer es un website GENIAL, en el que se expone un algoritmo que canta ésa canción, programado en cientos de lenguajes distintos (ahora mismo está en 1227 lenguajes).

Están los clásicos de toda la vida, yo me puse nostálgico con la versión en BASIC, ya que fue el primer lenguaje que programé en mi vida, cuando tenía 9 años y con un ordenador Amiga500.

También me hizo gracia la versión en C++, que me recordaba a la universidad. Y es que ahora se estudia java en mi antigua facultad, pero hubo un día en que allí estudiábamos hombres de pelo en pecho, y programábamos en C y C++.

Me han hecho gracia también las versiones en Ruby y en Python, los lenguajes de moda en el desarrollo web. Yo programo Ruby on Rails, y un poquito de Python tmabién, con Cherrypy y Cheetah. En realidad me gusta más el algoritmo en Python que en Ruby, pero claro, hay que contar con que está hecho en el lenguaje puro, sin el framework de Rails…

Curiosidad! me han encantado las versiones de procmail, de Asterix (s/ix/isk/), y de vim… como buen alma de sysadmin.

Y entre las rarezas me han llamado la atención Brainfuck, Whitespace y Cow, que son un verdadaero pain-in-the-ass.

Curiosa por cierto la versión en Perl, que viene ofuscada mediante un módulo del CPAN llamado Acme::EyeDrops (+ info).

En realidad no he querido buscar nada más, porque entre pasearme por los lenguajes y leer hilos e hilos de comentarios he pasado unas 2 horas anonadado. Así que cierro la página porque sino perderé el día entero.

Sendmail con attachments

Mayo 22nd, 2006

Buscando una herramienta para exportar un dump de Oracle8 en formato SQL de texto plano, he encontrado el siguiente script, que sirve para enviar mensajes de correo desde línea de comandos CON FICHEROS ADJUNTOS usando sendmail:

#!/bin/ksh

# --------------------------------------------------------------------
# Script:	unix_mail_withattachments.ksh
# Aurthor:	Ravin Maharaj
# Purpose:	Use sendmail to e-mail messages from Unix with
#		file attachements
# --------------------------------------------------------------------

SUBJ="Send mail from Unix with file attachments"
TO=someone@domain_name
CC=someoneelse_1@domain_name,someoneelse_2@domain_name
(
cat << !
To : ${TO}
Subject : ${SUBJ}
Cc : ${CC}
!

cat << !
HOPE THIS WORKS
This sample E-mail message demonstrates how one can attach
files when sending messages with the Unix sendmail utility.
!

uuencode ${file_1}  ${file_1}
uuencode ${file_2}  ${file_2}
uuencode ${file_3}  ${file_3}
!
) | sendmail -v ${TO} ${CC}

Evidentemente falta probarlo con bash. Lo dejo aquí por si a alguien le interesa… yo por mi parte haré pruebas esta semana.

Publicar código en Wordpress 2

Abril 26th, 2006

Lo cierto es que como gestor de contenidos para blogging Wordpress está muy bien, sobretodo desde que en su segunda versión incorporó el editor wysiwyg. Aún así, sigo encontrando un gran fallo en la dificultad del mismo para la exposición de código. Sigo sin entender por qué no incorpora FCKeditor de serie, que es mucho más cómodo, completo y fácil de utilizar.

Sea como sea, ante la escasez de herramientas para el markup de código, he copiado los estilos del blog de pof para el tag pre. Espero que no le importe, pero conociéndole estoy seguro de que sus CSS son GPL :-D

Así, aunque siga sin poder anidar el código porque el editor no respeta los espacios ni los transforma a HTML, por lo menos se verá claramente lo que es código y lo que no:

#!/bin/bash
echo "Che mussol!     OvO"

Cherrypy 2.2 con Apache2

Abril 26th, 2006

cherrypy_logo.jpgHace tiempo que quiero empezar a programar python para entorno web, y un ex-compañero de trabajo de servidores.com me ha explicado algunas cosas (el resto lo estoy aprendiendo del Dive into python).

Entre otras cosas,me aconsejó usar Cherrypy como framework y Cheetah como gestor de plantillas. El problema lo he tenido para hacer funcionar el conjunto Cherrypy-Apache, ya que el framework de cherrypy incorpora un servidor web que recibe las peticiones en un puerto propio, y Apache debe gestionar el traslado de URLs (si se quiere que quede bonito). Es posible hacerlo con mod_python o con scgi, pero una manera simple y eficiente de hacerlo es con mod_rewrite, que es como yo lo he hecho.

Aclaro también (muy importante) que el editor wysiwyg de Wordpress no me guarda las anidaciones en el código, así que debereis hacer caso al editor de texto si detecta el highlight y hace autoindent (vim lo hace perfectamente) porque es CRUCIAL, la diferencia entre que los ejemplos funcionen y que no funcionen.

Leer el resto del post »