June 2012 - Posts
Han vuelto las reuniones de Ruby Argentina, los meetups. El grupo ha decidido que de ahora en más, las meetups se hagan el primer miércoles de Julio, el día 4 de Julio. Pueden ver el anuncion en la lista Rubysur vía el bueno de @_nesto:
https://groups.google.com/group/rubysur/browse_thread/thread/1b84c59e1e7f04f5
Se hace a las 18:30hs (puntual) hasta las 20:30hs en Urban Station:
http://argentina.enjoyurbanstation.com/es/
un lugar que hay que felicitar, porque siempre ha apoyado a estas reuniones de Ruby en Buenos Aires (ahí fue el Ruby Fun Day del año pasado). Un lugar donde pueden trabajar, si están de paso, con todo lo necesario para programar y seguir creando llevando una notebook.
En esta próxima meetup (el miércoles de la semana que viene) se harán cuatro charlas (a votar). Yo ya me inscribí en el formulario:
http://bit.ly/MvRtim
No vi cual es el enlace del formulario para ir viendo los anotados y las charlas propuestas. Se supone que el viernes se votan las 4 charlas, si hay más de cuatro propuestas.
Yo propuse una de Node.js para programadores Ruby, así que vayan a inscribirse, y voten! ;-)
Como escribía en:
http://msmvps.com/blogs/lopez/archive/2012/06/13/django-day-en-la-plata-buenos-aires-argentina.aspx
hay cantidad de “meetups” acá en Buenos Aires. Es muy bueno entonces que la gente de Ruby haya “dado algoritmo”: ahora sé que es el primer miércoles de cada mes, y eso sirve para organizarse de antemano.
Vean, esta semana hay dos “meetups”. Ayer mismo, la de Mule, organizada por el Java User Group, en especial por @ramirorinaudo de MuleSoft:
http://www.jugargentina.org/events/58424062/
y mañana jueves una de Microsoft:
http://www.meetup.com/Desarrolladores-Windows-de-Argentina-y-Uruguay/events/70201102/
Ambas prometen cerveza (y la hubo en la de ayer, en MuleSoft, veamos como se porta Microsoft ;-) Lo mío es un apostolado ;-)
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez
Como publicara en Grupos y Reuniones en Buenos Aires el pasado viernes 8 de Junio se realizó la primera reunión del grupo Emprendedores Informáticos:
http://www.meetup.com/Emprendedores-Informaticos/events/64414432/
El lugar de reunión fue un lugar en el centro (me gustó, es una de las pocas reuniones a las que he asistido que queda en un lugar cerca del centro de Buenos Aires), el Auditorio de la Fundación Pablo Cassará, Av. de Mayo 1190 - 1er Piso. Ver http://www.fundacioncassara.org.ar/
Yo llegué un poco despues de haber empezado la reunión a las 18:30hs. Estaba hablando Leonardo Otero, que es el impulsor de esta iniciativa. Algunas notas de lo que dijo:
- Esta meetup está inspirada por emprendedores anteriores, algunos americanos, que también promueven este tipo de reuniones.
- Hoy somos 90 inscriptos en el grupo
- Anotados 40 para la reunión (habremos sido 30 y algo más los que asistimos)
- Hay integrantes de diferentes áreas, de tecnología, de marketing, de Ruby, de Java, de Node.js, etc…
- Leonardo recomienda leer el perfil de los demás, para ver en qué se pueden complementar. Cita el ejemplo de Natalia, de San Luis que está formando una empresa allá. Y Sebastián, en Buenos Aires, que buscaba recursos, entonces vió que lo que ofrecía Natalia podía servirle para su emprendimiento.
Luego, el primer punto de la agenda fue una presentación de Javier Villanueva, licenciado, del IECyT:
http://www.iecyt.com.ar/
Gracias a Javier fue que pudimos reunirnos en ese salón, bastante cómodo, con proyector. La presentación de Javier la dejó en el mensaje del grupo:
http://www.meetup.com/Emprendedores-Informaticos/messages/boards/thread/24208912#76381572
El IECyT es el Instituto de Emprendimientos Científicos y Tecnológicos. Es una Asociación civil sin fines de lucro con el objeto de promover y estimular la creación y desarrollo de emprendimientos, principalmente, de base tecnológica. Fue creado en 2003 dentro de la Sociedad Científica Argentina. Y en 2005 obteniene su personería jurídica, como entidad civil. Lo componen empresarios, profesionales e investigadores que tienen experiencia en la creación, gestión y financiamiento de empresas innovadoras.
Javier es economista, con Master en Dirección de Empresas (MBA) (creo que en España). Es consultor en Innovación y Competitividad, capacitador y tutor de emprendedores, y coordinador de programas en IECyT.
Desde 2004 convocan a expertos y actores del mercado de riesgo local, con foros nacionales y provinciales. Fueron parte de la Feria de Empresas de 2009, en Buenos Aires. En 2008 elaboraron el primer estudio sobre el mercado de capital emprendedor en Argentina. Y una de sus principales actividades es colaborar en la búsqueda y obtención de financiamiento público y/o privado para nuevos emprendimientos o de reciente creación.
Pueden encontrar las actividades de IECyT con emprendedores:
http://www.iecyt.org.ar/emprendedores/
También se acercan a inversores:
http://www.iecyt.org.ar/inversores/
Se comentó en la reunión que tienen una red de inversores ángeles, que pueden contactar. El proceso es primero presentar el proyecto a Javier, por ejemplo, y él les hará una devolución: el proyecto está listo para ser presentado a la red, o no, necesita más trabajo. Un compañero de Javier igual comentó que un requisito prácticamente ineludible para ser considerado apto para la red de inversores ángeles es estar facturando en base a la nueva idea.
Pueden encontrar los casos de éxitos, emprendimientos que pasaron por su asesoramiento en:
http://www.iecyt.org.ar/casos-de-exito/
para ver el perfil de los emprendimientos a los que ayudan. Les recomiendo ir a ver la lista, pero pongo acá dos como ejemplo:
Campo Automático
Wormhole Web Conference
Un “slide” interesante que mostró Javier, es el Ciclo de Vida:
Vean el “valle de la muerte” del comienzo, donde los egresos son mayores que los ingresos. Luego lo comparó con el Ciclo de Financiamiente:
¿Dónde conseguimos Capital Semilla? Prácticamente ningún subsidio lo da, sino que tenemos que conseguirlo de “la tripe F”: Friends, Family and Fools (Amigos, Familia e Incautos ;-). Luego los subsidios y aportes que conseguimos se pueden sumar a eso.
El “bootstraping” que mencionó se refiere a cómo comenzar con pocos recursos, o apoyados en otros, con trueque, préstamo de lugar, bienes, etc.
Los subsidios de Argentina, nacionales o locales, sólo comienzan a intervenir en las etapas de Puesta en Marcha y Expansión. Hay tres tipos de subsidios monetarios: Aportes No Reembolsables (ANR), Créditos subsidiados (“blandos”), Bonos Fiscales.
Los inversores también, sólo entran a partir de la etapa de Puesta en Marcha:
Luego de esto inicial, la presentación de Javier estuvo orientada, no a todas las actividades del IECyT, sino principalmente a su actividad dentro de Buenos Aires Emprende 2012. Leer
Buenos Aires Emprende 2012 en el IECyT
En el Buenos Aires Emprende, no se pueden presentar proyectos directamente, sino a traves de consultoras, como el IECyT. Pueden ver otra presentación en línea en
http://www.slideshare.net/IECyT2/buenos-aires-emprende-2012-iecyt
¿Qué gana el IECyT con esto? No tengo todos los detalles, pero si ellos eligen bien a sus candidatos, pueden ser elegidos por el gobierno de la ciudad de Buenos Aires. Y entonces la capacitación de esos emprendimientos, financiada por el gobierno de la ciudad, va para la consultora.
Pueden ver el sitio de Buenos Aires Emprende en
http://www.buenosaires.gov.ar/areas/produccion/subs_produccion/emprende09/index.php?menu_id=30465
La convocatoria de este año en:
http://www.buenosaires.gov.ar/areas/produccion/subs_produccion/emprende09/concurso_bae_2012.php?menu_id=34786
Y las entidades participantes (entre ellas el IECyT) en:
http://www.buenosaires.gov.ar/areas/produccion/subs_produccion/emprende09/entidades_patrocinantes.php?menu_id=31513
Ahí encuentran el email de Javier, si les interesa el tema de Buenos Aires Emprende (u otras actividades del IECyT, como la red de inversores ángeles):
Instituto de Emprendimientos Científicos y Tecnológicos (IECYT)
Director Técnico: Enrique Draier
Teléfono: 4983-8300 int. 3
E-mail: jromerov@iecyt.org.ar | Web: www.iecyt.org.ar
Propuesta de Trabajo (pdf)
Las categorías de proyectos que se pueden presentar, son esencialmente dos:
Idea-Proyecto: Sin facturación asociada. En etapa de desarrollo de su primer producto o servicio, o bien un prototipo. Próximos a realizar una validación comercial en el corto plazo.
Emprendimiento en Marcha: Empresas de reciente creación. Con facturación comprobable. Objetivo: mejorar producto existente, su posicionamiento en el mercado, y/o desarrollar nuevos servicios y productos.
Los ganadores obtienen un ANR (Aporte No Reembolsable, préstamo que no hay que devolver) que no puede superar el 40% del costo total del período de inversión. Es decir, nosotros tenemos que poner el 60% de forma efectiva. En el caso de Idea-Proyecto, el ANR será de hasta $45000, y en el caso de Emprendimiento en Marcha será de hasta $85000.
Bueno, tengo algo más para comentar de la presentación de Javier, y de dos actividades más que hubo en esta primera reunión. Pero eso vendrá en próximo post.
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez
El sábado que viene, 23 de Junio, estaré en una VAN (reunión virtual) organizada por el grupo Alt.NET Hispano, tratando el tema de cómo desarrollar una aplicación con TDD. El horario es el habitual 18pm GMT, en Buenos Aires tenemos GMT-3, y es 3 de la tarde hora local.
Quiero mostrar cómo uso habitualmente TDD para ir desarrollando una aplicación. Usaré C#, una interfaz con ASP.NET MVC, y seguramente algún proyecto de clases donde ir poniendo el dominio. Estoy pensando más en detalle el dominio, quisiera uno que pudiera abarcar en las dos horas que tenemos disponibles, y que tuviera algunas reglas.
Para mí, es muy importante usar TDD en código en producción. Me ha resultado muy útil, no sólo por la cobertura de tests que me permite refactorizar con confianza, sino por el proceso de diseño del código y de la aplicación en sí. En los últimos años le he agregado también la idea de que lo importante son los casos de uso, y darle menos peso a temas como el diseño de la base de datos que puede aparecer más adelante en un desarrollo ágil, no tiene por qué estar desde el principio.
Ya escribí varios posts sobre desarrollo con TDD y mis proyectos personales públicos prácticamente están todos desarrollados con TDD (pueder ver mi cuenta de GitHub cómo van avanzando test a test). Pero no había tenido la oportunidad de mostrar esta técnica en una VAN sobre una aplicación y un dominio. Espero que pueda mostrar qué bueno es aplicar TDD desde el comienzo, y cómo nos ayuda en un desarrollo ágil.
Más información sobre Alt.NET Hispano en:
http://altnethispano.org/Inicio.aspx
Sobre las reuniones VAN y cómo participar en:
http://altnethispano.org/reuniones/descripcion.aspx
Las anteriores VAN han sido publicadas (en video) en:
http://altnethispano.org/reuniones/historico.aspx
El calendario de próximo eventos en:
http://altnethispano.org/reuniones/calendario.aspx
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez
Hay tantas reuniones de programadores estos días, que ya pierdo la cuenta ;-) Hoy me recordaron (@santiagobasulto via Twitter) que el sábado que viene, 16 de Junio, se viene el Django Day en la ciudad de La Plata, provincia de Buenos Aires:
http://djangoday.com.ar/
Felicitaciones a la gente que lleva adelante esta jornada. Leo en la lista de Python Argentina:
Inscripción: https://eventioz.com/events/djangoday
El DjangoDay Argentina 2012 es una reunión de programadores,
diseñadores e interesados en el framework web Django, a realizarse en
La Plata, Argentina.
Consiste de un solo día en el que van a haber charlas variadas y un
taller para tirar código y aprender un poco más de Django.
Es una buena oportunidad para conocer el framework, conocer gente
piola, y pasar un buen rato.
¿Cuándo?
El día 16 de Junio de 2012
9:30hs a 13:00hs Charlas sobre Django
14:00hs a 17:00hs Taller de programación
¿Dónde?
Es en La Plata - Buenos Aires
Concretamente: Universidad Tecnológica Nacional - Facultad Regional La
Plata (UTN - FRLP)
Atención: según la agenda del sitio, comienza la registración a las 8:30hs y las charlas comienzan a las 9hs.
Vean el framework Django
https://www.djangoproject.com/
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Developed by a fast-moving online-news operation, Django was designed to handle two challenges: the intensive deadlines of a newsroom and the stringent requirements of the experienced Web developers who wrote it. It lets you build high-performing, elegant Web applications quickly.
Django focuses on automating as much as possible and adhering to theDRY principle.
Dive in by reading the overview →
When you're ready to code, read the installation guide and tutorial.
Pueden ven un rápido ejemplo, en el video de la VAN que dí gracias a la gente de ALT.NET Hispano:
http://altnethispano.org/wiki/van-2012-04-14-esos-raros-lenguajes-parte2.ashx
De paso, les recuerdo:
Hoy, miércoles es el seminario Android:
http://www.gtug.com.ar/seminario-android-ii/
y el domingo está el “recruiting” de ThoughWorks
http://msmvps.com/blogs/lopez/archive/2012/06/06/thoughtworks-en-buenos-aires.aspx
Espero en estos días tener la información (fecha/lugar) de la próxima Ruby Meetup en Buenos Aires.
Y en dos semanas se vienen tres días (martes a jueves, algo demasiado):
http://www.mariadbnosqlcloud.com/
El Agiles Buenos Aires viene el sábado 23 de junio (uy, justo cuando voy a dar una VAN para ALT.NET Hispano sobre cómo armar una aplicación con TDD).
El martes 26 de Junio se viene la Meetup de Mule:
http://www.jugargentina.org/events/58424062/?eventId=58424062&action=detail
Y en Julio, el martes 24, tenemos la de Amazon Web Services:
http://www.meetup.com/AWS-User-Group-Buenos-Aires/events/68988052/
Con tantas reuniones, no sé cuando vamos a poder trabajar ;-) Ya hubo casos de superposición de reuniones (como una de AWS en el mismo día que una de Wayra).
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez
Si leyeron anteriores posts, ya saben que desde el año pasado estoy usando Node.js, en Windows, en Azure, y también en algún Ubuntu. Ver:
Posts en Inglés
Posts en Español
Hace unas semanas tuve el gusto de dar una charla sobre implementación de lenguajes en Javascript, en la JSConf Argentina donde usé Node. Y el pasado mes, me estuve entrenando en proyectos chicos. También quedó en video una charla virtual que dí gracias a la gente de AltNet Hispano. Ahora con este post quisiera iniciar una serie sobre Node.js.
Como primer tema, viene algo sencillo: ¿qué estoy usando para programar en Windows?
Primero, estoy usando la versión .msi que está en el sitio de Node. Uso una estable, 0.6.x, hasta que salga la 0.8.x (las 0.par son las versiones estables de Node.js). Instala Node.js en un directorio fijo de Program files, y ahí mismo tiene npm. El año pasado apareció soporte directo de Windows (antes había que compilar desde los fuentes) pero no fue hasta que apareció el npm (el manejador de paquetes “estandard” de Node.js) que se hizo cómodo el desarrollo. Les aconsejo tener la última versión. Por ejemplo, en algunas máquinas tenía una versión del año pasado, y el npm todavía tenía algunas fallas (caso concreto: al lanzar npm test, una de las tareas que tiene npm, no incluía el directorio local node_unit\.bin en el PATH, y entonces no ejecutaba tareas como “nodeunit …” aunque estuvieran instaladas).
Segundo: no codifico casi nada de mis proyectos en GitHub SIN USAR TDD. Para eso, hasta ahora usé:
- El módulo assert, que ya viene en Node.js. Ver como ejemplo AjGenesisNode y ver cómo lanzo los test en el package.json (de forma multiplataforma) gracias al script test.js.
- Nodeunit, cuando necesito tests con asincronía. Ver SimpleActors y SimpleMessages.
Tercero: cualquier editor de texto con el que estén cómodos.
Cuarto: una cuenta en GitHub para ir publicando pruebas, experimentos, pequeños ejemplos y mis primeros paquetes. Si el proyecto es un paquete, armo el package.json. Cada proyecto tienen un .gitignore, en general para no enviar el subdirectorio node_modules, de los módulos que uso, y un .npmignore que suele agregar como excluido al directorio samples
Lo importante no es tener tanto tooling como seguir bien TDD. Como voy desarrollando por “baby steps” casi nunca tengo que recurrir a depurar. Cualquier error de escritura de código, aparece enseguida con el test. Trato de no agregar línea que no tenga cubierta por test. Pueden revisar los commits de mis proyectos, he tratado de hacer commits atómicos que reflejen el agregado de tests y su puesta en verde.
Eso me ha servido para encarar refactoring, tanto pequeño como grande. Por ejemplo, ayer hice refactoring de la implementación interna de SimpleRemote y gracias a los tests no tuve mayor problema: cualquier error, quedaba reflejado en algún test que fallaba, y cuando lo solucionaba, el test pasaba a verde.
La combinación Javascript y Node.js es muy potente: por un lado, Javascript es un lenguaje con bajísima ceremonia (menos aún que Ruby, por comparar). Y Node.js tiene un excelente ecosistema de paquetes, y un manejador de los mismos (el npm) que debe ser el mejor que encontré hasta ahora.
Próximos post: ¿cómo es Node.js? ¿qué tiene de particular? ¿qué es V8? etc…
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez
Ya había publicado este post en inglés, pero no todavía en español. Tiempo de revisar mis resoluciones del pasado mes:
- AjContab modelo en memoria pendiente
- Agregar verbos a SetTuples pendiente
- Agregar funcionalidad a Acquarella (extender por lenguaje, comentarios multilínea…) pendiente
- Agregar funcionalidad a AjLogo en Javascript completo ver repo
- Agregar funcionalidad a AjTalk en Javascript completo ver repo
- Agregar funcionalidad a AjTalk compilador .st a javascript completo ver repo
- Dar una charla sobre implementación de lenguajes en Javascript completo ver post
- Comenzar la codificación de AjConsorSite completo ver repo
En vez de algunos de éstos, estuve haciendo:
- Escribir un “actor model” sencillo para NodeJs, SimpleActor completo ver repo
- Mejorar AjLisp para Node.js/Javascript completo ver repo
- Escribir envío bidireccional de mensajes JSON, para Node.js, SimpleMessages completo ver repo
- Escribir primera versión de AjGenesis para Node.js completo ver repo
- Escribir primera versión de AjGenesis para Ruby completo ver repo
- Escribir primera versión de SimpleTpl, motor de plantillas para Node.js, Javascript completo ver repo
- Escribir primera versión de SimpleMvc, MVC sobre Express completo ver repo
- Escribir primera versión SimpleModel, modelo en memoria, para Javascript/Node.js completo ver repo
- Escribir primera versión ProtoAppNode, prototipando una aplicación web desde un modelo completo ver repo
- Mejorar mis ejemplos de Node.js completo ver repo
- Mejorar mis ejemplos de Lenguajes de Programación completo ver repo
- Agregar ejemplo Bootstrap en mis ejemplos de CSS completo ver repo
- Refactorizar AjFabriqNode completo ver repo
- Escribir primera versión de SimpleRemote, Objetos Remotos para Node.js completo ver repo
Las resoluciones para este nuevo mes de Junio:
- Escribir primera versión de SimpleStore, una simple “key value store” para Node.js.
- Comenzar SimpleParser, PEG en Javascript
- Dar una charla sobre cómo desarrollar una aplicación usando TDD en .NET.
- Preparar una charla sobre Smalltalk Pharo.
- Mejorar y publicar SimpleRemote v0.0.1.
- Mejorar y publicar AjGenesisNode v0.0.1.
- Preparar una charla sobre Ruby y Node.js.
- Implementar el protocolo cliente de SimpleRemote en otro lenguaje
- Nuevos ejemplos para AjFabriqNode
Y ahora también:
- Comenzar SimpleBus, un simple “service bus” de mensajes, en Javascript/Node.js.
- Comenzar SimpleStorm, un simple imitador de Storm de Twitter en Javascript/Node.js.
Todos temas interesantes.
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez
Ayer martes apareció en listas un anuncio de este evento (yo lo encontré en la lista de Python Argentina y en la de RubySur):
ThoughtWorks will be in Buenos Aires on June 17th, Sunday, for a recruiting event.
http://www.thoughtworks.com/events/join-revolution-buenos-aires

Si en los últimos años estuvieron encerrados en un bunker ;-) y no conocen esa empresa:
http://www.thoughtworks.com/
Ver por ejemplo:
ThoughtWorks family
Les recomiendo leer el Radar, que se va actualizando tras unos meses:
http://www.thoughtworks.com/radar
Bien, el evento que viene en Buenos Aires es uno de reclutamiento, con selección. Leo en el primer enlace:
Whether you have just started your programming career and are itching to tackle the big and interesting problems, or have been in the market for a while and are trying to find out even better ways to do what you excel at, we would love to hear from you.
Our main priority at the moment is to find developers and quality analysts who will become our next generation of references in technology in South America and in the world. You can find more details of our roles below:
Entry Level Developers, Porto Alegre and Recife
Entry Level Quality Analysts, Porto Alegre
Java/C#/Ruby/Python Developers, Porto Alegre and Recife
Test/Quality Analyst, Porto Alegre and Recife
Veremos si alguna vez abren oficinas en Argentina. Puede que este evento sea un preludio a esa movida. Sería interesante tenerlos más cerca, y podrían aprovechar la calidad de nuestros programadores, además de un uso horario más alineado con Estados Unidos y hasta algo conveniente para Europa. Además, van ha encontrar una activa comunidad de Ruby, Python, Java y .NET.
Uy, parece que antes de convocar, llaman por teléfono, así es la primer entrevista. Ok, quedo afuera, ya saben que no tengo TE desde el siglo pasado ;-)
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez