Python Argentina •  Sólo Python

miércoles, 08 septiembre

20:40

Juanjo Conti: Fotografiando desde el camino (segunda edición)

Hace 2 años había empezado a publicar fotos instantáneas en mi blog. Las sacaba con el celular (un Nokia 6131) y en segundos estaban on line mostrando la última en la sidebar. En ese entonces no tenía el celular que tengo ahora, y tuve que arreglarmelas con tremento hack para lograr la funcionalidad que buscaba.

Hoy con un Motorolla Milestone que tiene más capacidad de procesamiento que las computadoras que llevaron al hombre a la luna y más conectividad muchos países, el tema es más sencillo.

Publico fotos através de Twitpic con mi cliente de Twitter Seesmic y las muestro usando el plugín My Pictures Widget para WordPress. Nice.

15:03

Gustavo Carmona: Gvim Color darkblue

La imagen habla por sí misma. Snapshot tomado en una netbook de 10 pulgadas.


14:57

Gustavo Carmona: Gvim Fullscreen Ubuntu

menu
:set guioptions-=m
:set guioptions+=m

toolbar
:set guioptions-=T
:set guioptions+=T

sistema->preferencia->combinacion de teclas  – elegir toggle fullscreen mode


zoom-in-out. Excelente para mostrar de cerca y alejar, como en las
presentaciones. ver imagen debajo
sistema->preferencia->combinacion de teclas

un abrazo,

10:50

Marcos Vanetta: ActiveRecord, a brief introduction – Part 3

named_scope [1][2][3] Nos permite generar “métodos”[4] de clases para ejecutar consultas, de una manera muy legible. 5.1) Supongamos que siempre queremos los post de usuario con id = 3. Haríamos: p = Post.all :conditions => {:user_id => 3} También queremos todos los post que están en estado: searchable p = Post.all :conditions => {:state => [...]

10:28

Roberto Alsina: Por qué estamos acá.

Advertencia: rant.

Ayer el gobierno argentino anunció que van a regalar 3 millones de netbooks a estudiantes. También anunciaron que les van a dar la opción de Ubuntu o Windows 7.

Por supuesto al rato empezó a circular la típica reacción del lado FLOSS: ¿por qué les dan Windows si Linux es mejor? ¡Es injusto que el gobierno pague Windows!

Mi misión hoy es decirles que crezcan y dejen de actuar como nenes. Estoy acá para decirles que paren de tratar a los demás como bebés.

Creo que lo puedo hacer porque estoy inmunizado contra las críticas de la comunidad FLOSS: soy miembro. Tengo un historial bastante lindo con el software libre y open source, no uso nada excepto Linux hace 15 años.

Y tengo la piel gruesa y no me importa lo que digan los demás a menos que me den motivos y razones para que me importe.

Vengo a decirles que si el único motivo para usar un software es que es el más barato, estás diciendo que ese software es malo.

No sólo quiero que la gente use Linux, quiero que quieran usarlo. Quiero que esperen ansiosos la siguiente versión de Ubuntu o Firefox o lo que sea.

Y el primer paso hacia la excelencia es querer ser excelente. Si al no tener que pagar por Windows ni Ubuntu estamos seguros que gana Windows, entonces Ubuntu tiene problemas y hay que arreglarlos. ¿La gente no lo quiere ni gratis? Entonces hay problemas y encontrarlos es importante.

Pero más importante que encontrar la pieza que falta es ver el agujero donde debería estar esa pieza. La comunidad Open Source se ha vuelto complaciente. Se ha vuelto pagada de sí misma, es un adolescente, seguro de su grandeza e inmortalidad.

Yo no creo en muchas cosas, pero creo en el libre albedrío. Creo que la gente no es idiota, creo que si prefieren Windows, es por algo, hay algo que hace mejor, y creo que sea lo que sea eso (que no lo conozco), se puede encontrar y mejorar y reemplazar, y sumado a otras cosas va a lograr que sea el mejor producto y creo que la gente va a querer usarlo.

Y si no lo hacen... bueno, se dió una pelea honesta, hicimos lo mejor que pudimos, abrimos caminos, creamos cosas interesantes, y los usuarios están mejor que antes aún si no eligieron a nuestro bebé, porque levantamos el nivel general.

Por ejemplo, antes de Linux, Windows era una bazofia mucho peor, y creo que muchas de las mejoras que tuvo fueron gracias a Linux, y estoy feliz que los usuarios hoy tengan un sistema operativo más decente, aunque no sea Linux.

Quiero que la gente use open source porque es asombroso, no porque es barato. Asombroso y barato está bien. ¿Sólo barato? Es una mierda.

Ya que estamos: ¿el constante "usan Windows porque no tienen idea"? Es condescendiente y muy, muy molesto. Y si me moesta a mí, que no soy el blanco de la condescendencia, créanme, molesta mucho más a los usuarios de Windows, y molestar a la gente no la convence de nada, excepto de que sos molesto.

Crezcan, métanle para adelante, empiecen a hacer cosas asombrosas, muestren calidad. Para eso estamos acá, no para ser la segunda marca de otro, no para ser la Goliat cola.

martes, 07 septiembre

23:01

Facundo Batista: Un video más de Felipe


Con fotos del sexto mes (sí, venimos un poco atrasados...).

Es cortito, pero interesante, hagan click en la foto.

Click para ver el video

20:35

Manuel Kaufmann (Humitos): Estadísticas y alcance de un blog

¿Cuántas personas visitan tu blog por día? ¿Cuánto significa eso? ¿Es suficiente para vos? ¿Realmente el número de personas que indican tus estadísticas leen tu blog? ¿Cuánto de estos son bots?

Estas son algunas de las preguntas que hoy me hice al ver el gráfico de las estadísticas que trae wordpress.com. Debo tener una media de 50 personas por día que  leen mi blog, pero ¿cuántas de estas personas realmente leen, al menos, un artículo completo? ¿aprenden los conceptos / programas que explico? ¿les sirven?

Entonces, hoy me puse a pensar si estaría bueno empezar a escribir sobre más u otras cosas también. Digamos, si tengo un promedio de 50 personas (que no sé si son muchas, pocas, quienes son o qué, pero son 50 personas que me importan) y realmente lo leen porque les interesa lo que tengo para compartir: ¿sobre qué cosas más podría escribir y que sigan siendo de su interés?

Por otro lado, me he dado cuenta que muchas dudas que tengo las pongo en Twitter en vez de mi blog, y que a su vez me responden con un enlace, o me tiran la posta. Pensando… ¿porqué no puedo usar mi blog para debatir algo? ¿porque no empiezo a tirar algunas preguntas acá haciendo una introducción al tema y que se pueda desarrollar este mediante los comentarios?

Me parece que esta idea debe estar buena y puede llegar a funcionar. Por ejemplo, hoy o ayer, (no me acuerdo) pregunté por un manual básico sobre Cómo sacar fotografías y me mandaron un link que era interesante mediante Twitter, pero capaz que la persona que me lo pasó se podía explayar un poco más en el tema y dejar un par de conceptos propios sobre la toma de fotos.

Esto quizás tenga una contra también, en Twitter es muy fácil y rápido dejar un comentario; entonces cualquiera lo hace, en menos de 2′ y le quita la duda a la otra persona. Es por esto que quizás no funcione la idea de que el blog sea como un foro personal, si se quiere.

Hoy se me pasaron estas cosas por la cabeza y ahora tuve el rato para escribir, así que me senté y lo hice. Ya que estamos, vamos a ver si suben las visitas, qué cosas son interesantes para los que leen y una de las cosas más importantes quienes y porqué comentan o dejan de comentar. Se escuchan opiniones: comentar es gratis


lunes, 06 septiembre

18:40

Diego Sarmentero: Prototype

Este si que es un buen Juego!!

15:40

Manuel Kaufmann (Humitos): Mi primera cámara digital

¡Me compré una cámara digital!

Todos tienen una, es casi como un celular ya. De hecho la mayoría de los celulares tienen una cámara integrada, y muchos de ellos con muy buena resolución. Entonces, ¿porqué yo no tenía una si hace mucho tiempo que la quiero?

Capaz es porque soy una rata, o porque no tengo muchas cosas a qué sacarle, o qué sé yo. Una de las principales cuestiones por las cuales no tenía una era porque son caras. Una cámara minimamente aceptable sale algo de $1000, y ojo, con aceptable me refiero a que no sea profesional, ni que tenga muchos mega píxeles, que sí sea con batería y si es posible que tenga zoom óptico.

Entonces, con esas características no encontraba (bah, es una forma de decir… nunca busqué de verdad, sino que sólo veía las vidrieras) una cámara que tenga un precio aceptable y que la pueda llevar para todos lados sin que me importe perderla, que me la roben o que se caiga al piso y se le parta la pantalla. Todavía tengo un pensamiento similar con el celular…

La semana pasada estuve dando un par de vueltas por el centro y encontré una Kodak que salía $450 y me detuve a mirarla. Un par de días después fui a averiguar por esta máquina y me encontré que era a pilas, que no tenía zoom, era de 6 MP y además no venía con pilas ni cargador, tampoco con tarjeta de memoria :( . Pregunté a cuánto se me iba con todo eso y me dijo que unos $100 más por lo menos, con lo que me quedaba de $550 y para eso me compraba la más pedorra que venga con batería que están desde los $600. No me convenció.

Averigüé en otros lugares, en Garbarino por ejemplo, y me la dejaba a esa misma cámara a $500 más o menos, lo pensé un poco más, dí un par de vueltas y terminé en Frávega viendo la Olympus Stylus 710 de 7.1 MP que saliá $419, ¿¡Cuánto!?

Sí, $419. La miré bien, pregunté qué tenía y porqué estaba a ese precio. Esa cámara tiene zoom óptico de 3x, digital de 5x, es a batería tiene varios modos para sacar fotos, trae funda y memoria de 256Mb. Entonces, ¿porqué estaba tan barata?. El flaco me dijo que porque era un modelo viejo. Y sí, después me fijé en la caja y esta cámara es del 2007.

Dí un par de vueltas más por ahí, consulté con un amigo, ví otras cámaras y finalmente fui por la tarde a comprarla en Frávega (a la Olympus). La miré de nuevo, le pedí que me la saque de la vidriera y que sé yo. Cuando la saca veo que la lustraba el loquito y le digo: “Eso no va a salir, está re rayada en el visor” y me dice: “Ah, porque es la última que me queda”… Nahh, me re culió, no me dijo eso a la mañana cuando fui :(

Así que, me puse a pensarlo de nuevo. La máquina esa estuvo en vidriera 3 años, con la batería puesta, pasó por las manos de todo el mundo, está rayada, es un modelo que no viene más (ni aparece en la página de Olympus) y demás… Lo pensé un rato más y dije: “Ma’ sí, total si hay algo que no andan me dan una nota de crédito y me compro otra” (había varias por un precio similar).

Y bueno, acá estoy. Me compré una cámara que en su época debe haber salido unos $1500 pesos a $419. Por ahora estoy contento, ya dí un par de vueltas por la ciudad sacando fotos así como viene nomás y toqueteando todo y parece que está buena. Ni siquiera he puesto la mejor calidad todavía :)

Este es el mate que se encuentra en la entrada a la ciudad de Paraná:

Aquí algunas otras fotos que saqué recorriendo la Ciudad, para probar nomás: álbum en flickr


15:17

Manuel Kaufmann (Humitos): Introducción a Django Reloaded

La última vez que dí una charla si mal no recuerdo fue hace un año atrás en la PyCon de Argentina. La verdad que estoy re oxidado con esto.

Hace un tiempo cuando Facundo me ofreció dar una charla de Introducción a Django en el ciclo de charlas organizadas por FM La Tribu le dije que sí, que podía hacer un viaje a Buenos Aires para dar una chalar de Django ahí. Me parecía que estaba buena la idea y participar en ella iba a estar bueno también: “me parecía una buena forma de volver a las tablas y además me iba a obligar a hacerlo”

Lo malo de esto es que está llegando la fecha de mi charla (es el 11 de Septiembre, el finde que viene) y todavía no la tengo lista a la charla. La estuve viendo, y aunque me parece que está bien, quiero cambiar algunas cosas y ver la forma de que sea más dinámica y no tanto bombardeo de conceptos. Vamos a ver cómo sale.

Como siempre, estoy un poco ansioso porque voy a estar en frente de mucha gente que quiere aprender algo que yo voy a explicar y además supongo que va a haber alguno de los grosos de PyAr tomando exámen :P . No tengo mucha experiencia dando charlas frente al público, he dado algunas (por tirar un número: 7, ponele) pero siempre he estado nervioso con anticipación. Por más seguro que esté de que la charla está buena o aunque sepa que es pésima: “sí, he dicho cada cosa frente al público que si todos me hubiesen escuchado y visto mi carrera estaría arruinada” ;)

Espero que vaya la gente justa, ni más ni menos. No está bueno cuando se llena que no da a basto el lugar y tampoco está bueno cuando hay muy poca gente. Me gustaría que salga bien la charla, que se entienda y que la gente quede contenta con lo que pude transmitirles, voy a hacer lo mejor que pueda aunque ya estoy con poco tiempo si se quiere.


10:18

Marcos Vanetta: ActiveRecord, a brief introduction – Part 2

Preguntas en ActiveRecord 3.0) ActiveRecord está conectado? User.connected? # => true 3.1) Change u = User.first u.changed? # => false u.first_name = "NewName" # => "NewName" u.changed? # => true 3.1.2) ¿Qué cambió? u.changed # => ["first_name"] 3.1.3) ¿Cuáles son los cambios? u.changes # => {"first_name"=>["Enrique", "NewName"]} 3.2) ¿Cómo preguntar si guardamos los cambios? No [...]

