Gastón Ramos

"La mayoría de las gaviotas no se molesta en aprender sino las normas de vuelo más elementales: como ir y volver entre playa y comida. Para la mayoría de las gaviotas, no es volar lo que importa, sino comer. Para esta gaviota, sin embargo, no era comer lo que le importaba, sino volar. Más que nada en el mundo, Juan Salvador Gaviota amaba volar".

Recortando un archivo de audio

Este un post muy cortito con el único fin de poner esto acá para poder encontrarlo fácil, encontré un script genial y recontra útil que sirve para recortar un archivo de audio por los silencios, es muy útil cuando tenemos un disco entero en un solo archivo por ejemplo.

sox in.wav out.wav silence 1 2 0.5% 1 4.0 0.9% : newfile : restart

El script lo saqué de acá:

http://unix.stackexchange.com/questions/99182/sox-splitting-audio-on-silence-but-leaving-tails

saludos.

Rubylit meetup marzo 2015

Ayer jueves como a las 20hs en las oficinas de Altoros hicimos la primer meetup del año 2015 del grupo de Rubystas de Santa Fe y alrededores, asistieron al evento: @jjconti, @olvap, @ArmandoAndini, @eloyesp, @rmgarciap, @srmanuq, @alener014 , @juanfgs, @gsgerman, @marielcior, @hpmaxi, @gastonramos.

Había dos charlas programadas, la primera fué “Bad Practices driven development” que la dí yo, la verdad la charla no la preparé tanto, sin embargo me quedé conforme, algunos de los temas de los que hablé: “A veces programo antes de pensar, empiezo escribiendo código y después voy madurando la idea de lo que quiero”, “Rails DB ConnectionPool”, “Threads”, “Fork” y procesar cosas en background en general, los slides de la charla los pueden ver acá, que no tienen mucho sentido por sí solos. Además de mi charla @alener014 titulada “Como me hubiera convencido a mi mismo de pasarme a ruby: algunas fantasias y ciertas realidades” que la  pueden ver acá, la idea era que Alejandro (el orador) viajaba al pasado para convencerse a sí mismo de qué tenía que aprender ruby en vez de python, los slides ivan pasando y los argumentos eran debatidos entre Alejandro y le resto de los asistentes, “Cucumber vs Letucce”, “Debug, preguntarle cosas a la aplicación”, “monads” son algunos ejemplos de la excelente charla final, luego de disfrutar de unas excelentes pizzas de provenzal, muzzarella y napolitana y de que Juanjo nos cuente como es su nuevo desafío aprendiendo “Swift”.

 

 

Es ruby el java del momento?

ruby-javaNunca me voy a olvidar cuando empecé a programar con Ruby, todo era nuevo y casi todo era un desafío, no había tanta documentación y las cosas eran bastante artesanales, no existía bundler ni RVM ni Rbenv, sin embargo las cosas se hacían igual :). Me acuerdo bien que me gustaba mucho Ruby on Rails y no sé si ahora diría lo mismo, me gustaba tanto que hasta daba charlas de evangelización y en uno de los slides mostraba una imágen comparando la cantidad de libros que tenías que leer para aprender Java y la cantidad para aprender ruby, la imágen era esta:

Java vs Ruby

Además me acuerdo que las veces que hice algunas cositas con Java no me gustaba la complejidad que llevaba hacer cosas simples, para todo había que crear clases, todo era complejo.
Pasaron ya casi 9 años desde empecé a escribir mis primeras líneas de código en Ruby, he pasado por muchos proyectos, algunos desde cero y otros legacy, aplicaciones más grandes, más chicas, etc, mi forma de programar ha pasado por varios estadíos, desde el 2004 cuando conocí Test Driven Development y me hice fanático, cuando no escribía casi nada sin escribir un test, y cuando me peleaba con todo el mundo para que escriba tests o para que corra los tests antes de pushear :). Hoy con mucha más experiencia encima, me doy cuenta que Ruby se parece mucho a java en algunas cosas y eso no me gusta, las aplicaciones son cada vez más complejas, se ha perdido “lo artesanal”, cada aplicación de Rails en la que he trabajado tiene como promedio 5000 Líneas de código sin contar las dependencias y otras 10000 líneas para los tests, el 90% de la gente escribe sus aplicaciones usando Ruby on Rails agregando gemas para cada cosa que necesita sin pensar en el costo extra que eso conlleva, el 90% usa Rspec sin si quiera darse la posibilidad a la duda y muy pocos tienen tests bien escritos de manera que al modificar algunas pocas líneas no se rompan 50 tests.
Y como si esto fuera poco, existen cada vez más cosas algunas menos necesaria que otras así que si alguien quiere empezar a programar en una app existente en ruby, cuales son las cosas que debería aprender?

[ Ruby ]
[ Rake ]
[ RVM / Rbenv ]
[ Rails ]
[ Rubygems ]
[ Rspec ]
[ Sidekiq / Rescue ]
[ Capybara ]
[ Cucumber ]

Ruby books
Y la lista tranquilamente podría seguir.

Pero volviendo al tema de “lo artesanal” siento como que ya está todo “programado” y pensado, si hay que hacer una página web entonces tenemos que usar Ruby on Rails, para escribir los tests hay que usar Rspec aunque si sos un poco revolucionario vas a usar minitest, hay alguna acción que lleve mucho tiempo? entonces seguro que tenemos que usar Sidekiq o Rescue. Del lado del servidor existe muy poca gente que se ponga a armar una infraestructura de producción para una app chica, la mayoría usa Heroku o cosas similares.

Otro tema interesante es la forma de trabajo del día a día, dónde parece ser que la única manera de llevar adelante un proyecto de software es utilizando Scrum con daily meetings…ufff “Qué hiciste ayer?”, “Qué vas a hacer hoy?” participé en algunos proyectos donde sufrí la peor variante de Scrum, dónde los sprints duraban una semana y teníamos en algunos casos más de 10 reuniones por sprint, “IPM”, “Post Mortem”, “Retro” son algunos de los nombres de estas reuniones, pero bueno voy a cambiar de tema por que me empieza a doler la cabeza…

Podría por ejemplo hablar de feature-branch, pero a lo mejor ese es tema para otro post otro día.

Cosquin Rock 2015

Este sábado 14 pasado fuimos con mi familia al cosquin rock que como su nombre no lo indica, no es en Cosquín :) sino en Santa María de Punilla, nos alojamos en Valle Hermoso un pueblo a unos 40 minutos del lugar en cuestión. Llegamos el viernes a la tarde y al otro día nos levantamos desayunamos y cerca del mediodía emprendimos el viaje en colectivo hasta Santa María, al llegar ví algo que hacía mucho que no veía el “folcklore” del rock estaba lleno de gente con remeras de rock por todos lados, había muchos puestos de venta de remeras, comida, lentes, etc en la puerta. Después de un rato dar vueltas nos sentamos a comer un sandwich de vacío que compramos por $40, eso no es nada, adentro un vaso de agua sale $30 (carísima la comida y la bebida).
Bueno se hicieron las 3 de la tarde y nos decidimos a entrar pasamos con la entrada en la mano por un camino medio largo hasta la entrada, nos revisaron como suele pasar en los recitales y me hicieron dejar el encendedor que tenía en mi riñonera. Llegamos y nos pusimos a buscar el escenario temático de reggae que era lo que a nosotros nos interesaba. Arrancaba “Tito Muñoz y la criminal ska band” una banda que sonaba muy bien con la voz de un chica que canta muy lindo:

Luego de esta banda tocó una banda de Costa Rica que realmente me sorprendió y me encantó, para mi gusto fué la banda que mejor sonó en toda la noche y es “Un rojo Reggae Band” mirenló uds mismos:

