October 2012 - Posts
Ya saben que escribo un post diario, desde hace años, muchas veces dando evidencia de alguna actividad, para que quede indexada en Google. Esta vez quiero compartir contenido y enlaces de la excelente presentación de @dzajband de ayer, Jueves 25, sobre Express, en la segunda meetup del grupo Node.js Argentina, en las oficinas de @globant.
La presentación pudo verse en vivo, y grabarse como Google+ Hangout, así que automáticamente quedó disponible en:
http://www.youtube.com/watch?v=pQN5U0EQoUo&feature=youtu.be
(Nota: también mi charla de lenguajes de programación en Javascript para @BogotaJS quedó disponible en video).
Los slides de la presentación de Dan están en:
https://speakerdeck.com/danzajdband/introduccion-a-express-meetup-node-dot-js-argentina
Vean sus sitios y la empresa en la que trabaja:
http://zajdband.com.ar
http://los-rayos.com.ar
http://www.thelift.net (comentó que usan Node.js)
http://www.thelift.net/about/
Dan estuvo presentando cómo es Express, comentando algo al inicio sobre Node.js y npm, su ecosistema de paquetes. Luego presentó funcionando y mostrando código, una aplicación de él, en Express, corriendo en:
http://nicar.herokuapp.com/
que usa la API de nic.ar, para consultar dominios en Argentina: http://api.nicalert.com.ar/
Hoy Dan publicó el código, si quieren verla, en:
https://github.com/danzajdband/nicar-whois
Les recomendaría ver en los “slides” las direcciones de los paquetes recomendados por Dan, que son los que usa en sus proyectos, en desarrollo y en producción, como Up, Passport, Mongoose, Superagent, Express, uno de OAuth, etc…
Como bonus-track comentó sobre components:
https://github.com/component seguir a @component_js otro (otro más! ;-) proyecto de @tjholowaychuk (díganme si TJ no es igual a Jhonny Depp en Dark Shadows ;-). Un “package manager” para el cliente, ejecutado como comando de línea, que en base a declaraciones arma los .css, .js y más para nuestro sitio web.
Vayan anotándose para la tercera reunión de Node.js Argentina en Buenos Aires, 23 de Noviembre, aquí. Espero que también se pueda organizar una reunión del grupo en otra ciudad. Vean siempre el dashboard de proyectos. Veremos si aparece una lista de correo para discutir sobre esos proyectos y temas técnicos.
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez
Estoy preparando todo para viajar a Ecuador, la semana que viene. La gente de la Universidad de Azuay me invitó a dar un seminario sobre Node.js, Socket.io y programación real-time, como parte del UDA Developers Challenge 2012. Más información en:
http://www.uazuay.edu.ec/udadev/

