Schedule
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
The Ten Commandments of the Ruby Programmer
-
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
The Ten Commandments of the Ruby Programmer
More than 3000 years later Moses received the Ten Commandments from God, on a hard day's night of endless work, struggling with a legacy, untested, big-ball-of-mud, spaghetti Ruby code, after liters of coffee, dozens of beers, a few shots of tequila and a fine glass of single malt scotch, close to a point of desperation, almost ready to give up his task, Emilio received an unexpected visitor. God himself appeared on the screen of his computer, took control of the machine and with a raspy, guttural voice said: "Emilio, you are the chosen one. You shall open the red sea of rubies and illuminate the flock of Ruby sinners with The Ten Commandments of the Ruby Programmer:"
Emilio received the commandments with joy and promised God to spread his word. Then, as the night was long and God had no hurry, they played a few hands of Poker. Emilio won and asked God to promise he will get him a talked accepted at the RubyConf this year. In his wisdom God answered: "Hey, I am just God dude. If you want miracles ask the Pope"
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
Solving the Rubik’s Cube Blindfolded
-
3:05 PM
Break
-
3:20 PM
Lucas Dohmen
ArangoDB, A different approach to NoSQL
-
3:55 PM
Augusto Becciu
Building you own search engine with JRuby and 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
Solving the Rubik’s Cube Blindfolded
You think solving a Rubik’s Cube is difficult? Imagine scrambling it, memorizing it, and solving it with your eyes closed.
In this two part talk, we are going to combine techniques mastered by professional speedcubers and memory athletes to learn how to solve the Rubik’s Cube blindfolded.
This is not just a party trick. You will leave RubyConf Argentina with a greater appreciation for the Rubik’s Cube and the ability to memorize anything in the world.
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
Building you own search engine with JRuby and Lucene
The idea behind the talk is to share our experience building our own search engine at Restorando by using JRuby and various libraries made in Java like Lucene and Jetty. I will explain the reasons why we decided to take this path, the challenges we faced and also show some interesting features of its architecture and implementation. Finally, details will be given on how the deployment was implemented in order to get to “zero downtime“, on how we packaged the application and dependencies, as well as on aspects of logging, monitoring and performance optimization.
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!