domingo, 05 septiembre

10:48

Facundo Batista: Python Argentina, la historia


El siguiente texto formó parte de la Primera Edición de PET - Python Entre Todos, la revista de PyAr. Tiene un montón de artículos copados, y la pueden ver online, o bajarla en PDF en distintos formatos. En la semana va a salir el mismo número, pero en inglés, y esperamos una segunda edición prontito. ¡Disfrútenla!

Ahora, el artículo.


Conocí Python en el 2001, buscando un lenguaje piola para trabajar en entornos Unix y Windows, y frustrado por algunas experiencias anteriores. Inmediatamente ví que era algo que me gustaba, y comencé a invertir tiempo, aprendiendo y profundizando en él.

No conocía muchos que usaran este lenguaje. Sí, estaba la lista de Python en español, y la lista en inglés, pero no tenía contacto con otros argentinos que programaran en él (más que un par de compañeros de trabajo). Buscando gente, caí en un sitio que organizaba reuniones de todo tipo, me anoté, pero nada.

Llegó el 2004. Pablo Ziliani (más conocido como un tal Pablo) encontró el mismo sitio pero lo tomó, lo sacó de su hibernación, y mandó invitación para juntarnos.

Esta juntada fue finalmente la Primera Reunión de Python Argentina. Nos encontramos en un bar céntrico, el 9 de Septiembre de 2004, Pablo, un chico llamado Javier que no volvimos a ver, y el que suscribe.

Aunque sólo charlamos de generalidades alrededor de Python, el ímpetu no quedó ahí y con esa base se organizó la próxima reunión, en la que ya se empezó a formar el grupo propiamente dicho.

En esta segunda reunión, a fines de Octubre, se bautizó al grupo como “PyAr - Python Argentina”, y decidimos crear la lista de correo y establecer un portal web donde se den a conocer los objetivos y actividades del grupo, las instrucciones para participar, enlaces a información útil, y generar contenido propio (como por ejemplo experiencias locales en el uso de Python).

El primer año del grupo pasó a pura reunión. Darnos a conocer no era fácil, y aunque hacíamos promedio una reunión por mes, éramos entre cuatro y siete personas, siempre los mismos. Pero en función de llegar a más gente fue que en la reunión de Agosto del 2005 decidimos participar en CaFeConf 2005, las Jornadas Abiertas de GNU/Linux y Software Libre organizadas por CaFeLUG. Presentamos entonces dos charlas para dicha conferencia, Lucio dió una sobre PyGame y yo una de introducción a Python.

Las primeras reuniones del 2006 nos encontraron ya con más gente (entre diez y veinte por reunión), y discutiendo sobre otros temas a nivel de grupo más allá de la difusión. Estábamos con la creación de las primeras remeras, Ricardo había creado un canal de IRC en Freenode (el viejo #python-ar), y Alecu proponía formalizar un poco el tema de las reuniones, creando un procedimiento para las mismas.

También con estructuras más afianzadas se empezaron a barajar otros desafíos, como reuniones en interior del país, traer algún invitado internacional a CaFeConf 2006, traducir documentación oficial de Python, y algo que en su momento se llamó NERDcamp...

En Febrero de ese año yo realicé mi primer viaje a PyCon USA (la conferencia de Python más importante del mundo), donde PyAr comenzó a hacerse visible más allá de nuestras fronteras, no sólo porque dí una Lightning Talk de nuestro grupo, sino porque aproveché para vender muchas de las remeras que habíamos hecho.

En reuniones de esa primera parte del año también hablamos sobre el contenido de la lista de correo (si la separamos en sub listas o qué hacemos para limitar las conversaciones no específicas a Python; esta discusión la seguimos teniendo hoy en día...), hablamos del Día Python realizado en Mendoza, y charlamos sobre cómo organizar el grupo a nivel estructura: si íbamos a definir /cargos/ dentro del grupo, o seguir como estábamos en una estructura plana sin presidentes ni presididos.

La organización del grupo merece un párrafo aparte. Desde el comienzo de Python Argentina hasta ahora no hubieron nunca personas con cargos específicos, sino que siempre mantuvimos una muy saludable anarquía, en donde había una asociación y un pacto voluntario entre las personas del grupo que quisieran llevar algún proyecto interno adelante, sin necesidad de "decisiones oficiales" que impongan recorridos al resto de las personas del grupo. En otras palabras, si alguien en PyAr desea empujar un proyecto, sólo tiene que hacerlo, y tendrá más o menos participantes y/o ayudantes en función de si el proyecto es interesante o no, pero no tiene que "oficializarlo", o pedir aprobación sobre el mismo.


Siguiendo con la historia

En Junio del 2006 se realizó la Primer Jornada Python Santa Fe, en la Universidad Tecnológica Nacional, ciudad y provincia de, justamente, Santa Fe. Las jornadas fueron un éxito, y en la reunión / sprint posterior a las mismas (mientras comíamos pizza y hablábamos de todo un poco) se empezó a trabajar en un proyecto importante para el grupo: una versión offline de la Wikipedia. Este evento nos motivó bastante, y en la reunión siguiente Pablo Ziliani  sugirió que tratemos de ponernos como objetivo "organizar una reunión /federal/ al menos una vez al año", y decidimos que queríamos tener una bandera de PyAr.

Septiembre del 2006 nos encontró participando en la tercera edición de PyWeek, una competencia internacional en la que se debe programar un juego en Python en una semana, arrancando desde cero y terminando con algo que prueban el resto de los competidores. No era la primera vez que participábamos, pero en esta oportunidad uno de los grupos de PyAr ganó la competencia con el juego Typus Pocus (¡y otro grupo nuestro quedó tercero!).

La segunda mitad del año no trajo mayores novedades hasta que llegamos a CaFeConf 2006, donde estrenamos stand con una bandera recién salida del horno, y además una de las plenarias del evento era dada por Alex Martelli (habló de "Qué es Python y por qué importa"), invitado internacional traído por gestiones propias de PyAr.

Luego de este evento empezamos a reconocer lo importante que era para Python Argentina participar de estas conferencias y jornadas abiertas a la comunidad, ya que luego de las mismas notábamos un salto en la cantidad de suscriptos a la lista de correo. Además, empezamos a establecer buenos vínculos con el resto de la comunidad de software libre de Argentina, comunidad a la que algunos conocíamos pero en la que no estábamos involucrados.

El año 2007 fueron meses de consolidación. Se realizaron varias reuniones en Capital e interior, estuvo el segundo Día Python en Santa Fé (esta vez con dos tracks, de nuevo un éxito), y PyAr participó en CaFeConf, en Unlux y en las Jornadas Regionales de Software Libre, en Córdoba. Como se discutió en la reunión del grupo luego de esa conferencia, Python Argentina era un grupo nuevo que estaba naciendo y  aprovechábamos la gentileza de los “hermanos mayores”: la capacidad organizativa y la gente involucrada en los LUGs. Un detalle importante a considerar es que Python era el único lenguaje de programación con stand propio, tanto en CaFeConf como en dichas Jornadas.

Durante este año también la lista de correo alcanzó una cantidad de participantes suficientes como para que la rueda gire sola: la gran cantidad de respuestas a las preguntas dejó de surgir del grupito de 20 o 30 personas que arrancó el grupo y pasó a ser generadas por personas más nuevas. También activamos el IRC como medio de comunicación, pero usando #pyar como canal en Freenode (necesitábamos hacer algunos cambios y no teníamos acceso a Ricardo, que había creado el anterior). En conjunto, la lista y el canal de IRC, probaron ser los mejores medios de comunicación para el grupo, complementándose entre ellos ya que la dinámica es distinta en cada caso, y ambos teniendo como soporte persistente al sitio web, que de a poco se fue llenando de Recetas, Cartelera de Trabajo, Novedades, Documentación, FAQ, etc.

2008 arrancó con una gran novedad: el primer PyCamp. Organizado por Except, una empresa de Córdoba, este evento se desarrolló durante cuatro días en los que fuimos a trabajar en distintos proyectos de Software libre relacionados con Python, a socializar, y a tener algún pequeño contacto con la naturaleza.

En la reunión de Mayo de ese año se charló sobre las participaciones del grupo en otros eventos internacionales. Estuvimos representados nuevamente en PyCon y por primera vez en Fisl (donde integrantes de PyAr hicieron Falabracman, un juego en 36 horas para la competencia OLPC Game Jam, ¡la cual ganaron!).  También se charló una diferencia importante entre los grupos de usuarios de USA y de Argentina; en Estados Unidos se juntan directamente a programar o a hablar de cosas netamente técnicas, y en Argentina las reuniones son con un fin más social, para conocernos las caras y quizá tomar alguna que otra cerveza.  Relacionado con una idea que venía de antes, Humitos nos contó que estaba haciendo una traducción al español de manual de Django, y surgió el tema de traducir el Tutorial oficial de Python, con la posibilidad de imprimirlos y encuadernarlos para venderlos o regalarlos en algunos eventos.

La segunda mitad del año estuvo bien movidita también. No sólo por reuniones en Buenos Aires e interior (¡primera vez en Rosario!), sino que terminamos de definir el diseño de la segunda tanda de remeras de PyAr, y participamos nuevamente en las Jornadas Regionales de Software Libre. En este evento Python volvió a pisar fuerte, no solo por la cantidad de charlas presentadas o lo exitoso del stand, sino que volvimos a traer un invitado internacional (Raymond Hettinger) para que dé una plenaria en un evento de primera linea.

También se realizaron las 3ras Jornadas Python en Santa Fe, donde se anunció formalmente que al año siguiente se realizaría la primera conferencia nacional de Python en Argentina. En la última reunión del año en Buenos Aires se terminó de discutir el arranque de la organización de esta importante conferencia, y terminamos el 2008 con muchas ganas de que arranque el próximo.


Quinto aniversario

Los últimos días de Marzo del 2009 nos trajo la segunda edición del PyCamp, nuevamente en Los Cocos (Córdoba). Fueron nuevamente cuatro días en los que se desarrollaron muchos proyectos, y se profundizaron muchos lazos dentro de la comunidad Python.

La segunda parte del año tuvo como plato fuerte a PyCon Argentina 2009, la primera conferencia en español del mundo, un merecido festejo del quinto cumpleaños de PyAr. Fueron dos días en Septiembre, mañana y tarde, con tres secciones en paralelo la mayor parte del tiempo. Usamos tres auditorios de distintas capacidades, siendo el mayor para 300 personas, y dividimos las exposiciones en tres tipos: charlas comunes (tuvimos 33 distribuidas en ambos días), lightning talks, y plenarias.

PyCon fue todo un éxito (no esperábamos tanta gente, vinieron más de 400 personas, muchas de Buenos Aires, pero una buena parte de interior, y también gente de otros paises), y tuvo muy buena repercusión tanto en nuestro país como en medios internacionales. A esto último ayudó que tuvimos dos invitados de primera linea (Jacob Kaplan-Moss y Collin Winter) que se lucieron en sus respectivas charlas plenarias.

Para la conferencia pudimos terminar uno de los proyectos de larga data dentro del grupo: ni más ni menos que la traducción completa al castellano del Tutorial de Python (el oficial), que publicamos en la red pero que también imprimimos en cantidad para repartir durante la conferencia (especialmente en la charla de Introducción a Python), y que luego fuimos llevando a los otros eventos que participamos. Además, aprovechando que PyAr tiene mucha gente estudiando en Universidades, donamos Tutoriales a las Bibliotecas de dichas instituciones.

Terminamos el año con una participación en un evento amigo, Fábrica de Fallas, en La Tribu. No es un ámbito tradicionalmente orientado a la programación, y aunque PyAr siempre tuvo buena acogida en ese ámbito, nos sorprendió gratamente que uno de los momentos artísticos del evento haya sido la pintada de un mural cuya base es un tutorial de Python!

El comienzo del 2010 tuvo al clásico PyCamp en la primera parte del año, pero esta vez no en Los Cocos, como en las dos ediciones anteriores, sino en Verónica (Buenos Aires). Cambió el lugar pero no el estilo: los PyCamps son uno de los eventos de programación más interesantes que conozco, y uno de los que más cumplen a la hora de aprender y divertirse.

También se aceleró el trabajo sobre la CDPedia, el proyecto que ya les había mencionado sobre meter la Wikipedia en un disco para usarse sin estar conectados a Internet. En la versión CD entraron más de 80 mil artículos, la mayoría con imágenes. Y en la versión DVD entraron todos, casi todos con sus respectivas imágenes. Si podemos terminar algunas funcionalidades que necesitamos, estaríamos distribuyendo la CDPedia en muchas escuelas de todo el país, a través del Ministerio de Educación.

En Mayo se realizó el primer Python Day en Rafaela, Santa Fe, el cual fue un éxito, llevando a casi 100 personas. Y para Septiembre se hará el primer Python Day en Buenos Aires, que esperamos ansiosos.

La segunda parte del año nos traerá también el primer Ciclo de Charlas Abiertas, en La Tribu (una serie de charlas sobre programación y Python, a la gorra, abiertas a la comunidad), y la segunda edición de PyCon Argentina, esta vez en Córdoba.

Seguramente cerremos el sexto año del grupo festejando todo lo hecho, pero también planeando nuevos eventos, nuevas formas de promover Python, y de juntarnos entre todos los usuarios de Python del país.

sábado, 04 septiembre

15:21

Andrés Gattinoni: Notificaciones de mails Prioritarios de Gmail en nuestro escritorio

GMail

GMail

En estos días GMail empezó a implementar la Priority Inbox, o Prioritarios en su versión en castellano. No es nada demasiado novedoso, en realidad es una etiqueta que define a un mensaje como prioritario. Lo más interesante es que Gmail no solamente te puede mostrar por separado los mails con prioridad de los otros, sino que nos promete ir “aprendiendo” a determinar cuáles son prioritarios y cuáles no.

En estos días estuve probando el feature y me viene bien. Yo recibo muchos mails por día, la mayoría de distintas listas de correo. Y como soy muy obsesivo, cada vez que tengo un mensaje nuevo voy a ver de qué se trata y “marcarlo como leído”. Este feature me permite perocuparme solamente por los prioritarios y dejar los menos importantes (como los de las listas) para más tarde.

Hoy pensé: “qué bueno estaría tener una aplicación que me notifique solamente de los mails importantes”. Ya existen varios notifiers para Gmail, tanto de Google o de terceros, para Firefox o para el Desktop. Pero supongo que todavía no habrán implementado esta posibilidad de solamente avisarte de los mensajes prioritarios. Así que lo que hice fue hacerlo en Python que es muuuy fácil.

En su versión simplificada, ver si hay mails “Importantes” y notificarlo es tan sencillo como esto:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import imaplib
import pynotify
from email.header import decode_header
from email.parser import Parser

host = ‘imap.gmail.com’
port = 993
username = ‘usuario@gmail.com’
password = ‘passwordsupersecreto’

def get_header (msg, header):
        """Gets a header from a message"""
        header = decode_header(msg.get(header))
        if (header[0][1]):
            return unicode(header[0][0], header[0][1]).encode(‘utf8′)
        else:
            return header[0][0]

if not pynotify.init("GMail Important Messages"):
    print "Failed to initialize pynotify"
    sys.exit(1)

client =  imaplib.IMAP4_SSL(host, port)
if not client.login(username, password):
    print "Failed to login"
    sys.exit(1)

status, data = client.select(‘[Gmail]/Important’)
if status != ‘OK’:
    print "Failed to select Important label"
    sys.exit(1)

status, data = client.search(None, ‘(UNSEEN)’)
if status == ‘OK’ and data[0] != :
    for msg_id in sorted(data[0].split()):
        if msg_id != :
            status, data = client.fetch(msg_id, ‘(RFC822)’)
            if status == ‘OK’:
                msg = Parser().parsestr(data[0][1])
                pynotify.Notification(get_header(msg, ‘From’), \
                                       get_header(msg, ‘Subject’)).show()
            else:
                print "Failed to fetch message #%s" % str(msg_id)

Ese código lo que hace es inicializar pynotify, conectarse al servidor IMAP de GMail usando imaplib, autenticarse con el user y password provisto, seleccionar la etiqueta “[Gmail]/Important” y ver si hay mensajes sin leer. En caso de que haya itera sobre ellos, obtiene su contenido (para sacar el remitente y el asunto) y lanza un mensaje de notificación.

Para convertir eso en una aplicación básicamente hace falta meterlo en un while y corregir un detalle que es que el fetch del mensaje lo marca como leído (y eso no es algo que queramos en un simple notificador), así que hay que volver a marcarlo como no leído. Eso y algunos toques cosméticos es lo que hice en el script completo.

Por supuesto se trata solo de una prueba de concepto y a una aplicación completamente funcional deberían hacersele algunas correcciones más. Pero creo que es una idea divertida como para que otros puedan hacer algo mejor.

15:14

Diego Sarmentero: Remera

Como comentaba en el Post anterior, me quiero hacer una remera de Qt, pero boludeando un rato, se me ocurrió de hacerme (además de la de Qt) una remera con mi nombre con "código ofuscado".

Esto es lo que se me ocurrió hasta ahora (no es GUAU que ofuscado, pero bue...):

(Diego)

A alguien se le ocurre algún código más corto y ofuscado que pueda usar?

14:37

Diego Sarmentero: Remera Qt

Ayer viendo un par de páginas de Qt, encontré que para algunos eventos de Qt (en conferencias en países donde por el momento no tengo forma de ir :P) suelen regalar unas remeras que cuando las vi me parecieron muy copadas...




pero, no las tienen para la venta, entoncessssssss...
La segunda imagen esta fácil para poner en una remera, pero la primera esta muy chica y era la que más me había gustado, asi que con un poco de GIMP me hice mi propia copia del modelo de esa remera :P

Modelo Remera Blanca:

Modelo Remera Negra:


Ahora a hacerme la remera nomas!! :D

viernes, 03 septiembre

22:27

Diego Sarmentero: Sumando Lecturas

Bueno, acá sumo 2 lecturas más. Termine de leer:

Jeff Lindsay - Dexter: El Pasajero Oscuro 

Moisés Cabello - Olimpo

Suele pasar que cuando un libro lo convierten en película o serie, casi siempre la película/serie se queda muy corta en comparación con el libro, pero tengo que decir que en el caso de "Dexter: El Oscuro Pasajero" (en este libro esta basada la primer temporada de la Serie), la adaptación que hicieron para la Serie fue genial, la serie me re gusta, y el libro la verdad me pareció medio pavo o artificial en algunas cosas, y la personalidad de los personajes también me parece mucho mas creíble en la serie... pero bue, es mi opinión nomas.

Y ahora ya empecé a leer la "Trilogia del Imperio" de Asimov :D

17:45

Diego Sarmentero: Volver al Futuro (Juego)

Hoy leo en MundoGeek que Universal ha confirmado el lanzamiento de una versión totalmente restaurada de la trilogía de "Volver al Futuro" ("Regreso al Futuro", o "Back to the Future") en formato Blu-ray, cargada de contenido extra. La cual estará disponible el 26 de Octubre, coincidiendo con el 25 aniversario de la franquicia.
Y que además la Gente de Telltale Games, la empresa encargada del desarrollo del nuevo "Monkey Island" y el nuevo "Sam and Max", se han atrevido con una aventura gráfica  basada en esta saga tan querida por todos. Y parece que hay motivos para creer, ya que Bob Gale, el guionista que escribió las tres películas, también está involucrado en el proyecto.



En la página Web del juego se pueden anotar para recibir noticias del mismo o lo que fuere: http://www.telltalegames.com/bttf

12:04

Mariano Reingart: Se viene el PyDay 2010 Buenos Aires

Este sábado 4 de septiembre es la jornada sobre el lenguaje de programación Python "PyDay Buenos Aires 2010" organizado por PyAr:

http://www.pyday.com.ar/

Entre varias charlas agendadas estaré presentando web2py (una herramienta para desarrollo web simple y poderosa) y seguramente en los espacios abiertos y/o charlas relámpago hablaremos sobre los proyectos PyAfipWs (factura electrónica libre), PySimpleSOAP (webservices), PyFPDF, Gestión Libre, y demás temas generados desde nuestro emprendimiento "Sistemas Ágiles", sin olvidarnos de PostgreSQL y su nueva versión 9.0!

jueves, 02 septiembre

11:51

Diego Sarmentero: Asimov: Trilogia del Imperio

POR FIN!!
Me llego el libro "Trilogía del Imperio", que reune las historias de:

  • "Polvo de Estrellas" (también conocido como "En la arena estelar")
  • "Las Corrientes del Espacio"
  • "Un Guijarro en el Cielo"
 
Con esta adquisición solo me están faltando 4 libros para completar toda la SAGA DE LA FUNDACIÓN!!

Libros de la Saga:
  • El Fin de la Eternidad (algunas referencias lo sitúan al principio de la Saga)
  • Yo, Robot
  • Bóvedas de Acero
  • El Sol Desnudo
  • Los Robots del Amanecer
  • Robots e Imperio
  • Polvo de Estrellas (En la Arena Estelar)
  • Las Corrientes del Espacio
  • Un Guijarro en el Cielo
  • Preludio a la Fundación
  • Hacia la Fundación
  • Fundación
  • Fundación e Imperio
  • Segunda Fundación
  • Los Límites de la Fundación
  • Fundación y Tierra

- Tengo
- No Tengo

11:29

Andrés Gattinoni: Backups con tar + rsync + rotación

En estos días tuve que configurar unos backups para un cliente. Algo bastante sencillo. Tenía dos servidores y necesitaba hacer backups de distintas cosas en cada equipo y copiarlos al otro. Por supuesto, la herramienta clave para esto es rsync. Googleando un poco vi que existe esta página donde se puede ver cómo generar snapshots incrementales automáticos usando hard links y rsync. Realmente es una solución muy interesante, pero a mí no me terminaba de convencer porque yo quería tener archivos comprimidos que fueran rotando.

Por lo tanto lo que hice fue, seguramente, reinventar la rueda una vez más. Hice una pequeña librería en BASH que luego reutilicé en los distintos scripts de backup que hice. La clave aquí es la función “create_archive” que toma un path, un nombre de archivo base y una lista de archivos, y se ocupa de ir al path, ver todos los archivos que haya con ese patrón de nombre básico, rotarlos y generar un nuevo tar.gz. Después agregué un par de funciones más que me venían bien, “log” para registrar todo lo que pasaba en un archivo, “mail_notification” para mandarme mails y “sync_backup_servers” para ejecutar rsync.

El código:

#!/bin/bash
CONF_FILE="/home/sysbackup/scripts/backup.conf"
if [ -f $CONF_FILE ]; then
    . $CONF_FILE
else
    echo "Configuration file $CONF_FILE not found"
    exit 1
fi

RM_BIN="/bin/rm"
TAR_BIN="/bin/tar"
MAIL_BIN="/bin/mail"
RSYNC_BIN="/usr/bin/rsync"

function log
{
    echo "`date`: $*" >> $LOG_FILE
}

function mail_notification
{
    subject="$1"
    message="$2"

    if [ -z "$subject" ]; then
        subject="Backup Notification"
    fi

    if [ -z "$NOTIFICATIONS_MAILS" ]; then
        log "mail_notification: empty recipients list"
        return 1
    fi

    if [ -z "$message" ]; then
        log "mail_notification: empty message"
        return 1
    fi

    sysdata="Date: `date`\nHost: `hostname`"

    echo -e "$message\n\n$sysdata" | $MAIL_BIN -s "$subject" "$NOTIFICATIONS_MAILS"
}

function sync_backup_servers
{
    log "Running rsync from $LOCAL_DIR to $REMOTE_DIR as $RSYNC_USER"
    su -c "$RSYNC_BIN -aq –delete -e ssh $LOCAL_DIR/ $REMOTE_DIR/ 2>> $LOG_FILE" $RSYNC_USER
    if [ $? -eq 0 ]; then
        log "Syncronization complete successfuly"
    else
        log "Syncronization finished with errors"
    fi
}

function create_archive
{
    file_path="$1"
    file_name="$2"
    files="${*:3}"

    if [ -z $file_path ]; then
        echo "Missing file path"
        return 1
    fi

    if [ -z $file_name ]; then
        echo "Missing file name"
        return 1
    fi

    if [ -z $files ]; then
        echo "Missing file list"
        return 1
    fi

    if [ -z $MAX_BKP_FILES ]; then
        MAX_BKP_FILES=4
    fi

    archive_name="${file_name}_`date +%Y%m%d`.tar.gz"
    log "Preparing to create $archive_name archive"

    # Begin to Rotate files
    # Sort files by date and keep the latest ones
    # MAX_BKP_FILES will determine how many to store
    dir=`ls -t $file_path/${file_name}_*.tar.gz 2> /dev/null`
    if [ $? -eq 0 ]; then
        N=0
        for file in $dir; do
            if [ $N -lt $MAX_BKP_FILES ]; then
                let N++
            else
                log "Removing old file $file"
                $RM_BIN -f $file
            fi
        done
    else
        log "No other archive found on $file_path"
    fi

    log "Creating tar archive $file_path/$archive_name"
    $TAR_BIN zcf "$file_path/$archive_name" $files 2>> $LOG_FILE
}
 

Algunas consideraciones importantes.

Configuración

Al principio del script lo que hago es incluir un archivo de configuración con algunas variables básicas que voy a utilizar. Este archivo debería ser algo similar a esto:

#!/bin/bash
LOCAL_DIR="/home/sysbackup/backup/server1.domain.com"
REMOTE_DIR="sysbackup@server1.domain.com:/home/sysbackup/backup/server1.domain.com"
LOG_FILE="/var/log/sysbackup.log"
MAX_BKP_FILES=4
NOTIFICATIONS_MAILS="admin@email.com"
RSYNC_USER="sysbackup"
 

LOCAL_DIR es el directorio local base donde van a estar mis backups. REMOTE_DIR es el directorio equivalente en el otro servidor. Lo que hice fue crear un usuario “sysbackup” (un poco menos obvio que “backup”, pero también self-explanatory) en los dos servidores y generar llaves para que se puedan conectar por SSH entre los dos servidores. Luego en la /home de cada usuario creé una carpeta “backup” y adentro de ella una carpeta para cada host que iba a ser backupeado “server1.domain.com” y “server2.domain.com”.

LOG_FILE indica el archivo donde se van a guardar los logs del backup y MAX_BKP_FILES determina la cantidad máxima de archivos de backup que va a haber por cada elemento.

Rotación

Como dije, la función más importante es create_archive. La pensé para logs que se crean una vez por día (o cada más tiempo), por lo que si la quieren usar para rotar logs generados en intervalos de tiempo más cortos van a tener que modificarla. Lo que hace es generar un nombre de archivo con una raiz elegida por nosotros (digamos “db”) y la fecha actual (la función pone la fecha, pero si necesitan intervalos más cortos van a tener que poner fecha y hora). Luego hace un `ls -t` del directorio donde hay que generar el backup para ver si hay otros archivos que coincidan con el patrón del nombre correspondiente (por ejemplo, ‘db_*.tar.gz’). Si hay archivos, va a conservar los últimos 4 (en realidad la cantidad la determina MAX_BKP_FILES) y va a borrar los más viejos. Por último, va a generar el tar.gz con la lista de archivos que le hayamos pasado.

Ejemplo:

create_archive "$LOCAL_DIR/web" "web" "/var/www/html"
 

Va a generar con un archivo de nombre como “web_20100902.tar.gz” en la carpeta $LOCAL_DIR/web con todos los contenidos de /var/www/html.

Rsync

La función sync_backup_servers hace la sincronización entre los dos servidores usando rsync por SSH. Una cosa a tener en cuenta es que en mi caso, yo necesitaba que el script de backup corriera como root (para poder acceder a todos los archivos que había que backupear) pero quería que el rsync se ejecutara con el usuario sysbackup (para mayor seguridad). Por lo tanto la función usa “su -c sysbackup”. Si a uds. este enfoque no les sirve pueden poner en la función directamente:

$RSYNC_BIN -aq –delete -e ssh $LOCAL_DIR/ $REMOTE_DIR/ 2>> $LOG_FILE
 

Notificaciones por mail

Es muy útil poder tener notificaciones por mail, sobre todo cuando las cosas andan mal. El comando “mail” de Linux/Unix es muy útil para esto. La funcion mail_notification usa ese comando para mandar un mail con el mensaje que queramos y le agrega dos datos útiles: la fecha y el hostname desde el que se manda. En realidad son datos que siempre viajan en los headers del mail, pero a mí me parecía útil que estuvieran en el body.

Espero que les sirvan estos recursos. No son una solución completa y cerrada, sino herramientas que quizás les sirvan para implementar o al menos pensar cómo hacer sus propios sistemas de backup. Les recomiendo enfáticamente que lean este artículo sobre cómo generar backups con rsync porque explica muchas cosas fundamentales.

08:34

Santiago Peresón (Yaco): perro viejo, trucos nuevos

capacitores, op-amps, resistencias… bienvenido al nuevo mundo.

cansado de simular analógicas, desde hace un par de semanas empecé a explorar electrónica. circuitos analógicos. caminos donde el sonido continuo es siempre transformado, pero nunca diseccionado, cortado en láminas para hacer estadística.

un lugar interesante…

miércoles, 01 septiembre

13:36

Roberto Alsina: Goodreads+webcam+python+zbar == hackfun!

Me gusta mucho GoodReads una red social para gente que lee libros.

Leo mucho, y me gusta que puedo ver las opiniones de otra gente antes de empezar un libro, y puedo poner comentarios, y que anduve leyendo, y otras cosas.

De hecho, goodreads va a ser una parte importante de un proyecto que estamos empezando con gente de PyAr.

Una cosa que no vengo haciendo es agregar los libros que tengo en goodreads, porque es mucho laburo.

Bueno, ya no tanto!

Así se hace, al estilo hacker...

  1. Instalá zbar
  2. Conseguite una webcam barata
  3. Agarrá un libro
  4. Un programita python de 7 líneas (ver abajo)

Y mirá el video...

¿No es lindo?

El programa:

import os

p=os.popen('/usr/bin/zbarcam','r')
while True:
    code = p.readline()
    print 'Got barcode:', code
    isbn = code.split(':')[1]
    os.system('chromium http://www.goodreads.com/search/search?q=%s'%isbn)

13:08

Manuel Kaufmann (Humitos): Empecé circo

Culiado, ¡Me duele hasta el cu…!

Hace aproximadamente dos semanas que estoy yendo a circo los Lunes y Jueves. Sí, y ya falté a una clase, cualquiera lo mío. Pero lo interesante es que es realmente divertido y estoy muy enganchado.

Estoy contento porque es una actividad que desconocía por completo que se realizaba en Paraná, depende de la Municipalidad, es gratis, libre, con gente muy buena onda y muchas otras características que lo hacen que sea muy piola asistir.

En lo personal, empecé esta actividad para salir un poco de la computadora, trabajar el cuerpo y distraer la mente. Sobre todo esta última ya que ir a un lugar dónde te vas a encontrar con gente que no tiene nada que ver con lo que vos te dedicás, que no esté relacionado con estudiar algo (como ir a inglés, por ejemplo) y que la actividad principal es divertirse me resultó muy apropiado.

En la escuela está ubicada en el Centro Cultural Gloria Montoya (Rivadavia al final). Esto antes era un boliche bailable, así que se pueden imaginar la onda del lugar. De hecho, la mayoría de las actividades se realizan sobre la pista del boliche que es de parquet. Es muy lindo el lugar, lamentablemente, como muchos de estos lugares en Paraná, está un poco abandonado, tiene muchas manchas de humedad, las canillas pierden agua y cosas similares.

El primer día que tuve clases, fue medio raro porque la mayoría venían hacer una presentación hacía un par de días atrás, así que fue medio liberal y cada uno hacía lo que quería, practicaba cosas que estuvieron flojos en la presentación o bien charlaban mucho sobre esta. Yo como no tenía idea de qué estaban hablando me dieron para hacer algunos ejercicios:

  • rola: no estoy seguro si este es el nombre exacto, en el link se puede ver una foto de como sería, aunque si bien ese está haciendo con varias tablas, a mí para empezar me dieron sólo una. La idea era que nos agarremos con las manos de algún lugar e intentemos ir dejando de lado esto y mantener el equilibrio con el cuerpo y “la mente”. Posta, influye mucho si estás concentrado o si no lo estás; aunque parezca raro cuanto menos estás pensando y mirando tus pies más fácil es controlarlo.
  • malabares: nos dieron tres pelotitas de tenis a cada uno y nos dijeron que empecemos a practicar con una al principio, pasándola de mano en mano y midiendo la fuerza con la que la tirábamos para que siempre salga más o menos igual. Como yo ya sabía hacer con tres pelotitas, me dijeron que practique nomás y me enseñaron algunos trucos que ya sabía también. Así que dediqué ese tiempo a probar boludeces y tratar de mantener la técnica (que no la sabía). Después agarré la rola y traté de hacer malabares arriba de esta, no salió muy bien :S
  • tela: muy groso. Hay que tener mucha fuerza para esto, pero sobre todo hay que saber controlarla y aplicarla en los lugares relevantes. Por ejemplo, uno hace mucha fuerza con la mandíbula cuando está concentrado en el ejercicio… Entonces, hay que saber aplicar la fuerza sobre los puños para no caerse, en la espalda, abdomen y piernas para hacer alguna figura. Es muy divertido. Me quedaron doliendo mucho las articulaciones de los dedos de las manos, parece que tuviera artritis.

Después de esto elongamos lo suficiente como para que podamos salir caminando de ahí. Claro, yo hace años que no hago nada, ninguna actividad física más que caminar mucho. Así que estaba molido. Mejor ni cuento como estaba a los dos días (el peor de todos).

A la siguiente clase vimos un video del Cirque Du Solei y después de esto vimos la presentación del curso completo que hicieron en el Teatro 3 de Febrero de Paraná. Estuvo muy bien por cierto, me emocioné un poco :) . Después de eso terminó la clase, no hicimos actividad ese día :(

La última clase que fui estuvo buenísima. Hicimos una entrada en calor que fue con un poco de actuación también. En la pista hicimos un cuadrado con las colchonetas y nos pusimos todos adentro de éste. Éramos 11 más o menos. Empezamos a caminar, sin sentido alguno dentro del cuadrado, pero no se podía caminar en círculos y siempre manteniendo la mirada en el horizonte. No se podía mirar hacia abajo.

Nos fueron dando diferentes indicaciones, que recorramos todo el espacio, que caminemos de diferentes formas, que usemos las manos, que nos arrastremos, sin chocarse, sin caminar en círculo y sin bajar la mirada. Después había que hacer todo esto y agregarle un sonido cada tanto, no sé, cualquier cosa, lo primero que se te venía a la mente (ya para este momento nos estábamos cagando todos de risa… y eso no se podía tampoco :) ).

