際際滷s and Notes of the Official Presentation of the Rubyists.EU Initiative at the RubyEnRails 2009 conference - Amsterdam, The Netherlands.
1 of 13
More Related Content
Rubyists.EU: Stairway to the European Ruby Community Integration
1. RUBYISTS.EU
Stairway to the European Ruby Community Integration
Julio Javier Cicchelli
Wednesday, November 4, 2009
The interactive presentation of the Rubyists.EU initiative comprises of two main parts: an ideational fragment and a technical section.
The ideational element elaborates on the concept behind the Rubyists.EU project. It outlines the vision harbored by his initiative and it will describe its
mission in the context of Ruby community development throughout Europe.
The second part of this dynamic endeavor discusses the technical means used to infuse digital life into this initiative. It pinpoints how a the following
heterogenous mixture can be pieced together with a tiny drop of Ruby glue:
* Cucumber [http://cukes.info/]
* DataMapper [http://datamapper.org/]
* Git [http://git-scm.com/]
* Google Maps API [http://code.google.com/apis/maps/]
* HAML [http://haml-lang.com/]
* Heroku [http://heroku.com/]
* JQuery [http://jquery.com/]
* JSON [http://json.org/]
* PostgreSQL [http://www.postgresql.org/]
* Rack [http://rack.rubyforge.org/]
* RSpec [http://rspec.info/]
* SASS [http://sass-lang.com/]
* Selenium [http://selenium.rubyforge.org/]
* Sinatra [http://www.sinatrarb.com/]
* Webrat [http://wiki.github.com/brynary/webrat]
It also explains how various social media platforms can be integrated into this living and breathing entity.
2. Wednesday, November 4, 2009
Hi! I am Javier.
I am Javier Cicchelli (@monsieur_rock).
I am an experienced Software Engineer and a genuine technology artisan.
I am a double national. I was born and raised in an Italian family in Buenos Aires, Argentina.
I have spent the last 6 years of my life in Europe. I used to live in Paris, France. Then, I decided that I needed a little change of the scenery and I moved to
Amsterdam, the Netherlands.
3. Wednesday, November 4, 2009
This is what we do.
I am one of the jukebox heroes of Rock & Code.
Rock & Code is a brand new Software Company located in Amsterdam, The Netherlands.
In its gist, it is an artisan Software shop aimed at providing durable Software and Web Solutions.
Specialists with different academic backgrounds try to incorporate the elements of competitive edge, simplicity, and star power into all the products and
services we provide.
4. Today... you are here!
Wednesday, November 4, 2009
I would really like to thank you all for your interest in the Rubyists.EU initiative
This exciting endeavor stemmed from a true paradox
Nowadays the P.I. World appears to be a much smaller place in comparison to the world a decade ago (P.I. = Post-Internet)
Nonetheless, lots of people cannot escape the con鍖nes of their environment and they tend to think local. Consequently they often do not see the forest of
opportunities for the separate trees. This is more than unfortunate.
That is the reason why I am going to talk about Ruby and Europe...
5. ???
Wednesday, November 4, 2009
No! Not this Europe!!! I was referring to the continent Europe! Yet, this slide looks kind of cool ;)
Now, lets get to the very heart of the matter and somehow try to comprehend the real signi鍖cance of Europe. Once we cover that, we can discuss the
correlation between Europe and the Ruby programming language, and then draw the relevant conclusions about the possible fusion of those two concepts
into a single dynamic core.
6. That Europe.
Wednesday, November 4, 2009
Now here it is. Europe, our continent. Do not worry, this presentation is not going to devolve into a geography lesson. Nonetheless, let us just get a couple
of facts straight.
Do you know that Europes territory is bigger than 10.000.000 km2 and it is populated by more than 730.000.000 people?
One of the unique features of the European continent is its multifaceted mosaic of cultures and languages. You can literally trace the vestiges of time, you
can see monuments of both antiquity and modernity.
Another advantage is the fabulous infrastructure that facilitates the spread of both transportation and telecommunications.
Little by little, the European borders have become extremely 鍖uid. As consequence, people have started traveling through Europe more intensively.
As a result of various events and phenomena, today we have the Europe we have. Yet, the big question is how all those geographical advantages can
bene鍖t the individual Rubyist developer in Amsterdam, in Berlin, in Paris, in So鍖a, or in Moscow?
7. ?
Wednesday, November 4, 2009
After enumerating all the pros that the Old Continent offers, and after brie鍖y analyzing the the social changes brought by the quick advancements in
telecommunications, we can draw a slightly dark conclusion: despite all the resources we have at our disposal, we (the Rubyists) do not really know what
really is going on with Ruby in Europe (for example, we do not know what the Hungarian Ruby group is up to)
This is, evidently, a paradox.
Although there are numerous Ruby/Rails User Groups scattered across Europe (incubating great ideas, possessing extensive knowledge and working on
fabulous projects) very few of them are aware of one anothers presence.
As a consequence, this lack of awareness may limits communications, cooperation and collaboration.
Ultimately, the development and the adoption of the Ruby Language may be obstructed due to these obstacles.
8. RUBYISTS.EU!
Wednesday, November 4, 2009
In order to 鍖ll in the Ruby void in Europe, we embarked on the sweeping Rubyists.EU endeavor.
In its gist, this initiative is a free of charge communications platform, which aims at encouraging better communications among Rubyists in Europe.
Its mission is to promote awareness, enhance assistance, and further boost cooperation and collaboration among Ruby/Rails individual hackers and User
Groups in Europe.
It essentially offers a joint adventure, which will bring substantial bene鍖ts to the ones who wish to share it.
Who could possibly bene鍖t? The answer is both Ruby/Rails User Groups and individual developers. If a group joins the Rubyists.EU initiative, its members
can attach an extra layer of visibility to their Ruby/Rails community (and themselves). Enthusiastic hackers will have the opportunity to join new
communities or even start their own.
What are the advantages that the Rubyists.EU platform offers? Members can share details about their regular group meetups, bring interesting events and
conferences to the attention of others, announce special presentations, make their groundbreaking Ruby advancements public, or simply publish the
pioneering Ruby projects they are working on.
9. Wednesday, November 4, 2009
Why are we doing this?
We believe that every country in Europe has something to offer and to share with the rest.
We would like to see if every country has a particular vision of Ruby and explore how that can contribute to and essentially facilitate the adoption and the
development of the Ruby language in Europe.
10. Chosen Platform.
RSpec
Webrat
REST API
DataMapper
Wednesday, November 4, 2009
The technical speci鍖cation of the Rubyists.eu platform is essentially a result of the perfect mix of several Open Source technologies.
Before explaining the whole constitution of this platform, I would like to point out that our Testings are carried out by the combination of Cucumber
[http://cukes.info/] + RSpec [http://rspec.info/]. Due to the Web nature of the project, I am also employing Webrat [http://wiki.github.com/brynary/
webrat]. Because of the signi鍖cant amount of the Javascript code that I am utilizing, I incorporated the Selenium framework [http://
selenium.rubyforge.org/].
The core of this platform is composed of Sinatra + Rack. Sinatra [http://www.sinatrarb.com] is a light-weight DSL utilizes for quickly creating web
applications in Ruby. It keeps a minimal feature set for developers and is an excellent tool for creating small to mid-sized web applications. It is based on
Rack [http://rack.rubyforge.org/], which as everyone probably knows, is a Ruby library that provides an interface between web servers supporting Ruby
and Ruby web frameworks. Much of the underlying infrastructure is handled by Rack.
The selected database is PostgreSQL [http://www.postgresql.org/] . This Open Source ORDBMS (Object-Relational Database Management System) was
chosen because of its robustness, its features, and (mainly) because it is the default database system supported by Heroku.
The connection and the operations between the Sinatra-powered core and the database are established by DataMapper [http://datamapper.org/]. This is
an object-relational mapping library for Ruby. DataMapper has a number of good features. It is independent and it does not tie in with any particular
framework. It is designed to be fast and efficient. One of its pros is that it often delays interaction with the data store and it initiates it only when it is
required.
Our platform utilizes a User Interface based on the Google Maps platform. Google provides HTML and Javascript API [http://code.google.com/apis/maps/],
which allow developers to easily transform a simple map into a completely interactive application. In addition, were using JQuery [http://jquery.com/]
library to simplify and simultaneously AJAXify our Javascript code on the client. The AJAX functionality uses JSON (JavaScript Object Notation) [http://
json.org/] to marshall objects for both synchronous and asynchronous transport. The Google Maps standard UI is embedded in the generated HTML
structure, de鍖ned and generated by HAML [http://haml-lang.com/]. HAML is
both a simple markup language for templating HTML on a web page and a compiler of HAML-to-HTML and vice versa. Following the same principle, the
SASS [http://sass-lang.com/] de鍖nes and generates the CSS representation of the website. The main purpose of developing the front-end this way, is to
separate the HTML structure, the CSS representation, and the Javascript functionality unobstructedly.
As a direct consequence of the Sinatra core, this platform already provides a RESTful API that allows our platform to interact with any existent client. This
would allow developers and Ruby/Rails User Groups to integrate its functionality to their own websites, projects, applications, etc.
Last, but not least, this framework is deployed by Heroku [http://heroku.com/]. For those who still have no clue about Heroku, it is a Ruby-speci鍖c cloud-
computing platform that provides specialized Ruby hosting services for developers. It allows Ruby developers to almost instantly deploy web applications
on the Internet. Heroku supports Rack-based web applications so deploying our Sinatra applications on Heroku is a piece of cake. While Heroku charges
for hosting, it also provides a free basic tier account. It should be remarked that this platform requires the intensive use of Git [http://git-scm.com/], a
powerful decentralized SCM (Source Control Management) system, in order to deploy applications.
Currently this platform is isolated from the rest of the available systems out there but we envision integrating it with the existing communication platforms
such as Twitter, Facebook, Google, LinkedIn, and even Freenode in order to facilitate and ensure the transparent communications among Rubyists in
Europe.
11. Development Cycle.
http://eggsonbread.com/2009/07/22/behavior-driven-development-in-a-nutshell/
Wednesday, November 4, 2009
In order to develop our features, were using the BDD (Behavior Driven Development) approach.
For those of you who are still unfamiliar with the BBD, the latter is an approach, which emphasizes on the domain language and the interactions occurring
in the Software Development process. It implies outside-in development: it starts with User Interface de鍖nition and it ends with a functional piece of code.
Therefore, you have to design scenarios for the features you want to develop and then, you simply have to follow the BDD process:
1. For each scenario describing a feature
2. Run the scenario it fails (go red)
3. De鍖ne the 鍖rst step go red
4. Write down the application code getting the step to pass go green
5. Refactor the code and repeat steps 4 & 5 for each step until
6. The scenario passes go green
7. Refactor the application code
Once you are done, you can move on to the next feature. :)
These scenarios guide developers throughout the entire development process. They force people to focus on writing down the test and the application
code required, and only they are developers allowed to move on to the next step. Developers are satis鍖ed every time they pass a step successfully because
they know for sure, which of the features they have been developing function properly.
12. Get Involved.
Get in Touch.
Wednesday, November 4, 2009
The Rock & Code team has worked intensively to make this initiative happen but we werent alone.
Some of the members of the Amsterdam.rb [http://amsterdam-rb.org/] were among the 鍖rst to know about this project and they decided to assist us with
it.
I would like to thank Fernando Vezzosi, Wes Oldenbeuving and Wijnand Wiersma from Amsterdam.rb for their initial feedback and contribution.
Since this is an initiative for the whole European Ruby community, everybody is welcome to join in and even collaborate with ideas, suggestions,
comments, constructive criticism and/or code. You can get involved in this initiative by following and/or forking the source code from our repository on
Github [http://github.com/rock-n-code/rubyists.eu].
You can get in touch and/or make comments, suggestions for new features or propositions to improve the existing ones by joining our Google Group and
subscribing to our mailing list [http://groups.google.com/group/rubyists-eu]. You can follow us on Twitter [http://twitter.com/rubyists_eu], join our
Facebook page [http://www.facebook.com/pages/Europe/RubyistsEU/188196555796], and join the Rubyists.EU group on LinkedIn [http://
www.linkedin.com/groups?gid=2400973]. Furthermore, you can also chat with other Rubyists on our IRC channel on Freenode: #rubyists.eu [irc://
irc.freenode.net/rubyists.eu].
We would love to hear from you and we would really appreciate it if you to tell us what do you think about this initiative. Were looking forward to
discussing all the aspect of the Rubyists.EU initiative with you!
13. http://rubyists.eu
Wednesday, November 4, 2009
We believe that this interactive environment could greatly impact and even change the lives of all Ruby enthusiasts in Europe.
This initiative harbors the main goal that in time, by forging long lasting bonds, European Rubyists could foster a sense of belonging to something bigger
than their local Ruby communities.
Hopefully, in the long run, Rubyists.EU could help eliminate the obstacles that prevent the smooth adoption of the Ruby language and it would contribute
to the development of a robust Ruby community in Europe.