Leo ahí:
UDA Developers Challenge 2012 es organizado por la Universidad del Azuay, como parte de su aporte a la comunidad, con el ánimo de convertirse en inpulsador de eventos anuales en el que se traten temas tecnológicos de actualidad; con el objetivo de fomentar la innovación y la madurez de nuevas tecnologías en el país. Brindando de esta manera una actualización continua a estudiantes y profesionales de esta área. La primera parte del evento consiste en el aprendizaje de estas nuevas tecnologías mediante seminarios/taller, y en una segunda parte se pondrán a prueba los conocimientos adquiridos mediante el concurso UDA Developers Challenge. Con el objetivo de tratar temas tecnológicos de actualidad, el tema seleccionado para el UDA Developers Challenge 2012 son las aplicaciones web en tiempo real. En el país se ha podido constatar el aumento significativo de teléfonos inteligentes (smartphones) y tablets, debido al gran número de funcionalidades que estos ofrecen mediante la diversidad de aplicaciones disponibles; lo que ha llevado a la concentración de las actividades alrededor de estos dispositivos móviles que día a día son más indispensables en el que hacer diario. Considerando este hecho y el naciente desarrollo de aplicaciones para móviles en el Ecuador, el tema que será tratado por el UDA Developers Challenge 2012, serán las aplicaciones en tiempo real. El evento se realizará los días 29, 30 y 31 de Octubre de 2012 y comenzará con los seminarios/taller para el desarrollo de aplicaciones en tiempo real, para esto se usara bases de datos no relacionales, NodeJS y HTML5; con una duración de 1 día por cada tema.
Mi aporte es en el segundo día de la primera parte. El gran tema: Node.js, desde cero, para gente que sabe programar pero que quiere iniciarse en Node.js para participar del concurso de la segunda parte. Mi intención es mostrar: Node.js desde el principio, programación asincrónica, manejo de paquetes con NPM, algo de tests (usando TDD, módulo assert, módulo nodeunit), usar el módulo http para primeros ejemplos de web, puede que agregue módulo TCP para algún ejemplo con nodos distribuidos. Luego pasar a algún ejemplo simple de Express (páginas web, MVC). Terminado eso, pasaremos a ver algunos ejemplos simples de Socket.IO, para comenzar a entender cómo permite este módulo implementar aplicaciones que reaccionan en tiempo real, y relacionando varios usuarios. Aparecerá el clásico ejemplo de chat y algún ejemplo simple de juego multiusuario (usando un canvas de HTML5).
Para mí, será el primer viaje a Ecuador, y me encuentro muy entusiasmado preparando los temas de este seminario. Los ejemplos sencillos van quedando principalmente en:
https://github.com/ajlopez/NodeSamples
(estoy actualizando los ejemplos simples para las nuevas versiones de Express y Socket.IO). Seguramente usaré otros repositorios con ejemplos más completos, por ejemplo los propios “samples” de Express y Socket.io. Para el tema distribuido, reusaré lo que mostré aquí en Buenos Aires para el día del programador, por ejemplo, el algoritmo genético distribuido, que usa Socket.IO para comunicar browser y servidor node, y tcp para comunicar nodos node de trabajo. En cuanto pueda, repito los temas por acá, en Argentina.
Espero encontrarme con desarrolladores en Ecuador, a los que conozco sólo por las listas de correo. Y conocer los Andes, en la ciudad de Cuenca, donde está la sede donde se dicta esta primera parte de tres días de UDA Dev 2012.
Gracias a @gringotuc y a @martinsalias que me pusiero en contacto con Ramiro, desarrollador ecuatoriano, estudiante en Buenos Aires, para tener esta gran oportunidad. Y a Marcos, que desde Ecuador está organizando mi viaje.
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez
Se viene esta nueva edición de la reunión internacional de Smalltalk en Argentina. Más detalles en:
http://www.fast.org.ar/smalltalks2012
Esta vez se realiza en Puerto Madryn, la ciudad de las ballenas. Oradores confirmados:

