Archive for the 'Buenos Aires' Category

Jornada de NodeJS en Buenos Aires

Thursday, November 26th, 2015

La semana que viene, gracias al Microsoft User Group de Argentina, voy a estar dando una jornada de NodeJS. Solo hace falta saber programar en algún lenguaje, manejar un editor, y tener mínimo conocomiento de JavaScript.

Más detalles, lugar, costo, horario, en:

http://www.mug-it.org.ar/Event.aspx?Event=285

La idea es ver:

– Conceptos de NodeJS, entrada y salida asincrónica, loop de JavaScript, eventos, callbacks
– Escribiendo un módulo Node en JavaScript
– Uso del manejador de paquetes NPM
– Aplicaciones web
– Usando Express como web framework
– Acceso a MongoDB

Creo que llegamos en tiempo a ver algo de SocketIO y del nuevo Ecmascript 6. Vamos a usar la versión 4.2.2 de NodeJS, así que se recomienda venir con notebook y tenerla instalada.

Ya saben que siento preferencia por NodeJS, porque permite programar simple, volver a la programación simple. Tiene uno de los mejores ecosistemas de paquetes, muchos de ellos simples (otros no tanto), y prácticamente todos los casos de uso del desarrollo moderno están cubiertos. Es multiplataforma, y muy fácil de instalar y levantar.

Por ejemplo, para una “startup” probablemente recomendaría NodeJS por su facilidad para implementar los primeros casos de uso, un MVP (Minimal Viable Product), y su gran adaptación al cambio. Se pueden implementar aplicaciones web, API usando HTTP y JSON, luego interactuar con otras aplicaciones, usando sockets, y consumir la API desde aplicaciones móviles nativas. Se puede escalar horizontalmente en muchos casos. Realmente, es muy dúctil e interesante. Hasta cuando el producto principal que armamos no sea NodeJS, el tener aplicaciones internas hechas con esta tecnología permite acelerar el desarrollo, sin sacrificar calidad (casi todo lo que escribo en NodeJS lo hago con TDD, sin mayor problema). Por ejemplo, he implementado servidores de una API en NodeJS para acelerar y facilitar el desarrollo de los clientes móviles.

He implementado experimentos de “machine learning”, aplicaciones distribuidas, intérpretes y compiladores usando NodeJS. De las tecnologías disponibles, debe ser una de las que más facilitan el desarrollo ágil, permitiéndonos concentrar en los casos de uso, su implementación, en vez de luchar contra una “stack” kilométrica de tecnologías o usar un lenguaje algo exótico.

Es más, pienso que JavaScript va a estar en todos lados, impulsado por “Internet of Things”. Cualquier dispositivo con alguna inteligencia será programado en JavaScript, y ahí NodeJS puede aportar lo suyo, ya sea en el servidor, como en el desarrollo de ese nuevo software.

Así que, aunque no asistan a la jornada, les recomiendo estudiar NodeJS y comenzar a aplicarlo, para ver si les sirve o no en lo que estan armando.

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Tech Night en Medallia

Sunday, May 17th, 2015

El jueves pasado se organizó una reunión en Medallia, Argentina, en Buenos Aires. Pueden ver la empresa global en:

http://www.medallia.com/

y aparte de servicios, tienen un producto donde conectan a una empresa con sus clientes. Eso implica que tienen que trabajar con grandes volúmenes de datos, analizarlos, descubrir patrones y relaciones y hacer análisis de “sentimientos”. Tienen central en Palo Alto California, y desarrollan allá y en Buenos Aires. En otras ciudades, como Londres, tiene soporte, ventas, marketing y esas ‘)cosas que tienen que hacer los mortales que no programan ni se dedican a las matemáticas 🙂

