A Django site.
Abril 24, 2010
» FLISOL 2010 en Carmelo

flisol_2010

Un año más que tengo la suerte de ser invitado por los organizadores del FLISOL en la ciudad de Carmelo, Departamento de Colonia, para participar durante toda la jornada del próximo sábado 24 de mayo.

Afiche_FLISOL_2010_Carmelo_Colonia

Cada año que voy a Carmelo, me sorprendo de la excelente organización que realzia la gente de Adec Informática, ellos son una academia de enseñanza de informática que funciona 100% sobre plataforma Linux, y se nutren constantemente de un sistema operativo y herramientas libres.

En representación del UYLUG estaré presentando cuáles son las ventajas de aprovechar las XO para fomentar la creatividad y la curiosidad de los niños; en particular la actividad Terminal y la programación Python. Me acompañan desde Montevideo los Profesores Diego Roselli y Fernando Da Rosa.

Otros amigos del UYLUG estarán en otras ciudades:

seguro me olvido de alguien, pues este es el año que se realiza en más ciudades de Uruguay, un total de ocho ciudades. Por supuesto un grueso de activistas del Software Libre quedan en Montevideo, en una jornada que brillará por si misma y por los invitados internacionales.

Todo esto nos presenta un festival que cada año se supera.

Abril 22, 2009
» Curiosidad en bash: Valores de salida de comandos “entubados”

Hoy me encontré con un problema en un simple script que hice para backupear algunas bases de datos MySQL:

#!/bin/sh
# Hace dumps de MySQL de las BBDDs especificadas

DBS="db1 db2 dbN"
DUMPDIR="/root/mysql-dumps"
ADMIN="alertas@midominio.com"
REPORT="/tmp/mysql-dump-bases-importantes.$$.log"
ERRORS=0
HOSTNAME=`hostname -f`

cd $DUMPDIR

for db in $DBS
do
        /usr/bin/mysqldump -Q $db | gzip -9 > dump-$db-`date +"%F_%T"`.sql.gz
        ERR=$?
        if [ "$ERR" == "0" ]; then
                echo "Dumping database '$db' done OK" >> $REPORT
        else
                echo "Dumping database '$db' FAILED" >> $REPORT
                ERRORS=1
        fi
done

if [ "$ERRORS" == "0" ]; then
        cat $REPORT | mail -s "MySQL Dumps on $HOSTNAME: OK" $ADMIN
else
        cat $REPORT | mail -s "MySQL Dumps on $HOSTNAME: ERRORS" $ADMIN
fi

rm $REPORT

Este script usa mysqldump para sacar una imágen de cada base de datos, y supuestamente guarda en la variable $ERR el valor de salida para enterarnos en caso que haya problemas, y mandar así el mensaje adecuado en el reporte.

El problema que tiene este script es que la variable $? retorna el valor de salida del último comando en un pipe, en mi caso corresponde a la salida del gzip, que siempre sale correctamente (al menos en este script). Entonces ¿cómo nos enteramos que pasó con un comando anterior en la cadena?

Bash (no conozco otros shells) tiene una variable $PIPESTATUS, que es un array con los valores de salida de una serie de comandos encadenados, por lo tanto lo único que hizo falta para corregir este programa, es reemplazar la línea que dice:

ERR=$?

…por lo siguiente:

ERR=${PIPESTATUS[0]}

El subíndice 0 corresponde al primer valor del array, y que coincide con el primer comando de la cadena de comandos.

¡Espero les sirva en algún momento!

Febrero 15, 2009
» Herramientas

Los programadores que usamos Python, no dependemos de herramientas externas al lenguaje en la forma que se depende de ellas cuando se usa un lenguaje como Java.

I can’t tell you how many times I’ve heard people say they wouldn’t use Ruby because it lacks automated refactoring tools. Ruby doesn’t actually need them in the way Java does; it’s like refusing to switch to an electric car because there’s no place to put the gasoline. But programmers are a stubborn bunch, and to win them over you have to give them what they think they want.

http://steve-yegge.blogspot.com/2007/02/next-big-language.html

Enero 5, 2009
» Código re-editable

“Debo confesar un fuerte prejuicio en contra de la moda del código reusable. Para mí, “el código re-editable” es mucho, mucho mejor que una caja negra intocable.”
Donald E. Knuth

Donald Ervin Knuth, es uno de los más reconocidos expertos en ciencias de la computación por su seminal investigación dentro del análisis de algoritmos y compiladores. Es Profesor Emérito de la Universidad de Stanford.

Se le conoce principalmente por ser el autor de la obra The art of computer programming (El arte de programar computadoras), una de las más respetadas referencias en el campo de las ciencias de la computación. Sentó las bases de y dio nombre al análisis de algoritmos y ha realizado numerosos aportes a varias ramas teóricas de la informática. Es el creador de TEX, del sistema de diseño de tipos METAFONT y del estilo de programación conocido como programación literaria (Literate programming).

Fuente: Wikipedia

