csvcool 0.1.1

Actualicé csvcool mi libreria para manejar archivos csv in a cool way!

Si bien @chipaca, me comento de una funcionalidad similar que viene en la std lib de python, me sigue pareciendo mucho mas comodo de manejar mi libreria (que esta exelentemente documentada (hagan un help(csvcool))

El changelog es simple… le agregue un metodo sort que recive como parametro el nombre de la columna por la cual ordenar.

Suponiendo que tenemos un csv como el siguiente:

nombre apellido mail
tito puente tito@puente.com
cosme fulanito cosme@fulanito.com

para ordenarlo por “nombre” deberiamos hacer

import csvcool
csvf = csvcool.read(open("/archivo.csv"))
csvf.sort("nombre")
csvcool.write(csvf, open("/archivo.csv", "w"))

y el resultado seria:

nombre apellido mail
cosme fulanito cosme@fulanito.com
tito puente tito@puente.com

Ademas de eso tambien tiene los sigientes features viejos:

  • extraer una sola columna como una tupla.
  • recortar un csv dejando “algunas” columnas o “algunas filas”.
  • agregar filas y columnas.
  • remover filas y columnas.
  • guardar en un archivo.
  • y unas cosas mas.
Instalar:
PD: ahora si agregue los test al setup.py (para felicidad de nessita)

Leer Más

csvcool 0.1

Laburando en el pyday, tuve que lidiar con varios archivos csv. Los bichitos estos tenian en su primer fila el nombre del campo al cual hacia referencia la columna dada

porjemplo 2 personas con nombre apellido y email aparecia algo asi:

nombre apellido mail
tito puente tito@puente.com
cosme fulanito cosme@fulanito.com

Realmente usar el modulo csv de python me rompia un poco la paciencia, ya que se accedia siempre por indices  y habia que omitir la fila 0

ejemplito:

import csv
csvf = csv.reader(open("/archivo.csv"))
print csvf[1][0] # imprimiria "tito"

Mi solucion: csvcool

Que hace esta librería? bueno… omite la fila 0 y transforma  cada fila en un diccionario (entre otras cosas)

Ejemplito 3:

import csvcool
csvf = csvcool.read(open("/archivo.csv"))
print csvf[0]["nombre"] # imprimiria "tito"

Ademas de eso tambien tiene los sigientes features:

  • extraer una sola columna como una tupla.
  • recortar un csv dejando “algunas” columnas o “algunas filas”.
  • agregar filas y columnas.
  • remover filas y columnas.
  • guardar en un archivo.
  • y unas cosas mas.
Como ultimo ejemplo supongamos que solo queremos guardar un csv con los mails y el apellido de las personas:
import csvcool
csvf = csvcool.read(open("/archivo.csv"))
cortado = csvf.cut("apellido", "mail")
csvcool.write(cortado, open("/archivo_cortado.csv", "w"))
Instalar:
PD: hay test… y me olvide de incluirlos en el setup.py (moco)

Leer Más

Taringa COA – Api para python en su primer versión

Por motivos laborales tuve el agrado de realizar un api python para Taringa.

Si bien la primer release es para python, mi objetivo es realizar en una segunda instancia una versión java (para jugar un poco con Android) y una javascript (por pura diversión)

La advertencia primordial:

DOS LLAMADAS NO ANDAN. Ya trate de ponerme en contacto con gente de taringa y espero aun su respuesta (estoy a punto de levantar el fono).
Las llamadas rebeldes son: ‘posts_get_top_posts’ y     ‘posts_get_top_users’.

Intente traspasar toda la documentación de la pagina al modulo; así que un help(taringa) les daría MUCHA pero MUCHA info.

http://code.google.com/p/taringa-api/

Leer Más

Steamend – 0.7 “Jim”

Quería compartir con la red que termine con una versión (hace unos días) mas de mi humilde motorcito de juegos online.

  • Ya resuelve arboles de tecnologías cargados desde un yaml.
  • Los juegos pueden hacerse multilingües.
  • Hay batallas… y se puede seleccionar estrategias.
  • Cuando alguien te ataca el juego sugiere la estrategia para enfrentarlo a través de teoría de juegos.
  • Se puede vender lo que construiste y recolectaste… para cerdos capitalistas.

Ahora ya estoy limpiando el código y la chanchada de la intenacionalizacion para la siguiente versión (que va a ser de puro soporte) que espero tenerla allá por enero.

Despues de eso si pienso montar un pequeño server para la muchachada que autorice juegue a algo.

Links

Screenshots

Downloads

Leer Más

SteamEnd 0.5 “Tim”

Publicado la primer versión de Steamend.
Un motor AGPL3 altamente configurable para desarrollar juegos a lo “Ogame” (Browser Games) que utiliza tecnología python+yaml+django

El motor no esta perfecto y tiene unas pequeñas fallas, pero ya puede tenerse una idea de lo que queremos lograr.

Funcionalidades:

  • Instalación de un juego
  • Darse de alta y modificar perfil de usuario
  • Explorar un mundo

Links:

SteamEnd HomePage

Leer Más

Mi primera consultoría

Post doble mi blog mas foro de Seg SI/IT.

El martes 31 de marzo de 2009 tuve la oportunidad de dar mi primera labor
profesional como consultor.

Paso a compartir mi experiencia.

Hará un mes atrás me llamaron para una entrevista en una empresa que se llama
“Y2k Networks” [0], la entrevista de trabajo no se en que quedo (irónico dado
el caso) pero entre otras cosas en mi notebook vieron correr un gnu/linux[1] y
la charla se extendió un poco mas allá del primer objetivo.

Pasaron 2 semanas y vía mail distribuí a algunos de mis contactos la
presentación de mi proyecto final, entre ellos al jefe de marketing (medio
gerente) de y2k.

“Mail va, mail viene” me propusieron exponer mi proyecto frente a la mesa
directiva y de paso plantearle mis opiniones sobre modelo y oportunidades de
negocio “FLOSS”[2]

Me arme una filmina, que se las adjunto,
me pare frente a la mesa directiva tipo 9:30 y hable durante 2 horas.

Cuando “caí” que estaban tomándome enserio y que mi opinión podría ser la vida
o la muerte de una empresa fue cuando me hicieron la pregunta “y como vos decis
que deberíamos encarar para hacer proyectos FLOSS que nos sean redituables”. La
respuesta fue muy larga para reproducirla y no es objetivo de este post.

Puedo resumir que ser consultor se sintió estimulante intelectualmente pero
la presión de no hablar de mas (aunque uno siempre habla de mas) y no
fundir a gente que escucha, es bastante grande. Igual, lo repetiría.

Espero que les sirva el comentario

JuanBC

[0] http://www.y2knetworks.com/
[1] http://en.wikipedia.org/wiki/Gnu/linux
[2] http://en.wikipedia.org/wiki/FLOSS

Leer Más