Manteniendo todo lo anterior había que hacer de estatua de algo. El profesor iba a decir alguna estatua y nosotros teníamos que hacer lo primero que se nos venía a la cabeza y cuando decía basta seguíamos con lo que estábamos haciendo (nunca dejar de caminar). Entonces el vago tiraba cosas como estatua de chancho con hambre… Lo primero fue cagarse de la risa y después intentar hacerlo. Realmente era muy chistoso. Otra que tiró era estatua de cartuchera pobre, seee cualquiera, pero re divertido. Nos hizo perder la timidez y entrar más en confianza. Estuvo bueno eso. A esto se le sumó la interacción con los compañeros, tratar de armar estatuas de a dos y cosas así (siempre sin pensar mucho).

El siguiente ejercicio fue copiar la forma de caminar y sonar del otro, entonces decía: “bueno ahora copien a Manuel” (sí, me dicen Manuel, cualquiera eso :P ); entonces por un rato quedás como un pelotudo haciendo el ridículo y todos se te cagan de risa y te da un poco de vergüenza todavía, pero mucho menos que si no nos hubiera hecho hacer los otros ejercicios.

Luego nos hicieron caminar pegados de alguna forma en grupos, no sé, de la frente, de la nuca, pegados de la cadera, de las manos, del codo y cosas así. Sin hablar e intentando llegar a un acuerdo sin mirarse, sólo expresándose con el cuerpo.

