jueves, febrero 06, 2014

Reseña del libro "Learning Mongoid"

Hace unos días me invitaron de Packt Publishing a hacer la reseña de un libro y aún sin tener experiencia previa acepté.

Sin embargo, después de leer varias reseñas en sitios como Amazon y similares no quise seguir el mismo formato: leer de inicio a fin el libro y publicar mis comentarios.

En lugar de eso quiero hacerlo como un reporte de avance, cada capítulo leído compartir mis opiniones sobre el tema, como presentó la idea el autor, qué me parecieron los ejemplos del texto.

Así que a partir de hoy inicio la lectura de “Learning Mongoid” de Gautam Rege.
Espero me acompañen en esta lectura.

Finito.

Book Review: Learning Mongoid

A few days ago I was invited by Packt Publishing to publish a book review and even without prior experience I do accepted.

But after reading many book reviews in sites like Amazon I don't want to use the same format: read the book from beginning to end and then publish my comments.

What I want to do is to publish an advance report for each chapter I read and share my opinions about the subject, the way the author presented the idea, how much I liked the explanations or the code.

So, I’m beginning to read “Learning Mongoid” by Guatam Rege.

Hope you join me in this reading.

Finito.

martes, diciembre 28, 2010

Poor's Man Ruby Performance

Ya sé que existen muchos, tal vez cientos de evaluaciones y comparaciones del performance de las diferentes versiones e implementaciones de Ruby.

Muchas de ellas aplicadas con el mayor rigor científico que se pudiera exigir a algo tan trivial pero que al final siempre apantallan con sus gráficas y análisis.

En esta tarde de vacuidad, se me ocurrió hacer mi "Poor's Man Ruby Performace" chart solo pa'salir de dudas y jugar un poco con Rubinius, una implementación de Ruby que recientemente llegó a su versión 1.2.

En la gráfica comparo las siguientes versiones de Ruby:
  • Rubinius 1.2 via RVM
  • Ruby MRI 1.8.7-head via RVM
  • Ruby MRI 1.9.2-head via RVM
  • Ruby 1.9.2p136 via Brew
Todo esto corriendo en una MacBook Pro con 4GB de RAM y un Intel Core 2 Duo @ 2.2 GHz.

En la gráfica es obvio el interesante (y excelente) desempeño de Rubinius pero tiene el 'pero' de que la versión actual sigue implementando MRI 1.8.7. Yo ando de curioso ya con la versión 1.9.2 pero hasta el siguiente release se van a emparejar.

Antes de cerrar, les dejo la gráfica:



Y no, no es una inocentada.

Finito.

miércoles, diciembre 08, 2010

¿Quién dijo que enviar correos era fácil? v2010

Hace algunos ayeres me hice la misma pregunta y hoy me toca hacerla de nuevo. Por fortuna encontré la actualización de la respuesta.

El tiempo pasa...

Finito.

viernes, noviembre 05, 2010

La diferencia entre los dos

Hace cuatro años que dejé el trabajo en uno de los organismos públicos más grandes de México y me incorporé en una PyME de tecnología para finalmente mezclar el frilansin con el trabajo en la PyME.

En estos cuatro años me convertí en fan, usuario y evangelizador de Rails; me desconecté parcialmente (o muchamente) de Microsoft y sus tecnologías (tanto como los proyectos me lo permitieron) y me hice toda una mac bitch.

El involucramiento con Rails me trajo una cantidad enorme de temas nuevos de aprendizaje y reforzamiento (¿existe "reforzamiento"?) de muchos principios y valores (como en el catecismo) que ya conocía por mi anterior involucramiento con proyectos de software libre.

Estos aprendizajes me dejaron ávido de más, mucho más conocimiento sin embargo sentí una diferencia notable y que hasta hoy sentí abrumadora.

Durante los ocho años que estuve trabajando en la administración pública federal fui enviado a una infinidad de cursos de capacitación de diferentes tecnologías y marcas, estos cursos, talleres y similares complementaron mi aprendizaje autodidácta aunque más de una vez me cuestione si alguna vez iba hacer uso de tanto bagaje de conocimientos. Muchas veces no lo hice. Algunas otras me salvó día (y el trasero).

