DataMapper 1.0

Posté par  (site web personnel) . Modéré par Mouns.
Étiquettes :
18
10
juin
2010
Ruby
DataMapper est une bibliothèque en Ruby qui vous permet de manipuler des données dans des bases de données sous forme d'objets Ruby (c.-à-d., c'est un ORM). Sous licence MIT, il vient de sortir en version 1.0, grâce au travail de 66 contributeurs.

Dans le monde Ruby, l'utilisation d'ORM est devenue une pratique courante sous l'influence de Ruby on Rails. ActiveRecord, l'ORM de Ruby on Rails, est ainsi très utilisé mais il ne convient pas à tout le monde. Les développeurs de Ruby on Rails ont des avis très tranchés sur certains points et, notamment, cherchent toujours à répondre aux 20% de cas d'utilisation qui couvrent 80% des besoins. Mais certaines personnes ont des besoins plus particuliers : c'est ce qui est arrivé aux développeurs de DataMapper.

L'équipe de DataMapper a ainsi voulu fournir une bibliothèque plus complète qu'ActiveRecord. On peut ainsi citer les points forts suivants :
  • Support de nombreuses bases de données, aussi bien relationnelles que NoSQL, mais également de fichiers YAML et d'interfaces REST ;
  • Migrations automatiques : on écrit les classes Ruby, puis on demande à DataMapper de créer les tables correspondantes dans la base de données ;
  • Unicité des objets : une ligne dans la base de données correspond à un objet ;
  • Approche modulaire : on choisit les fonctionnalités dont on a vraiment besoin ;
  • Réduction du nombre de requêtes : DataMapper ne fait les requêtes qu'au moment où vous avez vraiment besoin d'y accéder (Lazyness can be a virtue) et précharge les objets quand vous itérez sur des collections (Strategic eager loading) ;
  • Intégration plus souple à des projets Ruby existants.


La version 3 de Ruby on Rails devrait sortir d'ici quelques semaines et va notamment permettre de remplacer facilement ActiveRecord par un ORM dans les projets Rails.
Saluons donc l'arrivée de DataMapper 1.0 qui va permettre de couvrir des scénarios complexes pour des projets Rails ou autres.

Annonce de la sortie de Riak 0.10

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
18
3
mai
2010
Base de données
Dans la grande famille des bases de données NoSQL, je vous ai déjà présenté Cassandra, MongoDB, Redis et FlockDB. Laissez-moi vous présenter un nouveau membre de cette famille : Riak.

Riak est une base de données distribuée de type clé-valeur, sous licence Apache 2. Basho, la société derrière Riak, s'est inspirée de Dynamo d'Amazon pour nous offrir un stockage qui scale facilement. En particulier, sa grande force repose sur son modèle distribué où toutes les machines jouent un rôle équivalent, ce qui apporte à la fois une grande résistance aux erreurs et la capacité d'ajouter ou retirer facilement des machines à la volée.

Dans la seconde partie de la dépêche, je vais présenter plus en détails Riak, puis vous parler des nouveautés de la version 0.10 sortie récemment. J'aborderai également bitcask, un moteur de stockage clé-valeur local, qui peut être utilisé pour le stockage par noeud de Riak. Je finirais par une note très rapide à propos de ripple, le client en Ruby pour Riak.