La verdad el recital me encantó y me gustó mucho poder descubrir una banda tan buena como esta, lo que siguió fué “Naty Combo” que tuvieron que irse sin poder terminar como corresponde por que hubo un problema con el sonido después vino “Riddim” tan esperada por mí por que nunca los había escuchado en vivo y me sorprendieron por que dieron un recital excelente, realmente sonaron muy bien se sentía una energía que fluía… después siguieron las bandas que estaban en la grilla. Este fué mi resúmen del mi primer Cosquín Rock.

empezar el día así

Gastón Ramos:

Alto post!

Originally posted on marisa ramos:

Hoy me pasó algo inesperado.  Por un motivo que no viene al caso relatar hoy temprano a la mañana  recalé en un taller mecánico.  Un garaje adaptado a este fin en donde un señor de mediana edad vestía mameluco color café y sus lentes caídos a mitad de nariz, bonachón, predispuesto a solucionarnos el problema. Mientras el señor hacía su trabajo me quedé en la vereda observando las herramientas, la fosa, el perro que dormía en una improvisada cucha, la radio que emitía la frecuencia de l.t.10, el equipo de mate, los papeles pinchados en un clavo que salía desde la pared, algunos trapos sucios con grasa.

Por un rato todo me resultó familiar aunque fuera ésta mi primera vez en este lugar. Por un rato algunos recuerdos escondidos aparecieron para saludarme, me inauguraron el día con el confort que suele dar el vientito fresco en la cara. Por un…

View original 20 more words

Cómo resolver un problema ( de programación )

Cómo algunos de uds saben me dedico a la programación de computadoras, esta actividad requiere tener habilidades para resolver problemas y considero que los mejores hackers programadores son los que saben hacer muy bien justamente esto, ahora bien, creo que hay dos grandes caminos a tomar, uno es el del “hacker” y consiste en ir probando cosas en base a suposiciones a veces con fundamento y otras no tanto. Un ejemplo de esta forma de resolver podría ser, imaginensé que tenemos un programa que ( no importan los detalles ) tiene un formulario que el usuario debe completar, después de enviar el formulario se deben crear 3 o 4 objetos en la base de datos, y uno de ellos por algún motivo no se está creando, entonces suponemos que este objeto no está pasando alguna validación y sin probar mucho deshabilitamos la validación y probamos de nuevo, el problema persiste entonces hacemos otra supocisión de que tal vez el objeto se deba guardar en el último paso y ponemos un objeto.save en la última línea de nuestro programa. Como hemos podido observar es manera de resolver las cosas a veces nos puede ayudar a hacer algo rápido si tenemos suerte, pero después de uno o dos intentos necesariamente debemos tomar el camino serio o más pensante y acudir a nuestro yo teorico que todos tenemos dentro y el proceso sería más o menos este:

  1. Revisar los logs de la aplicación mientras reproducimos el error.
  2. Escribir un tests que reprodusca el problema.
  3. Escribir el código para que el test pase.

The Fix Is In

Ahora bien, el paso 3 require muchas veces de una investigación al detalle de que es lo que está pasando y en el medio puede haber algunas o muchas cosas que desconocemos entonces es útil por ejemplo hacer algunos dibujos en un papel para entender por ejemplo la jerarquía de objetos/clases que estamos usando, las llamadas a API si es que las hay ver que bibliotecas están involucradas, sino las conocemos es bueno leer la documentación para poder tener mejor contexto de dónde estamos parados.

Sí después de todo estos seguimos sin solucionar nuestra cuestión, es bueno tomar un descanso y pensar en mostrarle el problema a alguien más, muchas veces nos damos cuenta de algo con la simple tarea de explicarseló a otro.

Este fué mi post de cómo resolver problemas, vos que técnica tenés?

Burning Song

Acabo de descubrir un muy lindo tema de morodo, suena muy bien !

Panthro, el proxy cache para rubygems.

Hace un tiempo atrás se me ocurrió escribir un proxy cache para las gemas, lo hice un poco para aprender y otro poco a para acelerar un poco el uso del rubygems en un lugar común de trabajo, como por ejemplo una oficina. La idea es que cuando instalamos un gema por primera vez esta se baja desde rubygems y se guarda en el cache en dónde panthro está corriendo, específicamente en ~/.panthro/gems, luego cuando necesitemos instalar la misma gema desde otra máquina en la misma red y que tenga configurado panthro como source de rubygems (veáse el comando `gem source`) esta y todas sus dependecias no necesitan ser descargadas dado que ya están en el cache.

Panthro

Hay algunas cosas que me falta implementar y es expirar es el cache de los archivos latest_specs.4.8.gz, prerelease_specs.4.8.gz y specs.4.8.gz entre otras que están detalladas en el TODO del proyecto.

https://github.com/gramos/panthro

Es bueno aclarar que hasta ahora panthro tiene 63 líneas de código sin contar los tests. Además para poder testear que tan rápido es Panthro y compararlo contra usar directamente rubygems hice una gema muy chiquita que se llama rumb y que podés mirar acá: https://github.com/gramos/rumb esta tiene 57 líneas de código contando el texto del ayuda.

Revisión, sin levantar el lápiz.

Estoy escribiendo este post para no perder el ritmo de escritura dado que hace varios días que no escribo. Como escribí anteriormente en este post: https://gastonramos.wordpress.com/2015/01/02/revision-del-2014/ hay algunas cosas en cuales quiero poner mi energía este nuevo año que está arrancando, y por ahora voy bastante bien, salgo a correr todos los días por la mañana y después de eso practico un poco de canto y guitarra tratando de hacer ejercicios vocales aunque creo que debería poner más énfasis en estos. Con respecto a los demás items iré poniendo esfuerzo poco a poco en cada uno de ellos. Noté algo en mi actidud, cómo que a veces tenías excusas poco válidas y postergaba las cosas, y estoy experemimentado qué las cosas que realmente tengo ganas de hacer con esfuerzo y dedicación dan frutos. Por otro lado hace ya desde el Lunes que no tomo Coca Cola, un muy mal hábito que tengo y quiero dejar; así la idea es seguir tomando únicamente agua y ninguna otra cosa rara.

Hay un hábito muy importante en el que voy a trabajar la semana que viene y es la lectura de un libro de principio a fin, tengo dos libros que me compré y todavía no terminé de leer la idea es comenzar por el más chico y terminarlo, son 260 páginas, planeo leer 12 páginas por día y eso quiere decir que si mantengo el ritmo, en 21 días lo termino.

Leer

Los paredones , Javier y las uvas.

Hoy visitamos los paredones en capilla del monte, el lugar es una caminata muy linda a lo largo de un arroyo muy angosto con mucha vegetación y un casi silencio místico, sólo se escucha el sonido del agua del arroyo, los pájaros y el viento. En el camino nos encontramos un Javier, un tipo que vive ahí en el medio de la selva podríamos decir, nos contó que vive hacer 26 años que hace sólo dos que tiene energia eléctrica. Le compramos un pan casero recién horneado en su horno de barro, además charlamos un rato y mientras observamos las acelgas que tenía ahí cerca en una pequeña huerta. Una cosa que me llamó la atención era como caían uvas de la parra a cada rato, una parra que se había trepado a un árbol de algarrobo.
El minimalismo es un tema que me llama mucho la atención y la verdad que al ver este hombre vivir de esa forma, pienso, qué más minimalismo que vivir en la montaña sin energía eléctrica, sin auto, sin ropa de moda, sin nada más que nosotros, quizás un poco extremo pero bueno…
image
image

image

image

image

image

Follow

Get every new post delivered to your Inbox.

Join 505 other followers