martes, diciembre 29, 2009

Creación de ejecutables de Python

Cree un pequeño tutorial sobre como crear ejecutables con PyInstaller.
Está focalizado en PyQt4, pero aplica a lo que quieran generar.



Espero que les sea útil :)

Disculpen si pasé las pantallas demaciado rápido :S

miércoles, diciembre 16, 2009

Protopy: Liberada la tesis, y recibidos!!!

Finalmente terminamos la tesis de Aplicaciones Web Desconetadas. Trabajamos sobre Django, Gears y Firefox y logramos desconectar las aplicaciones con poca reescritura de código :)

En breve mandaremos a Ajaxian, los blogs de Django y a la lista de Python argentina, a ver si alguien se prende :)

Twisted, una pequeña introducción

Esta es una paqueña introducción a Twisted. Un framework de redes en Python, orientado a eventos.


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
from twisted.internet import reactor
from twisted.internet import protocol
from twisted.python import log

class MiProtocolo(protocol.Protocol):

def connectionMade(self):
print "Conexion establecida con" % self.transport

def dataReceived(self, data):
self.transport.write("Me dijiste: %s" % data)

def connectionLost(self, reason):
print "Conexion Cerrada %s" % reason


class MyFactory(protocol.ClientFactory):
protocol = MiProtocolo

def main(argv = sys.argv):
log.startLogging(sys.stdout, setStdout = False)
reactor.listenTCP(8080, MyFactory())
reactor.run()


if __name__ == "__main__":
sys.exit(main())

Para probar esto podemos crear un socket con netcat, la navaja suzia de las redes:

nc localhost 8080

y al escribir algunos caracteres y presionar Control-D veremos como trabaja esto de lo orientado a eventos :)

domingo, diciembre 13, 2009

LaTeX y lenguajes intermedios

El martes que viene (15 de diciembre) presentamos la tesis. Se trata de una extensión de Django para desconectar aplicaciones, aprovechando Gears y Firefox. El proyecto lleva ya más de 1000 commits, y tiene varios componentes:
- offline, una aplicación genérica autocontenida que sirve para desconectar
- Doff, una implementación de Django sobre una libería propia, llamda Protopy
- Protopy, una librería de JavaScript (1.7) que provee un sistema de módulos Pythonicos en JS, orientación a objetos Pythonica, DOM, Eventos y varios buitlins (similares a la API de Python).


Pero, más allá de un proyecto para la comunidad, es una tesis. Así que necesitamos hacer un documento. Comenzamos usando LaTeX, puro y duro, como suele decir uno de los profes.
Luego decantamos en Sphinx, que nos dio bastantes buenos resultados, aunque hubo que realizar varios hacks. Tuvimos que hacer varios arreglos de bajo nivel, la impresión que nos llevamos es queno existe aún un mecanismo simple de generación de documentos de tesis, lo que se puede traducir en que somos vagos para aprender latex... o que nos falta googlear más :S

Un proyecto que promete mucho es rst2pdf, de Roberto Alsina, un argentino desarrollador de KDE :). Quizás hubiese servido para generar la doc, sospecho que Lau lo puede estar usando.

Ahora estoy encarando las presentación del martes con Beamer. Veremos que sale :)


lunes, diciembre 07, 2009

Palmó la batería

Ya lleva un año y 7 meses la pobre y quedó agotada.
Una lástima.

defo:~$ cat /proc/acpi/battery/BAT0/*

alarm: unsupported
present: yes
design capacity: 5200 mAh
last full capacity: 1576 mAh
battery technology: rechargeable
design voltage: 11100 mV
design capacity warning: 520 mAh
design capacity low: 157 mAh
capacity granularity 1: 52 mAh
capacity granularity 2: 52 mAh
model number: DELL RN8878
serial number: 37502
battery type: LION
OEM info:
present: yes
capacity state: ok
charging state: charged
present rate: 1 mA
remaining capacity: 509 mAh
present voltage: 11852 mV

1576mAh = 30% de la capacidad inicial :'(

sábado, diciembre 05, 2009

Utilizando el servicio de Mercurial de Google

Hace mucho que no blogueaba, lo se... pero bueno, hoy es sábado por la mañana, vamos a ver que sale...

Finalmente migré de BitBucket mis repositorios por la limitación de espacio. BitBucket ofrece 150MB para los usuarios gratuitos mientras que Google Code ofrece 1GB.

Los proyectos que migré fueron el editor de texto aplazado aún (CrossMates), el proyecto de investigación sobre la red de microcontroladores e Internet (RestScada)y la tesis (Protopy), ya falta poquito para la entrega! SIiii! :)

Todavía quedan algunos proyectos en el BitBucket, como los trabajos prácticos del curso de postgrado de Tiempo Real.

Google Code nos permite no solo usar mercurial con una cuota enorme, sino que nos deja manejar la Wiki como un repo. Eso es bastante interesante, lo que anda haciendo falta es algo para previsualizar offline como va quedando la wiki. El markup que usan no es muy complejo, quizás se podría constituir un plugin para el editor de texto.

Me gustó mucho el servicio, cortito y al pie.

Bitbucket está hecho en Django y usa Pistón para realizar las APIs. El proyecto está interesante, pero el tema de la capacidad me estaba trayendo problemas, por más que parezca basura, nunca es buena deshacerse de la historia de tu repo, por lo menos sirve para la nostalgia y ver como evolucionan las cosas.