Agenda
Day 1
-
9:00 AM
Ingreso / Access
-
10:00 AM
Jano González
Microservicios en la práctica
-
10:35 AM
Lucas Videla
You already git started. Now, what?
-
11:05 AM
Break
-
11:25 AM
Hanneli Tavante
Our daily graphs written in Ruby and Neo4j
-
12:00 PM
Paul Smith
Derailing Irrationality
-
12:30 PM
Almuerzo / Lunch
-
2:00 PM
Federico Carrone
Concurrency for Rubyists
-
2:35 PM
Lucia Escanellas
Look ma', I know my algorithms!
- Cómo usar ordenes de complejidad en la vida real
- Cómo influye el (no) paralelismo de Ruby (MRI)
- Cómo evitar sorpresas en la performance usando colecciones
-
3:05 PM
Break
-
3:20 PM
Ignacio Piantanida
Ruby on your pocket with RubyMotion
-
3:55 PM
Damián Janowski
Redis: más allá del caché y las colas
-
4:25 PM
Break
-
4:55 PM
Emilio Gutter
Los Diez Mandamientos del Programador en Ruby
-
7:30 PM en Carnal (Niceto Vega 5511)
Drink-up Citrus Byte
10:00 AM
Jano González
Microservicios en la práctica
¿Son los microservicios otra "buzzword" más? En esta charla conocerás los pro y los contra de este enfoque, los problemas resuelve y qué nuevos problemas crea, todo desde el punto de vista de un equipo que extrae servicios desde una aplicación monolítica en su día a día.
Durante los últimos 6 meses he sido parte del equipo que está extrayendo servicios del "monoriel" de SoundCloud, creo que vale la pena compartir mis experiencias y que no hemos tenido tantas charlas de arquitectura en las últimas conferencias del Cono Sur.
10:35 AM
Lucas Videla
You already git started. Now, what?
You already know the basics of git, and you liked it. You want to spread the usage of this magnificent tool between your co-workers, and you don't find how to involve them. Maybe your team is working with git, but you see that your repo is filling out with merge commits. Or, even better, you're working in a massive team that is turning the code base messier and messier. We need to face each problem with a concrete approach. In this talk you'll know the basics of the major workflow strategies, and the reasons to choose one among all other options.
11:25 AM
Hanneli Tavante
Our daily graphs written in Ruby and Neo4j
Have you ever noticed that so many situations could it into a graph? Graphs are not only a boring subject into College, they can be really useful in many situations. This talk will show you some graph modelling with a nice graph database - Neo4j - and some ruby codes, inserting very creative scenarios inside graphs.
12:00 PM
Paul Smith
Derailing Irrationality
Cognitive biases enable faster decisions when timeliness is more valuable than accuracy. They are very hard to detect and rarely discussed. Without realizing it we ask survey questions of our customers and clients that yield biased answers, which in turn lead to features that are not useful. We review code in ways that cause frustration, and hurt feelings. We take on technical debt because of invisible and nearly imperceptible forces in our minds that cause us to make irrational decisions. This talk will help developers to understand how to think rationally in order to act quickly, write better software and be happier while doing it.
In the presentation we will talk about the current moment bias, the fairness bias, impostor syndrome, the IKEA effect, the diagnosis bias, the principle of reactance and how these effects become formidable enemies on the way to creating cohesive teams and simple software. We will learn how to recognize when these biases take effect and how to overcome them.
By the end of this talk people will know:
2:00 PM
Federico Carrone
Concurrency for Rubyists
In the last few years thanks to the gain in popularity of functional programming languages like Erlang, Clojure and Haskell, many of us learned how to properly work and use the high level primitives for working with concurrency and parallelism those languages have. Ruby, on the other side, even if it is a very expressive language, it does not have built in most of those primitives. However thanks to libraries like concurrent-ruby, celluloid and virtual machines like JRuby and rubinius we are able to use great concurrency patterns like Actor, Agent, Async, Future, Promise, ScheduledTask, TimerTask and efficient, immutable, and thread-safe collections thanks to hamster.
2:35 PM
Lucia Escanellas
Look ma', I know my algorithms!
Esta es la historia de como pasar de 3 horas a 30 segundos implementando un problema sencillo, mediante algoritmos.
Vamos a ver:
La charla no tiene spoilers, por lo que podes salir de la charla a probar tu propia solución.
3:20 PM
Ignacio Piantanida
Ruby on your pocket with RubyMotion
Si alguna vez quisiste escribir aplicaciones nativas de iOS pero solo ver la sintaxis y verbosidad de Objective-C te produjo nauseas, RubyMotion es para vos!
Con RubyMotion podemos llevar toda la simplicidad y poder de expresión de ruby al ambiente mobile para escribir aplicaciones iOS/OS X nativas (y próximamente Android también).
Usa todas las herramientas que ya conoces: ruby, rake, gemas, RubyMine y otras en un nuevo ambiente con un mercado más que interesante!
3:55 PM
Damián Janowski
Redis: más allá del caché y las colas
Redis nació como un Memcached persistente. Y es por ese pasado sombrío que muchos lo consideran solo una buena alternativa para cachear cosas. Sin embargo, Redis evolucionó rápidamente hacia como se lo conoce hoy en día: un servidor de estructuras de datos.
Redis provee operaciones atómicas sobre tipos de datos primitivos (strings, listas, conjuntos, conjuntos ordenados y hashes) que dan mucha flexibilidad para pensar la mejor manera de guardar los datos de nuestra aplicación. Esto, sumado a otras funcionalidades (como replicación, dos estrategias de persistencia, transacciones y scripting en Lua) hacen que Redis sea una opción muy interesante a la hora de elegir la base de datos para nuestro proyecto.
En esta charla vamos a explorar, a partir de ejemplos, los casos de uso más frecuentes en cualquier aplicación web y cómo se puede usar Redis para resolverlos. También se van a mostrar los pitfalls más comunes y qué estrategias se pueden usar para evitarlos.
4:55 PM
Emilio Gutter
Los Diez Mandamientos del Programador en Ruby
Más de 3000 años después de que Moisés recibiera los Diez Mandamientos de Dios, en una noche difícil de eterno trabajo, luchando con un heredado, sin testear y embarrado código en Ruby tipo spaghetti, después de litros de café, decenas de cervezas, un par de shots de tequila y un buen vaso de single malt scotch, ya cerca de la desesperación, casi listo para abandonar su tarea, Emilio recibió una visita inesperada. El mismísimo Dios apareció en la pantalla de su computadora, tomó el control de la máquina y con una voz ronca y gutural dijo: "Emilio, eres el elegido. Deberás abrir el Mar Rojo de los rubíes e iluminar al rebaño de pecadores Ruby con los Diez Mandamientos del Programador en Ruby:"
Emilio recibió los mandamientos con alegría y le prometió a Dios difundir su palabra. Luego, como la noche fue larga y Dios no tenía prisa, jugaron unas manos de Poker. Emilio ganó y le hizo prometer a Dios que haría posible que acepten una charla en la RubyConf este año. En su sabiduría Dios respondió: "Che, soy Dios nomás. Si querés milagros pedile al Papa".
Day 2
-
9:00 AM
Ingreso / Access
-
10:00 AM
Patricio Bruna
De desarrollo a producción con Docker
-
10:35 AM
Juan Barreneche
Data analysis for startups
-
11:05 AM
Break
-
11:25 AM
Marta Paciorkowska
Programming, languages, literature
-
12:00 PM
Federico Builes
Practical EventMachine
-
12:30 PM
Almuerzo / Lunch
-
2:00 PM
Lightning Talks
-
2:35 PM
Chris Hunt
Resolviendo el Cubo Rubik con los ojos vendados
-
3:05 PM
Break
-
3:20 PM
Lucas Dohmen
ArangoDB, A different approach to NoSQL
-
3:55 PM
Augusto Becciu
Construyendo tu propio motor de búsqueda con JRuby y Lucene
-
4:25 PM
Break
-
4:55 PM
Pote
The Dilemma of Simplicity
-
5:35 PM
Chau
10:00 AM
Patricio Bruna
De desarrollo a producción con Docker
En esta charla pretendo enseñar de forma practica como Docker puede ayudarnos a mejorar la experiencia de desarrollo de aplicaciones Rails y como podemos olvidarnos de los problemas de tener plataformas distintas en Desarrollo y Producción.
También revisaremos como podemos escalar automagicamente nuestra aplicación cuando logremos el éxito y la fama.
10:35 AM
Juan Barreneche
Data analysis for startups
Hoy en día un gran desafío que tienen las empresas es lograr recolectar y analizar datos para entender mejor el negocio y las necesidades de los usuarios. Casi todas las soluciones que encontramos en Internet están enfocadas en resolver problemas con grandes volúmenes de datos, tan grandes que no podrían ser procesados y almacenados en una sola maquina. A esto en la jerga se le llama “Big Data”.
La mayoría de las empresas manejan volúmenes de datos que no requieren esta complejidad, sin embargo, la poca información que hay sobre alternativas puede hacer pensar que son la única forma de hacerlo y llevar a proyectos fallidos o al miedo a embarcarse en algo complejo.
En esta charla voy a contar nuestra experiencia en Restorando construyendo un data warehouse que resuelve nuestros problemas sin insumir mucho tiempo de desarrollo y mantenimiento, ni tampoco grandes costos de infraestructura. Esto incluye: integración de múltiples fuentes de datos, el desarrollo de un framework de ETLs, técnicas avanzadas de SQL para análisis y otras técnicas Ad-Hoc para cuando SQL no alcanza.
11:25 AM
Marta Paciorkowska
Programming, languages, literature
Have you ever pondered on the similarities between programming languages and literature? If you haven’t, here’s your chance! Just as the development of literature can be divided into epochs with their distinctive themes, there are stages in the evolution of programming languages. Code and literature have more in common than you think! Let’s have a look at programming languages and compare them to well known works of literature to (hopefully) come to a conclusion that programming does not exist in a cultural vacuum and that its development is significantly inspired by culture.
12:00 PM
Federico Builes
Practical EventMachine
EventMachine (EM) is an event-driven concurrency library for Ruby, akin to Python's Twisted or Node.js. In this talk we'll explore some of the patterns and abstractions behind EM, how we can apply those ideas to our applications and how the library has been used by companies like GitHub and Heroku.
2:35 PM
Chris Hunt
Resolviendo el Cubo Rubik con los ojos vendados
¿Piensas que resolver el Cubo Rubik es difícil? Imagina desordenarlo, memorizarlo y resolverlo con los ojos cerrados.
En esta charla de dos partes, vamos a combinar técnicas utilizadas por 'speedcubers' profesionales y atletas de la memoria para aprender cómo resolver el Cubo Rubik con los ojos vendados. Esto no es sólo un truco para entretener fiestas. Dejarás RubyConf Argentina con una mayor apreciación acerca del Cubo Rubik y la habilidad de memorizar cualquier cosa en el mundo.
3:20 PM
Lucas Dohmen
ArangoDB, A different approach to NoSQL
ArangoDB is an open source NoSQL database which is not narrow-mindedly focused on horizontal scalability. Instead, ArangoDB aims to offer developers great flexibility and ease-of-use. The database is suitable for use cases which are difficult to implement with most traditional relational databases and also many of the other NoSQL databases. Foxx is a JavaScript framework built-into ArangoDB that allows to extend the REST API of the database. I will show you why this is interesting and how you can use it in your apps.
3:55 PM
Augusto Becciu
Construyendo tu propio motor de búsqueda con JRuby y Lucene
La idea de la charla es contar nuestra experiencia en Restorando usando JRuby y distintas librerías de Java como Lucene y Jetty para construir nuestro propio search engine. Explicar cuáles fueron los motivos por los cuales decidimos tomar este camino, con qué desafíos nos encontramos y también mostrar algunos detalles interesantes de la arquitectura y la implementación. Finalmente, se explicarán detalles sobre cómo resolvimos el deployment para que sea “zero downtime”, cómo empaquetamos la aplicación y las dependencias, y también detalles de logging, monitoreo y optimización de performance.
4:55 PM
Pote
The Dilemma of Simplicity
Over the years we've learned to pay attention to the importance of a number of highly desirable qualities in software: readability, maintainability, adaptation to change. We've accepted these values as good and actively pursue them yet we consistently ignore what is probably the best method of achieving these qualities, it's staring us right in the face now.
Slowly but steadily the philosophy of embracing simplicity in software design by carefully calculating and minimizing unnecessary complexity is gaining traction in our community, and for a good reason: it organically pushes us to the best software practices we all know and love, it both embraces all the core principles the ruby community has developed over the years while rejecting many of the common practices we carry based on inertia but which directly contradict these values.
In this talk I explore my journey on this shift in perspective from certain fragments of our community and how thinking about simplicity as one of our core values can push us to be better developers while producing better quality of software. We don't need our crutches anymore, let's drop them together!