Following a discussion on Twitter mentionning this article 24 Extremely Useful Ruby Gems for Web Development which I don’t really agree with…

Indeed, the title is misleading: it talks about webdev but includes some gems that targets sysops or speaks about omniauth but includes authlogic (wtf?).

So, here is the set of gems I usually work with :

  • haml : at Novelys, we really love the pythonesque POV that ideally matches the XML nature of modern HTML documents
  • sass : the loyal companion of haml. Web designer usually loves the combination of haml and sass.
  • coffee-rails : to be able to write Coffeescript and integrating this code in the asset pipeline. From our POV, Coffeescript is not a revolution but a better way to deal with javascript. However, it’s not a magical solution : you still need to know how to code cleanly in javascript…
  • sprockets : to bundle, compress and “digest” your js/css/sass files it’s the default solution since rails 3.1. We were using jammit before
  • mongoid : when dealing with the MongoDB database. During 2010 the mongoid gems was experiencing some NDE but a team was formed and then it came out of the limbo and quickly improved.
  • mongoid_session_store : the usual companion of mongoid to maintain session in the MongoDB database
  • devise : it’s the swiss army knife authentication framework. We were using aaa (acts_as_authenticated), authlogic (that didn’t support multiple database backends) and eventually come to devise which we don’t regret : it’s very flexible and works with nearly any database backend.
  • omniauth and omniauth-* : when dealing with external authentication (Facebook, Twitter, OpenID, etc etc) omniauth is the ubiquitous solution. It’s now separated as omniauth (the core library) and several other omniauth-* lib (like omniauth-facebook).
  • koala : when dealing with the facebook API, we usually use this gem that includes everything we needed so far.
  • cancan : want to deal with authorization ? Here is a clean gem. Tightly integrates with devise.
  • resque : asynchronous jobs at its best. We used nfo-resque-mongo (MongoDB backend) or the regular resque (Redis backend).
  • will_paginate : dealing with pagination. Never felt the need to use kaminari. Use will_paginate_mongoid to be able to use it with mongoid.
  • paperclip : Having used file_column and acts_as_attachment, paperclip is really the culmination of the recent years of experience when dealing with file attachment. During a few months (or years ?) paperclip used the right_aws or aws-s3 gem to deal with the AWS S3 backend. And these gems didn’t really love european buckets. We used a combination of the s3 gem or monkey patching to circumvent that problem. We also tested the dragonfly gem, but paperclip just seems right… Fortunately, since a few months, paperclip integrates the fog gem, a modern and clean way to work with different cloud providers, but it’s no advertised a lot. And for good reason: there’s now 2 backends to deal with S3 : the old which use aws-s3, and the new one which uses fog. Don’t forget to add mongoid-paperclip to be able to use paperclip upon mongoid.
  • ruby-debug : debugger your webapp like “real” developpers debug their C/C++ program.
  • awesome_nested_set/nested_set : tree structure in a SQL database
  • state_machine : state machine for you Active Record or Mongoid models.
  • friendly_id : sluggify your urls
  • meta_search : easy way to do searching and build search form using SQL fields
  • thinking-sphinx : interacts with Sphinx fulltext search engine
  • acts_as_taggable_on_steroids, acts_as_favable, acts_as_commentable : Active Record (Active Model?) extensions for tagging, favoriting and commenting
  • wicked_pdf : PDF generation based on wkhtmltopdf

Deployment ?

  • capistrano : THE deployment tool that every other software communities envy us (fabrik/capifony anyone ?).
  • capistrano-ext : capistrano extension to manage different environments (staging, production, etc)
  • production_chain : OK OK, it’s not a gem, but it will soon be. A set of rake tasks and capistrano recipes to fetch different environments data.

Testing ?

Production hosting ?

  • passenger : Apache/Nginx module similar to mod_php. If you don’t want to hassle.
  • unicorn : better performance than passenger in our own environment
  • rainbows : a fork (extension?) of unicorn tailored for long standing requests (for example when you call another external API in the background). Difference is major compared to unicorn when you’re in the target usage of rainbows.
  • whenever : the easy way to write crontabs
  • asset_sync : sprockets do a great job to bundle and compress your staic files. Why not upload the on S3 and use multi asset hosting ?
  • airbrake : interacts with the web services to gather all your exceptions. Really really really useful. Essential.

