viernes, mayo 03, 2013

Aprendizaje + Creatividad = Niños Programadores?

Los que me conocen saben que considero la construcción de software como una actividad de aprendizaje y por sobre todo creativa, y ¿Que es lo primero que se te viene a la cabeza con esas dos palabras, "aprendizaje" y "creatividad"?, por lo menos a mi, son los niños que en su estado más profundo y cero contaminados son esponjas y no tienen limitaciones en cuanto a la creatividad....

Además, siempre que me tengo que describir lo hago diciendo "pasión por el aprendizaje"; y; con el pasar de los años, me doy cuenta que es algo innato en mí, ver como las personas que me rodean aprendan.

En mis inicios cuando trabajaba, siempre que tuve la oportunidad armaba charlas para capacitar o tomaba iniciativas para que todos mis compañeros y yo aprendamos. Durante mi carrera universitaria, entré en el laboratorio de sistemas de la Facultad y allí lideré un grupo de investigación. Después una vez recibido, no me tome ningun año lejos de la facultad, si no que todo lo contrario, armé una materia nueva electiva de quinto año que se llama Arquitectura de IT, que ya varios que leen este post deben conocer (o al menos, eso quisiera!!!!).
Todos los niños nacieron con mucha tecnología a su alrededor (celulares, tabletas, notebooks, netbooks, smart tvs) y pasan tiempo con ella, no tengo nada contra eso, siempre y cuando primero hagan deportes, sus tareas, dibujen, etc y luego puedan tener cierto ocio con la tecnología, ahora bien, lo que me molesta es que ese tiempo frente a pantallas no sea usarlo para aprender o hacer algo creativo. Por que invertir esa relación de consumir tecnología por crear tecnología, eso es lo que llamo adaptar la tecnología al aprendizaje y creatividad, y no solo ser simples consumidores de lo que otros crean como películas o juegos que lo único que hacen es limitar su capacidad creativa.

Es por esto que hace un tiempo (años) que vengo investigando y pensando un poco en esto de que los chicos construyan software, o sea programen. Verlo a mi hijo jugar a distintos juegos me llevó a ver que podía hacer yo para transmitirle mi pasión por la programación pero jugando para mantener su interes.

Lamentablemente le tocaron dos nerds de padres que quieren a todas costa incentivar en la creatividad y el aprendizaje, es por ello que decidimos explorar este camino de la programación hace un tiempo.

A los que le interese el tema, tengo mucho para compartir, voy a estar dando una charla en la Jornadas de Creatividad e Innovación de la FCE-UBA y se pueden inscribir aquí.

Seguramente vaya escribiendo un poco más sobre esta experiencia con Andres que venimos llevando des sus 4 años cuando comenzó a leer y lo vi interesado. La plataforma que estamos utilizando es Scratch del MIT que está pensada para niños..

sábado, junio 30, 2012

Y un repositorio de código para el 2012? GIT

Hará cosa de dos meses que vengo penando cual debería ser el repo de código corporativo del Instituto que actualmente viene usando el SVN. Esto me lleva al 2003, cuando tuve que tomar un puesto de liderazgo muy importante para un proyecto grande en IBM en su cuenta Telefonica, en esa época CVS dominaba el mercado y una de las cosas que hice fue migrar a SVN, pese a las puteadas del pulgin de Eclipse, lo pudimos hacern y en pocas semanas. Pero al terminar me dejo lan mala señal que era mas de lo mismo aunque la gente estaba muy contenta, usaba el VC de moda pero en números, no funcionaba los lockeos, los merges eran súper complejos, lo que ganamos automatizando el build lo perdí haciendo los merges, la mentira del rename, etc, etc.
Volviendo al 2012, si planifico una estrategia uniforme, tengo que tener cuenta las tendencias actuales, grupos que trabajan en diferentes locaciones, diferentes segmentos de red, lan, wan, internet, el avance de cloud y soluciones hosteadas fuera del datacenter, estado del arte actual de los VC y su integración con las nuevas plataformas de desarrollo e infraestructura (virtualizacion, continuos integration, puppet, etc). Pensando en todas esos temas, hay tres drivers fundamentales:
  1. El VC indiscutido es GIT, hay otras cosas buenas en el mercado como el de Jazz (RTC) o TFS (de MS) pero por el momento considero que IBM Argentina no esta maduro para colaborar con una implementación de RTC ni TFS esta lo suficientemente maduro para soportar las plataformas que quiero soportar. Obviamente están los Otros como peforce o mercurial, pero acá el Open Source lidera.
  2. Ubicuidad, considero que es fundamental que el código este disponible (de manera segura) y pueda ser accedido desde diferentes dispositivos y plataformas. El equipo de desarrollo de software de elite que tiene el instituto tiene que poder accederlo fácilmente sin problema.
  3. Lo necesito rápido, y posibilidad de ir escalandolo sin grandes complejidades ni costos de administración de los operadores aprendiendo un nuevo servicio de TI.

