jueves, abril 30, 2009

problema expat con cxfreeze

esto es por si alguna alma perdida tiene el mismo problema que yo y busca expath cxfreeze ImportError en google y no encuentra nada.

El problema viene cuando hacemos una aplicacion en python, usamos expat y despues lo queremos hacer un binario con cxfreeze, nos encontramos con un error que dice algo como

ImportError: No module named parsers.expat

el problema se soluciona agregando la siguiente opcion cuando llamamos a cxfreeze:

cxfreeze --install-dir install_dir --include-modules=_xmlplus.parsers.expat script.py

espero que le sirva a alguien

domingo, abril 26, 2009

Frankfurt

Después de mas de un año de haber vuelto de mi viaje a Alemania decidí organizar las fotos, son un montón, tengo muchas duplicadas y carpetas de todos mis amigos, hasta ahora lo único que logre fue unificar las fotos de Frankfurt, que es el lugar al que llegamos en el vuelo y estuvimos 2 días antes de partir para nuestros lugares definitivos.
Acá pongo una selección de las mejores fotos de Frankfurt.



En el parque botánico




El banco central europeo


pato en el hostel


Con tuza y lu en un mirador de un puente


Una plaza con muchos edificios antiguos




La costanera del Main




La salida del subte en la "ciudad universitaria" de Frankfurt

sábado, abril 18, 2009

problemas de pynotify con threads y gtk

agregue soporte para notificaciones en emesene 2, y de pronto la gui se empezó a congelar (la aplicación no porque se podía ver el log del protocolo que seguía pasando). Me di cuenta muy de suerte que el problema eran las notificaciones (había metido muchos otros cambios) ya que en debian no tenia python-notify instalado y andaba sin problemas y en ubuntu se congelaba, instale python-notify y se empezó a congelar de nuevo.

comente las lineas y andaba, por lo que era eso.. busque en google y vi un parche que en lugar de:

gtk.gdk.threads_init()

hacia:

gobject.threads_init()
gtk.gdk.threads_init()

probe con eso y salio con fritas.

este post es por si algún día les pasa algo parecido no tengan que pelear un buen rato para ver donde estaba el problema.

domingo, abril 12, 2009

Usos curiosos de cosas

Termine de leer los otros días "revelion en la granja" y no se me ocurría que libro comprar asi que decidí pedirle a google que me recomiende usando google sets http://labs.google.com/sets.

puse los que ya leí con temática similar al próximo que quiero leer a ver como me ampliaba el set, los que puse fueron:

* the time machine
* 1984
* animal farm
* blade runner
* brave new world
* 2001 a space odyssey

y me recomendo

* catch 22
* fahrenheit 451
* neuromancer
* harry potter
* atlas shrugged
* hamlet

de los cuales decidí leer fahrenheit 451 y quizás después neuromancer, el que no conocía de ahí era atlas shrugged que según dice wikipedia "Esta novela fue la última obra de ficción de Ayn Rand, antes de dedicarse sólo a la Filosofía. Con 645.000 palabras, y entre 1000 y 1200 páginas según ediciones, es también una de las novelas más largas jamás escritas." asi que la dejare para cuando tenga mas tiempo :P

viernes, abril 10, 2009

Presentacion javascript

Esta es una presentación que hice para el ciclo coffee and cookies de la utn de cordoba, fue hecho un poco a las corridas asi que no esperen algo muy pulido :D

sábado, abril 04, 2009

Reproducir audio en python multiplataforma

una receta de como reproducir un archivo de audio con python en linux, mac y windows.

si encuentran un bug, por favor avisen en los comentarios, solo lo probe en linux :)


import os

def is_on_path(fname):
"""
returns True if fname is the name of an executable on path (*nix only)
"""
for p in os.environ['PATH'].split(os.pathsep):
if os.path.isfile(os.path.join(p, fname)):
return True

return False

def dummy_play(path):
"""
dummy method used when no method is available
"""
print "can't play", path

if os.name == 'nt':
import winsound

def play(path):
winsound.PlaySound(path, winsound.SND_FILENAME)
elif os.name == 'posix':
try:
import gst

def play(path):
"""
play a sound using gstreamer api
"""
_player = gst.element_factory_make("playbin", "player")
uri = "file://" + os.path.abspath(path)
_player.set_property('uri', uri)
_player.set_state(gst.STATE_PLAYING)
except ImportError:
if is_on_path('play'):
play = lambda path: os.popen4('play ' + path)
elif is_on_path('aplay'):
play = lambda path: os.popen4('aplay ' + path)
else:
play = dummy_play
elif os.name == 'mac':
from AppKit import NSSound
def play(path):
"""
play a sound using mac api
"""
macsound = NSSound.alloc()
macsound.initWithContentsOfFile_byReference_(soundPath, True)
macsound.play()
else:
play = dummy_play


para usarlo

import play_sound
play_sound.play('path/al/archivo.wav')

para el caso de gstreamer en linux y el de mac, hace falta un mainloop o algo que mantenga la aplicacion abierta para que reproduzca, con popen no hace falta, en windows no se si bloquea o no.

miércoles, abril 01, 2009

Placa wireless atheros en debian lenny

si tenes esa combinacion, estos links funcionan de primera.

http://wiki.debian.org/WiFi/ath_pci

http://wiki.debian.org/WiFi/HowToUse

EDIT: para poder levantar nm-applet hace falta estar en el grupo netdev

para hacerlo:

$su
#gpasswd netdev -a tuusuario

Seguidores

Archivo del Blog