PythonJuly 1, 2008 8:34 pm

Hoy es mi cumpleaños, me ha llamado mucha gente que se ha acordado, gracias a todos. Para celebrarlo he añadido una nueva funcionalidad al script de las peliculas que tanto ha dado que hablar.

Ahora, cuando se añaden nuevas películas a la lista se ponen en negrita con un letrero parpadeante al lado en rojo que reza "Novedad".

Para lograr tal hazaña, hablé con mi amigo Miguel Angel que me comentó que hiciera un tree y luego un diff al árbol de directorios para ver que había cambiado, nada más lejos, la solución que yo propongo se apoya en la teoría de conjuntos, si tenemos un conjunto A con x elementos y un conjunto B con x + n elementos podemos hacer la operación diferencia para obtener los n elementos que difieren en los conjuntos. Estos n elementos son las novedades, así, mientras se añaden títulos al HTML se diferencian en si están contenidos en la lista de novedades o no. 

Para obtener las listas me he apoyado en otro script Python que hice en su día y que recorre el árbol de directorios, lo he modificado para que en lugar de hacer una copia espejo añada cada elemento a una lista. 

Como siempre, el código fuente aquí

También me he comprado una bici. 

PythonMay 21, 2008 8:27 pm

Sigo con la labor de traducir mis script de Bash a Python y en este caso he trabajado con el que se encarga de avisarme de que hay nuevas versiones en la documentación en inglés de Gentoo y que tengo que traducir.

Soy traductor de la documentación de Gentoo y tengo a mi cargo los documentos de Guía de compilación optimizada, Guía de configuración de XFCE, la Guía Gentoo de Bluetooth y la Guía de virtualización con XEN.

La documentación se sincroniza con cvs y está escrita en xml, el programa coge los cuatro documentos antes listados y los compara con la versión inglesa en busca de una nueva versión. En caso de nuevas versiones avisará con un correo electrónico. Es secuencial, sólo comprueba mis documentos. Se puede implementar en un bucle para saber el estado general de la documentación.

Bueno, el script aquí. 

PythonMay 18, 2008 12:33 pm

Me he decidido a aprender Python, para ello, lo primero que estoy haciendo es traducir mis script de Bash al nuevo lenguaje. Mucho Google y mucho leer, probar, corregir y volver a probar. De momento no veo que sea demasiado complicado, aunque aun no he profundizado mucho.

El primer script que he traducido ha sido el del temporizador, no tenía apenas dificultad.

#!/usr/bin/python
import sys
import time
import os
tiempo = input("Introduzca el tiempo: ")
tiempo *= 60
time.sleep(tiempo)
for i in range(3):
os.system('beep')
time.sleep(1)

El segundo script, lo he escrito para que mi amigo nickel pueda practicar con mi script de las peliculas, él aprende Ruby.

import os, os.path
import glob
def listado(path):
try:
for fichero in os.listdir(path):
fname = os.path.join(path, fichero)
if os.path.isdir(fname):
os.makedirs(target + fname) # crea directorio y padres
listado(fname)
else:
print fname
file = open(target + fname, "w")
file.close()
except OSError, e:
print e
path = "/mnt/backup/pelis"
target = "/home/nordri/target"
# Creamos la raiz del objetivo
if not os.path.exists(target): os.makedirs(target)
if not os.path.exists(target + path): os.makedirs(target + path)
listado(path)

Este script genera un árbol espejo del árbol path pero con los archivos vacios. Útil para practicar si quiere obtener el mismo listado de pelis que me sale a mi. No creo que tenga ningun problema en implementarlo. Yo mismo he notado como Python generaba el árbol sin preocuparme de los caracteres extraños que pueden contener los títulos de las pelis. De echo, seguro que la implementación suya le da mil vueltas a la mia, este chaval es un genio.