viernes, diciembre 05, 2008

Cambiar permisos de archivos con python

Pues bien la historia comienza así:
Estoy desarrollando una aplicación con django para una galeria de arte, la url de la pagina en desarrollo es http://laotraferia.nodo-lab.com que después apuntará a http://www.laotraferia.com y pues probé con django-audioplayer que es un tag para embeber un reproductor de mp3 en la pagina, y no me funcionaba porque por algun motivo extraño al subir el mp3, me quedaba sin permisos de lectura en el servidor, por lo cual decidí que debia cambiarle los permisos cada vez que suban el archivo por lo cual debia reescribir el metodo save en el modelo:

def save(self,force_insert=False, force_update=False):
super(Audio,self).save(force_insert,force_update)


Y allí cambiar los permisos cada vez que guarden el objeto, por lo cual busque en la pagina de python, y encontre el metodo chmod en el modulo os, y primero intenté:

>>> import os
>>> os.chmod("archivo","777")

Al viejo estilo de linux, pero esto me genera un error pues el modo debe ser un entero y no una cadena, hice este cambio y no me genero error pero me cambió los permisos de una forma extraña, luego lei un poco más y es que esto debe hacerse usando otro modulo stat, de la siguiente manera:

>>> import os
>>> import stat
>>> os.chmod("archivo",stat.S_IRUSR+stat.S_IWUSR+stat.S_IRGRP+stat.S_IXGRP)

y de esta manera me deja los permisos de lectura y escritura para el usuario y lectura para los demás.

Estas variables del modulo stat son enteros, y equivalena a un 420.

Más adelante debo entender bien el porque de esto.

Actualización:
Definitivamente el problema siempre es capa 8, primero y más importante, a partir de la versión 1.0.2 django, existe una opcion de configuracion para establecer cuales son los permisos con los cuales nuestro framework favorito debe dejar los archivos que se suban a través del admin y formularios.
Esta variable es FILE_UPLOAD_PERMISSIONS y debe contener el valor que desamos tengan los archivos, si queremos no usar lo anterior del modulo stat, lo que debemos es anteponer un 0 al modo octal que conocemos de chmod, es decir en vez de poner un 420 que no nos es familiar podemos poner 0644 sin comillas ni nada, de esta manera python sabe que el 644 es un octal y no un entero. De hecho si entramos al interprete de python y escribimos 0644 este se nos mostrara como un entero (420)

martes, septiembre 02, 2008

E-commerce y django

Pues he estado revisando mi correo, particularmente la etiqueta de django-es, y alguna persona preguntaba por como hacer comercio electrónico con django, y le recomendaron la pagina http://www.satchmoproject.com/ esta el código con licencia bsd y algunos ejemplos de paginas donde la usan, e increíblemente (solo para mi) lo usan en la tienda de la Free Software Foundation en http://shop.fsf.org/, en mi incredulidad debia comprobarlo y lo primero que se me ocurrió fue ir a http://shop.fsf.org/admin y efectivamente  allí estaba, la interfaz administrativa de django.

martes, agosto 26, 2008

The Lazy Bloggers Post Generator

F*** me dead I just terrible dreadful fear I have not updated this since I fell in love... You would not believe how insane my life has become. Please don't abandon me!.

I am devastated with finding Jesus (after someone told me he was lost), selling my soul to Google, just generally being an embarrassment to my friends, my day drinking from midday to I run out of alcohol. I am so tired. but who cares.

I will try to remember I promised you I will write something that makes sense soon. Until I need your shoulder to cry on. Just the way life is!.

no me pude resistir:  http://www.aussiebloggers.com.au/blogpost.html

viernes, junio 27, 2008

self.__south_park__

Facebook Development

domingo, junio 22, 2008

La Historia de Python

Pues he estado revisando el google reader y encontre por ahí un articulo acerca de la historia de Python, en si la historia ya la conocia incluso algunos tips como que fue desarrollado por Guido Van Rossum un dia de navidad, dato que no he podido confirmar. Bueno si quereis mas de la historia, pues como siempre la Wikipedia, pero lo interesante es que la gente de google tambien ha publicado un video hecho por Michael Ogawa donde nos da una vision grafica del desarrollo de mi amado Python.


code_swarm - Python from Michael Ogawa on Vimeo.


PDT: el video fue hecho con processing

viernes, junio 13, 2008

ElTiempo.com y Python