Jeje… no me incluyeron ;-) el efecto Coto me va a impedir asistir, pero seguramente me desquitaré escribiendo posts sobre lo que estoy haciendo en VM Smalltalk con Java, C#, y Javascript como base, algo de objetos remotos, ejecutar Smalltalk en Node.js, e intentando tener Software Transactional Memory a la Gemstone.
Recibo un email del bueno de Andrés Valloud:
¿Te enteraste que este año se hace nuevamente el congreso Smalltalks? (http://www.fast.org.ar/smalltalks2012)
Por ahí te estás preguntando qué puede tener de interesante un congreso sobre un lenguaje que tal vez no usás para trabajar y que por ahí no conoces, pero si tenés 5 minutos, leé este mail, te puedo asegurar que no te vas a arrepentir y seguramente querrás venir al congreso :-).
Para empezar, este congreso no es únicamente sobre un lenguaje de programación sino sobre una tecnología y cultura de desarrollo que aún sigue influyendo fuertemente en nuestra profesión. Por ejemplo, hace un par de años vino a esta conferencia Gilad Bracha. ¿Quién es Gilad Bracha?, por ahí te suena el nombre... bueno, te suena porque es uno de los que está detrás de desarrollo de Dart, el nuevo lenguaje de Google (http://www.dartlang.org/) ¿Y qué tiene que ver Smalltalk? Justamente Gilad Bracha fue uno de los desarrolladores de Strongtalk (http://www.strongtalk.org/), el Smalltalk más rápido en su época, que utiliza compilación adaptiva, Polimorphic Inline Caching (PIC), tipado de variables opcional, etc. Todas soluciones que ahora se están implementando en Dart.
Pero no sólo Smalltalk tiene algo que ver en lo que está sucediendo con Dart, sino también en Ruby... ¿escuchaste hablar de MagLev? (http://ruby.gemstone.com/) Es el servidor de objetos transaccionales y automáticamente persistibles para Ruby, ¿adiviná de dónde viene? MagLev es la implementación de Ruby corriendo sobre GemStone/S, un servidor de objetos transaccionales y persistibles para Smalltalk que tiene más de 25 años y que ahora VMWare compró por su gran potencial y solución como administrador de memoria transaccional para Java, si no lo sabías mirá http://www.springsource.com/products/data-management/gemfire65. ¿Qué tiene que ver con el congreso? que justamente viene al mismo Martin McClure, responsable de MagLev y Norman Green, arquitecto de GemStone! o sea, el que tiene la papa!! ¿Tenés dudas sobre las bases de objetos? ya sabés donde podés obtener las respuestas. Instantiations tampoco se queda atrás, ya que este año también nos visita John O'Keefe, arquitecto de VASmalltalk (http://www.instantiations.com/),
Y hablando de performance, ya viste quiénes vienen este año? En la conferencia nos va a visitar Igor Stasenko, que trabaja en la VM de Pharo y Squeak y es autor de proyectos súper interesantes como NativeBoost. Además viene Stefan Marr, que va a dar dos charlas acerca de su maquina virtual Smalltalk con multithreading: RoarVM. Stefan también trabaja con IBM en proyecto Renaissance, del cual también participa David Ungar. O sea que vas a tener acceso directo a proyectos super importantes y avanzados, porque gente como Stefan viene a la conferencia (http://soft.vub.ac.be/~smarr/category/research/renaissance/).
Pero por ahí a vos no te interesa nada de esto... por ahí cómo funcionan los lenguajes de programación o cómo están implementados no es lo tuyo, vos hacés aplicaciones web y sólo necesitás que la infraestructura escale, persista información rápido, etc. Si ese es tu interés, tenemos un lugarcito para vos también. ¿Escuchaste hablar de GLASS? (http://seaside.gemstone.com/) Es la implementación de Seaside, un framework dinámico basado en continuations para aplicaciones web usando GemStone! (http://www.seaside.st/). O sea, desarrollas una aplicación web como si fuese una aplicación desktop y tenés gratis la transaccionabilidad y persistencia a nivel objetos... y lo que es mejor, sin base de datos relacionales!!! Si!!!!, no más hibernate, no más SQL, no más tablas, solo objetos!.... Por ahí te parece una locura, por ahí te parece que no tiene sentido... te aconsejo que no saques ninguna conclusión y no dejes de venir a escuchar a Dale Heinrichs, el encargado de este producto quien nos contará todos los detalles del mismo y cómo influye en los desarrollos web y quien también nos va a hablar de cómo usar Github desde Smalltalk. Ah! y por supuesto este año no va a faltar James Foster, el gemstoneano de asistencia perfecta a nuestras conferencias, quién esta vez nos vá a hablar de GemStone en el Cloud.
Y qué pasa si nuestros programas son complicados, y crecen tanto en tamaño y en interacciones con otros programas que ya no los entiende nadie? Acerca de esto, incluyendo lo que estudió en su tesis de doctorado, viene a hablarnos Mircea Lungu. Entre otros, Mircea hizo su tesis con Tudor Girba, que si te acordás vino el año pasado a contarnos acerca de Moose.
Ya que estamos con Moose... Moose sirve para analizar programas con mucha más eficiencia con la que pueden trabajar los programadores a mano. Ese proyecto ilustra dos cosas: Smalltalk trae muchas ventajas para desarrollar software, y esas ventajas técnicas se transforman en ventajas a la hora de conseguir clientes. Por eso mismo, este año vamos a tener el primer foro de negocios en la conferencia, dirigido a gente de negocios. Y fijate quienes vienen: va a haber representantes de los Smalltalks comerciales más importantes, en el mismo lugar que emprendedores de Argentina y el resto del mundo. Es la ocasión ideal para hacer contactos y descubrir oportunidades que de otro modo te podés perder.
¿Aún no te convencí? ok... dejame intentar un poquito más... ¿Conocés a Alan Kay? ¿Turing award, "padre de la computadora personal", creador de Smalltalk? (http://en.wikipedia.org/wiki/Alan_Kay) No, no, no viene él, todavía :-), pero este año Alan va a participar de la conferencia dando un keynote remoto. ¿Te interesa saber cómo usar la computadora para enseñar? ¿Te interesa conocer más acerca de las influencias que dieron origen a Smalltalk, y a los nuevos proyectos en los que está trabajando Alan (http://www.vpri.org/index.html)? Este año le vas a poder preguntar en vivo y en directo.
Por ahí ya estás aburrido de leer tanto, no te culpo y tampoco me culpes a mi! es un congreso excelente! no te lo podés perder!, puesto que la cosa no termina acá... a pesar de todo esto, de toda esta gente que nos va a visitar y con quienes podremos compartir su experiencia y la nuestra, falta lo más importante: La comunidad argentina de Smalltalk, una de las principales comunidades en el mundo de esta tecnología. Es esta comunidad que hace 6 años está participando activamente de este congreso y hace 4 años viene ganando de manera consecutiva los primeros puestos del "Esug Technology Award", premio a los mejores desarrollos hechos en Smalltalk a nivel mundial! y lo más interesante es que los ganadores son de distintas universidades de nuestro país como la UBA, la UAI y la UTN!
Y la comunidad no se limita a eso... ¿sabés que hay un Smalltalk argentino? ¿un Smalltalk desarrollado por un argentino y utilizado a nivel mundial? se llama Cuis y su desarrollador Juan Vuletich (http://www.jvuletich.org/Cuis/Index.html), quien además está llevando adelante el desarrollo de Morphic 3.0 y trabajó junto a Alan Kay desarrollando Squeak. ¿O sabías que el layer open source para comunicarse con base de datos relacionales desde Pharo o Squeak más usado también fue desarrollado por argentinos? o que el framework de serialización de objetos open source Fuel también fue desarrollado por un argentino? Te suenan Mariano Martinez Peck, Guillermo Polito, Martín Dias, Esteban Lorenzano entre otros?, ellos son parte de nuestra comunidad y nos recuerdan constantemente la muy buena capacidad técnica que tenemos en nuestro país. También es argentino el arquitecto de la VM de Smalltalk más rápida que hay, la de VisualWorks (http://www.cincomsmalltalk.com/main/products/visualworks/) y le podés preguntar cómo hizo para acelerar hasta cerca de un 70% el GC en el último año. Esta gente es parte de esta gran comunidad y también participarán de este maravilloso evento.... este congreso no es sólo importante por la gente que viene sino por la gente que ya está!
Espero haberte convencido, espero que te hayas dado cuenta que este congreso no es acerca de un lenguaje de programación sino de una comunidad de desarrolladores que quiere compartir con vos lo que conoce y lo que hace, y también aprender de vos. Si querés ayudar a que esta comunidad siga creciendo, si querés ayudar a que este congreso siga siendo un congreso de desarrolladores y para desarrolladores, anotate acá:
http://www.fast.org.ar/smalltalks2012
Es gratis y te puedo asegurar que no te vas a arrepentir. Podes ver las charlas que se darán en: http://www.fast.org.ar/smalltalks2012/talks.
Este año se hace del 7 al 9 de Noviembre, en la Universidad Nacional de la Patagonia San Juan Bosco de Puerto Madryn. No podés faltar. Te esperamos!
FAST.
http://www.fast.org.ar
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez
En estos días, estoy bastante ocupado, tanto llevando a cabo mi plan maestro para conquistar el mundo ;-) como preparando la charla que di en @BogotaJs y preparando mi seminario sobre Node.js, Socket.IO y Real time, para Ecuador, ver UDADev 2012 en la Universidad de Azuay ; además de estar actualizando código en mi cuenta de GitHub. También preparando mi charla para Noviembre en PyCon Argentina. Por todo eso, me perdí la RubyConf que pasó, y no llego tampoco a preparar algo ni a participar en la Smalltalks 2012 en Puerto Madryn (me temo que el efecto Coto me complica llegar a viajar hasta allá).
Pero antes que me olvide, les comparto que el próximo jueves 25 de Octubre, se realiza en Buenos Aires la segunda Meetup del grupo Node.Js Argentina:
http://www.meetup.com/NodeJS-Argentina/
Ver los detalles de este próximo Meetup:
http://www.meetup.com/NodeJS-Argentina/events/84285512/
Leo ahí:
Hay una charla de Express que va a dar Dan Zajdband. La idea es que no haya tracks en simultaneo porque molesto un poco la otra ves. Aquí tienen la pagina de schedule.
Acá esta el dashboard para poder ver los tracks.
Puede ir llenando los datos del formulario. Estos datos solo los usamos por razones de seguridad. Si llevan equipos electrónicos no se olviden de anotar los números de serie de antemano.
Vean @dzajdband http://zajdband.com.ar/
Vean el dashboard de proyectos que están armando, se va a charlar de esos proyectos seguramente en la meetup, pero también pueden participar a distancia:
http://dashboard-ar.jit.su/dashboard
(creo que el autor del código inicial de este dashboard es @dzajdband sino, pregunten a @baldpower)
No me digan que no les avisé, lo mío es un apostolado ;-)
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez
Hace un tiempo escribí sobre la actividad que están desarrollando en Bogotá JS. Este sábado próximo, 20 de Octubre, voy a participar de esa actividad, compartiendo una charla sobre lenguajes de programación en Javascript. Ver:
http://jshangouts.org/
Leo ahí:
Javascript es un lenguaje maduro y dinámico, que puede ejecutarse en distintas plataformas (clientes, servidor) y dispositivos. Hay docenas de lenguajes implementados en Javascript. Veremos algunas formas de implementación de intérpretes y máquinas virtuales, en navegadores y en Node.js como servidor.
Mi idea es mostrar algunas implementaciones y estrategias de implementación de lenguajes de programación sobre Javascript. Quiero mostrar por lo menos algún intérprete (basado en un árbol de evaluación en memoria), uno lenguaje implementado sobre bytecodes (donde una máquina virtual Javascript los va ejecutando) y un lenguaje implementado por compilación a Javascript. Quiero mostrar algo de Typescript, el “new kid on the block”, y ver cómo compila a Javascript.
Habrá ejemplos sencillos, con Javascript para browser y servidor Node.js, escritos usando TDD, y otros ejemplos más completos, con código en GitHub (por ejemplo, quiero mostrar Amber, Smalltalk en Javascript).
Espero que les resulte interesante y útil. Seguramente como modo Hangout, luego quedará publicada como video en Youtube.
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez
Es tiempo de revisar mis resoluciones del mes pasado y escribir las de este mes:
- Dar una charla sobre aplicaciones distribuidas [completo] ver post
- Dar una charla sobre TDD con .NET [completo] ver post
- Seguir trabajando en PythonSharp [completo] ver repo
- Seguir preparando mi charla sobre generación de código en Ruby [completo]
- Seguir preparando mi charla para Python PyCon Argentina [completo]
- Más trabajo en AjConsorSite [completo] ver repo
- Trabajar en AjContab (versión PHP) [completo] ver repo
- Trabajar en AjTalk para Java [completo] ver repo
También estuve trabajando en GameServer ver post ver repo
Resoluciones para Octubre:
- Dar una charla sobre lenguajes de programación en Javascript
- Dar una charla sobre about Node.js/Socket.io aplicaciones web real-time
- Trabajar en PythonSharp
- Trabajar en AjTalk para Java
- Trabajar en AjConsorSite
- Trabajar en GameServer
Las dos charlas planeadas me van a llevar tiempo de preparación, igual pienso trabajar en los otros proyectos. Quiero presentar mi trabajo en PythonSharp en la PyCon Argentina 2012, en Noviembre.
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez