SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
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.
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.
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.
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 confines 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...
???
Wednesday, November 4, 2009

No! Not this Europe!!! I was referring to the continent Europe! Yet, this slide looks kind of cool ;)
Now, let’s get to the very heart of the matter and somehow try to comprehend the real significance 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.
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 Europe’s 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 fluid. 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
benefit the individual Rubyist developer in Amsterdam, in Berlin, in Paris, in Sofia, or in Moscow?
?
Wednesday, November 4, 2009

After enumerating all the pros that the Old Continent offers, and after briefly 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 another’s 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.
RUBYISTS.EU!

Wednesday, November 4, 2009

In order to fill 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 benefits to the ones who wish to share it.
Who could possibly benefit? 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.
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.
Chosen Platform.
                              RSpec


                     Webrat



                                                                                                        REST                                    API
                                  DataMapper




Wednesday, November 4, 2009

The technical specification 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 significant 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, we’re 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, defined 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/] defines 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-specific 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.
Development Cycle.




                                          http://eggsonbread.com/2009/07/22/behavior-driven-development-in-a-nutshell/
Wednesday, November 4, 2009

In order to develop our features, we’re 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 definition 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. Define the first 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 satisfied every time they pass a step successfully because
they know for sure, which of the features they have been developing function properly.
Get Involved.



                                             Get in Touch.


Wednesday, November 4, 2009