Teniendo en cuenta todo esto, comencé un piloto con Github el cloud de GIT mas utilizado por la comunidad open Source que tiene muy buena latencia, soporta varios protocolos y se puede utilizar desde adentro del instituto como de afuera y tiene features fantásticos como el pull requesón y revisión de código entre pares.

Vamos a ver que sucede con el correr del tiempo, toda decisión tiene sus desafíos, aquí intento enumerarlos:
  • Resistencia al cambio por utilización de GIT. Yo lo uso y puede resultar complejo sin una GUI, a mi me resulta cómodo la consola por ser usuario de Linux o MAC, pero es algo que estoy planificando. No tengo duda que GIT es la plataforma, no va a ser fácil la transición.
  • Integración con el IDM del Instituto, si bien lo mas parecido a IDM que tenemos es AD por el momento la solución de GITHub no tiene ninguna integración pensada o que yo haya visto, están las APIs disponibles que con unas horitas de programación ruby lo integro con mucho gusto.
  • Como mantener la historia del SVN en el GIT, entiendo que se puede, hay comandos de rebase entre ambos repos pero nunca lo hice y no quiero llegar a la solución de dejar un repo SVN en modo lectura.

Y me estoy ganando muchos enemigos? Puede ser, pero lo veo muy claro si quiero dar un servicios de excelencia no puedo darme el lujo de trabajar con tecnologías legacy que me frenen mas adelante... Se viene el CI en la nube con Cloudbeed?

Todo comentario o sugerencia será mas que bienvenida, alguien ya lo hizo?

domingo, junio 17, 2012

Mis primeros 6 meses en el Pami (INSSJP)

Alrededor de estos días voy a estar cumpliendo mis primeros 6 meses en la gerencia de TICs del Pami. Puedo asegurar que ya parece que pasaron 6 años, es más, con todo lo que vivi diría que ya ni recuerdo haber trabajado en Worklow, IBM ni Red Hat.
Las primeras conclusiones que se me vienen a la cabeza (y puedo contar) es que el puesto tiene realmente los desafíos que me plantearon durante el vibrante proceso de selección, y puedo asegurar que más tambien, uno no deja de sorprenderse. Por otro lado, cuento con un equipo técnico de base muy bueno que realmente va a permitir lucirme y dar lo mejor para la salud de los pensionados y el país.
Los primeros 4 meses fueron más bien de transición, donde me aseguré de entender la organización, sus objetivos, referentes y situación actual de TICs, obviamente hubo muchos temas urgentes que tuve que atender hasta incluso ver código fuente e ingresar a los servidores para resolver problemas, no puedo con mi genio de nerd :)
En algún momento escribiré un poco más sobre la experiencia de los primeros 100 días como gerente de TICs, pero en pocas palabras fue algo así:
  1. Primer mes, me tocó conocer la Gerencia, sus referentes, Subgerentes y algunos Jefes de Departamento , como así tambien entender la organización, su historia y como se relaciona con el resto de los organismos y stakeholders principales. Proyectos en ejecución.
  2. En el segundo mes, el objetivo fue conocer a los Gerentes con mayor interacción con la Gerencia dentro del instituto, entender sus necesidades, problemas que han tenido, relevar sus prioridades del año. Otro punto importante fue el de conocer a todos los Jefes de Departamentos de la Gerencia, entrando en un nivel más de detalle para saber el día a día junto con los problemas.
  3. El tercer més, me entrevisté con los proveedores en los cuales el Instituto más depende, conocí a cada uno de ellos y entre en los detalles de los contratos actuales, como así tambien saber cada una de su visión.También tuve algunas entrevistas con organismos con problemáticas similares a la del Instituto, ya sea por dispersión geográfica, o por temas tecnológicos y también de Industria.
  4. En último mes de la transición, se comunicaron los resultados, se delinió un plan para los primeros cambios en la Gerencia, ya sean de Estructura como de Procesos, como así también delinie el boceto de los objetivos de los primeros 12 meses de trabajo (plan).
Así es lindo contarlo, pero en paralelo, hubo muchos eventos e hitos importantes por lo que tuve que pasar que junto con la pasión que me caracteriza tuve que afrontar y me hicieron dedicarle 16 horas de trabajo por día, sobre todo en el verano que estuve solo en BA.
Algunas particularidades técnicas que me gustaron del Instituto:
  • Tecnología muy uniforme y homogenea, lo cual hace la operatoria mucho más sencilla
  • Un equipo de desarrollo sobresaliente, considero que es el mejor de la Argentina.
  • Mucho open source (eso me gusta) los lenguajes de programación, los sistemas operativos son dominados por el código abierto.
  • Un datacenter de primera generación se está termnando (Tier 3)
  • La red de datos con más nodos en el país.
  • Por lo que vi, uno de los pocos organismos con un plan para tener un disarter recovery site real.
  • Servidores Intel únicamente, nada de Mainframe ni Power o sea que no es esclavo de nadie.
  • Está claro que no voy a decir las debilidades no? Jejeje. Ya las voy a decir, cuando las resuelva, no son pocas para mi... pero debe ser por que soy un enfermo.
Actualmente ya me encuentro algo más estabilizado, en la parte final de muchos proyectos que van a dejar al Instituto en lo que es TI, en un nivel que estoy seguro ningún otro organismo o empresa de la salud va a estar por mucho tiempo en la Argentina, pero al mismo tiempo delineando el Plan Estratégico de TI para los próximos 4 años, realmente esto va a ser de excelencia.
Hacía mucho que no escribía, habrán entendido el por que, esto viene muy en serio y necesito estar muy concentrado en cada paso, y considero que el Instituto está muy bien en terminos de TI, y que con mi capacidad y visión en TI y gestión vamos a estar excelente (N veces mejor que lo actual), de eso no dudo.
Tenemos desafiós muy grande que estoy feliz de afrontar y estoy rodeado de gente brillante que lidera este Instituto, y más que feliz de que hayan elegido un profesional técnico y joven para conducir esto.

lunes, noviembre 28, 2011

Adios Red Hat

Esta semana dejé Red Hat, una empresa en la cual crecí muchísimo y formé parte de un grupo de elite técnica y comercial que voy a valorar por el resto de mi vida profesional. Más allá decir que conocí mucha gente con buena onda y que estoy seguro que van a ser amigos. Lamentablemente no estuve los 2 años que hubiese querido estar, fueron solo 1 año y 3 meses, pero creo que me dieron una visión del negocio, industria y comercial que en IBM iba a tardar mucho en adquirir.

También aprendí muchos skills técnicos que no tenía, en IBM esta muy especializado y no tenia la oportunidad de meterme tan de lleno en temas de infraestructura.

Por otro lado comencé a contribuir código a los proyectos open source, algo que me abrió la cabeza y me dí cuenta que un open source developer es alguien muy respetable y que no cualquiera gana reputación en la comunidad por tirar algunas lineas (como yo), espero seguir con este hobbie :)

Definitivamente el Open Source es un modelo que va a seguir creciendo, y cada vez más van a ser parte fundamental de las empresas y organizaciones.

Con respecto a mi nuevo desafío, es en Pami, como Gerente de Tecnología en Información y Comunicaciones, recién voy una semana y es un puesto con muchas responsabilidades y con iniciativas más que interesante para los próximos años. Habiendo trabajado como Arquitecto por tanto tiempo y Liderando profesionales en IBM, estoy en un momento justo para conducir y gestionar una gerencia y no solo eso, sino que más que nunca me puedo poner la camiseta de mi país y hacer algo bueno para el y no para una corporación.

Espero seguir teniendo tiempo para contar mis experiencias y crecimiento en esta nueva etapa de mi vida profesional, y con poco tiempo me doy cuenta que aquí cuento con un equipo muy profesional.

lunes, octubre 31, 2011

JUGAR: Evento Anual de Desarrolladores Java

El Martes 1ro de Noviembre, se llevará a cabo el primer evento anual de Java User Group de Argentina, JUGAR, un grupo bastante nuevo que viene haciendo eventos mensuales muy copados y cerveza bien fria. Lo que me gusta del grupo es que tienen un buen volumen por ser mensual y no hay talibanes puro Java, hay gente con ganas de aprender lenguajes nuevos y no tienen ningún problema en adoptar técnicas provenientes de otras tecnologías o comunidades.
En esta ocasión yo voy a hablar de Web Frameworks, sería algo así:

El objetivo es una rápida introducción a frameworks web actuales y emergentes, para crear aplicaciones web, describir sus ventajas y desventajas. Este es un resultado de una investigación luego de haber desarrollado aplicaciones Web por más de 10 años en diferentes plataformas y lenguajes.
Temario
1) ¿Que nos importa de un web framework?
2) Evolución de los frameworks
3) Frameworks maduros (GWT, SpringMVC, JEE5 Seam y Rails/Grails)
4) Comparación de frameworks
5) Frameworks emergentes (JEE6/CDI/Forge, Play, Wicket)
6) Otras ideas
7) Conclusión 


En el evento habrá charlas de Play!, Netty, Turneric, iPaaS, JRapid, Mulesoft y JBoss. Acá está la descripción del evento. 