Disclaimer : I’ve never organized a TEDx event, so this is only my point of view of attendee.

For those who live on planet Mars, TED “Ideas worth spreading”, are very high level conferences where speakers are as good in their field as good orator. TED is really attached to the TED brand. That’s why they created the TEDx concept, a franchise of TED where local communities can work on their own TED-style conference using the TEDx brand. A TEDx event must follow a gigantic list of rules.

I already watched a lot of TED talks, attended 2 TEDxAlsace and discussed with some other TEDx alumnis. This post is written with this past experience.

My general feeling about TEDx event is that it’s really hard to have inspiring speakers who are really good in their field and really good orators. Genius are rare. Genius who can talk easily in front of a demanding audience are really really rare. Inevitably, the audience who watched some TED videos will ask for the better. And I can only note that TEDx speakers’s level will be very heterogeneous, to say the least.

Furthermore, the TEDx rules ask you to play a fews videos of TED talks during your TEDx event. Inevitably, the audience will compare these speakers with the real one in front of you. And for some of them, it will be a rude and trustworthy slap.

For example, during the last TEDxAlsace, we were offered to watch these 3 videos :

After viewing these videos, I really didn’t want to be the next “real” speaker.

That’s why, on one hand, I recognize that organizing a TEDx event is a tough job, on the other hand, I can only note that I have mixed feelings about the final performance…

So you’re going to a Startup Weekend ? Like the Startup Weekend Strasbourg happenning this week end.

Here is a simple check list if it’s you’re first Startup Weekend :

  • If you’re not part of a well organized team, or, if you know that you will work a lot, bring a sleeping bag
  • A laptop and/or an iPad (lots of things are happening on The Internet these days)
  • An extension cord (mainly if you own an iPhone 4S)
  • A pack of energy drinks (not necessarly for you, but you will have something to trade for a new shiny logo, a chapter of your business plan or a ReTweet from a high profile tweetos lying in the next room)
  • An infant school toolbox (with pens, pencils, sheet of paper, notebook, markers, postits, etc)

But maybe you will also want to pitch your idea during the Pitch Fire session ?
Don’t forget that the so called Elevator Pitch is an art. And it’s a difficult art. One minute, it’s both long and short. Here are 4 tips, here 10 tips and here 5 tips.

Here’s my 3 tips : practice, practice, practice.

During the week end, you will surely want to have your web application online (or at least a website). And you will quicckly learn that graphists are a rare resource during a Startup Weekend. Here are a few graphical resources that will help you a lot :

For mockups or wireframe, don’t forget Balsamiq. And Zurb gives you for free a handful of iPhone, iPad and Android Omnigraffle stencils and even some simple Sketchsheets.

Don’t hesitate to add stuff by commenting below. And keep in mind that a Startup Weekend is a fun event !

Pour paraphraser Guillaume Bertholet et son “Choisir son statut juridique – en 30 secondes”.

Une question qui revient souvent en création d’entreprise et semble faire un peu peur, surtout pour les plus jeunes créateurs, est celle du choix de la technologie utilisée par la nouvelle entreprise.

Je ne vais pas ici m’adresser à tous les entrepreneurs, les cas sont trop nombreux et il faut bien avouer qu’on a réussi à faire plein de technologies différentes histoire de s’amuser un peu et de faire couler l’encre, mais seulement à celles et ceux qui se retrouvent dans les cas suivants :

  • envie de monter un service web
  • trouver facilement des tonnes de ressources techniques et une communauté dynamique avec de l’expérience
  • s’interfacer avec d’autres services externes (Facebook, Twitter, etc)
  • possibilité à terme d’avoir besoin d’exécution asynchrone
  • possibilité à terme de migrer vers MongoDB ou AWS (Amazon Web Services)

… ce qui devrait être le cas de pas mal de vous, mes chères lectrices et chers lecteurs 🙂

Bref, voilà les technologies que vous pouvez choisir :

  • Java/J2EE
  • Python/Django
  • PHP/Symfony
  • PHP/CakePHP
  • Ruby on Rails
  • NodeJS

Voilà, sujet clos, 30 secondes chrono.

Any comment?

Appel aux orateurs pour l’Agile Tour 2011, Strasbourg

L’Edition 2011 de l’Agile Tour Strasbourg aura lieu le Vendredi 14 Octobre 2011 à Illkirch-Graffenstaden.