El último ejercicio de esta entrada en calor fue de a grupos de a cuatro. Nos poníamos en una ronda con los ojos cerrados, el resto de los chicos nos miraban a nosotros, y el profesor te tocaba una vez. En este momento tenías que empezar a hacer un loop con algún sonido que se te acababa de ocurrir hasta que te volvía a tocar y parabas. Cuando estabas callado y te volvía a tocar tenías que inventar otro sonido y nuevamente hacer un loop, entonces el loco iba mezclando los sonidos que tirábamos los cuatro. Salieron cosas interesantes, casi una banda de beatbox :P

Por último hicimos tela nuevamente, nos enseñaron a escalar y a hacer algunas figuras más. Por suerte cuando terminamos no me dolían tanto las manos y aprendí a controlar mucho más la fuerza en los lugares que la necesitaba.

Antes de irnos elongamos, me despedí de todos y me fui re contento pensando: “¿Qué es una computadora?”. Realmente estaba en otra cosa y lo que menos se me pasó por la cabeza en todo ese tiempo fue algo que tenga que ver con programación, ya no sabía ni lo que era casi. Como ejercicio de relajación mental es fabuloso.

Referencia:


10:16

Marcos Vanetta: Agregar resaltado de código a gedit

En un post anterior les comente sobre gedit, un excelente editor y potencialmente un gran IDE. Hace unos días atrás volví a usarlo para unos experimentos en Ruby on Rails. Pero había archivos en los que no funcionaba bien el resaltado de código (hight light code). Principalmente en los archivos de vistas ERB. Buscando encontré [...]

martes, 31 agosto

13:43

Facundo Batista: Foto interesante: Chicago luz


Como dice el título, Chicago. Marzo del 2008, un frio de cagarrrrrrrrse, esperando el tren en la plataforma elevada para volver al hotel. El viaje que contextualiza la foto: PyCon USA 2008. La foto no fue demasiado complicada, una larga exposición buscando algún juego de contrastes entre lo oscuro de las vias y el cielo atrás (las primeras parecen apuntar a lo segundo), lo muy brillante de las luces, y el punto medio en los edificios.

Chicag luz

Las otras fotos interesantes hasta ahora, acá.

00:54

Diego Sarmentero: Persons Unknown

Acabo de terminar de ver la Primer Temporada de "Persons Unknown"... los primeros capítulos me acuerdo que estaba en duda de si seguir mirando o no, por momentos me re enganchaba, y en otros momentos medio le faltaba emoción, pero poco a poco la serie se va poniendo cada vez más buena, y los últimos 2 capítulos de la temporada están realmente MUY GROSOS!!
La primer temporada tiene solo 13 capítulos... y ahora ya tengo ganas de que empiece la segunda temporada, que no se cuando sera eso...


lunes, 30 agosto

23:05

Diego Sarmentero: Through The Wormhole

Me demore en ver los últimos 2 capítulos, pero ya termine con "Through The Wormhole" una serie/documental de Science Channel conducida por Morgan Freeman. La verdad muy muy buena serie, son solo 8 capítulos, pero tratan temas muy copados, donde para la mayoría de los temas en realidad no hay ninguna respuesta definitiva sino que se muestran las distintas teorías actuales que tratan de explicar esos temas.

En fin, una serie/documental que realmente vale la pena ver para escuchar distintas teorias sobre temas que seguramente conocemos y abrir la mente a otras posibles explicaciones.


20:55

Diego Sarmentero: Sherlock

Ayer empecé a ver "Sherlock", una adaptación de los libros de Arthur Conan Doyle en una serie de televisión, pero modernizando la historia y haciendo que sea en la actualidad. Se hicieron solo 3 capítulos para la primer temporada de la Serie como para ver si lograba generar interés, y por la buena respuesta que tuvo, se esta preparando una segunda temporada para el 2011.
La serie aunque la primer temporada consta solo de 3 capítulos, cada capítulo dura una hora y 30 minutos, así que hay para un buen rato (a no ser que veas los 3 capítulos juntos :P).
La historia y la personalidad de los personajes esta muy buena, y según mi hermano (por el lado de los seguidores de las novelas) que él si leyó los libros de Sherlock Holmes, dice que es una buena adaptación, que respetan muchas cosas de la historia original a la vez que le agregan ese toque moderno.

En fin, Serie Recomendada!!


10:24

Marcos Vanetta: ActiveRecord, a brief introduction – Part 1

Active record es un patrón de diseño. Es un enfoque al problema de acceder a los datos de una base de datos. Donde cada tabla es una clase por lo que cada fila es asociada con objetos del lenguaje de programación usado. Cuando se crea uno de estos objetos, se añade una fila a la [...]

domingo, 29 agosto

23:11

Juanjo Conti: Fotos en el campo

Hoy a la tarde fuimos con Padre al campo a buscar verdura para la semana. Aproveché para sacar algunas fotos y probar los “efectos” que vienen con la cámara del celular desde que le actualicé el sistema operativo.

2010-08-29_17-02-11_28 2010-08-29_17-04-32_950 2010-08-29_17-04-45_817 2010-08-29_17-05-01_912 2010-08-29_17-06-01_607 2010-08-29_17-06-40_896 2010-08-29_17-07-05_130 2010-08-29_17-07-24_552 2010-08-29_17-07-48_60 2010-08-29_17-08-19_564 2010-08-29_17-10-40_238 2010-08-29_17-11-54_476 2010-08-29_17-14-12_1 2010-08-29_17-16-55_283 2010-08-29_17-18-33_791 2010-08-29_17-18-46_863 2010-08-29_17-19-36_465 2010-08-29_17-19-44_949

Se dieron cuenta que poniendo la cámara en modo sepia, fotos normales se convierte en casi artísticas? Nice.

15:56

Manuel Kaufmann (Humitos): Uso práctico de VNC

Actualmente tengo una computadora de escritorio, que dejo siempre prendida y uso como server: para descargar cosas de internet, para guardar la música, como backup, servidor web y demás.

Como todas las cosas que bajo de internet están en ese equipo, necesito organizar las cosas que bajo y no siempre uso un programa en modo texto (consola) para hacer esto. Por ejemplo, si es un disco con mp3 me gusta ponerle los ID3 correctos con easytag, o si bajo un DVD9 lo tengo que convertir a DVD5 para poder grabarlo y lo hago con k9copy.

Para estos programas necesito tener una interfaz gráfica, entonces uso VNC para ello. De hecho, normalmente tengo corriendo el JDownloader en un VNC porque lo quiero tener siempre abierto, pero no quiero que me moleste en la barra de tareas y además también me interesa controlarlo remotamente, si bien para esto uso el servidor web que trae, éste no cubre toda la funcionalidades que se pueden hacer mediante la interfaz gráfica. Por ejemplo, ingresar los códigos que piden algunos File Hosting.

Entonces, la idea de esto es, levantar un servidor VNC y ejecutar programas dentro de éste (sin que alteren el escritorio actual) y luego poder comandar estos programas que lanzamos en el VNC desde cualquier otro equipo. Mi idea fue así:

vncserver :4
export DISPLAY=michifus:4
java -Xmx512m -jar ~/.jd/JDownloader/JDownloader.jar &

Con esto estoy levantando un servidor en el display 4 de localhost (que se llama michifus en la red). Entonces, después exporto ese display para ser usado por los programas y ejecuto el JDownloader.

Luego, desde otra PC me conecto usando el xtightvncviewer:

xtightvncviewer michifus:4

Y ahora puedo administrar el JDownloader mediante VNC como si estuviera sentado en la PC que lo está ejecutando realmente. Esto es normalmente lo que tengo ejecutando en el VNC siempre. Además, cuando bajo algo como antes comentaba, quiero levantar otro programa; para eso me conecto por ssh al servidor y hago:

export DISPLAY=michifus:4
k9copy &

Luego me conecto nuevamente por VNC a michifus y veo que se cargó el k9copy en el escritorio que estoy sirviendo por VNC.


13:58

Roberto Alsina: PET: English Translation Issue 1 tiene fecha

Porque funcionó una vez, hagámoslo de nuevo. Acabo de ponerle una fecha completamente arbitraria y probablemente muy cercana para la salida del primer número en inglés de la revista "PET: Python Entre Todos".

La versión en inglés se llama PET, que significa "Python Entre Todos: English Translation".

Va a tener los mismos contenidos que el primer número en castellano... y va a ser la última que hagamos así.

De ahí en más, las dos versiones van a salir al mismo tiempo, si podemos.

Por lo tanto, va a haber un lapso muy corto entre el primer número en inglés y el segundo (ojalá que menos de un mes).

Así que , no cambien de canal

12:20

Juanjo Conti: Dejar de revisionar un archivo sin borrarlo en svn

A veces me pasa que en un proyecto tengo un archivo X que empezó siendo un archivo común, pero en un momento dado, cada desarrollador necesita taner su propia copia y no revisionarlo más.

Cómo dejar de revisionarlo sin borrarlo?

La primer vez que me topé con el problema hice:

cp X Y
svn rm X
svn ci -m "chau X"
mv Y X

Ugly.

La forma correcta de hacerlo es:

svn rm --keep-local X

11:45

Juanjo Conti: Cómo unir videos en GNU/Linux

Ayer en Carlos Pellegrini fue el Día del Pueblo. Una de las actividades que hubo fue una carrera de autos con obstáculos. Aproveché para filmar un poco y probar mi nuevo celular, por lo que terminé con varios archivos mp4. Para subirlos a Internet quería unirlos: ¿cómo hacerlo de forma fácil? Si tenés varios archivos de texto y querés unirlos, o expresándome de forma más correcta, contactenarlos, usás el comando cat. ¿Se puede hacer lo mismo con videos? Suena algo loco cuando se escucha por primera vez, pero hay algunos formatos que SI lo soportan, como mpeg 1 y 2.

Usando ffmpeg podemos convertir los archivos mp4 a mpeg. Parados en el directorio donde estén los videos:

for i in `ls *.mp4`; do ffmpeg -i $i -sameq $i.mpeg; done

Ahora simplemente los concatenamos y redirigimos la salida de cat a un nuevo archivo:

cat *.mpeg > video.mpeg

Notemos que el orden lexicográfico de los videos coincide con el orden en que fueron tomados; por eso puedo usar el * y obtener un resultado ordenado en el tiempo.

Listo, subí el resultado a YouTube.

Me hubiese gustado una transición más suave entre video y video, pero investigarlo y hacerlo excedía la ecuación costo beneficio. Se escuchan ideas!

sábado, 28 agosto

14:17

Manuel Kaufmann (Humitos): Algunos comandos útiles

Hace un tiempo, por lo menos 2 años, que tengo un Trac instalado en casa para uso personal. La idea surgió para organizar mis cosas personales, como repositorio de código para los scripts que vaya haciendo y además para anotar documentación sobre las cosas que voy investigando: links, paquetes, configuraciones, instalaciones de programas, comandos y demás.

En este post voy a poner algunos comandos (surtidos) que no tienen nada que ver uno con el otro, pero que son realmente útiles y que normalmente los busco en internet cada vez que necesito hacer algo similiar, a partir de que los anoté en el wiki del trac que uso me pasa que probablemente me lo acuerdo o sinó, al menos, ya sé dónde buscar.

Seleccionar el programa a usar por defecto

En Linux podemos tener instalados varios programas para hacer lo mismo en pocas palabras, como ser el Java o bien el Navegador Web. Existen otros programas que en algún momento por ejemplo quieren abrir una página web y se fijan cual es el navegador que tenemos configurado por defecto, y lo lanzan con el link en cuestión. Puede ser que el navegador configurado en nuestro Linux por defecto no sea el que realmente usamos comunmente. Para cambiar esto existe el comando update-alternatives

humitos@teresa: ~$ update-alternatives –config x-www-browser
There are 5 choices for the alternative x-www-browser (providing /usr/bin/x-www-browser).

Selection    Path                    Priority   Status
————————————————————
0            /usr/bin/google-chrome   120       auto mode
1            /usr/bin/google-chrome   120       manual mode
* 2            /usr/bin/iceweasel       70        manual mode
3            /usr/bin/konqueror       100       manual mode
4            /usr/bin/opera           90        manual mode
5            /usr/bin/xlinks2         69        manual mode

Press enter to keep the current choice[*], or type selection number: 2
humitos@teresa: ~$

Como cualquier comando de Linux, hay un montón de opciones y de variables para configurar, recomiendo mirar el man update-alternatives

Sincronizar directorios

Una cosa que hago mucho es copiar información de una máquina a otra por la red en mi casa, o cuando voy a la casa de un amigo y me quiero llevar varias cosas de las que tiene en su máquina. Entonces, ¿seguimos utilizando el método antiguo de Windows que cuando se corta la transferencia por algo tenemos que hacer todo de nuevo o empezar a ver qué era lo que ya pasó y qué lo que no? Al menos yo, nunca supe qué hacer en esos casos y copiaba todo de nuevo: ¿se me había pasado algo?

Bueno, en Linux estoy usando rsync para esto y para algunas cosas más (por ejemplo para hacer backups). Lo bueno de rsync es que compara los dos directorios y copia sólo lo que falta, digamos, continúa con la copia anterior. Además se puede hacer que sincronice los directorios, borrando lo que corresponda de cada lado luego de hacer la transferencia. En pocas palabras: se puede hacer mucho con rsync y no lo sé usar para todo lo que se puede.

rsync –recursive –human-readable –verbose –checksum –delete-after \
–exclude winxp.img /media/sdb1/trabajo trabajo

El comando anterior es el que usaba cuando no tenía notebook y trabajaba en mi casa y además en la oficina, entonces lo que hacía era sincronizar todo lo que tenía en el pen drive con la carpeta local borrando las cosas que estaban de más en la carpeta de destino (en este caso la de la máquina, no la del pen drive). Las otras opciones más o menos se caen de maduras :)

Levantar un trac de forma simple

Durante mucho tiempo (antes de tener el trac que tengo ahora en casa) lo tenía en el pen drive y me resultaba extremadamente útil, porque iba a dónde iba podía levantarlo con toda la documentación que hacía un tiempo venía escribiendo, buscar cualquier cosa y actualizarlo. De hecho, lo podía levantar en Windows también si hiciera falta, aunque era un poquito más complicado.

tracd -p 8080 –basic-auth=trac,/media/humitos/trac/htpasswd,trac /media/humitos/trac

De esta forma estoy levantando el trac en el puerto 8000 y diciéndole que utilice el archivo htpasswd para obtener los usuarios y las claves desde ahí. El último argumento es la ruta a dónde se encuentra el trac.

Nota: la idea de meter un trac en el pen drive fue de un compañero de trabajo en el Ministerio de Innovación y Cultura: Cristian, se merece sus créditos :)

Ordenar los mp3 en el reproductor de mp3

Muchas veces me ha pasado con algunos reproductores de mp3 que no reproducen los archivos siguiendo el orden alfabético de los mismos sino que siguen el orden que tienen en la tabla FAT. No estoy seguro si esto pasa únicamente cuando copiamos los archivos con Linux o también pasa con Windows. Nunca escuché a un usuario de Windows que tenga este problema, pero sí lo he escuchado de algunos usuarios de Linux.

El programa que utilizo para ordenar los mp3 de la forma que quiero que se reproduzcan se llama fatsort y se usa así:

fatsort /dev/sdc

Nota: esta forma de ordenar los mp3′s se la debo a Nicolás, un groso

Utilizar ssh en el puerto 443 y mediante https

Existen muchos lugares en los que limitan el acceso a internet a sólo conexión https y http entonces no podemos acceder a nuestra máquina linux en la que tenemos corriendo un ssh en el puerto 22 (que es el puerto por default). Para estos casos, yo tengo configurado el ssh corriendo en el puerto 443 y utilizo un programa llamado corkscrew para que meta el ssh dentro de una conexión https :)

Los único que hay que hacer es editar el archivo de configuración de ssh en la máquina desde la cuál nos vamos a conectar a la que tiene el ssh corriendo en el puerto 443. El archivo es este ~/.ssh/config

Host=humitos.homelinux.net
ProxyCommand /usr/bin/corkscrew 10.2.6.219 3128 %h %p
Port 443

En el ejemplo anterior el ip 10.2.6.219 es el ip del proxy al cuál nos vamos a conectar para salir a internet y el 3128 es el puerto de este.


jueves, 26 agosto

20:22

Evita: Tenemos nuestra primera bicicleta - Nos vamos !

Este blog se cierra, se va. En realidad se muda, se va de su alojamiento en blogspot a su nueva casa. Su dominio propio. La Fundación Eva Perón, por la que obtuvimos nuestra primera bicicleta, hoy nos da nuestro primer hosting. Sí compañero, sí compañera, para visitarnos, simplemente hacé clic en:



Con un nuevo diseño, con las cosas de siempre y con las que agregaré día a día, dejamos a blogspot y nos vamos a Wordpress, un verdadero blog libre, con el dominio propio pagado de mi bolsillo con el cheque que Anibal Fernandez nos pasa semana a semana según las palabras de los medios gorilas y los gorilas de los medios.

Me voy en mi bicicleta, los espero en el nuevo sitio.



Viva Perón! Viva Evita! Viva la compañera Presidenta Cristina!

17:52

Patricio Molina: ¿Por qué tener auto es estúpido?

A continuación voy a escribir por qué creo que tener auto es estúpido, aun cuando el sistema de transporte público de la Ciudad de Buenos Aires tiene muchas falencias.

Supongamos que vivo en Caballito y trabajo en Palermo. Por comodidad, sólo utilizo taxi. La tarifa actual del taxi es la siguiente:

  • Bajada: AR$ 4.60
  • Ficha cada 200 metros: AR$ 0.46

Para simplificar el cálculo voy a obviar el tiempo de espera (una ficha cada 60 segundos cuando el auto se encuentra detenido o circulando a menos de los 12 km/h) y la velocidad de cruce.

Según Google Maps, sé que el camino más rápido es por Av. Juan B. Justo, y que mi taxi deberá recorrer 6.4 km de distancia (32 fichas), con un costo aproximado de AR$ 20.

La vuelta es un trayecto similar, recorriendo 5.7 km (29 fichas) a cambio de AR$ 18.

Resumiendo, sé que voy a gastar AR$ 38 por día en taxi. Si quisiera podría agregar algunos pesos más por “eventualidades” (cambio de ruta por corte, embotellamiento, etcétera), pero como dije antes, prefiero mantener un escenario simple para que se entienda bien a lo que apunto.

Suponiendo que tengo un trabajo estándar (de lunes a viernes), gasto AR$ 190 por semana, o sea, AR$ 760 por mes.

Ahora bien, el 0 km más económico en el mercado es el Fiat Uno, con un valor aproximado de AR$ 40.000

¿Cuántos meses viajo en taxi si lo comparo con el costo de un auto económico? AR$ 40.000 / AR$ 760 me da 52 meses (4 años y 4 meses)

Lo primero que uno piensa es “bueno, pero después de 4 años y 4 meses el auto sigue estando ahí, para mí”, y aquí es donde creo que hay un gran error: el taxi es un gasto, pero el auto es un gasto que genera más gastos.

Además de los AR$ 40.000 (gasto inicial por el auto), tenemos la siguiente lista de gastos:

  • Cochera nocturna: entre AR$ 300 y AR$ 800 por mes.
  • Estacionamiento: entre AR$ 3 a AR$ 10 la hora. En algunas zonas son inevitables.
  • Combustible
  • Seguro mensual
  • Patente
  • Mantenimiento: no se nota mucho si es un 0 km, pero pasado un tiempo todos los autos necesitan mantenimiento.

Dejo de lado los “impuestazos” (obleas) que cada tanto aparecen, el lavadero (manguereo el coche en la puerta de vez en cuando) y extras como cambiar el aceite, ponerle Bardahl y Glade Auto Sport (?)

¿Qué quiero decir con todo esto? Uno paga enormes cantidades de dinero para comprar algo que le reportará comparativamente igual o mayor gasto. Llevado al ejemplo, uno gasta AR$ 40.000 en un auto que genera gastos de mantenimiento, como mínimo, de AR$ 1000 al mes, lo que equivale a gastar AR$ 50 en taxi diarios.

En mi ejemplo usé el taxi como el escenario financiero más desfavorable, pero existen alternativas mucho más económicas y eficientes, como el subte y el tren (aunque estén colapsadas en su capacidad)

Obviamente esta es una visión muy citadina del asunto, y es poco aplicable si vivís en lugares donde el transporte público es prácticamente inexistente (pueblos o pequeñas ciudades).

Para terminar, aquí enumero algunos beneficios de no tener auto:

No me preocupo por el auto: si llueve, si graniza, si me lo roban, si me sacan el stereo, si me lo raya el “trapito”, si me lo lleva la grúa, si me lo “toca” la boluda que no sabe estacionar, etcétera. Una vez que me bajo del subte, taxi o colectivo, me despreocupé.

Indemne a los accidentes menores: si el vehículo en el que viajo tiene un accidente menor, cambio de vehículo y sigo camino en pocos minutos.

Menos autos: menos contaminación (ambiental y sonora) y menos tráfico en la ciudad.

No necesito concentrarme en manejar: mientras viajo puedo hacer otras cosas como escribir, escuchar música, leer, relajarme, etcétera. Tampoco me hago mala sangre porque la gente es boluda y no sabe manejar.

Choferes profesionales: esto, para mí, es fundamental, especialmente en la ruta. Le tengo muchísima más confianza al chofer de un ómnibus de larga distancia que a un conductor común. Los choferes de ómnibus de empresas serias son profesionales y tienen que relevarse cada N horas (por eso siempre son dos en la cabina). Comparativamente, sufren un porcentaje bajísimo de accidentes en ruta.

Dormir: muy relacionado con los dos puntos anteriores. Como algunos de ustedes saben, viajo mucho a la ciudad de Rosario con ómnibus de coche cama, suite o ejecutivo, con un costo aproximado de AR$ 80. En resumen: voy cómodo, veo una peli, duermo una siesta, me atienden y voy seguro.

Como dijo Martín Fierro, “estas cosas y otras muchas medité en mis soledades, sepan que no hay falsedades ni error en estos consejos, es de la boca del subte de ande salen las verdades” (?)

Update 1: los precios de bajada y ficha en Wikipedia estaban desactualizados, ya hice los cambios correspondientes para que reflejen los valores actuales.

Update 2: como bien me señaló Ale por Facebook, es importante aclarar que este post es un análisis estrictamente “de ciudad”. Si sos una persona con varios hijos, vivís en un lugar de difícil acceso o viajás mucho al interior, indefectiblemente el auto propio tiene un valor agregado que no lo podés conseguir con otros medios de transporte.

Update 3: breve conversación con Marian

Mariano: vos te mojás cuando llueve?
Patricio: no
Patricio: uso taxi
Patricio: y vos?
Mariano: si, porque tengo el auto a 3 cuadras de casa.
Mariano: TOMA!
Patricio: ah, a mí me pasa a buscar por la puerta de mi casa
Patricio: TOMAAA
Mariano: vos le podés gritar a una mujer “Andá, yegua, andá a lavar los platos y dejá de cornear a tu marido con cada negro que pasa!” y gozar de impunidad? sin que nadie te juzge?
Patricio: sí, en bici
Mariano: me cagaste.
Mariano: igual no me vas a comparar.
Patricio: no sólo puedo huir, sino que puedo hacerlo de forma cinemática, saltando rampas y cruzando el medio de plaza francia
Patricio: a vos te agarró un semáforo y te cagaron a taconazos
Mariano: volvemos al punto aterior. Yo puedo mandarme por plaza francia también, pero llevandome gente por delante. Es más, puedo hacer la cómica de llevarme un puesto de sanguches y comerme uno.
Patricio: plaza francia está lleno de cámaras de Macri, te agarran la patente y se te acabó la impunidad
Patricio: yo me pongo un pasamontañas, me afano un sanguche y no me identifican ni a palos, la bici no tiene patente
Mariano: los dos podemos hablar por celular mientras manejamos, pero vos te ponés en peligro y yo pongo en peligro al resto.
Mariano: pura ganancia.
Patricio: en taxi puedo hablar por celular sin poner en peligro a nadie, y el tachero, además, me sugiere cosas
Patricio: win win
Mariano: jajaja
Patricio: voy a poner esta conversación en mi blog
Mariano: si, pero en tacho tenés contacto con la derecha más jodida.
Mariano: la derecha tachera.

17:19

Martín Gaitán: Modelos de negocio FLOSS, la universidad, el sector privado y el Estado

Distintos laboratorios de investigación y vinculación de mi facultad del área química y del área computación, junto a algunas empresas de software locales (VATES y otra) y del sector petroquímico (Petroquímica Rio Tercero) están conformando un "Consorcio Asociativo Público Privado (CAPP)" en el marco del programa FSTICS del Ministerio de Ciencia y Tecnología de la Nación, con el fin de desarrollar una plataforma de desarrollo I+D de software para la industria. Para que contextualicemos de que hablamos: el programa estipula un aporte estatal de hasta el 60% para un proyecto de hasta 38 millones de pesos.

Mi participación es minúscula y aledaña: el impulsor de este proyecto es el Dr. Martín Cismondi, director de mi proyecto integrador que se trata de un prototipo del (tipo de) software que se desarrollaría desde esta plataforma.

Cismondi es Phd en ingenieria quimica y sus investigaciones en el campo del equilibrio de fases tienen mucha aplicación en la industria. En particular en el petróleo, donde el impacto que puede tener mejorar el rendimiento de un proceso (por ejemplo de destilación) se mide en millones de morlacos.

Ayer tuve oportunidad de participar de una reunión, sirviendo de una especie de "traductor" entre los quimicos y los informáticos.

Si bien, repito, no tengo voz (mucho menos voto) en nada de lo que allí se resuelva, tengo interés en investigar y transmitir de la manera más clara posible otros modelos de negocio que, por lo que presencié ayer, están lejos de ser tenidos en cuenta. Me refiero, claro, a que, sobre todo (no muy increíblemente) desde la facultad, no se ve más allá de un modelo de negocio de software cerrado de venta por licencia.

Apunto algunas cuestiones sin orden:

- El nicho de mercado es bastante acotado: industrias de gran escala mayormente transnacionales. Separadamente tiene mucha utilidad y aceptación en centros de investigación académicos.

- Desde el grupo conformado, no existe conocimiento cabal de las soluciones de software específicas que ese mercado, el industrial, demanda. Sí se sabe que el -*expertise-* y el -*know how-* que el grupo de investigación de Cismondi tiene son el valor diferencial.

- No existe hoy peso específico suficiente, desde el punto de vista del producto existente, para competir con las empresas de software proveedoras de este nicho, sobre todo en los mercados de USA y Europa. Por ejemplo Aspen Tech.

- Es difícil, a priori inimaginable, desarrollar un producto genérico que satisfaga necesidades de diversos clientes potenciales. La especifidad de los problemas de cada industria se supone grande.

- Preguntas para hacerse ¿cuantos clientes reales existen en el mercado? ¿qué "llegada" se tiene con ellos? ¿que posibilidades reales de venderle un software cerrado existen, teniendo en cuenta que no se sabe cabalmente cuales son sus demandas? Supongiendo que se conoce un problema específico ¿cuanto sale desarrollar una solución ? ¿se puede correr el riesgo de desarrollarla sin tener asegurada su comercialización?

Soy un novato en el área negocios con FLOSS (y en negocios, a secas, también) pero lo que se me ocurre viene más o menos por este lado:

1. Generar una estrategia para una fuerte inserción en el ámbito académico internacional

  • Para esto es indispensable la libre disponibilidad del código fuente de manera que los métodos numérico-científicos sean transparentes, reproducibles y verificables. Ver este post en OpenScience Project.
  • Para evitar practicas predatorias sobre este trabajo, que alguien cierre y comercialice, hay que orientar a una licencia FLOSS vírica, donde los trabajos derivados mantengan la condicion libre.
  • De esta manera se apunta a constituir una comunidad tecnologico-científica donde el nucleo de desarrollo se mantendrá en los autores originales pero permitiendo y aprovechando código y feedback de los usuarios.
  • En esta etapa el beneficio no es a priori monetario y en cambio sí en cuanto a calidad del software, inserción y difusión del/los producto/s, fidelización de usuarios y prestigio del equipo de desarrollo.

2. La repercusión de la masa crítica generada abre la puerta al mercado por las siguientes razones:

  • Muchos de los académicos que utilicen y formen parte de un "comunidad" alrededor del sofware FLOSS desde las universidades o llevaran su conocimiento a la industria.
  • Tambien los investigadores dentro de la industria tienen vínculos fluidos con la comunidad científica, sobre todo en estas áreas de investigación de vanguardia de directa aplicabilidad.
  • El mercado a priori imposible de acceder se puede hacer más permeable: los responsables de investigación demandan la utilización del software en los procesos de la industria o sus labores particulares.
  • Si el costo para la industria es nulo o bajo y de calidad, hay muchas probabilidades de que sea aceptado.
  • La ventaja diferencial del cliente es evitar el vendor lock-in. Sin embargo, la ventaja competitiva del equipo de desarrollo original, por su -*know how-* adquirido es insuperable para cualquier potencial competidor.

3. Insertado en el mercado se generan posibilidades de lucro en dos áreas

  • Customización y extensión del software bajo requerimientos específicos. Entra en el marco de SaaS
  • Capacitación y entrenamiento a equipos técnicos de la industria y la academia, tanto en el área de aplicación (quimicos) como de desarrollodo de software.

Muchísimo material para leer sobre el tópico hay en este sitio. Yo empezaré en cuanto tenga tiempo. Invito también, de manera enfática, a leer la justificación de que el software desarrollado en el marco de mi proyecto integrador lo libero como Software Libre

Más allá del negocio

Además de lo expuesto se me cruzan cuestionamientos sobre el rol de la universidad y el estado en este escenario.

Como ciudadano y futuro profesional festejo la inversión que en los últimos años el Estado ha realizado para ciencia y tecnología. Apostar a generar valor en áreas tan estrategicas como el software es necesario, y plantearlo desde el punto de vista de fortalecer la industria nacional (pymes) es entonces doblemente valioso.

Pero...

¿son los laboratorios de investigación de las universidades actores que deben generar recursos por sí mismos? ¿A quien pertenece el conocimiento que se produce en la universidad? ¿A quién debe pertenecer? ¿La universidad actual responde a un proyecto de país ? ¿Existe tal cosa? ¿No debiera el Estado, formar parte societaria en los consorcios para los cuales está aportando grandes recursos, además de ser agente regulador? ¿quién y cómo regula la relación e intereses existentes entre los grupos de investigación y el sector privado? ¿no se puede prestar a malversaciones y abuso del sello de la universidad?

Me desperté preguntón (como nací).

15:37

Diego Sarmentero: Nuevo Blog de Uni-Code


Nace el Blog del Grupo Uni-Code: http://uni-code.tumblr.com/
Grupo destinado a la divulgación de tecnología, compartiendo experiencias y conocimientos en un ámbito totalmente informal.
Próximamente en cuanto se terminen de cerrar algunos detalles y se determine la fecha de arranque, estaremos iniciando un Ciclo de Charlas Informáticas!

Administración y hosting cortesía de Net Managers SRL

Tema por Andrés Antista

Banner por Joaquín Sorianello

OPML - FOAF - RSS - Log
Seguinos en twitter / identi.ca

Blogs

Anthony Lenton
Leito Monk
Gustavo Carmona
Manuel Muradás
Gonzalo Sainz Trápaga
Marcos Vanetta
Nicolás César
Alberto Paparelli
Santiago Peresón (Yaco)
Margarita Manterola
Javier Castrillo
Santiago Bruno
Paul M. Dorr
Esteban Ordano
Evita
Alejandro Santos
Manuel Kaufmann (Humitos)
Joaquin Sorianello
Angel Freire (cuerty)
Mariano Draghi (cHagHi)
Marcelo Fernández
Roberto Alsina
Pablo Benjamín Arroyo
Juan Pedro Fisanotti
Gabriel Patiño
Guillermo Heizenreder
Marcos Dione
John Lenton
José C. Massón
Ezequiel Gutesman
Mauro Lizaur
Mariano Guerra
Matías E. Gieco
Nicolás Miyasato
Martín Gaitán
Pablo Alejandro Costesich
Mario Zorz
PyAr en la OLPC
Carlos Joel Delgado Pizarro
Mariano Reingart
Ramiro Morales
Roberto Allende
San Cayetano
Alejandro Alvarez
Martín Cerdeira
Diego Sarmentero
Walter Alini
Sebastian Bassi
César Portela
Nicolás Echániz
Juanjo Conti
Héctor Sánchez (Karucha)
Patricio Molina
Andrés Gattinoni
Facundo Batista
Francisco Malbrán