Pues si señores que no me lo imagine nunca, hoy estaba desperdiciando
mi tiempo en www.facebook.com, y me encontré con la sorpresa que ayer
el www.eltiempo.com/ libero su versión 1.0 del API para un concurso
en el cual el premio es una entrada al Campus Party de Valencia del 28 de
julio al 3 de agosto, pero esto no para ahí, luego me reí bastante
cuando mas abajo decía los nombres de los jueces con el jocoso titulo
de "¿A quiénes tienes que impresionar?" y entre ellos se encuentra
Polkan García, uno de los máximos representantes de la comunidad
del anillo, digo de software libre de Colombia, el cual
es bastante dificil de impresionar, revisando el enlace de dicha API
llegue a code.google.com, y me sorprendió mas, pero luego lei un poco
sobre ella y dan soporte a json y a xml, para terminar mi sorpresa
colocaron dos ejemplos de código en python, lo cual es muy novedoso y
me agrado, pero luego lo revise y que creen, pues si, un WTF:

# Listado de noticias, fácil de leer en texto plano
print 'Estas son las', feed['feed']['title'] + "\n"
for e in feed['entries']:
print e.title + "\n"


El codigo no esta mal pero es lo que un amigo llamaría ofuscado, pues
no se sabe si lo hacen a propósito pero la primera linea de código,
concatena tres cadenas de dos maneras distintas y eso es visualmente
desagradable, me pregunto si el ultimo "\n" también es adrede pero de
hecho el solo print hace el salto de linea.

Lo mas WTF del asunto es que la gente de este periódico criollo se da
la maña de hacer un API y no son capaces de revisar los articulos
publicados en el portal, vean
http://www.flickr.com/groups/eltiempo/pool/show/

jueves, junio 12, 2008

Lista de Python Colombia

Dado el auge que tiene Django, he decidido invitar a
varias personas a unirse a la lista de Python Colombia, es importante
ponerme las pilas para activar esta comunidad, espero que los otros
miembros fundadores como ceronman, dirakx, randrespoc, y jorge (se me
acaba de olvidar el nick de jorge) nos pongamos las pilas con esto.

Ya he hecho la suficiente evangelización de Python, ahora me
puedo poner a trabajar en algunos proyectos personales y ver si poco a
poco se adhiere mas gente a esta comunidad, una cosa que hice fue
escribirla en www.nabble.com, que es un sitio que la indexa y la pone
al servicio de los buscadores para que el día que hay escribamos algo
util le pueda servir a cualquier hispano-hablante. Ademas la embebí al
final de este blog, mientras hago algunos ajustes y la pongo, no se al
ladito o uso el feed de nabble para esto, en fin.

Espero realmente que esa lista se empiece a mover mas y poder comprar
el dominio del sitio, lo que me recuerda que mis supuestos amigos
nunca hicieron el logo por lo que le voy a pedir el favor a tata.

jueves, mayo 15, 2008

blogsticker

dc4d8e64ea339024aa708088edd67c36

viernes, mayo 09, 2008

SPAM

El día de hoy he leido bastante el Google Reader, y me he encontrado con bastantes noticias acerca del SPAM, que atacan google ad words por alli, que una honey pot para spammers por allá, y asi sustantivamente, pero por el momento ningún servicio es realmente eficiente pues se bloquean direcciones de correo y/o ips, pero algunas personas somos victimas de los spammers, me dio por revisar la lista de spam de mi cuenta en gmail (que no se note que le vendi mi alma al gran Hermano Google ) y encontre varios mensajes importantes que No eran SPAM, pero lo peor de todo es que mis correos son clasificados como SPAM, es decir mi cuenta de email debe estar en una blacklist o algo asi, pues me estan suplantando...

El punto es que creo que deberia existir algun heuristica semiinteligente para bloquear correos y no direcciones, me explico mejor, intentar detectar cuales correos son escritos por un ser humano comun y corriente como yo y no por un bot...

Ya pensaré en algo, por el momento seguiré enviando mensajes de SPAM con la mente :P

pdta: Será que por escribir tantas veces SPAM me estoy volviendo SPAM???

martes, mayo 06, 2008

Extra

Después del fin de semana laaargo, en el cual me desconecte de la red y solo interactue en el "mundo real", llegué hoy a mi universidad y me di cuenta que la gente de google me envio un correo, solo para decirme que ya me habilitaron la cuenta de Google App Engine, ahora a hechar codigo!!!

martes, abril 29, 2008

Hans Reiser, declarado culpable de asesinato en primer grado

Sacado de barrapunto

"Hans Reiser, desarrollador principal de los sistemas de ficheros ReiserFS y su sucesor Reiser4, ha sido finalmente declarado culpable de asesinato en primer grado de su mujer Nina. Todo lo que rodea el caso ha sido bastante extraño desde el principio, y podría servir de guión para hacer una película. Reiser conoció a Nina, una ginecóloga rusa, a través de un servicio de citas por Internet. Raiser tiene un carácter difícil y el matrimonio entró pronto en crisis. Nina engañó a su marido con Sean Sturgeon, el mejor amigo de Reiser. Hubo un proceso de divorcio muy desagradable y Nina consiguió una orden de alejamiento y la custodia de los dos hijos que en ese momento tenía el matrimonio. En septiembre de 2006, después de dejar a los niños en casa de Reiser para el fin de semana, Nina desapareció. La policía encontró pruebas que incriminaban a Reiser: apareció sangre de Nina en su coche, al que le faltaba el asiento del copiloto. Para complicar las cosas, Sturgeon, el amigo de Reiser y amante de Nina, ha confesado ser un asesino en serie que ha matado al menos a ocho personas, pero afirma que no tiene nada que ver con la desaparición de Nina. Hans Reiser afirma que todo es un complot, planeado desde el principio por Nina para quedarse con su dinero, y que Nina está ahora en Rusia, donde sus hijos viven con la abuela materna.
"

Comentario: Ahora si vale la pena usar reiserfs4 como sistema de archivos, pero aun no tiene buen soporte en debian... Le llevarán portatil a la carcel???

Habemus Python!!!

Hace poco fue el dia D para python y django puesto que el gran hermano Google lanzó el beta de Google App Engine, un sdk de desarrollo de aplicaciones web powered by python, pues bien el ingeniero Camilo Nova, CEO de Axiacore, me pidió que lo asesorará sobre django, y lo hicé, en cuestion de 1 hora, le mostré el potencial de django y quedó sorprendido, por lo cual dijo que lo iba a pensar y hoy me dio la noticia de que AxiaStore se desarrollará en python, por lo cual puedo decir: Habemus Python!!!

viernes, abril 25, 2008

ZPYSE y SPADE

En el grupo de inteligencia artificial de la universidad hemos estado
buscando frameworks para el desarrollo de un MAS (Multi-agent system),
obviamente queria hacerlo en mi lenguaje favorito y no en java, que es
el lenguaje que mas manejan en la universidad, lo incomodo es que lo
hacen como una religion mas que porque tenga ventajas como lenguaje de
"alto" nivel, pero eso no viene al caso.

El motivo de este post es que buscando por la internet, encontre un
par de enlaces interesantes acerca de este tema y por supuesto
desarrollado en el todopoderoso python, el primero es:
http://spade.gti-ia.dsic.upv.es/ SPADE (Smart Python multi-Agent
Development Environment), un entorno de desarrollo para sistemas
multiagente, ligero que usa Pyro (http://pyro.sourceforge.net/) y la
implementacion en python de jabber (http://www.xmpp.org/), es
desarrollado en la Universidad Polit�cnica de Valencia y tiene unas
cositas muy interesantes.

El segundo es aparentemente mejor y es: ZPYSE
(http://www.zope.org/Members/drapmeyer/spyse/index_html) que es un
modulo de ZOPE (www.zope.org) y se basa en spyse (The Smart Python
Simulation Environment) y tiene una arquitectura bastante interesante,
pues es un completo ambiente desde la parte de la transmicion con xml,
hasta la confianza generada por las ontologias web, este se adapta muy
bien a lo que queremos hacer en el grupo, que mas adelante les contare
eso.

Por el momento evaluarlos y escojer... subo una imagen del paper...




miércoles, abril 23, 2008

Django sites

He estado revisando sitios "powered by django" en
http://www.djangosites.org y he encontrado http://dpaste.com/ que esta
como el mas alto por votos.

pdt: este post fue escrito probando la funcionalidad de blogger de mail2blog

quicknote

Hace poco me consegui un trabajo donde debo hacerle varios cambios a una aplicacion desarrollada en python con gtk como librera gráfica llamada quicknote, lo interesante del asunto es que corre en un celular nokia 810 que esta muy coqueto, ojala me pudiera comprar uno de estos, tienen un linux propio que es derivado de debian, por lo que tiene repositorios apt y todo eso, algunos paquetes como python ya estan portados a este dispositivo, y dentro de poco daran soporte para qt.

Es muy vacano ver como las empresas de dispositivos moviles como nokia, le apuestan a linux y sobretodo a python, otra cosa interesante que alcancé a ver que tiene soporte para pygame, por lo que se pueden desarrollar juegos para este movil.

Y tiene ssh!!! el mejor amigo del hombre geek!!! (frase de Santiago Ruano)

lunes, abril 21, 2008

Mashup Facebook

Tengo muy descuidado este blog, por lo que voy a intentar retomarlo poco a poco, sobretodo para documentar en lo que he estado trabajando en python, algo de inteligencia artificial, redes neuronales, logica difusa, agentes inteligentes, etc.

Pero por el momento una geekada:
Un mashup para el google reader para las cosas de facebook usando http://pipes.yahoo.com, el pipe es http://pipes.yahoo.com/diegueus9/facebook donde deben escribir su token y su id.