RubyDay Talks
The version of the browser you are using is no longer supported. Please upgrade to a supported browser.Dismiss

View only
Talk titleTalk abstractTalk durationTalk levelTalk type
REST with sinatraSinatra is a lightweight web application server. It is a sort of DSL to write web applications. Unlike most of the others is not an MVC Framework but it just a wrapper around Request and Response. Its simplicity is useful to build REST services or simple web applications in short time. During the session we will analyze its peculiarities and some example of how to use it.45 minutesBeginnerOverview
Cooking lessons with Vim and TmuxThe purpose of the talk is to show how to tackle different tasks with a shell based environment composed of Vim, Tmux and other tools. The core idea is that we can use Rails conventions to make our workflow better. And being all of this modular, you can mix and match different solutions to fit your needs.

From the technical standpoint, I would perform small tasks live, with a video fallback.

Tasks include:

- file and code navigation with ctags
- smart interaction with a REPL
- Running tests
- Moving efficiently among models, controllers and views

I will use Hermes (, a bootstrap script that configures a shell based development enviroment on Mac. I've started the project with Damon Davison, a fellow colleague, and it's been my production setup for months now.

The main theme of the talk will be cooking: for example, having knife skills is important for any dish you want to prepare. In a similar fashion, being able to easily jump around files is also key in not breaking your flow.
30 minutesIntermediateHands on
DDD in RubyWhen developers talk about Domain Driven Design they usually talk about Java or C# implementation and it seems that languages like Ruby or Python are not suited for these kind of architectures. During the talk I would like to show that every patterns described in the blue book can be written even in Ruby and sometimes the Ruby implementation is better than the Java one. Ruby is not a second a class language and its dynamic power could help a lot in writing complex business logic.45 minutesIntermediateHands on
And now you have two problems. Ruby regular expressions for fun and profitA wise hacker once said: Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.

Regular expressions are a powerful tool in our hands and a first class citizen in ruby so it is tempting to overuse them. But knowing them and using them properly is a fundamental asset of every developer.

We'll see hands-on examples of proper Reg Exps usage in ruby code, we'll also look at bad and ugly cases and learn how to approach writing, testing and debugging regular expressions.
30 minutesIntermediateHands on
Digging, scraping and cleaning: mining the web with javascriptThe net is filled with information trapped inside unaccessible websites. Often releasing open data from a public administration simply means creating pages over pages of HTML tables, which are far from useful.
My talk will show you the basic concepts and code needed to build a web crawler which can be used to scrape informations websites and transform it for further use.
With the help of ruby's standard lib and a few gems (nokogiri and fastercsv) we'll see how to connect to a web site, programmatically navigate it, download its contents and extract structured information.
45 minutesIntermediateHands on
Eseguire e monitorare applicazioni Rack con uWSGINato nel 2009 come semplice server per applicazioni WSGI, il progetto uWSGI in 4 anni e' cresciuto a dismisura diventando oramai un framework per costruire applicazioni di rete ad ogni livello. A meta' 2012 (dopo piu' di un anno di lavoro) e' stato finalmente completato il supporto per lo standard Rack (l'equivalente ruby di WSGI).Ora uWSGI puo' eseguire framework come RubyOnRails e Sinatra aggiungendo "for free" tutte le features che gli hanno permesso di diventare l'application server di riferimento in realta' come Reddit, DotCloud, Activestate Stackato, Washington post e molti altri. Il talk introdurra' brevemente il progetto per poi presentare un caso di uso reale, ovvero come e' stata costruita l'infrastruttura di, uno dei piu' grandi (forse il piu' grande) portale in italia scritto in Ruby On Rails.45 minutesAdvancedHands on
A Rails CriticismA deep insight on why Ruby on Rails has revolutionized web development.

This talk will focus its attention on the Rails "Golden Path", the reasons to its success, the most common problems, and how its API can be improved.

We will learn to benefit from a tool as powerful as it is dangerous, how to mitigate architectural, design and testability implications for your applications and how to improve the quality of your code.
45 minutesAdvancedIn depth
Functional programming for the RubyistThere are already many FP principles and patterns in Ruby, most notably lambdas and the Enumerable module.
What I'd like to talk about is:
* Lambdas vs Procs
* Explain how patterns like map, inject, etc. work and how to apply them in combo successfully to transform data.
* Function purity and/or side-effects freedom
* Data immutability
* How testing becomes easier with this new ideas in mind
30 minutesIntermediateOverview
Concurrency vs ParallelismWhat does it mean to structure a program in a concurrent manner?
Concurrency is about structure, while parallelism is an interpreter feature: the problem has to be solved by the programmer first.
What I'd like to show is how to think about problems, so to extract concurrent objects from the domain logic.
I'll also take a brief view on different patterns to achieve concurrency and which gems to use that implement one.
30 minutesIntermediateIn depth
Writing native gems, a sober guideWith the majority of Ruby code running on either MRI, JRuby or Rubinius, having works-everywhere native code in our gems has become a tricky matter.
What I'd like to talk about is:
* How to setup a native gem to handle multiple interpreters
* Avoid common pitfalls
* Tips and tricks
* Wrapping a C library with FFI
* Testing multiple interpreters automagically
30 minutesIntermediateOverview
Securing your API via OAuth (2.0) and Ruby on RailsNeed a uniform and standard mechanism for authorizing clients to access remote services and resources securely? OAuth is what you’ve been searching for! OAuth is an open standard widely adopted over the Internet and many big companies started supporting it, e.g., Facebook, Google, etc.
In this talk we explain OAuth protocol basics and theory, pointing out strengths and weaknesses. Eventually, we show how to implement a typical OAuth authorization scenario where an iOS client is authorized to consume services via OAuth, exploiting Ruby on Rails and Doorkeeper on the server side of the force.
45 minutesIntermediateHands on
deltacloud This talk is basically on the deltacloud project. It will cover an into to the project, usage of the Deltacloud API and the CIMI Client.30 minutesIntermediateHands on
Solid as diamond: use ruby in an web application penetration testOf course you can create great web applications using Ruby and one of its well known frameworks like rails or sinatra or padrino.
Ruby can be either a very effective language to be used to create security tool and to make security tests.

In this talk we will make a walk-through of some tests you can make to assess a web application for its security level using ruby gems or oneliners.
This talk is about application security and it maybe somewhat unusual for a software development conference.

Using ruby gems and code snippets I use everyday in my work (I'm an application security professional for an Italian News and broadcasting company) when I have to evaluate the security level of a web application.

We will talk about cross site scripting, sql injections and cross site request forgery from a theoretical point of view and by exploiting them over a vulnerable web application designed for education purposes only.

We will talk about how the BDD and TDD methodologies can be used in a secure software lifecycle workout and how to make a ruby source code review... using ruby of course.

The idea is to show developers their web application as seen as from another point of view. I'd like to show the attacker point of view in order to tell how much the defensive programming is.
45 minutesAdvancedIn depth
Currently I have no idea :)I'd like to talk about rails 4 30 minutesAdvancedOverview
Gestire VMware vSphere Hypervisor con RubyAnalisi di uno scenario reale di gestione di una infrastruttura informatica virtualizzata su VMware vSphere Hypervisor tramite Ruby, e quindi studio di una possibile soluzione al problema con dimostrazione di un processo completo di provisioning di una vm sull'hypervisor.45 minutesAdvancedHands on
Opal, Ruby is back! …on your browser! Opal is a production ready Ruby-to-Javascript compiler. In this presentation I will talk on how Ruby can be used to build awesome code for the browser. Keep applying all of your OO design skills having less context switch and increasing happiness!

This presentation will cover:

- a general overview and why I feel so good doing Ruby on the client
- some internals along explanation of implementing choices
- real world (™) use cases (including code ported from the server to the browser)
- fun! :-D
45 minutesIntermediateOverview
Curly — Refactoring the view layerWhile most parts of Rails have been thoroughly overhauled during the past few years, one part has stubbornly refused improvement. The view layer is still by default using ERB to transform your app’s objects into HTML. While HAML has gained a lot of traction, it is not a fundamental shift away from ERB, but rather a preference for putting HTML in your Ruby rather than the other way around.

More recent efforts in the realm of JavaScript have produced Mustache and its ambitious younger brother, Handlebars. While these are more radical in their attempt to separate structure and logic, they still do not feel like native Rails code.

Curly is a project that aims to bring a simple, powerful, and clean view layer to your Rails apps, by completely separating structure and logic while integrating with Rails. By writing all your view logic in a plain old Ruby class, you get back all the powerful means of refactoring and improving your code.

Curly is open source and available at
45 minutesIntermediateIn depth
Rubymotion for fun and profitsTwo years ago, at rubyday '11, I did a talk about Macruby and predicted the advent of something similar for the iOS platform.
The day has come, today we got a quasi-mature semi-opensourced toolchain for developing apps for Apple devices.
In this session I will introduce you to Rubymotion starting with a basic overview of what it's needed financially and in terms of know-how.
I'll show how it's blazing fast compared to ruby MRI and explain its limitations.
I'll go through some of the most popular gems and show you how ruby idioms and patterns are insinuating in the obj-c community.
Finally I will show come concrete code examples from my apps.
45 minutesIntermediateOverview
Fat models must dieIl concetto “Fat Models, Skinny controller” è da sempre uno dei cavalli di battaglia di Rails ed è uno dei principi fondamentali intorno a cui ruota il suo stack. Purtroppo, seguire ciecamente questo pattern spesso porta ad una crescita smisurata delle responsabilità dei modelli, che col passare del tempo e dei commit si trasformano in matasse di codice ingarbugliato e ingestibile.

In questo talk verranno esplorate differenti metodologie che si possono seguire nella pratica per mantenere il controllo del proprio progetto. Si descriveranno i pattern più diffusi proposti dalla community Rails per risolvere il problema della crescita del codice nel medio-lungo periodo: incominciando con concerns e presenters per passare a service objects e DCI, verranno spiegati i pregi dell’utilizzare pratiche più OOP per gestire con soddisfazione la complessità delle nostre applicazioni.
45 minutesAdvancedOverview
Refactoring with Class (and Objects too)L’arte del refactoring è una delle sfide più complesse nella vita dello sviluppatore perché mette costantemente di fronte ai limiti del proprio codice: quando dobbiamo aggiungere una nuova feature all’applicazione e l’architettura del codice sembra impedircelo, ci troviamo a davanti a un problema a prima vista insormontabile.

Facendo uso di una serie di esempi molto concreti e frequenti nella vita di ogni sviluppatore Ruby/Rails, questo talk tratterà metodologie consolidate nel mondo dell'OOP per eseguire refactoring in grado di rendere l’architettura della propria applicazione più mantenibile nel lungo periodo.
45 minutesIntermediateOverview
Vim for RubyistsIn questo talk, accompagnati da una serie di esempi molto pratici (e sperando di non cadere in editor wars :)), mostreremo come si può ottimizzare lo sviluppo di progetti Ruby (e Rails) utilizzando Vim come strumento di lavoro.

Partiremo con una configurazione di base per mostrare come sia semplice avere uno strumento efficiente e soddisfacente per la gestione dei propri progetti.

Ci muoveremo poi nei dettagli di come migliorare il nostro workflow tramite l’utilizzo di una serie di plugin di Vim che ci faciliteranno la vita nella scrittura del codice, nel refactoring e nel TDD.

Concluderemo il talk con una veloce carrellata sui vantaggi e le potenzialità di utilizzare Vim per scrivere applicazioni Rails, mostrando come sia semplice diventare più produttivi automatizzando una serie di task che ci troviamo a ripetere tutti i giorni.
45 minutesIntermediateOverview
Startups in 42,195 km#Entrepreneurs creating new #startups are in fact getting ready to run a #marathon.
There are many different ways to #get fit - training alone, with a personal trainer or even rely on #tricks to avoid sweating - and some #mistakes that can compromise your career.
Let’s explore together some of their #consequences.
45 minutesBeginnerOverview
Transforming trash into gems: a Machine Learning approach to improve recyclingIn my talk I want to present a project called "ComeButta". It is a
Ruby on Rails application and a mobile app that allow people recycle
wastage more effectively and precisely.

Suppose that a user who is going to throw something away but it is
not sure how to recycle it, maybe because it is a strange object or he
is visiting another city with different local rules about
recycling. He can query our system sending an image and a text
describing the object with his mobile and ComeButta will reply with
the correct category and allow the user recycle better.

The classification is based on machine learning technique that
classify text. We decided to use an external library as classifier and
we exploit the flexibility of ruby to build a powerful
preprocessor. This component is crucial for data mining: it divides
the text in tokens, it can remove stopwords, it can stem each word and
it builds the numeric representation of the text that is needed for
the classifier.

The photo of the object is not used for the machine learning algorithm
but it is needed in case the algorithm does not answer correctly, in
fact other users can see previous questions and suggest the correct
classification according to the image.

At the moment the system is tested in Alta Valsugana (Trento) and
we are collecting data for this location. Since recycling rules can
vary a lot from a province to another we are planning to extend this
service and provide a smarter "geolocated answer" and we are also
planning to support different languages to make the application
available to foreign people.
30 minutesBeginnerOverview
The Egyptian revolutionRevolution is a demand for politic and social basic changes. It may be either positive or negative depending on the backgrounds and the confessions of the rebels who are divided into supporters and opponents, The opponents try to abort a revolution for their own sake whereas supporters do their best for the common good, This humble lecture intends to shed light on some causes of the Egyptian revolution, To begin with, The Egyptian revolution was based on the Tunisian revolution, It started on January 25th, 2011 and it has several social and political causes, Emergency Law was one remarkable cause. Under this law, any-non-governmental political activities such as manifestations and founding associations without permission are forbidden Hence, more than 17.000 citizens were retained and the number of political prisoners increased to 30.000, According to the Emergency Law, the government can retain anyone at any time and for any long, besides, the arrested person cannot defend themselves In addition, the social and the economic conditions were strongly associated to the Egyptian revolution, According to Transparency International, Egypt was one of the most known countries by corruption, In the end of 2010, the ratio of people who live below the level of poverty increased to 40% and the there income decreased to 2 dollars a day. To conclude, we notice that some other Arab countries are trying to play the same scenario as Egypt and Tunisia, namely: Libya, Bahrain, Yemen, and Syria, but we don’t know if these peoples will succeed to overthrow their regimes and realize their demands30 minutesIntermediateHands on
JavaScript on Ruby In this talk, I would like to look at the options that Ruby offers to serve client-side web applications. With the example of Backbone.JS I would like to discuss first the elements of a client-side web application (events, rendering, data transport), and how this influences a web application stack (= separation of concerns)

Second, I would like to show how Rack and Sinatra can be used to serve directories of JavaScript files. Last, I want to show the relationship between Rack, Sprockets and the Asset Pipeline. Last, and I want to do a preview on loading multiple JavaScript files asynchronously through RequireJS-Rails.
30 minutesIntermediateOverview
Redis & Ruby like a proRedis is an open source advanced key-value store. It can contain strings, hashes, lists, sets and sorted sets. Its greatest feature is that you can run atomic operations on these types, like appending to a string; incrementing the value in a hash; pushing to a list; computing set intersection, union and difference.
This talk shows how use Redis and Ruby to build an high scalable, reliable and concurrent infrastructure of services using the Publish/Subscribe messaging paradigm and distributed locks among services. All the examples coming from a large scale application that handles hundred millions of messages every day.
45 minutesIntermediateHands on
Roll your own web crawlerIt is all about data.

Having the right data at the right time might make the difference between you and your competitor. Google can show you just what it can catch. If you know where to find the data of your interest, let's go deeper and roll your own web crawler framework.

Taking the advantage of the latest cool technologies I will show you how to build your distributed web crawler based on Redis and Mongo
30 minutesIntermediateHands on
Code it from scratchAn overview about starting your app small and growing it bigger as you need, beginning with domain model classes "sketched" in ruby (yea, DDD) and then
considering integrating various libs or implementing your own to reduce complexity and save time in the end.
30 minutesIntermediateOverview
Main menu