Big Brother Awards 2010

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
17
28
mai
2010
Justice
Le 12 mai, s'est déroulée à la Cantine la 10ème remise des Big Brother Awards (BBA pour les intimes). Différents Prix Orwell ont été remis aux gagnants qui se sont illustrés par leur mépris de la vie privée et des libertés :
  • Orwell États/Élus : Eric Besson, ministre de l'Immigration pour avoir durci les quotas d’expulsions, refusé de mettre à l’abri des poursuites les personnes qui aident les migrants, et pour vouloir contourner le juge des libertés afin de bafouer les droits des migrants lors de procédures d’expulsion expéditives ;
  • Orwell Localités : le maire de Nice Christian Estrosi pour sa volonté de faire de sa ville un laboratoire de la vidéosurveillance ;
  • Orwell Entreprise : BNP Paribas, la Banque Postale, LCL et la Société générale pour avoir accepté de couvrir leurs employés qui dénoncent aux services de la Préfecture des clients sans papiers venus à leur guichet ;
  • Orwell Novlang : Brice Hortefeux pour le terme de « vidéoprotection », venant remplacer « vidéosurveillance » ;
  • Mention spéciale Internet : Trident Media Guard et Thierry Lhermitte pour chercher à profiter de la surveillance des internautes autorisée par les mesures de la loi Hadopi ;
  • Exécuteurs des basses œuvres : Eric Ciotti, député et président du Conseil général des Alpes-Maritimes, rapporteur de la LOPPSI, porte-flingue du gouvernement pour toutes les questions liées à la sécurité intérieure et président zélé d’un département qui veut être le premier à supprimer les allocations à une famille en difficulté sociale ;
  • Mention spéciale médias : les Infiltrés de France 2 et le journal télévisé de TF1 pour leur excès de zèle à souffler sur la braise sécuritaire, amplifier les faits divers pour servir le politique, emprunter des méthodes policières ou même collaborer ouvertement avec les services officiels ;
  • Prix Spécial du Jury — 10 ans des BBA : Alex Türk, président de la CNIL pour tromperie et dissimulation (Alex Türk endosse les habits du défenseur tout terrain de la vie privée et des libertés alors qu’il en est parfois le fossoyeur et souvent le facilitateur).


Un prix Voltaire de la Vigilance a également été remis au groupe Pièces et main d’oeuvre (PMO) pour son minutieux travail d’information et de réflexion sur les relents totalitaires des techno-sciences.

Mais l'édition 2010 ne s'arrête pas là ! Il est possible de
voter pour le Prix du Public. De plus, demain, samedi 29 mai, un BarCamp se tiendra de 14h à 18h à La Belle Étoile, théâtre de la Compagnie Jolie Môme, 14 allée Saint-Just, 93210 Saint-Denis. Cet après-midi de rencontres, d’échanges et d’ateliers informels aura pour thème la contre-surveillance et les modes d’action visant à reconquérir et préserver nos identités numériques et nos droits d'individus libres.

Gollum, un wiki propulsé par git

Posté par  (site web personnel) . Modéré par Florent Zara.
Étiquettes :
17
25
août
2010
Ligne de commande
Gollum est un wiki dont la particularité est d'être propulsé par git. Il a été codé par les développeurs de Github, le choix de git n'est donc pas étonnant. Il est ainsi possible d'éditer un wiki Gollum en passant par l'interface web ou directement depuis son éditeur de texte préféré, puis en commitant dans le dépôt git utilisé par Gollum.

Gollum est une application web sous licence MIT, développée en Ruby avec le framework Sinatra. Parmi les fonctionnalités, citons :
  • La prise en charge de plusieurs langages de markup (ASCIIDoc, Creole, Markdown, Org Mode...) ;
  • La coloration syntaxique de bloc de code grâce à Pygments ;
  • L'affichage de formules mathématiques au format TeX avec MathJax ;
  • La possibilité d'attacher des fichiers et d'inclure des images.

À titre anecdotique, notons que les développeurs de Gollum ont suivi quelques principes :

NoSQL : Neo4J, Riak, Kyoto Cabinet et Graylog2

Posté par  (site web personnel) . Modéré par Nÿco.
17
3
août
2010
Base de données
Petite compilation de brèves autour de divers projets de type NoSQL :

Neo4J est une base de données de type graphes sous licence AGPLv3. La version 1.1, sortie fin juillet, apporte 7 grandes nouveautés :
  1. Un package d'algorithmes classiques pour les graphes avec, par exemple, Dijkstra et A* ;
  2. La possibilité d’exécuter du code sur des événements comme un commit ;
  3. Une bibliothèque de traversée de graphes (vous donnez des instructions comme l'ordre de parcours dans le graphe ou les types d'arcs à suivre et Neo4J vous renvoient les chemins parcourus) ;
  4. Monitoring avec JMX ;
  5. Optimisation du kernel ;
  6. Amélioration de l'indexation avec Lucene ;
  7. Inclusion de l'outil de sauvegarde à chaud.

Riak est une base de données distribuée de type clé-valeur, sous licence Apache 2. Depuis la précédente dépêche sur LinuxFr.org, deux versions sont sorties : la 0.11 et la 0.12. Bitcask est maintenant le moteur de stockage par défaut. Pour le reste, pas de grands changements, mais un bon nombre de corrections de bogues et de petites améliorations diverses.

Kyoto Cabinet est une base de données très rapide de type clé-valeur. Un nouveau type de stockage a été introduit dans la version 1.1.0 : Directory Database. Celui-ci n'est qu'une fine abstraction au-dessus des systèmes de fichiers et fonctionne particulièrement bien avec Ext3 et ReiserFS pour stocker des valeurs très grosses.

La version 1.2.0 a également été l'occasion d'introduire un nouveau type de stockage : ForestDB. Son implémentation est un B-tree au-dessus de DirDB et dont les performances sont étonnamment bonnes.

Enfin, Graylog2 est une implémentation Open Source de syslog qui enregistre les logs dans MongoDB. Il se compose d'un serveur en Java qui accepte les logs en TCP ou UDP et les enregistre dans la base de données, et d'une interface de consultation des logs écrite en Ruby on Rails. Les captures d'écran montrent les possibilités de configuration et de filtrage des messages de cet outil.

Petites brèves Ruby

Posté par  (site web personnel) . Modéré par baud123. Licence CC By‑SA.
Étiquettes :
17
21
avr.
2012
Ruby

Sortie de Ruby 1.9.3-p194

Une nouvelle version de Ruby est sortie récemment : Ruby 1.9.3-p194. En plus des diverses corrections de bugs mineurs, elle contient deux correctifs de sécurité pour RubyGems :

  • elle active la vérification des certificats SSL pour les dépôts de gems privés ;
  • elle interdit les redirections d'une adresse en HTTPS vers une adresse en HTTP.

mruby

mruby est un projet mené par le créateur de Ruby, matz, depuis quelques années. Il vise à avoir une implémentation de Ruby plus légère, pouvant être compilée et liée avec une autre application pour pouvoir utiliser Ruby comme langage de script embarqué au sein d'un programme plus large.

mruby est encore loin d'être complètement fonctionnel mais il est intéressant de noter qu'il va être utilisé pour MobiRuby un framework de développement d'applications mobiles qui devrait sortir cet été (sur iOS puis sur Android).

Rails-API

Le framework Ruby on Rails est de plus en plus souvent utilisé pour développer des API Rest au format JSON. Le plugin Rails-API tire parti du travail de modularisation de Rails 3 pour fournir une version optimisée de Rails pour ce cas d'usage.

Ce n'est pas un fork mais bien un plugin pour Rails, ce qui veut dire qu'il est toujours possible de réinclure les fonctionnalités manquantes (utile si on veut avoir une API utilisable depuis les navigateurs) et d'utiliser tout l'écosystème autour de Rails.

Gérez vos projets avec Trac

Posté par  (site web personnel) . Modéré par Xavier Teyssier.
Étiquettes :
17
17
juin
2010
Python
Trac est un outil de gestion de projets écrit en Python et distribué sous licence BSD. Il combine un wiki, un outil de suivi de demandes et un explorateur SVN (ou d'autres SCM).

C'est donc un projet similaire à InDefero, Retrospectiva ou Redmine. Trac est moins avancé que ces outils pour l'aspect multi-projets, mais ses nombreux greffons lui permettent de rester en tête en nombre de fonctionnalités.

La version 0.12 est sortie récemment et apporte de nombreuses améliorations. Parmi celles-ci, citons les plus importantes :
  • Prise en charge de l'internationalisation avec Babel ;
  • Gestion de plusieurs dépôts par instance ;
  • Syntaxe wiki plus souple, plus intuitive, et plus proche de Wiki Creole ;
  • Amélioration de l'interface de gestion des tickets et commentaires ;
  • Ajouts de fonctionnalités au wiki : renommer de pages, Universal Edit Button, prévisualisation automatique, etc.
Vous pouvez essayer cette nouvelle version sur le site de la démo.

Prolongation du concours LinuxFr.org

Posté par  (site web personnel) . Modéré par tuiu pol.
Étiquettes :
16
10
déc.
2010
LinuxFr.org
À l'occasion de la nouvelle version de LinuxFr.org, nous organisons un concours. Actuellement, 26 participants se sont déclarés. Vous pouvez toujours y participer sur l'une de ces catégories (ou les deux) :
  • Proposer une nouvelle charte graphique
  • Réaliser une « killer feature » en HTML5
Pour connaître la procédure pour participer, déployer une instance chez vous pour tester, avoir des réponses à vos questions, trouver des idées, etc. consultez les dépêches précédentes via les liens ci-dessous. Sinon, vous pouvez toujours nous aider en testant la version bêta et en remontant les bugs.

Le concours devait se finir le 29 décembre 2010, mais, suite à un certain nombre de demandes justifiées (notamment le fait de pouvoir bénéficier des jours de repos lors de la trêve des confiseurs) nous avons décidé de le prolonger d'une semaine. Les participants ont donc jusqu'au 5 janvier 2011 à 23h59 pour nous envoyer leurs copies.

Pour rappel, vous pouvez gagner de l'hébergement virtualisé, une tablette Android type Archos 101, des bons d'achats pour du matériel « ouvert » et une HTC Desire, le tout fourni respectivement par Gandi, Nuxeo, Hackable Devices et Mozilla Europe. Un grand Merci à eux et à InDefero qui nous met gracieusement les forges à disposition pour la réalisation des projets.

Mosaïque de logos au fil des années

Bon courage !

Sortie de Node.js 0.4.0

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
16
12
fév.
2011
JavaScript
Node.js est un environnement JavaScript côté serveur, sous licence MIT. Sa particularité est son approche asynchrone pour faciliter la montée en puissance dans des contextes avec beaucoup d'entrées-sorties, notamment réseau. En pratique, il se compose :
  • d'un interpréteur JavaScript, à savoir V8 ;
  • de require(), un chargeur de modules compatible CommonJS ;
  • d'une bibliothèque standard, volontairement restreinte (une sorte de libc JavaScript où tous les appels sont asynchrones) ;
  • d'un ensemble de conventions : par exemple, les fonctions de retours indiquent toujours en premier paramètre si l'appel s'est bien passé et dans le cas contraire, quelle a été l'erreur ;
  • et d'un exécutable, node pour lancer tout ça.

La version 0.4.0 sortie cette semaine est la deuxième stable (c'est comme pour l'ancien mode de développement du noyau Linux : le numéro mineur est pair pour les versions stables et impair pour les versions de développement). Les principaux changements depuis la version stable précédente (la version 0.2, pour ceux qui suivent) sont les suivants :
  • nouveau client HTTP, avec une API plus simple et la gestion d'un réserve (pool) de connexions ;
  • refonte du module TLS/SSL ;
  • augmentation des performances, grâce à l'allocation plus rapide des tampons mémoire (Buffer) ;
  • meilleure prise en charge des gestionnaires de paquets comme npm, grâce à l'amélioration de require() ;
  • une mise à jour de V8 pour la version 3.1.2 ;
  • un débogueur fonctionnel, mais encore très limité pour le moment ;
  • un module os qui expose des informations sur le système ;
  • et, bien sûr, plein de corrections de bogues.

Codez avec classe grâce à Sinatra

Posté par  (site web personnel) . Modéré par tuiu pol.
Étiquettes :
16
29
mar.
2010
Ruby
Sinatra est un micro-framework en Ruby pour construire rapidement des applications web (licence MIT).

Il se présente sous la forme d'un Domain Specific Language, avec un jeu assez réduit de fonctionnalités et laissant beaucoup de libertés aux développeurs d'applications. En cela, il est très complémentaire de Ruby on Rails, car il sera très efficace pour les petites applications web, les prototypes, les API Rest, les webhooks, ou fournir une interface web à une application Ruby existante.

Le développement de Sinatra a commencé en novembre 2007, et une nouvelle étape a été marquée le 23 mars dernier avec la sortie de la version 1.0. Sinatra est utilisé dans de nombreuses applications Ruby, mais son succès ne se limite pas à Ruby. Il existe des clones plus ou moins fidèles dans de nombreux langages : Sammy (Javascript), Dancer (Perl), Fitzgerald (PHP), Martin (.net), Itty (Python), Step (Scala), Express (node.js) et beaucoup d'autres.

D'un point de vue plus technique, Sinatra s'installe très simplement avec Rubygems, d'un simple coup de gem install sinatra. Et écrire un Hello world n'est pas plus compliqué :
require 'rubygems' require 'sinatra' get '/' do 'Hello LinuxFr !' end

Sortie de Node.js v0.2.0

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
15
23
août
2010
JavaScript
Node.js, dont le slogan est Evented I/O for V8 JavaScript, a pour but d'offrir un moyen simple d'écrire des applications réseau scalables. Le code est placé sous licence MIT.

Pour bien comprendre ce qu'est Node.js, je vous propose le cheminement suivant. Partons de V8, la machine virtuelle développée par Google qui permet d'interpréter du javascript. Ajoutons un modèle événementiel, similaire à EventMachine en Ruby ou à Twisted en Python. Cela tombe bien, en javascript, c'est assez naturel de procéder de cette manière : le javascript dans les navigateurs utilise déjà un modèle événementiel (les événements sont 'DOM chargé', 'touche pressée' ou encore 'clic de la souris'). C'est un bon début, mais le javascript ne possède pas de bibliothèque standard pour manipuler des fichiers ou faire des opérations réseau. Utilisons donc notre modèle événementiel pour ajouter des API qui permettent de faire ça de manière asynchrone. Une autre lacune de javascript est l'absence de moyen de charger une bibliothèque depuis un script, et comme on n'a pas spécialement envie de tout écrire dans un seul fichier, rajoutons donc une fonction require pour charger un autre script. Enfin, saupoudrons le tout avec quelques API utilitaires, un interpréteur interactif, et vous obtiendrez une bonne idée de la composition de Node.js.

Node.js permet ainsi de développer simplement des applications en javascript que l'on peut qualifier de server-side. Voici quelques exemples de ce que l'on peut faire avec Node.js :

La version 0.2.0 est sortie le 20 août et marque une première stabilisation du projet. Jusqu'à maintenant, les versions s'enchaînaient à un rythme soutenu (2 à 3 par mois), avec souvent des changements d'API et des problèmes de compatibilité divers et variés. Il est donc difficile pour les développeurs de bibliothèques de les maintenir, et pour les développeurs d'applications, de trouver les bonnes bibliothèques qui fonctionne avec la dernière version de Node.js. Cela devrait maintenant changer : Ryan Dahl a promis d'assurer la compatibilité de l'API pour les versions 0.2.x. Si vous souhaitez essayer Node.js, c'est donc le bon moment pour vous lancer !

Remise des prix Free Software 2011 à Matz et GNU Health

Posté par  (site web personnel) . Édité par Benoît Sibaud, baud123 et Nils Ratusznik. Modéré par j. Licence CC By‑SA.
Étiquettes :
15
31
mar.
2012
GNU

La Free Software Foundation (FSF) remet une fois par an des prix pour récompenser les avancées du Logiciel Libre. La cérémonie de remise des prix 2011 a eu lieu le 25 mars.

À cette occasion, Yukihiro Matsumoto (aka Matz) s'est vu remettre une jolie^W décoration des mains de Richard Stallman pour son travail sur Ruby, le projet GNU et les logiciels libres auxquels il a participé. Notons que les créateurs de Perl, Larry Wall, et de Python, Guido Van Rossum, avaient remporté cette récompense en 1998 et 2001 respectivement.

L'autre prix, visant à récompenser les projets avec des bénéfices sociétaux, a été décerné au projet GNU Health. Luis Falcon, le président de l'association GNU Solidario qui soutient le projet GNU Health, était également présent pour recevoir le prix au nom du projet.

Apprendre à programmer avec Hackety Hack

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
15
29
déc.
2010
Ruby
Vous souhaitez apprendre à programmer ? Alors Hackety Hack est fait pour vous. Essayez-le !

Hackety Hack est un environnement en Ruby, sous licence MIT, pour apprendre à développer. Il s'adresse aux débutants et propose des leçons pour coder en quelques lignes des choses fun.

Le projet a été initié par Why the lucky stiff, un célèbre hacker Ruby et a été repris par une équipe menée par Steve Labnik. La version 1.0 vient de sortir pour Noël et ce fût également l'occasion de la mise en ligne du nouveau site web.

D'un point de vue technique, il fonctionne avec le framework Shoes et tourne sur les plateformes GNU/Linux, Windows et Mac OS X. Le code écrit au cours des leçons est du Ruby et utilise également Shoes.

Petites brèves à propos de Ruby et Rails

Posté par  (site web personnel) . Édité par Benoît Sibaud. Modéré par baud123.
Étiquettes :
14
13
mai
2010
Ruby
JRuby 1.5 JRuby est une implémentation complète de Ruby au-dessus de la machine virtuelle Java. JRuby est entièrement compatible avec Ruby 1.8.7 et en grande partie avec Ruby 1.9, offre des performances significativement meilleures que la branche 1.8 de Ruby et comparable à celles de la branche 1.9, et vous permet de faire fonctionner les principaux programmes Ruby comme Ruby on Rails, rubygems ou encore rspec. La version 1.5 de JRuby n'apporte aucun changement vraiment révolutionnaire, mais un important travail de consolidation a été fait : meilleure compatibilité avec la version officielle de Ruby, meilleures performances, meilleur support aussi bien pour Unix que pour Windows, prise en charge d'Ant, etc. Si vous souhaitez essayer JRuby 1.5, l'installation se fait très simplement, mais je vous recommande d'utiliser Ruby Version Manager qui permet d'avoir plusieurs implémentations de Ruby sur sa machine sans problème.

Teambox est un outil de gestion de projets dont le fonctionnement s'inspire de Twitter : la page principale d'un projet se présente sous la forme d'une timeline avec les dernières mises à jour sur laquelle on peut mettre à jour son statut. Vous retrouverez également toutes les fonctionnalités classiques d'un outil de gestion de projets : partage de fichiers, liste de tâches, discussions, notifications par email, gestion des utilisateurs et permissions, etc. D'un point de vue plus technique, Teambox est une application Ruby on Rails, sous licence AGPL. Le code est disponible sur github et les contributions sont les bienvenues.

Posez vos questions Ruby Ruby France a mis en place un espace où vous pouvez poser vos questions sur Ruby et Rails, en français. Fréquenté par de nombreux rubyistes confirmés, vous ne devriez pas avoir de mal à trouver une réponse. Le site tourne avec Shapado, une application web de questions/réponses sous licence AGPL. Shapado est écrit en Ruby on Rails et fonctionne avec une base de données MongoDB.

En vrac, spécial Ruby

Posté par  (site web personnel) . Modéré par j.
Étiquettes :
14
24
mai
2010
Ruby
Il y a en ce moment pas mal d'activité autour de Ruby. JRuby 1.5 et Rubinius 1.0 ont été annoncés sur LinuxFr il y a quelques jours, et une troisième implémentation Ruby a franchi une étape importante récemment : MacRuby a atteint la version 0.6.

MacRuby est une implémentation de Ruby 1.9 (sous licence GPL) qui repose sur les technologies core de Mac OS X telles que Objective-C, LLVM et Foundation. Les premiers benchmarks montrent que MacRuby a des performances intéressantes à ce stade de développement, bien qu'en deçà de celles de Ruby 1.9.

Du côté du Ruby Summer of Code, les 20 projets sélectionnés ont été annoncés. Ceux-ci sont très variés, allant de l'amélioration de points spécifiques dans Ruby on Rails aux extensions en C dans JRuby, en passant par la contribution à Camping et Hackety Hack, deux projets initiés par Why the Lucky Stiff. À ce sujet, Smashing Magazine a publié la légende de _Why, dont je vous recommande fortement la lecture, que vous souhaitiez découvrir le personnage ou vous remémorer ses actes les plus glorieux.

Rubygems, l'outil de gestion de paquets spécifiques à Ruby, est sorti en version 1.3.7. La principale nouveauté est que rubygems.org devient le dépôt par défaut, remplaçant gems.rubyforge.org, qui va continuer de fonctionner pendant encore un bout de temps pour assurer la migration.

Haml et Sass sont deux projets Ruby liés pour des raisons historiques qui viennent de sortir en version 3 (sous licence MIT). Le premier est un moteur de templating qui permet d'écrire des templates très concis. Le second est une extension de CSS3 pour faciliter la vie des personnes qui doivent écrire et maintenir des CSS : Sass offre des variables (c'est quand même fou que CSS ne le propose pas de base !), des sélecteurs imbriqués, des mixins (plusieurs règles CSS regroupées sous un même nom que l'on peut utiliser à plusieurs endroits dans ses feuilles de style), et plein d'autres ajouts très utiles.

Pour finir, je souhaite parler de TomDoc. C'est un document qui liste un ensemble de règles pour commenter du code en Ruby. Il va à l'encontre des règles de RDoc, mais la syntaxe proposée par TomDoc me semble être une avancée suffisante pour que cela vaille la peine de marquer cette rupture. J'espère que les développeurs Ruby qui passent dans le coin seront du même avis que moi et vont se mettre à utiliser TomDoc.