Mis andanzas y conocimientos: uno no aprende del día a la mañana

Nunca me he considerado una buena programadora, pero hoy tenía las ganas de avanzar un poco con mi nivel de programación… Realmente, siempre he sido una muy mala programadora, porque no era capaz de entender los conceptos que estaba leyendo o me estaban enseñando. Es simplemente que el enfoque era simplemente incorrecto. Es por ésto que muchas veces me atasco con tonterías…

Aprendí a programar y realmente hacer algo útil con lo aprendido en 2001 (lo de antes con el html en 1998 eran garabatos), cuando tuve la oportunidad de crear un programa para gestionar una imprenta en la que curraba en Cornellà. Además ahí ya estaba empezando a aburrirme, estaba jugando ya con un servidor en gnu/linux, y estaba jugando en hacer pequeños programillas chorras, como descargar los frames del radar de lluvias de la web de metereología y ponerlos en un gif para poderlo visualizar en el applet del tiempo de gnome2. Con ésto pillé curiosidad y sin darme cuenta ya estaba programando y cuando llegó la propuesta (que un poco fue mía porque estaba entusiasmada con lo que estaba haciendo… ¡estaba creando!) pues estaba preparada para ir más allá, con un objetivo, una meta.…

Arreglar el widget del tiempo de mate

Los usuarios del sistema de escritorio mate os habréis encontrado que ya hace unos días que el widget del tiempo no devuelve datos, el motivo de ello es que la página web de dónde se recolectaban los datos (weather.noaa.gov) ha dejado de funcionar. Para ello la solución es modificar la librería.

El código que hay en github puede requerir versiones de dependencias mas nuevas que las que hay en nuestro sistema, así que una de las soluciones es descargarnos el código de la versión que tenemos instalada en nuestro sistema.
Para no guarrear mucho mi sistema voy a descargarme el código en una maquina virtual (con la misma versión de sistema operativo que en mi portátil), instalar las dependencias necesarias para compilar la librería, descargar el código y modificar la librería, compilar la librería y finalmente copiar el fichero resultante a mi sistema.…

Gif animado lluvias meteocat.com

Pues harta ya de cada vez que llueve tener que ir a la página de meteocat.com a mirar simplemente lo que me interesa, hago que una maquina lo haga para mi y me genere un gif animado para ponerlo en el desklet del escritorio.

Para hacerlo funcionar simplemente necesitamos php5-gd:

# apt-get install php5-gd

el código

# Generador d'imatge animada del radar metereològic meteocat.com
# Desenvolupat per Blackhold
# 2011-11-16

# I get the json file
$file= file_get_contents("http://www.meteo.cat/servmet/radar/images/cappicor_catalunya_10dBZ/images.json");

# And process the data
#var_dump(json_decode($file));
$parsed=json_decode($file);
$array=$parsed->{'items'};

//echo $array[0]->{'src'};

$length=count($array);

for ($i=0;$i{'src'},"./"));

        imagegif($png, "./meteo.".$i.".gif");

        imagedestroy($png);
}

exec("/usr/bin/convert -delay 60 -loop 0 ./meteo.*.gif ./meteo.gif");
exec("rm ./meteo.*.gif");

Y para que se vaya actualizando de vez en cuando lo añadimos al cron que lo vaya verificando cada 6 minutos, periodo con el que se actualiza el json de meteocat.

# vi /etc/crontab
# generador meteocat
*/6 * * * * root php /var/www/meteocat.php

Aquí os dejo con un ejemplo (no abusar! el código es muy simple, lo puedes poner en local o en un servidor tocho -compartid los links!-).

Etiqueta pre

Pues una pequeña mejora gráfica en el blog, aunque no lo parezca leo vuestras críticas y peticiones, y la del pre, una etiqueta que uso bastante cuando pasteo código, la he modificado para que no quede cortada.

La propiedad usada es overflow y el pequeño añadido al código propuesto por xsb ha sido la propiedad overflow-y: hidden, para que no aparezca la barra de scroll vertical.