The Rock & Code team has worked intensively to make this initiative happen but we weren’t alone.
Some of the members of the Amsterdam.rb [http://amsterdam-rb.org/] were among the first 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. We’re looking forward to
discussing all the aspect of the Rubyists.EU initiative with you!
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.

Weitere ähnliche Inhalte

Ähnlich wie Rubyists.EU: Stairway to the European Ruby Community Integration

day 1 - papers 2 Vereenooghe
day 1 - papers 2 Vereenoogheday 1 - papers 2 Vereenooghe
day 1 - papers 2 Vereenoogheguestdd6f7b0
 
DISH2009 - Erf-goed.be
DISH2009 - Erf-goed.beDISH2009 - Erf-goed.be
DISH2009 - Erf-goed.beArcheoNet
 
Introduction to the International Image Interoperability Framework (IIIF)
Introduction to the International Image Interoperability Framework (IIIF)Introduction to the International Image Interoperability Framework (IIIF)
Introduction to the International Image Interoperability Framework (IIIF)Simeon Warner
 
Ruby and Twitter at the Ruby drink-up of Sophia, January 2013
Ruby and Twitter at the Ruby drink-up of Sophia, January 2013Ruby and Twitter at the Ruby drink-up of Sophia, January 2013
Ruby and Twitter at the Ruby drink-up of Sophia, January 2013rivierarb
 
Molly Holzschlag - FOWD London 2009
Molly Holzschlag - FOWD London 2009Molly Holzschlag - FOWD London 2009
Molly Holzschlag - FOWD London 2009Carsonified Team
 
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...OW2
 
Building Modern Applications in Ruby: Fast, Efficient, Versatile, and Cost-Ef...
Building Modern Applications in Ruby: Fast, Efficient, Versatile, and Cost-Ef...Building Modern Applications in Ruby: Fast, Efficient, Versatile, and Cost-Ef...
Building Modern Applications in Ruby: Fast, Efficient, Versatile, and Cost-Ef...Marylene Sawyer
 
Optimizing for programmer happiness
Optimizing for programmer happinessOptimizing for programmer happiness
Optimizing for programmer happinessJosh Schramm
 
20110330 bruxelles doc_freedom
20110330 bruxelles doc_freedom20110330 bruxelles doc_freedom
20110330 bruxelles doc_freedomStefan Gradmann
 
Culture Hack panel SXSW 2013
Culture Hack panel SXSW 2013Culture Hack panel SXSW 2013
Culture Hack panel SXSW 2013Antoine Isaac
 
Introduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsIntroduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsOlaf Janssen
 
Hub Innovations Spaceforall 2009
Hub Innovations Spaceforall 2009Hub Innovations Spaceforall 2009
Hub Innovations Spaceforall 2009Jane Stevenson
 
Web 2.0 - Open Source Perspective
Web 2.0 - Open Source PerspectiveWeb 2.0 - Open Source Perspective
Web 2.0 - Open Source PerspectiveGautam Kishore
 
Ruby and rails around the web fun, informative sites for new and experienced...
Ruby and rails around the web  fun, informative sites for new and experienced...Ruby and rails around the web  fun, informative sites for new and experienced...
Ruby and rails around the web fun, informative sites for new and experienced...Durga Prasad Tumu
 
Europeana Creative. EDM Endpoint. Custom Views
Europeana Creative. EDM Endpoint. Custom ViewsEuropeana Creative. EDM Endpoint. Custom Views
Europeana Creative. EDM Endpoint. Custom ViewsVladimir Alexiev, PhD, PMP
 
Keeping Emulation Environments Portable
Keeping Emulation Environments PortableKeeping Emulation Environments Portable
Keeping Emulation Environments PortableKEEP_project
 
F/LOSS in Norwegian libraries
F/LOSS in Norwegian librariesF/LOSS in Norwegian libraries
F/LOSS in Norwegian librariesLibriotech
 

Ähnlich wie Rubyists.EU: Stairway to the European Ruby Community Integration (20)

day 1 - papers 2 Vereenooghe
day 1 - papers 2 Vereenoogheday 1 - papers 2 Vereenooghe
day 1 - papers 2 Vereenooghe
 
DISH2009 - Erf-goed.be
DISH2009 - Erf-goed.beDISH2009 - Erf-goed.be
DISH2009 - Erf-goed.be
 
Introduction to the International Image Interoperability Framework (IIIF)
Introduction to the International Image Interoperability Framework (IIIF)Introduction to the International Image Interoperability Framework (IIIF)
Introduction to the International Image Interoperability Framework (IIIF)
 
Ruby and Twitter at the Ruby drink-up of Sophia, January 2013
Ruby and Twitter at the Ruby drink-up of Sophia, January 2013Ruby and Twitter at the Ruby drink-up of Sophia, January 2013
Ruby and Twitter at the Ruby drink-up of Sophia, January 2013
 
Molly Holzschlag - FOWD London 2009
Molly Holzschlag - FOWD London 2009Molly Holzschlag - FOWD London 2009
Molly Holzschlag - FOWD London 2009
 
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
 
Building Modern Applications in Ruby: Fast, Efficient, Versatile, and Cost-Ef...
Building Modern Applications in Ruby: Fast, Efficient, Versatile, and Cost-Ef...Building Modern Applications in Ruby: Fast, Efficient, Versatile, and Cost-Ef...
Building Modern Applications in Ruby: Fast, Efficient, Versatile, and Cost-Ef...
 
Optimizing for programmer happiness
Optimizing for programmer happinessOptimizing for programmer happiness
Optimizing for programmer happiness
 
20110330 bruxelles doc_freedom
20110330 bruxelles doc_freedom20110330 bruxelles doc_freedom
20110330 bruxelles doc_freedom
 
Culture Hack panel SXSW 2013
Culture Hack panel SXSW 2013Culture Hack panel SXSW 2013
Culture Hack panel SXSW 2013
 
Introduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsIntroduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trends
 
Community in Motion
Community in MotionCommunity in Motion
Community in Motion
 
Hub Innovations Spaceforall 2009
Hub Innovations Spaceforall 2009Hub Innovations Spaceforall 2009
Hub Innovations Spaceforall 2009
 
Web 2.0 - Open Source Perspective
Web 2.0 - Open Source PerspectiveWeb 2.0 - Open Source Perspective
Web 2.0 - Open Source Perspective
 
AtoM, Authenticity, and the Chain of Custody
AtoM, Authenticity, and the Chain of CustodyAtoM, Authenticity, and the Chain of Custody
AtoM, Authenticity, and the Chain of Custody
 
Ruby and rails around the web fun, informative sites for new and experienced...
Ruby and rails around the web  fun, informative sites for new and experienced...Ruby and rails around the web  fun, informative sites for new and experienced...
Ruby and rails around the web fun, informative sites for new and experienced...
 
Europeana Creative. EDM Endpoint. Custom Views
Europeana Creative. EDM Endpoint. Custom ViewsEuropeana Creative. EDM Endpoint. Custom Views
Europeana Creative. EDM Endpoint. Custom Views
 
Keeping Emulation Environments Portable
Keeping Emulation Environments PortableKeeping Emulation Environments Portable
Keeping Emulation Environments Portable
 
F/LOSS in Norwegian libraries
F/LOSS in Norwegian librariesF/LOSS in Norwegian libraries
F/LOSS in Norwegian libraries
 
Thesauri and the Semantic Web
Thesauri and the Semantic WebThesauri and the Semantic Web
Thesauri and the Semantic Web
 

Kürzlich hochgeladen

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Kürzlich hochgeladen (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

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 confines 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, let’s get to the very heart of the matter and somehow try to comprehend the real significance 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 Europe’s 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 fluid. 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 benefit the individual Rubyist developer in Amsterdam, in Berlin, in Paris, in Sofia, or in Moscow?
  • 7. ? Wednesday, November 4, 2009 After enumerating all the pros that the Old Continent offers, and after briefly 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 another’s 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 fill 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 benefits to the ones who wish to share it. Who could possibly benefit? 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 specification 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 significant 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, we’re 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, defined 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/] defines 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-specific 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, we’re 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 definition 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. Define the first 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 satisfied 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 weren’t alone. Some of the members of the Amsterdam.rb [http://amsterdam-rb.org/] were among the first 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. We’re 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.