En la experiencia de consultor y frilanser el aprendizaje ha sido mucho más rudo, compacto en tiempo y diverso. El enfrentarte a problemas bastante diferentes en un pequeño marco de tiempo, con menos recursos ("tu eres el consultor") solo apoyándote del santísimo google hace que, de alguna manera, extrañe esos procesos de capacitación de antaño.

También me hace pensar en el eterno dilema de contratar novatos y capacitarlos vs contratar expertos y pagar sueldos elevados. La eterna queja de la empresa es "¿para qué los capacito si me van a dejar?". No chillen. Encuentren motivaciones adicionales al salario para que la gente se quede en la empresa y claro, hay que hacer crecer la empresa para pagar mejores sueldos.

"Es imposible contratar Divas". Solo contratas Divas si vendes bluffing o si de verdad produces algo muy particular. Es parte del negocio que escogiste.

En fin. Aprendizaje a velocidades y tiempos comprimidos. Otras vistas, otras perspectivas.

Finito.

domingo, octubre 10, 2010

(Not So) Pragmmatic Programmer

Hace un par de semanas me involucré en un proyecto para desarrollar una aplicación para una agencia de cinematografía. La "prueba de concepto" (como dicen los grandes consultores) la hice en Rails 3 con alguna de las nuevas gemas de la corona. Incluso así se mostró el proyecto al prospecto a cliente. Sobra decir que le gustó la aplicación pero dejó en claro que no estaba dentro de sus prioridades inmediatas. No problema por eso, pero parte de la reunión también fue revisar su actual servicio de hosting para validar el soporte a Rails.

El servicio de USD$8.00 al mes no da para mucho. Claro que no para soportar Rails. ¿Qué hacer entonces? ¿Qué hacer con un hosting debajo de básico que solamente soporta cpanel? Aparecía soporte para Python ¡Oh si! No es Ruby pero no se puede caer más bajo ¿o si? Deficiente soporte. Mis habilidades cpanel'istas no dieron para arrancar web2py en el servidor.

Y ahí, debajo de la manta del 'te lo dije' apareció PHP. OMG! Sí, tendría que usar PHP. ¿Cómo podría hacer menos traumática la experiencia? Una breve búsqueda en Google me arrojó la referencia a Symfony, un framework MVC muy interesante y no tan lejano del modo Rails. Lo descargué en mi máquina, seguí el tuto y conseguí arrancar un módulo completo (controlador, vistas y modelo).

En ese momento decidí hacer la prueba de fuego. Subirlo al servidor y echarlo a andar. FAIL!. Symfony también funciona a base de 'generators' y como tal requiere el acceso a la línea de comandos. USD$24.00 al mes me darían acceso pero no hubo respuesta favorable del cliente. El tan interesante y correcto framework tuvo así que ser descartado.

¿Qué queda a estas alturas? ¿Qué queda después de buscar opciones correctas? ¿Qué queda después de buscar las mejores tecnologías? Usar tecnologías crudas, simplistas y mezclarlas con scripts de internet. Hacer un pequeño Frankestein. Y finalmente es más fácil hacerlo con PHP que con otra selección.

¿Es esa la explicación del bajo nivel que generalmente se asocia a PHP? Al no tener más opción que trabajar con lo menos (hosting de USD$8.00) hay que hacer lo peor. Hacer lo menos. Hacer lo que funcione como sea.

Symfony es una muy buena muestra de un buen nivel de desarrollo con PHP. Encontré otros frameworks minimalistas al estilo de Sinatra (Frank.php) y similares pero la limitante del hosting no permitió aprovecharlos. Solo queda hacer el trabajo sucio con código sucio. Y será en PHP. Don't take it that hard.

Finito.

miércoles, setiembre 15, 2010

Celebración del Bicentenario



En esta tierra he visto mi primera luz
he visto y veo luz, tierra firme y vasto cielo
Todo mi entorno esta entendido en el amor
que nos tuvieron los que fueron hace tiempo.
y hoy hace un buen dia para hablar
de los que estan aqui
trazando a diario el bienestar de todo aquel que vendrá
como precederá la aurora al sol de diario
como sabemos que mañana sera igual.
por que así se ha venido haciendo con los años
que transcurren y se van.

Esta tierra en donde puedo caminar
bajo la dirección que le ponga a mis pasos
siempre habrá tiempo de venirle a cantar
por ser lo más que se ofrecer como regalo
Me dió un lugar donde al volver con gusto se decir
es mi país, esta es mi tierra, casa y esta es su canción
una canción como todas las que se han hecho
tan solo que con esta quiero hacer mención
de todo el bien que me hizo nacer de este pueblo
y que me parte el corazon que hablar de México
siempre me inflama el pecho

Y si miramos hacia atrás donde fuimos a empezar
y contamos los antiguos que formaron un lugar
pero un buen día se marcharon y aprendimos a decir
grandes fueron los viajeros que cruzaron por aquí.

En esta tierra conocí la dignidad
del que trabaja para ver crecer los suyos
del que se esfuerza superar su condición
aun a pesar de cruzar tiempos de infortunio
y hoy hace un buen día para hablar de los que estan aquí
trazando a diario el bienestar de todo aquel que vendrá

Que la siguiente que se llegue al semillero
que hasta esta tierra fertil algun dia arribará
y no hace falta repetir como los quiero
si lo he dicho tanto ya
y hablar de amores es bueno cuando se es sincero
y si ellos miran hacia atrás lo que les toca empezar
y nos hayan a nosotros que formamos un lugar
que un buen día nos marcharemos
y tal vez podran decir
grandes fueron los viajeros que cruzaron,
grandes fueron los viajeros que cruzaron,
en verdad que grandes fueron los viajeros
que cruzaron por aquí

Fernando Delgadillo

Y hoy llegamos a cumplir 200 años con una identidad perdida, viviendo de cerca con quien identifica 'mexicano' con Pedro Infante cantando 'La que se fue', borracho, lloroso pero muy macho por la botella de tequila que se empinó.

México es más que eso. Ser Mexicano debe ser más que eso.

Finito.

martes, octubre 20, 2009

WorkshopCamp Cd. de México

El BarCamp es una red internacional de "desconferencias" (eventos abiertos y participativos), cuyo contenido es provisto por los participantes. Se enfocan en aplicaciones web en estadios tempranos, tecnologías de código abierto y protocolos sociales. Sin embargo, este tipo de encuentros han ampliado su temática y actualmente incluyen eventos participativos y abiertos alrededor de temas sociales, artísticos, educativos... con fuertes componentes creativos e innovadores en los respectivos ámbitos.

WorkshopCamp será un evento con talleres con una duración de 3 horas impartidos por quien tenga algo que compartir y enseñar en un salón con temas orientados al diseño y desarrollo web.

Habrá dos turnos de talleres, el primero de 10 a 13 hrs y el segundo de 14 a 7 hrs.

El evento se llevará a cabo el próximo Domingo 25 de octubre 2009 en las instalaciones de Ked México, ubicadas en Av. Revolución No. 374, Col. San Pedro de los Pinos a una cuadra del metro San Pedro de los Pinos en la línea 7 del metro.

En lo particular me registré para participar exponiendo sobre el tema de "Behaviour Driven Development" dentro del track de ponencias de "México On Rails". Esta vertiente de desarrollo viene a completar mucho de lo expuesto en las metodologías ágiles en las cuales la interacción con el patrocinador del proyecto es indispensable. En el caso de BDD (por sus siglas en inglés) se tiene que resumir los requerimientos a aquellos que:
  • Protejan las ganancias
  • Incrementen las ganancias
  • Reduzcan los costos
De esta manera todos los participantes se enfocan en construir una aplicación que genera valor inmediato ya que refleja los procesos que realmente ayudan a salir adelanta a cualquier empresa u organización.

En el mundo Ruby y Ruby On Rails, se han desarrollado varias herramientas para apoyar las metodologías ágiles y BDD no es la excepción. El producto estrella en este caso es Cucumber, un framework para el soporte de los elementos del BDD. Se apoya en otro producto muy reconocido, RSpec, que permite el desarrollo de pruebas de una manera más natural y coloquial que por ejemplo Test::Unit, el framework estándar de Ruby y RoR.

Como sabemos que no todo mundo está familiarizado con Ruby y su medio ambiente, se incluirán charlas y talleres introductorios a Ruby, JRuby y una sesión de mejores prácticas.

El registro lo pueden realizar en WorkshopCamp Cd. de México.

¡Los esperamos!

Finito.