Aquí el pedacito de código:

section>pre {
	font-size: 1em;
	padding: 1em;
	border: 1px dashed #aa0000;
	color: #000;
	background-color: #FFFFDB;
	line-height: 1.1em;
	overflow: auto;
        overflow-y: hidden;
}

Como el template del blog es en HTML5, le aplico esta propiedad sólo al contenido principal, en este caso section.

Espero que os guste la pequeña modificación ;)

Muchas gracias!…

64k

Hace ya un tiempo alguien me comentó sobre gente que desarrollaba aplicaciones de generación de gráficos que apenas ocupaban unas pocas kb. El secreto está en los algoritmos, toda la renderización la lleva a cabo la tarjeta gráfica.

Aquí tenemos una demostración de lo que se puede llegar a hacer por ejemplo con 64k de programa.

Chaos Theory – Awesome 64k Demo!

Monos programadores

¡Anda! cuantas veces he dicho que esto de la programación es para monos! xD

La expresión es cierta, ya que en los 70 hubo un experimento dónde se trató de enseñar a programar a los monos, además de los estudios en cuanto tiempo un animal era capaz de escribir una frase del libro de Shakespeare en menos tiempo.…

HTML5: muestras de su potencia (vídeo y 3d)

Impresionante y al mismo momento inquietante demostración de lo que es capaz el HTML5 gracias a las etiquetas canvas y video (Canvas.drawImage()).

Con un simple pedazo de código es posible hacer cosas tan potentes como esto:

Pulsa el vídeo y verás como se esparce por toda la página y vuelve en si, como si de un replicador de estos de SG-1 se tratase!

En esta página encontraréis más información de como se ha hecho, también tenéis la alternativa de hacer un control+u y ver el código ;)…

HTML5

Pues si entráis a este blog con un navegador compatible habréis notado el pequeño cambio de look, pero no sólo cambia el look sino también el código… venga! dale al control+u!

Si si, HTML5! pues anda aquí lo tenéis, existe y es usable y según mi primera impresión super comprensible y fácil de modificar. Esto si, no he programado el tema del wordpress desde 0, he usado un tema de wordpress llamado H5 y he tratado de modificarlo de tal forma para que se parezca un poco al mandingo que tenía anteriormente.…

arrancando django y primer script

Pues parece que tras la correcta (espero) instalación de django, ahora toca empezar a hacer un primer script.

Para aquellos que os canséis de los comentarios o anotaciones estúpidas que hago tenéis la fuente en este link.

En una de las cajas de comentarios que hay comentan, si eres un phpero, python no es php! los ficheros que programas no van en /var/www en el caso que vayas a hacer una página web, esto puede ser incluso peligroso, así que creamos un directorio donde vivirán todos nuestros proyectos.

Para crear un nuevo proyecto lo haremos con el django-admin.py

$ cd ~/scripts/django
$ django-admin.py startproject holamundo

Esto nos crea un directorio con 4 ficheros con extensión .py:
* __init__.py: Es un fichero vacío que le dice a Python que este directorio debe tratarse como un paquete de python.
* manage.py: Una utilidad de consola que te permite interactuar con el proyecto Django de varias formas. Puedes leer todos los detalles sobre manage.py en django-admin.py y manage.py.
* settings.py: Propiedades/Configuración de este proyecto Django. Las propiedades de Django nos darán alguna pista de como funcionan.
* urls.py: Las declaracion de las URL para este proyecto; una “tabla de contenidos” de tu página bajo django.

Ejecutar el proyecto
Ahora vamos a comprobar que nuestro proyecto funciona (si, esto ya es un proyecto funcional, pero vacío). Para ello entramos al directorio del proyecto y escribimos:

$ python manage.py runserver
Validating models…
0 errors found

Django version 1.2 pre-alpha SVN-11638, using settings ‘holamundo.settings’
Development