Página web del autor: http://www-cs-faculty.stanford.edu/~knuth/

Este post es parte de Citas sobre programación.

Enero 1, 2009
» Citas sobre programación

A partir de hoy, 1º de enero, van a ir apareciendo durante siete días seguidos en este blogs citas, principalmente relacionadas con el acto de programar, que en muy pocas palabras encierran conceptos muy importantes: a veces superficialmente divertidos y otras más profundos. Además de la cita, voy a completar los posts que aparezcan con información del autor, links, fotos o alguna que otra anécdota para ilustrarla.

La primera es de Alan Kay.

“La mayoría del software actual es muy parecido a una pirámide egipcia, con millones de ladrillos puestos unos encima de otros sin una estructura integral, simplemente realizada a base de fuerza bruta y miles de esclavos”
– Alan Kay

Querido programador, espero que nunca te encuentres bajo el látigo construyendo una pirámide :).

Alan Kay, es un informático estadounidense, conocido por su trabajos pioneros en la programación orientada a objetos y el diseño de sistemas de interfaz gráfica de usuario. Kay colaboró en la creación de Squeak, un entorno para la creación y experimentación multimedia en 1995 mientras trabajaba en Apple y todavía sigue colaborando con el proyecto.

Fuente: Wikipedia

Octubre 25, 2008
» Ganandole a un bug de Intrepid Ibex

Bueno, en las ultimas 2 semanas me habia dejado de andar la version de desarrollo de intrepid y ya lo resolvi, pero queria compartir con ustedes el problema por que quizas a alguien mas le esta pasando o le vaya a pasar.
Resulta que arrancaba perfecto, me aparecia la pantalla de login, me logueaba y despues de loguearme aparecia el wallpaper y cuando iban a aparecer las barras de gnome… PLAF… pantalla de login de nuevo.
lo primero que se me ocurrio fue lo que ustedes se hubieran imaginado… sisisi, Xorg. pero resulta que lo que se iba al “joraca” era gnome-wm. como me di cuenta? no tengo idea, fue mas un presentimiento que otra cosa. creo que cuantos mas problemas ve uno mas aparecen esas cosas. (de vicenzo dijo una vez “cuanto mas practico mas suerte tengo)
El problema radicaba en que cuando hice un fresh install, sin mi home sino con uno nuevo esto no pasaba asi que llegue a la conclusion de que era uno de los archivos de configuracion de gnome de mi home, hice un mv de todo los archivos .gnome y los .confd y etc y levanto bien. Mi sospecha es que hay alguna setting de composite de metacity que esta molestando. todavia no aisle cual es pero por lo menos ya tengo intrepid de nuevo.
Si bien perdi todas mis configuracioens de gnome prefiero configurar todo de nuevo que volverme loco buscando en cada una de las settings.
Espero que esto le sirva a alguien que le pase lo mismo.
Saludos,
Lipe

Setiembre 9, 2008
» Juguemos a ser Google: Disco Project

Hace unos pocos minutos me encontré con un artículo que me alegró la semana.

Nokia Research Center ha desarrollado una implementación de Map/Reduce, una de las herramientas que Google utiliza para el procesado de inmensas cantidades de información.

El funcionamiento de Map/Reduce a grandes rasgos consiste en partir el conjunto de datos en pequeños segmentos y distribuir datos y código de ejecución en diferentes computadoras (Map) para que trabajen en paralelo. El resultado de este procesamiento luego es recuperado e integrado en un solo lugar para su procesamiento final y uso (Reduce). Se puede leer más acerca del tema en el paper publicado por Google.

Nokia Research Center comenzó un proyecto denominado Disco Project, que consiste en un servidor implementado en Erlang que nos permite como usuarios ejecutar scripts en Python (si, leyeron bien!) en forma distribuida y masiva.

En el sitio del proyecto tenemos un lindo tutorial que podemos probar desde nuestra propia PC, si tenemos un CPU multicore y GNU/Linux, claro está :-)

Agosto 28, 2008
» Ceibal JAM 2

El próximo sábado 30 de agosto y el siguiente sábado 6 de setiembre se realizará la segunda edición del Ceibal JAM en los laboratorios de informática de la Universidad Católica Dámaso A. Larrañaga.

El CeibalJAM es un movimiento social independiente de afiliación abierta y voluntaria, que busca nuclear a todos quienes tengan interés en contribuir al desarrollo de software con utilidad potencial para el Plan Ceibal; es un esfuerzo por desarrollar la capacidad local de crear nuevas aplicaciones y modificar las existentes para que atiendan a las necesidades específicas de la realidad uruguaya.

Ya hay algunas ideas de proyectos a impulsar en esas dos jornadas de trabajo, pero obviamente, estamos abiertos a cualquier idea o aporte. Por otro lado, en la agenda de esos días hay incluídos tutoriales en varios niveles, para los que no conocen programación para las XO.

Sin dudas, este CeibalJAM 2 se perfila como un motivador e interesante evento para cooperar con innovación nacional.