Monday, July 23, 2007

python

hace algunos años escuche por primera vez sobre python. por aquella época me dedicaba bastante a leer artículos sobre arte under, netart y otros movimientos que había por ahí. así fue que descubrí movimientos como luther blissett [http://www.lutherblissett.net/] y 4BAD [http://www.0100101110101101.org/]. en este último se presentaba el proyecto Biennale.py [http://www.0100101110101101.org/home/biennale_py/index.html], el primer virus hecho en python, al cual no solo lo presentan como un virus, sino como una obra de arte…

después de muchos años, finalmente me largué a jugar con python [http://www.python.org/] por mi cuenta…

en un primer vistazo, me parece bastante práctico, no para hacer una aplicación de las famosas Enterprise –para eso seguimos con java-, pero si para hacer scripts o pequeñas aplicaciones que no sean muy críticas, por ejemplo, las famosas "de uso interno", que terminan siendo usadas por todo el mundo…

para poder correr python sobre winxp solo hay que hacer un paso previo, que es instalar el interprete con todas las librerías básicas. yo arranque con la versión 2.5 (si, soy MUY nuevo!)…

después de hacer el hello world! de rigor,

print ´hello world!´

seguí con unos queries contra unas bases de datos y no fue para nada difícil. probé con mysql y oracle, las bases que usamos en nuestros desarrollos, los drivers son fáciles de conseguir –en sourceforge se consigue todo, uno linkeado desde la página de mysql [http://dev.mysql.com/downloads/python.html] y el otro de cxtools [http://www.cxtools.net/default.aspx?nav=cxorlb]- , son fáciles de instalar y lo mejor de todo, son muy fáciles de usar. ambos implementan una interfaz unificada –python database api 2.0-, que hace que los dos funcionen iguales y con simples 4 líneas, uno puede resolver cualquier consulta a la base,

import os

import sys

import MySQLdb

import cx_Oracle


print 'query al mysql...'

db = MySQLdb.connect('localhost','root','root')

db.select_db('rfid')

cursor = db.cursor()

resultado = cursor.execute('select * from pallet')

for row in cursor :

print row


print 'query al oracle...'

db2 = cx_Oracle.connect('root','root','XE')

cursor2 = db2.cursor()

resultado2 = cursor2.execute('select * from riesgo')

for row2 in cursor2 :

print row2


explicándolo un poquito, acá lo único que hago es indicar que librerías voy a usar y después para cada una de las bases, creo una conexión, abro un cursor, ejecuto un query y recorro el resultado imprimiendo una línea por registro. esto es solo una prueba de juguete, pero me pareció bastante piola.

finalmente, para profundizar un poquito en el lenguaje y jugar un poco con mi nueva webcam, conseguí una librería para tomar snapshots de la cámara [http://videocapture.sourceforge.net/] que se monta sobre pil [http://www.pythonware.com/products/pil/], una librería muy completa de manejo de imágenes. con esto arme un pequeño script que tomaba fotos cada X segundos y lo deje corriendo mientas mi amigo diego nos cocinaba un exquisito risotto. después de más de 1000 tomas, intenté compilar las fotos en una película, pero no pude porque el windows movie maker "exploto", lo cual me alentó a también probar de armar el video con un script. esto es un poquito más difícil, con lo cual lo postergué para cuando tenga más tiempo libre, pero me pude conformar armando una pequeña aplicación grafica que tiene una ventana donde hace un slideshow de las fotos de un directorio. esta pequeña gui, supuestamente, es portable ya que utilicé la librería tkinter, que es la interfaz de python a tk,

ya me agendé un par de tareas productivas para hacer, como unificar la creación de usuarios en el entorno de la empresa (subversión, bugtrakers, knowledge managers y si es posible, mail). en el próximo post espero poder contar sobre el éxito de mis scripts, tanto de creación de usuarios, como de creación de videos.

1 comment:

Unknown said...

Hola, Goros, ¿cómo estás? Recién me entero que tenés blog. Felicitaciones por ello.

Por otro lado y relacionado con tu post, fijate si te sirve este recurso: la comunidad virtual "Desarrollo de Software en Python". Espero que sí.

Saludos.