Le thème cet année est: Mise en place et évolution des méthodes agiles.

L’objectif est de connaître les outils qui permettent de démarrer l’agilité dans les projets, et ceux qui visent à améliorer son efficacité.

Les sessions interactives et les ateliers seront privilégiés, mais les retours d’expérience et les approches innovantes de l’agilité sont les bienvenues.

N’hésitez pas à diffuser largement cet appel autour de vous !

Comment proposer une présentation ?

Envoyez-nous vos propositions à:

avec les informations suivantes:

  • Nom, prénom
  • Mail et téléphone
  • Courte biographie
  • Titre de la présentation
  • Résumé de la présentation
  • Durée de la présentation, type de présentation (jeu agile, retour d’expérience, conférence …)
  • Niveau et pré-requis des participants
  • Audience cible

Pour les ateliers:

  • Déroulement de la session
  • Nombre maximum de participants et matériel nécessaire

Dates importantes

  • Date limite de soumission des contributions: 10 septembre
  • Choix des propositions: 20 septembre
  • Envoi des présentations: 5 octobre
  • Nous espérons vous voir nombreux à Strasbourg !

    L’équipe de l’AT Strasbourg 2011

Disclaimer : my company, Novelys, sponsored RuLu, and I organized the last RailsCampParis.

After having hesitated a little bit, because of the slow-and-old transportation facility to go from Strasbourg to Lyon, we finally decided with Justine to go to Ruby Lugdunum, the two day, single track Ruby conference in Lyon, France.


Of course, the 11 speakers (2 french, 9 “foreigners”) were all Ruby rock stars. That means that the talks were all quite high level. That also means that if you’re not interested in a talk, you’re screwed. Wait for the next one. And yes, that’s the gripe I have for every single track conferences 😉


I can see three types of conferences in the Ruby/Rails/OSS world :

  • Single track conferences : think Frozen Rails, Euruko, etc. Ruby rock stars are speaking about their favorite subjects which won’t necessarly match your needs (or expectations!). Usually these events are made by the community, for the community.
  • Gigantic multi track conferences : think RailsConf or FOSDEM. You can have what you want, on the menu, to the detriment of a less social interactions. Some stuff are made for the community, and some other stuff can be made to attract “outsiders”.
  • BarCamp style un-conferences : think RailsCampParis. BarCamp means, you will get what you put on the table. But with less rockstars-style show than single or multi track conferences. Again, the events are made by the community for the community. And the level of social interactions is higher than in conferences, as BarCamps are made of pure social interactions.
  • Prestige conferences : like Paris on Rails. Everybody wants to attend it and everybody wants to be on the scene. These kind of events are made for the community and to attract outsiders. You can see them as “look at what we achieved together !”

So if I understood well, the organizers want RuLu to be part of the club of European single track conferences made for the community where you can see your favorite hacker on stage. And that’s a fine goal. Even though I cleary prefers BarCamp-style conferences.

But we also need different styles of conferences (and un-conferences). But it seems there are also some other objectives pursued by RuLu : improving the adoption of Ruby in France. And this is where I don’t see the relationship between this kind of conferences and improving the Ruby community in France. I think that we need something else to enlarge our community. And I’m still searching the “what” and “how”. I mean we’re still searching, as we’re a community after all 🙂

And BTW, I would prefer if RuLu would find its own way. No need to mimick Euruko…


First, I will organize another RailsCamp during S2 2011. I think that Paris will be a good city to host the event, as it’s still central in France. We’ll see next year, after the inauguration of the TGV Rhin-Rhone, if I can organize something in Strasbourg 🙂

Second, of course, we still need to rejuvenate the Ruby/Rails community in France and we’re working on it ! Maybe organizing a prestige conference with all the gratin of the french IT world ? But that’s a tough task and we need a good team 🙂

Other articles on RuLu :

Strasbourg EuRuKo 2012

EuRuko is THE european Ruby conference. Every year the venue is elected by the attendees of the event.

Last year, we were in Krakow with Justine, for the 2010 edition. It’s a great conference full of nice people (the speakers, the organizers and the attendees).

We are proposing Strasbourg as a candidate city for hosting EuRuKo 2012, so please, show your support by sharing the official website on Facebook and twitter !

%d bloggers like this: