Mi primer reunión de RubyLit

3 12 2008

Hace algún tiempo (no mucho) que estoy subscripto a la lista de correos de RubyLit (Ruby del litoral). La principal idea de suscribirme a esta lista era más o menos estar al tanto sobre Ruby On Rails e intentar aprender algo de lo que comentaba esta gente que tanto sabe.

Sinceramente fue pasando el tiempo y cada vez la empecé a leer menos, como la mayoría de las listas a las que estoy suscrito, a excepción de PyAr que ya establecí un vínculo un poco diferente a las demás.

Además me dí cuenta que es muy difícil seguir una lista de correo si no te nutrís de conocimientos por otro lado. Me pasaba que cuando leía algunos mails se me hacía imposible entender de qué estaban hablando y muchas veces intentaba buscar una analogía con Django, lo cual no me parece del todo bien, porque tiene algunos enfoques distintos y quizás haya que tratarlos por separado. Me gustaría saber bastante más de Ruby On Rails para poder afirmar mi opinión anterior con un buen fundamento, pero de momento es lo que sospecho de todas las cosas que he hablado con Gastón (uno de los chicos de RubyLit, más conocido como mi archi-enemigo).

En las semanas pasadas leo un mail de Gastón que proponía una reunión para juntarse a tomar unas cervezas y comer unas pizzas con la gente de Rubylit. Sutilmente pregunté si podía ir ya que era del otro bando, y aunque suene un bolazo o parezca mentira, hay muchas personas que tiene problemas por utilizar uno u el otro (entiéndase Ruby o Python –Uh! puse a Ruby primero :) ).

Algunos se cagaron de risa, bah la mayoría, y me sugirieron que vaya sin ningún problema que tenían ganas de verme y que de hecho podíamos comparar algunas cosas entre los distintos lenguajes (entiéndase quince contra uno –estaba muerto :D )

La cuestión es que propuse que si iba, iba con la remera de Python Argentina y se la cambiaba a alguno para que la próxima reunión de la comunidad a la que uno pertenece de forma directa lleve la remera del otro bando. Además iba a ser muy gracioso.

Al final llegó el día de la reunión, yo estuve toda la tarde en lo de Gastón hablando al pedo, tomando unos mates e intentando configurar algunas cosas en la notebook (luego comentaré que hice por si a alguno le sirve para algo). Pasada la tarde nos fuimos para Puerto Café en 25 de mayo y mendoza. Ni bien llegamos nos informan de que había un evento privado, y que además no era ni más ni menos que de Patrimonio Joven un sector del lugar dónde trabajo yo (Ministerio de Innovación y Cultura). Asique hablamos con el dueño para que les pida permiso y que nos armen el living al costado de ellos. Por suerte no hubo ningún inconveniente. Ahora si, para la próxima va haber que reservar el lugar con anticipación :P .

En ese breve tiempo que esperamos que nos abran llegó Juanjo, otro infiltrado de la comunidad enemiga, Ja! Que se vino con unos bolsos y demás. Hasta el dia de hoy sospecho si no tenía cámaras y micrófonos para grabar todo lo sucedido esa noche :) .

Entramos y enseguida largamos con las cervezas y los maníes. Se fue sumando gente y en menos de 30 minutos ya éramos unos cuantos, charlé con gente que hacía mucho que no veía, hablamos un poco de Django, Ruby On Rails, Ruby y Python, pero no mucho. Salieron algunos temas un poco locos de la mano de César Ballardini (un grande), que vino con la RFC de los monos y el sistema de envío de mensajes de las palomas. También escuché algunas anécdotas de gente que tiene unos años más que yo en el tema de la informática y me puse al tanto de algunas tecnologías antíguas que nunca había escuchado nombrar.

Resumiendo, la reunión estuvo muy muy buena, lástima que hablamos muy poco sobre Ruby, me hubiese gustado más ponerme al tanto de algunas cosas de ROR, pero sinceramente la pasé muy bien, esta gente es muy copada. ¿Para cuando la próxima?

PD: al final no se hizo el intercambio de remeras porque Gastón la mariconeó con el tamaño de la misma y demás. Yo personalmente lo tomé como una arrugada :)





Ruby and Python

26 05 2008

Hoy en el canal de IRC de Python Argentina cramm mandó una URL que mostraba un bug de Ruby. Primero lo probé y no noté nada extraño. Después me dijeron que Ruby se comía toda la memoria de la máquina y lo probé. Acá está la demostración

“…saquen sus propias conclusiones…”





Flisol 2008

26 04 2008

Hoy participé por primera vez en una Flisol. Este año se llevó a cabo en la UNL (Universidad Nacional del Litoral) de Santa Fé. Intenté ayudar con la organización a último momento, ya que no había mucho movimiento en la lista del Lugli, aunque igualmente no pude hacer mucho porque ya era demasiado tarde. Traté de colaborar con zapatillas, switch’s, cd’s y dvd’s. Algo es algo…

Fui con Gustavo y con Pedro, dos de los integrantes en el desarrollo del juego para PyWeek 6, quizás a uno de ellos es más conocido por otra cosa: spa ejem ejem… Llevé mi máquina, sí, el CPU chiquito que tengo :) . Cuando llegué allá ya estaba Gastón, Emiliano, César, Juanjo y otros chicos más. Charlé un poco con cada uno y después, como no llegaba para instalar algún software me puse a hablar con Gastón sobre la charla que estamos preparando.

Empezamos a hablar, y de a poco se empezó a juntar gente a escuchar lo que decíamos sobre Ruby y Python (¿viste lo puse al revés? ;) ), cada uno con una opinión distinta y tirando algún que otro chiste, medio en joda medio en serio sobre cada uno de los lenguajes. Estuvo bastante entretenido.

Después nos pusimos a jugar un rato tirando algunos ejercicios para desarrollar en los dos lenguajes para luego probar tiempos de ejecución y también poder comparar algo de código, teniendo dos programitas que hacían exactamente lo mismo. Lamentablemente, digamos que debido a la cantidad de gente y el disturbio que se pudo haber generado, mi compañero Gastón, tuvo un problemita con la medición del tiempo :D . Asique se nos demoró bastante lo que pensábamos que nos iba a llevar 15 minutos para empezar a probar y ver algunos resultados. A todo esto venía gente nos preguntaba algunas cosas sobre Linux, y cómo hacer tal o cual cosa, lo que también hizo que se demoraran estas pruebas.

Resumiendo, salió todo bastante mal, no pudimos hacer muchas comparaciones con respecto de los tiempos de ejecución, pero sí hablamos mucho de los dos lenguajes en sí mismo. Yo utilicé por primera vez decoradores y me gustó, me pareció agradable como quedó el código y demás, aunque era un uso muy sutil de estos.

Cuando terminó la Flisol, a eso de las 16 hs, con Gastón y Juan Pablo nos fuimos a comer a un bar del shopping, charlamos bastante sobre Ruby, Python, Java, experiencias de todo tipo y tomamos unas cervezas.





…Python Vs. Ruby… ¿Rivales?

24 04 2008

Desde la primer charla del LugLi en la UTN, hace un par de semanas, que conozco Ruby. Esto quiere decir que ví algo de código, me mostraron algunas de sus características y me dejó algo impactado.

Este lenguaje es muy parecido a Python en muchos aspectos. Sin embargo Gastón Ramos me mostró algunas aspéctos que lo hacen que sea tan bueno como es, y me dejó regulando en como hacerlo en Python.

Hay mucha gente que o está del lado de Ruby o de Python, y ni siquiera quieren mirar al costado para compararlos, son cerrados y hasta incluso rivales. Después de un tiempo le propuse hacer algunas comparaciones un poco más profundas y no que quede solo de palabras, asique decidimos escribir un par de post al respecto. Este es el primero de él, la respuesta de Juanjo y ahora tiro algunas diferencias entre ellos.

Python

  1. Tiene strings inmutable
  2. Lo métodos privados comienzan con __ (doble guión bajo)
  3. Los bloques se delimitan con la identación y : (dos puntos)
  4. Tiene __getattr__()
  5. La sobrecarga de operadores se define como un método especial (comienza y termina con __). def __add__(self) para redefinir la suma.
  6. No tiene constantes
  7. InputRaw con r”C:\Mis Documentos”
  8. Insertar una variable en un texto al estilo C: “Mi variable es: %s” % (cadena.upper())
  9. Necesita paréntesis para llamar a un método
  10. True, False, None, elif, import
  11. Acceso dirécto a las variables de una instancia mediante el operador . (punto)
  12. if __name__ == ‘__main__’: verifica si es el archivo principal
  13. Tiene un guía excepcional para todo programador: import this
  14. Docstring utilizados para brindar ayuda con help()
  15. Las funciones son objetos y puedo crear una referencia a ellas

Ruby

  1. Tiene strings mutables
  2. Los métodos privados van después de private
  3. Los bloques se delimitan con end’s statements
  4. Tiene method_missing
  5. La sobrecarga de operadores es def +(), para redefinir la suma por ejemplo
  6. Tiene constantes
  7. InputRaw con ‘C:\Mis Documentos’, (comillas simples)
  8. Insertar una variable dentro de una cadena al estilo Template (de Django, por ejemplo): “Mi variable es #{variable.capitalize}
  9. No necesita paréntesis para los métodos, los atributos comienzan luego del espacio
  10. true, false, nil, elsif, require
  11. Tengo que definir cuales variables son públicas una por una
  12. if __FILE__ == $0 verifica si es el archivo principal
  13. No tiene un guía built-in
  14. Los docstring se utilizan cuando se llama al comando: rdoc
  15. Hasta ahora, no pude guardar la referencia a una función en una variable

Éstas son algunas de las diferencias que encontré a simple vista en Python y Ruby, pero lo que más me interesa mostrar es cómo hacer algo en un lenguaje utilizando alguna particularidad del mismo, que permita que sea super sencillo o que diréctamente en el otro no se pueda realizar de “ninguna forma“.

Vamos a ver que sale de todo esto. ¿Seguiré con Python o me pasaré a Ruby? ¡CHAN!