Todavía quedan lugares, mi charla es a las 15hs. Los espero!

viernes, septiembre 16, 2011

Participación en la CISL 2011

La semana pasada tuve la oportunidad de participar en la Conferencia Internacional del Software Libre del 2011, donde se brindan charlas relacionadas con el tópico y tuvieron la participación de Anibal Fernandez y Richard Stallman. Digamos que es una conferencia que viene creciendo año a año y Red Hat es el segundo año que sponsorea el evento.

Por temas laborales solo pude asistir a la presentación de Anibal y obviamente la mia :)
Anibal planteo un mensaje muy interesante, diciendo que todos los años contaba planes del gobierno con el open source, pero este año quería contar lo que habían hecho, esto fue lo que me quedó:
  • Las laptops de conectar igualdad tienen doble booteo, win7 y ubuntu. Yo lo veo como un avance, espero que la próxima versión solo tenga Ubuntu.
  • Anunciaron el contrato marco que firmó el gobierno con Red Hat para tener soporte al software open source
  • La nueva aplicación de argentina compra, ecom, está siendo desarrollada completamente en software open source (jboss+redhat)
  • Anunció la publicación de la nueva oficina de Software Público, que lo dibujó por el lado abierto, pero está claro que esta oficina va a manejar software no open source.
  • Comentó los avances del Ginga por ser código abierto para la TV Digital.
Acá les dejo un post de un periodista.
En mi caso, yo di una charla de ALM, de 20 minutos que tenía un abstract como el siguiente:
Titulo de la ponencia: "Manejo del ciclo de vida de desarrollo de software con Open Source"
Abstract: "A lo largo de los años el Open Source fue cruzando barreras, desde plataformas robustas como sistemas operativos, bases de datos y servidores de aplicaciones hasta frameworks y librerías de desarrollo, en esta charla queremos exponer un conjunto de herramientas open source que nos van a permitir gestionar el ciclo de vida de las aplicaciones (ALM) de manera consistente, trazable y automatizada explicando los conceptos detrás de ingeniería de software y los beneficios de una correcta implementación."
Acá les dejo los videos de la presentación:

viernes, agosto 12, 2011

Introducción a Scala - JUGAR

La semana pasada tuve la oportunidad de participar de una muy buena charla de Scala que se dió en el Java User Group de Argentina, un nuevo grupo que se creó hace bastante poco y está realizando charlas mensuales muy interesantes. Les recomiendo que se registren en el Meetup del grupo y comiencen a participar de las actividades, me estoy postulando para dar una charla para fin de año.
El disertante fue Gustavo Arjones, quien realmente poseía un buen conocimiento teorico-práctico y lo que más me gustó es que explicaba las cosas como un muy buen nerd, con pasión y ganas de contar lo divertido que era utilizar scala. Y algo que también me gustó es que tenia buen background en .NET, lo cual hizo buenas comparaciones.
Obviamente fue una charla de una hora y no se pudo entrar demasiado en detalle, pero fue lo suficiente como para entender los principios del lenguaje y como arrancar. Scala es un lenguaje que corre sobre la JVM, que ofrece una sintaxis y semántica muy concisa y elegante para construir una aplicación integrando ideas de la programación orientada a objetos y la programación funcional.
Acá les dejo la referencia a los materiales expuestos en la charla y las slides.
Cuales fueron mis conclusiones:
  1. Realmente me pareció un lenguaje de avanzada y que incorpora conceptos de la programación funcional que permiten aplicar el concepto "tell don't ask" de manera más sencilla
  2. Tiene una sintaxis muy elegante, minimalista y poderosa, realmente me hizo acordar a ruby
  3. La manera de crear mixins con traits es genial, ver el ejemplo en la presentación
  4. Como viene pasando, los IDEs ya están integrados y Netbeans parece ser el mejor preparado
  5. Posee una IRB para tirar lineas en una consola interactiva, lo cual permite aplanar la curva de aprendizaje y ser muy productivo
  6. El lenguaje se jacta de ser type-safe, lo cual es verdad, pero realmente hubiese esperado algo más dinámico, entiendo el trade-off pero es ahí donde mi corazón se vuelve a volcar un poco más a Ruby/JavaScript.
  7. Como corre en una JVM, es prácticamente natural invocar POJOs desde scala y viceversa
  8. Framework muy potente de Unit Test, incluso se podría usar para testear clases java, es más es una manera excelente para empezar
  9. Frameworks Web como Play! tienen soporte para scala
En fin, esas fueron mis conclusiones, espero que le hayan gustado y si alguien lo prueba me comenta como le fue, yo tendré que planificar un poco de tiempo para hacerlo, no lo veo en los próximos 2 meses al menos.