No fue una reunión abierta, sino por invitación. Habremos sido como treinta personas, del ámbito del desarrollo de software principalmente, que asistimos y disfrutamos de CERVEZA (sí, ya saben que si voy a alguna reunión no es por el tema, sino por la cerveza ja ja ja), y tragos de bebidas espirituosas (con nombres como C#, Java, y hasta NodeJS, no recuerdo los ingredientes, pero había tequila, jugos de fruta y similares). Luego de la charla técnica que hubo, sé que se zamparon varias pizzas y vieron un evento por televisión, algo así como fútbol, otra de esas cosas que hacen los mortales jaja.

Yo fui invitado gracias a la recomendación inicial de @gabrielsz que está trabajando desde hace unos años en Medallia, desde Palo Alto.

En la charla técnica, presentaron dos desarrolladores de Medallia:

https://www.linkedin.com/in/kreide Kristian Eide
https://www.linkedin.com/in/slicer Thorvald Natvig

La presentación giró alrededor de dos temas: el proceso de datos estructurados, y de datos desestructurados. Conversando con Eide, ví que trabajan mucho con Java, y con Spark, para el procesamiento distribuido (abandonaron Hadoop hace un tiempo parece). También trataron el tema de compilar “queries” sobre los grandes conjuntos de datos que tienen, pero tendría que revisar las tecnologías involucradas. Hay que ver los proyectos públicos de Medallia:

https://github.com/medallia

Es interesante ver el trabajo de

https://github.com/medallia/Word2VecJava

Donde portaron a Java un procesamiento de palabras a vectores, ver los papers relacionados

http://ttic.uchicago.edu/~haotang/speech/1301.3781.pdf
http://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf
http://www-personal.umich.edu/~ronxin/pdf/w2vexp.pdf

Jaja Ideas para portar a C# entonces acá, como Code Kata. Es interesante ver redes neuronales aplicadas en este problema (un tema con el que me encontré hace alredecor de tres décadas y sigue dando vueltas por ahí, van a aparecer en mi serie sobre JavaScript e Inteligencia Artificial y ya apareció en mi GitHub). Hay mucho de “sentiment analysis” al parecer en el trabajo de Medallia, igual comenté que hay poco de real semántica en estos caminos, parece más una correlación de textos que un real modelo del mundo y de la mente. Algo así comenté al final de mi charla en la JSConf Argentina 2014: todos estos algoritmos para reconocer gatos, reconocen miles de gatos, pero no tienen la más pálida idea de qué es un gato. Redes neuronales tiene esa fascinación: produce resultados, y eso es importante, pero no sé si no nos estamos perdiendo algo importante. O quizás sea el camino para una inteligencia artificial fuerte emergente, sólo que hasta ahora estamos en los primeros pasos.

La idea es que Medallia conecte con la comunidad de desarrollo local, y surjan ideas para realizar, dentro del grupo. Ya se formó un Google Groups, y en unos meses se realiza la próxima reunión (más cerveza 🙂

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com

Jornada Programando en Node.Js desde Cero, en Buenos Aires

Saturday, February 7th, 2015

Gracias a la gente del MUG (Microsoft User Group de Argentina), voy a dictar todo un día la jornada presencial:

http://www.mug-it.org.ar/Event.aspx?Event=218

Jueves 12 de Marzo, desde las 9:30hs hasta las 18:00hs, con intervalos.

La idea es que si vienen con una notebook y son programadores (.NET, o de otra tecnología), podamos ver juntos cómo es Node, programar algún código simple, aprender a usar y bajarse módulos. Entre el final de la mañana y el comienzo de la tarde, veremos programación web, usando algún ejemplo con Express. Después aparecerá un ejemplo con acceso a MongoDB, y hacia el final, visitaremos Socket.IO.

El temario es entonces:

1. Introducción a Node.js
1.1. Programación Javascript desde Node sobre el motor V8
1.2. Entrada/Salida asincrónica
1.3. Módulos
1.4. Manejador de paquetes npm
1.5. Elementos de Test-Driven Development
2. Programación Web con Node.js
2.1. Módulo HTTP
2.2. Manejo asincrónico
2.3. Acceso a MongoDB
3. Programación Web con Express
3.1. Concepto de Middleware
3.2. Lenguaje de Templates
3.3. Ejemplos con Páginas y Acceso a Datos
3.4. Programando con JSON
3.5. Elementos de Socket.IO

Veo a Node como la tecnología y ecosistema que mejor combina simplicidad con potencia. Es un aire fresco en la programación, ya sea web o de servicios expuestos por API, o distribuidos. Y realmente, el ecosistema de paquetes que tiene es el mejorcito con el que me he encontrado hasta ahora. El gran precio a pagar: usar y entender los “callback” en JavaScript, es el derecho de piso a pagar. He visto aplicaciones de startups y otras aplicaciones totalmente desarrolladas en Node.js, con buena escalabilidad y nivel de servicio. Hasta podrían usar .NET desde Node.js, aunque no es muy usado.

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Conferencias en Argentina: JavaConf

Wednesday, November 5th, 2014

En un anterior post no había incluido esta conferencia. Vaya este post para completar la lista que conozco.

La gente del Java User Group Argentina organiza:

JavaConf

http://java.conf4.it/

Amigos y Colegas, 

Estamos organizando la JAVACONF, el evento de JAVA más importante para nuestra comunidad en Argentina. Vayan reservándose el día 14 de Noviembre, ya que estamos armando y consolidando charlas y speakers imperdibles. La JAVACONF propone una jornada que durará toda la tarde, por lo que vayan pidiendo permiso en sus trabajos o familias! 

Ya tenemos algunos speakers confirmados

1) Gavin King

Gavin King lidera el projecto Ceylon en Red Hat. Gavin es el creador de Hibernate, el popular mapeador de Objetos/Relacional de Java, y el creador de Seam Framework, un framework de aplicaciones Enterprise en Java. El contribuyo a la Java Community Process como el representante de JBoss and después de Red Hat para las especificaciones de EJB y JPA y como el lider de la CDI specification.

Gavin ahora trabaja a tiempo completo en  Ceylon, puliendo la especificación del lenguaje, desarrollando el frontend del compilador, trabajando con el IDE, y pensando sobre la SDK y el futuro de la plataforma. El sigue siendo un fan de Java, así como otros lenguajes como Smalltalk, Python y ML. 

2) Fernando Rodriguez Olivera

Fernando Rodríguez es egresado de la carrera de Ingeniería de la Univ. de La Matanza y comenzó su carrera en los laboratorios de Fuego, Inc.,  luego trabajó en BEA Systems y Oracle principalmente en el diseño y desarrollo de software de base para un producto de BPM.

Actualmente se desempeña como consultor independiente y profesor de las cátedras de Sistemas Distribuidos, Diseño de Compiladores y Lenguajes de Programación de la
Universidad Austral.

Fernando es el creador de mvnrepository.com uno de los sitios mas populares de la comunidad de Java, organizador del grupo “Buenos Aires High Scalability” y autor de los cursos nosqlessentials.com

3) Pablo Romanelli junto a Adrián Fernando Fiore
Pablo Romanelli es Ingeniero en Sistemas y docente de Técnicas Avanzadas de Programación en UTN FRBA. Desarrollador Scala en Socialmetrix. Apasionado en el diseño de software.
Adrián Fernando Fiore es Ingeniero en Sistemas y docente de Algoritmos y Estructura de Datos en UTN FRBA. Desarrollador Backend en Socialmetrix especializado en Big Data.

Si quieren conocer mas datos pueden entrar en:

http://java.conf4.it

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Mis próximas Charlas en Buenos Aires: Actores en C#, Single Page Applications

Tuesday, September 30th, 2014

Tengo varios temas que quiero tratar, en distintos lenguajes y tecnologías. Hoy quiero comentar dos charlas que se vienen, que puedo dar gracias al Microsoft User Group:

Aplicaciones Distribuidas en C#, un modelo de actores

http://www.mug-it.org.ar/Event.aspx?Event=180

Lugar: Auditorio del MUG, Rivadavia 1479 Primer Piso “A”, Buenos Aires.
Fecha y Horario: Miércoles 8 de octubre de 2014 de 18:30 a 20:30 hs.

La idea es presentar conceptos de actores, y actores distribuidos, comentar la principal implementación en Java: Akka. Y luego pasar a discutir y mostrar una implementación en C#

Luego

Desarrollando Single Page Applications con JavaScript

http://www.mug-it.org.ar/Event.aspx?Event=181

Lugar: Auditorio del MUG, Rivadavia 1479 Primer Piso “A”, Buenos Aires.
Fecha y Horario: Miércoles 29 de octubre de 2014 de 18:30 a 20:30 hs.

Veremos las fuerzas que llevan a la aparición de aplicaciones web compuestas de una sola página, con dinámica en JavaScript. Siguiendo “baby steps” y simplicidad, exploraremos cómo podemos armar algún ejemplo con simple JavaScript y JQuery, cómo alimentar los datos desde un servidor con una API expuesta (agnóstico de la tecnología) y luego visitaremos algunas librerías JavaScript del lado cliente que nos ayudan, como Angular y Backbone.

Espero que estas charlas aporten algo a estos temas, entre tantos que son interesantes en estos tiempos. Estoy preparando otras charlas, como Inteligencia Artificial en JavaScript para la JSConf 2014 de Argentina. Y espero que me aceptan alguna más, sobre JavaScript y Ruby, en la RubyConf 2014 de Argentina.

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Ágiles Argentina 2014 – Primeras Jornadas Nacionales de Metodologías Agiles

Friday, August 29th, 2014

Argentina (y Buenos Aires) sigue siendo un lugar de gran actividad en la difusión de lo ágil en el desarrollo de software y otros ámbitos. Se vienen dos días de jornadas, viernes 26 y sábado 27 de Septiembre, ver:

http://www.meetup.com/agiles-bsas/events/191103222/

Friday, September 26, 2014 9:00 AM
to Saturday, September 27, 2014, 6:00 PM

Universidad de Belgrano
Lacroze 1947, Buenos Aires (map)

Realizaremos nuestras primeras Jornadas Nacionales de Metodologías Agiles, en Formato Open Space.
Nos juntamos con ganas de compartir experiencias, buenas prácticas y aprender más sobre metodologías agiles.

Más información en el sitio oficial:

http://aa2014.agiles.org/

El formato es Open Space, no hay una agenda predefinida. Se puede ir proponiendo y votando temas en:

https://agilesargentina.uservoice.com/forums/261590-%C3%81giles-argentina-2014-26-y-27-sept-en-buenos-aire

Ágiles Argentina 2014, las Primeras Jornadas Nacionales de Metodologías Ágiles, es un evento de la Comunidad Ágil Argentina. Tendrá como sede a la Universidad de Belgrano , en la Ciudad de Buenos Aires, los dias 26 y 27 de Septiembre. Ver detalles del evento en http://aa2014.agiles.org/

Una novedad, el catering (comida, bebidas, infusiones, etc) será autoorganizado, comprometerse en alguno de los puntos de:

http://aa2014.agiles.org/catering-auto-organizado/

Si esto no es lo ágil, lo ágil ¿donde está? 🙂

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Hackathon Abierto en Buenos Aires

Tuesday, August 26th, 2014

El próximo sábado 30 de Agosto, se realizará el primer Hackathon abierto del grupo Java Argentina, en las oficinas de MuleSoft en Buenos Aires. Más detalles en:

http://www.meetup.com/jugargentina/events/197071352/

Saturday, August 30, 2014
11:00 AM to 8:00 PM
MuleSoft
Av Corrientes 316, Capital Federal, Buenos Aires (map)

Planta Baja

Vamos a estar organizando el primer hackathon abierto del grupo. La idea es juntarnos a las 11AM, arrancar al medio dia, y terminar a las 8pm. Ahi vienen las presentaciones, algunos premios y cerramos con algo para comer y tomar.

Las reglas:

• Se puede usar cualquier lenguaje, no solo Java o que corra en la JVM. 

• Hay que contribuir a un proyecto Open Source. Puede ser cualquiera, no necesariamente famoso (ej: Mule ESB, Spring, Go, Vertx, etc). 

• Dura 8 horas. 

• Equipos de 1 hasta 5 integrantes

• Se va a evaluar el impacto de la contribución.

Estamos definiendo algunos premios para el equipo ganador y menciones. Apenas tengamos algo les avisamos.

Prometemos comida, bebidas y diversion!, por lo que pedimos que se registren todos los participantes, así podemos calcular bien las cantidades. 

Apuren a anotarse ya que vamos a tener cupo limitado!

Lo bueno es que puede usarse cualquier lenguaje, y al parecer, puede trabajarse sobre un proyecto nuevo o existente, mientras sea Open Source. Espero que haya cerveza 🙂

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Próximo Meetup JavaScript en Buenos Aires: Express y D3

Monday, August 25th, 2014

Se viene en Septiembre el próximo meetup de JavaScript, en Buenos Aires, ver detalles para el 11 de Septiembre en:

http://www.meetup.com/Meetup-js/events/202355182/

Retomamos la sana costumbre de reunión y discusión tecnológica con colegas de la comunidad.

Como siempre, la modalidad es la misma, arrancamos 6:30, y para los que van llegando tenemos algo para tomar, comer y charlar. A las 7 arranca la primer charla. Charlas:

Angel ‘Java’ Lopez – Introduccion a Express
Juan Pablo Kutianski – Introducción a D3

Como en la última oportunidad vamos a transmitir el evento por HO para los que no puedan venir.
Los esperamos!

Como otras veces, organizado por la gente de @scvsoft. Seguro, picada y cerveza (también medialunas y bebida cola, urrgg… 🙂

Sí, voy a estar dando una charla corta sobre Express, el framework web más popular montado sobre Node.js. Veremos de usar el generador básico que viene con Express 4.x, qué funcionalidad básica da, el manejo de los middleware, el ruteo, la generación de vistas usando lenguajes de templates, y la exposición de APIs devolviendo JSON simple. Haremos código en vivo sencillo, y luego pasaré a ejemplos armados, con acceso, por ejemplo, a MongoDB. Realmente, Express es muy flexible, y se ocupa de pocas cosas, dejándonos a nosotros aprovechar el resto del ecosistema de Node. En ese sentido, no es un framework “pesado” o con mucho “opinionated”. Para algunos, esto es una ventaja, pero para otros no. A mí ese “approach” me gusta, porque permite elegir herramientas y librerías según el contexto y la necesidad, en vez de embarcarse en una gran solución única. Pero verán Uds. que les parece.

También estará el bueno de @baldpower dando una charla sobre D3, la librería de JavaScript para gráficos dinámicos, y hasta en tiempo real. Ver

http://d3js.org/

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez