Pendant ce temps, dans l’écosystème Ruby

Posté par (page perso) . Édité par Davy Defaud, ZeroHeure, Pierre Jarillon et Nils Ratusznik. Modéré par Pierre Jarillon. Licence CC by-sa
48
17
nov.
2016
Ruby

Même si les analystes le positionnent toujours comme un langage à la popularité limitée, il n’empêche que depuis l’arrivée du cadriciel Rails, le langage Ruby est utilisé par de nombreux services qui partagent notre quotidien : GitHub, Airbnb, Twitch, Zendesk, LinuxFr.org, etc.

Petit tour d’actualité de ce langage qui va bientôt fêter ses 20 ans !

Crystal, un langage proche de Ruby, en version 0.16

Posté par (page perso) . Édité par Benoît Sibaud. Modéré par Benoît Sibaud. Licence CC by-sa
39
8
mai
2016
Ruby

Crystal est un langage de programmation, encore jeune. Il s'inspire de Ruby pour la syntaxe mais vise des performances proches du C. La version 0.16 vient de sortir, avec un nouvel algorithme pour l'inférence de types. À noter, le compilateur de Crystal est écrit en Crystal.

Voici à quoi ressemble un serveur HTTP basique écrit en Crystal :

# A very basic HTTP server
require "http/server"

server = HTTP::Server.new(8080) do |context|
  context.response.content_type = "text/plain"
  context.response.print "Hello world, got #{context.request.path}!"
end

puts "Listening on http://0.0.0.0:8080"
server.listen

Sortie de Rubinius 2.0

Posté par (page perso) . Édité par ZeroHeure, Nÿco, patrick_g et Florent Zara. Modéré par Florent Zara. Licence CC by-sa
34
7
oct.
2013
Ruby

La version 2.0 de Rubinius vient de sortir ! Pour rappel, Rubinius est une alternative à l'interpréteur du langage Ruby de référence nommé MRI (de l'anglais Matz's Ruby Interpreter). Rubinius est une machine virtuelle qui s'appuie sur LLVM pour compiler dynamiquement du code Ruby en code machine natif. Les nouveautés de cette nouvelle version sont profondes :

  • compatibilité avec Ruby 2.1 (qui n'est pas encore sorti), en plus des versions 1.8 et 1.9 ;
  • transformations de plusieurs couches de Rubinius en gems pour simplifier les mises à jour : compilateur, parser, débogueur, bibliothèque standard Ruby, etc. (tout ça est écrit en Ruby !) ;
  • amélioration des performances et de la stabilité dans le but avoué de rester compétitif face à des langages tels que Go, Clojure, ou encore Node ;
  • traditionnelles corrections de bugs.

Vous pouvez tester cette nouvelle version de Rubinius dès maintenant grâce à RVM, rbenv ou chruby !

Ruby 2.0 est sorti

Posté par . Édité par _jordan_, YLD, Marc Quinton, baud123, Nicolas Blanco, barmic, Katyucha et Nÿco. Modéré par baud123. Licence CC by-sa
Tags :
33
5
mar.
2013
Ruby

Pour fêter ses 20 ans, Ruby arrive en version 2.0 !

Malgré ce changement de version majeur, il y a moins de différences entre Ruby 2.0 et 1.9 qu'entre Ruby 1.9 et 1.8.
La compatibilité avec les logiciels 1.9 est quasiment assurée. Cerise sur le gâteau : cette nouvelle version est considérée comme stable et on y trouve un certain nombre de nouveautés et d'optimisations.

Pour rappel : Ruby est un langage de programmation orienté objets, à typage dynamique et qui s'est inspiré de Lisp, Perl, Smalltalk, Eiffel, etc. Sa principale caractéristique est de mettre en avant les besoins humains avant ceux informatiques, et notamment le fun et la productivité.

NdM : merci à reno pour son journal et _jordan_ pour ses compléments pour approfondir, ainsi qu'à YLD, Marc Quinton, Nicolas Blanco, Barret Michel, Nÿco, Katyucha pour leur participation.

20 étudiants pour travailler sur Ruby cet été

Posté par (page perso) . Modéré par baud123.
Tags :
31
28
mar.
2010
Ruby
La semaine dernière, Google a annoncé la liste des organisations retenues pour le Google Summer of Code 2010. En particulier, la seule candidature autour de Ruby, à savoir Ruby on Rails, est rejetée. La communauté Ruby a alors réagi en décidant de monter un Ruby Summer of Code.

En 3 jours, les sponsors et dons des particuliers ont permis de ramasser 100 000 $. Cela va permettre de financer 20 projets en payant 5 000 $ à chaque étudiant, selon un modèle très similaire au Google Summer of Code.

Vous pouvez dès à présenter postuler comme mentor, et ce jusqu'au 2 avril. Pour proposer sa candidature comme candidat, la fenêtre ira du 5 au 23 avril. Les propositions pourront porter sur Ruby, Rails, les implémentations alternatives de Ruby comme JRuby, ou plus globalement sur l'écosystème Ruby.

À titre personnel, je me réjouis de voir que la communauté Ruby se porte bien, ayant été capable de récolter 100 000 $ en seulement 3 jours. Par ailleurs, je trouve que le Google Summer of Code est une excellente initiative de la part de Google, mais je craignais qu'il ne crée un phénomène de dépendance entre certains Logiciels Libres et Google. Le Ruby Summer of Code m'a permis de lever cette réserve et d'apprécier pleinement le Google Summer of Code.

Je regrette juste de ne plus être étudiant ;-)

Ruby on Rails 3 est là

Posté par (page perso) . Modéré par Nÿco.
Tags :
30
31
août
2010
Ruby
Ruby on Rails est un framework de développement web en Ruby, sous licence MIT. Depuis son lancement en 2004, il a permis le développement de nombreuses applications web comme Basecamp, Twitter, Github, etc.

Le 23 décembre 2008, les équipes développant Ruby on Rails et Merb, un autre framework web en Ruby, ont décidé d'unir leur effort. La fusion des deux frameworks visait à apporter le meilleur des deux dans un seul produit qui serait Rails 3.

On peut aujourd'hui affirmer que c'est une réussite. En effet, la sortie de Rails 3 a été annoncée et la liste des changements est impressionnante (cf la seconde partie de la dépêche). Remercions au passage les 1600+ personnes qui ont contribué à Ruby on Rails.

Cette nouvelle version de Rails est compatible avec Ruby 1.8.7, Ruby 1.9.2 et JRuby 1.5. Elle fonctionne également avec Rubinius 1.0 (mais sans garantie de la part de la core team Rails pour les versions 3.0.x à venir). Il ne vous reste plus qu'à lancer un gem install rails --version 3.0.0 pour l'installer.

Dernière chose, si vous appréciez Rails 3 et que vous souhaitez donner en retour, la core team de Rails vous encourage à faire un don à l'association Charity:Water.

Cloud Foundry, la solution PaaS libre

Posté par (page perso) . Modéré par Lucas Bonnet. Licence CC by-sa
29
22
avr.
2011
Ruby

VMWare a annoncé la sortie de Cloud Foundry, une solution libre de Platform-as-a-Service (PaaS). La PaaS permet de déployer des applications Web et gérer leur montée en charge, en abstrayant la gestion des serveurs, bases de données, runtimes des langages de programmation, serveurs applicatifs, etc.. VMWare va lancer une offre commerciale s’appuyant sur Cloud Foundry, mais vous pouvez aussi l’utiliser sur vos serveurs.

Cloud Foundry, sous licence Apache 2, est un ensemble de briques développées en Ruby : NATS, Cloud Controller, DEA, Router, Health Manager, etc., dont le fonctionnement est expliqué en seconde partie de cette dépêche.

En pratique, chaque serveur sera installé avec vcap, puis les applications sont déployées avec l’outil en ligne de commande « vmc » et peuvent utiliser les services mis à leur disposition. Actuellement, Cloud Foundry supporte Ruby on Rails, Sinatra, Node.js, Spring et Grails pour les applications, et MySQL, MongoDB, Redis et RabbitMQ pour les services.

Par exemple, déployer une application Rails se fait très simplement avec les commandes suivantes :

$ vmc target api.example.net   # Choisir que quel cloud on va déployer
$ vmc login                    # S'identifier auprès du Cloud Controller
$ vmc push                     # On demande à déployer l'application

Il faut ensuite répondre à quelques questions : quel est le nom de l’application ? Quelle est son URL ? Sur combien d’instances va-t-elle être déployée ? Quels services utilise-t-elle ? Puis, Clound Foundry va réserver les ressources, installer les gems nécessaires avec Bundler, lancer les services applicatifs puis mettre à jour sa table de routage. « vmc instances » permet également de modifier le nombre d’instances d’une application pour s’adapter à la charge qu’elle va avoir à traiter.

Au final, Cloud Foundry est une solution jeune (peu de frameworks et services disponibles pour le moment), mais VMWare semble prêt à respecter les règles du Logiciel Libre et prendre en compte les propositions d’améliorations des premiers utilisateurs.

Sortie de Ruby on Rails 3.2.0

Posté par (page perso) . Édité par Xavier Claude. Modéré par Xavier Claude. Licence CC by-sa
Tags :
29
21
jan.
2012
Ruby

Ruby on Rails est un framework de développement web agile, sous licence MIT. La version 3.2.0 est sortie hier, avec au menu :

  • Amélioration des performances : un nouveau moteur pour le routage, Journey, a fait son apparition et, en mode développement, seules les classes réellement modifiées sont rechargées ;
  • Requêtes SQL Explain : il est maintenant très facile de faire une requête Explain depuis la console pour vérifier la présence d'un index ou optimiser une requête (Person.active.limit(5).explain par exemple) et ce sera fait par défaut pour les requêtes prenant plus de 0,5 seconde en mode développement ;
  • Active Record Store : Active Record permet maintenant d'utiliser un champ d'une base de données SQL comme un stockage de type clé/valeur ;
  • Logger avec des tags : la classe TaggedLogging permet de préfixer chaque ligne de log avec un ou plusieurs tags. Exemple :

logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
logger.tagged("BCX") { logger.info "Stuff" }
# Logs "[BCX] Stuff"

Je vous recommande d'utiliser Ruby 1.9.3 pour profiter pleinement de cette version de Rails. Mais dans le cas où vous seriez coincé avec un Ruby 1.8.7, pensez à mettre à jour Rubygems, il semblerait que l'installation ne se passe pas très bien avec des versions un peu anciennes de rubygems.

Note : LinuxFr.org tourne depuis aujourd'hui avec Rails 3.2.0.

Sortie de Ruby on Rails 3.1.0

Posté par (page perso) . Modéré par patrick_g. Licence CC by-sa
28
1
sept.
2011
Ruby

Ruby on Rails est un framework de développement web agile, sous licence MIT. Après 8 releases candidates, la version 3.1.0 est sortie aujourd'hui.

Les nouveautés sont nombreuses mais les plus importantes sont :

  • jQuery est devenu le framework javascript par défaut (à la place de Prototype) ;
  • L'Asset Pipeline permet de gérer la compilation, la minification et la gestion des dépendances pour les feuilles de style et le fichiers javascript ;
  • Sass et CoffeeScript sont maintenant proposés par défaut ;
  • Les migrations SQL ont été revues (plus simples à écrire mais également plus de possibilités offertes) ;
  • Les réponses peuvent être envoyées en plusieurs morceaux (HTTP streaming), ce qui peut être utilisé pour optimiser le temps de chargement des pages ;
  • La documentation de l'API utilise maintenant SDoc.

Note : il est prévu que LinuxFr.org passe rapidement à cette version.

Sortie de Ruby 1.9.3

Posté par (page perso) . Modéré par Xavier Teyssier. Licence CC by-sa
Tags :
28
31
oct.
2011
Ruby

La version 1.9.3 de Ruby vient de sortir. Cette nouvelle version apporte peu de modifications visibles, le gros des modifications se faisant sous le capot.

Parmi les changements notables, nous retrouvons :

  • la licence accompagnant Ruby est maintenant la licence BSD (c’était la GPL v2 jusqu’à présent) ;
  • le chargement plus rapide des bibliothèques, qui devrait être très appréciable pour les projets Rails ;
  • une meilleure gestion du multi‐threading ;
  • la prise en charge d’Unicode 6.0 ;
  • le moteur par défaut pour le YAML devient Psych ;
  • la mise à jour de Rubygems (1.8.10), JSON (1.5.4), Minitest (2.2.2), Rake (0.9.2.2) et Rdoc (3.9.4).

Bien entendu, vous êtes encouragés à passer rapidement à Ruby 1.9.3, en sachant que certaines versions ne seront bientôt plus maintenues :

  • les mainteneurs de Ruby vont encore proposer les correctifs de sécurité pour Ruby 1.9.1, jusqu’à janvier 2012. Après quoi, cette version sera officiellement morte ;
  • pour les utilisateurs de Ruby 1.8.7, les choses vont se faire plus en douceur : maintenance normale jusqu’à juin 2012, puis maintenance de sécurité uniquement jusqu’à juin 2013.

Pour le futur, une version 1.9.4 est prévue pour l’année prochaine et surtout, la sortie de Ruby 2.0 pourrait arriver en février 2013 pour les 20 ans de Ruby.

En vrac spécial Ruby : JRuby, Sinatra et Goliath

Posté par (page perso) . Modéré par Xavier Teyssier.
Tags :
27
20
mar.
2011
Ruby

JRuby

JRuby est une implémentation complète de Ruby au-dessus de la machine virtuelle Java. La version 1.6 récemment sortie apporte des fonctionnalités majeures :

  • compatibilité avec Ruby 1.9.2, aussi bien pour le langage que pour l'API ;
  • prise en charge expérimentale des extensions écrites en C ;
  • profiler intégré ;
  • performances améliorées ;
  • meilleure expérience utilisateur sous windows ;
  • etc.

Sinatra

Sinatra est un micro-framework en Ruby pour construire rapidement des applications web (licence MIT). La version 1.2 est sortie au début du mois avec des nouveautés intéressantes :

Goliath

Goliath est un serveur HTTP en Ruby sous licence MIT. Sa particularité est de s'appuyer sur EventMachine et les fibres de Ruby 1.9. Il peut ainsi fonctionner de manière asynchrone et performante tout en gardant le code lisible (l'exécution reste linéaire et ne repose pas sur des callbacks enchainés comme on peut le voir dans d'autres environnements).

En pratique, Goliath convient bien pour écrire des services HTTP en complément d'une application web : API de streaming, upload de fichiers volumineux, proxy HTTP adaptés, etc.

Petites brèves : Ruby 2.0, DataMapper et RubyLive

Posté par (page perso) . Modéré par Nÿco. Licence CC by-sa
Tags :
27
27
oct.
2011
Ruby

Matz, le créateur de Ruby, a récemment créé une nouvelle branche de développement qui va accueillir les développements pour la version 2.0 de Ruby. Bien que le numéro de version laisse penser qu’il y aura de gros changements, cela devrait pourtant être une version avec moins de changements que pour Ruby 1.9, avec une date de sortie prévue pour début 2013.

La liste des fonctionnalités est encore en cours de discussion, mais on devrait notamment y retrouver les arguments sous forme de mots‐clés, l’importation‐exportation du bytecode de la machine virtuelle, la transformation de la bibliothèque standard en gems (les bibliothèques dans le monde Ruby), un meilleur ramasse‐miette (garbage collector).

DataMapper est le principal concurrent d’ActiveRecord dans le domaine des ORM dans le monde Ruby, il est sorti en version 1.2.0. Côté nouveautés, nous retrouvons des performances améliorées, des corrections de bogues et surtout la prise en charge de Rails 3.1.

Enfin, si vous souhaitez suivre l’actualité Ruby, un nouveau site Web vient de sortir : RubyLive. C’est un site collaboratif, où chacun peut proposer des liens vers des ressources Ruby et/ou Rails, avec une description en français.

Sortie de Ruby on Rails 4.0

26
4
juil.
2013
Ruby

Ruby on Rails est sorti le 25 juin 2013 en version 4.0. Tous les détails dans la seconde partie de cette dépêche !

Gérez vos projets avec Redmine

Posté par (page perso) . Modéré par Lucas Bonnet.
23
10
jan.
2011
Ruby
Redmine est une forge logicielle sous licence GPL. Ses concurrents se nomment Trac, Retrospectiva, Django Projector ou encore InDefero, mais Redmine se défend très bien et offre un ensemble de fonctionnalités difficile à égaler :
  • Prise en charge de plusieurs projets ;
  • Contrôle d'accès avec un modèle flexible de rôles ;
  • Gestion avancée des tickets ;
  • Diagramme de Gantt et calendrier ;
  • Publication de news, documents et gestionnaire de fichiers ;
  • Notifications par emails et flux ATOM ;
  • Wiki et forums par projet ;
  • Outil de suivi du temps ;
  • Champs personnalisables pour les tickets, suivi de temps, projets et utilisateurs ;
  • Intégration avec plusieurs SCM : SVN, CVS, Git, Mercurial, Bazaar et Darcs ;
  • Création de tickets par email ;
  • Possibilité de se brancher sur de multiples annuaires LDAP pour l'authentification ;
  • Traduction dans 34 langues dont le français ;
  • Extensible grâce à ses greffons ;
  • Et plein d'autres choses encore...


Redmine est écrit en Ruby on Rails et vient de sortir en version 1.1. Vous pouvez l'essayer sur le site officiel ou sur la demo.

Petites brèves : Sinatra 1.3, entretiens concernant la communauté Ruby et programmation UNIX

Posté par (page perso) . Modéré par Lucas Bonnet. Licence CC by-sa
Tags :
23
4
oct.
2011
Ruby

Sinatra 1.3

Sinatra est une bibliothèque Ruby permettant de développer rapidement des applications Web (sous licence MIT). La version 1.3.0 vient de sortir et apporte une API de streaming, la prise en charge du verbe HTTP PATCH, l’ajout d’une méthode utilitaire logger et des corrections de bogues.

À l’occasion de cette sortie, un nouveau projet a vu le jour : Sinatra::Contrib. Il regroupe les extensions à Sinatra les plus courantes et permettra de gérer plus facilement la compatibilité entre les versions publiées. Par exemple, quand la version x.y.z de Sinatra sortira, le mainteneur, Konstantin Haase, publiera également la version x.y.z de Sinatra::Contrib, qui aura été testée pour s’assurer de sa compatibilité.

Enfin, c’est également l’occasion de noter le récent site Web Sinatra Recipes, qui regroupe des astuces et bonnes pratiques sur Sinatra.

Entretiens concernant la communauté Ruby en France

Camille Roux a interrogé plusieurs membres de la communauté Ruby en France :

Programmation UNIX avec Ruby

Pour finir, je vous propose un petit lien qui pourra intéresser quelques‐uns d’entre vous : Eric Wong a publié une série d’articles sur la programmation système UNIX avec Ruby.

L'admin pressé - RVM

Posté par (page perso) . Édité par Benoît Sibaud, Nÿco, Katyucha, frayd, palm123, NeoX et ariasuni. Modéré par Nÿco. Licence CC by-sa
Tags :
23
25
nov.
2013
Ruby

Mais qui est donc ce Hervé M. ? Ruby Version Manager est un ensemble de scripts qui va permettre d'installer différents environnements Ruby. On va tout d'abord voir d'un point de vue général ce que c'est et à quoi ça peut servir. Dans un second temps, on va voir les commandes de base pour s'en sortir sans trop de difficulté, et puis s'il y a encore du monde, on verra peut-être un exemple.

RVM

Sortie de Ruby 1.9.2

Posté par (page perso) . Modéré par tuiu pol.
Tags :
22
19
août
2010
Ruby
Yuki Sonoda (Yugui) a annoncé la sortie officielle de Ruby 1.9.2. Bien que le numéro de version n'en montre rien, cette version est très importante et pourrait marquer le passage de Ruby 1.8 à Ruby 1.9.

Rappelons que Ruby est un langage de programmation orienté objets, à typage dynamique et qui s'est inspiré de Lisp, Perl, Smalltalk, Eiffel, etc. Sa principale caractéristique est de mettre en avant les besoins humains avant ceux informatiques, et notamment le fun et la productivité.

Jusqu'à Ruby 1.8, l'interpréteur était écrit par Yukihiro Matsumoto (Matz), le concepteur du langage. Koichi Sasada (ko1n) a commencé une réécriture complète pour apporter les dernières avancées techniques à Ruby. Le projet a commencé sous le nom de code YARV, puis Matz en fait la version officielle de Ruby à partir de Ruby 1.9.

Le premier avantage de Ruby 1.9 est ses performances. Ruby était réputé pour n'être pas très rapide, mais les avancées de Ruby 1.9, et notamment le ramasse-miettes, lui permette d'être de 3 à 5 fois plus rapide que Ruby 1.8. Parmi les autres avancées importantes de Ruby 1.9, nous pouvons citer la gestion des encodages, de nouvelles fonctionnalités comme les fibres ou encore des améliorations de la syntaxe (en particulier, celles des Hashs).

Les versions 1.9.0 et 1.9.1 manquaient de stabilité. La communauté Ruby les a considérées comme des versions de développement et rares sont les développeurs à les avoir utilisées en production. La version 1.9.2 devrait changer la donne : cette version est bien plus solide et on devrait assister à une migration massive vers Ruby 1.9. Si jamais ce n'était pas le cas, les implémentations alternatives comme Rubinius ou JRuby pourraient fort bien attirer les foules et devenir prédominantes.

Pour installer Ruby 1.9.2, vous pouvez télécharger les sources sur http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p0.tar.bz2 ou, pour les utilisateurs de RVM :
rvm update --head && rvm reload && rvm install 1.9.2 && rvm 1.9.2

Quelques nouvelles de l'écosystème Ruby

Posté par (page perso) . Édité par Benoît Sibaud, NeoX, Nÿco et Pierre Jarillon. Modéré par Pierre Jarillon. Licence CC by-sa
22
16
avr.
2012
Ruby

Le 12 avril 2012, l'ISO (International Organization for Standardization) a publié le standard ISO/IEC 30170 qui spécifie la syntaxe et la sémantique du langage Ruby. Ce projet, en gestation depuis 2008, a pu aboutir grâce au groupe de travail mené par Ikuo Nakata, professeur à l'université de Tsukuba. La standardisation du langage était une étape sine qua non pour son utilisation au sein de l'administration japonaise.

Le 26 mars 2012, la Free Software Foundation a attribué le FSF award (trophée du libre) 2011 à Yukihiro Matsumoto, le créateur du langage Ruby, pour son travail sur le projet GNU et Ruby durant ces 20 dernières années. Pour rappel, cette récompense est attribuée aux personnalités ayant apporté une grande contribution au progrès et au développement du logiciel libre.

Alors que de nombreuses personnes attendent toujours la sortie de la version 2 de Rubinius (interpréteur Ruby basé sur LLVM), l'initiateur du projet, Evan Phoenix, a indiqué qu'il quittait Engine Yard pour LivingSocial. Sachant que son ancien employeur le mettait à disposition à temps plein sur le sujet avec un autre ingénieur, on devine facilement les craintes de la communauté vis-à-vis de l'avenir du projet.

Redmine Git Hosting 0.7

21
21
avr.
2014
Ruby

Après un peu plus d'un an de travail, JBox Web est fière d'annoncer la sortie de la version 0.7 du plugin Redmine Git Hosting. Pour rappel, ce plugin pour Redmine, le fameux gestionnaire de projet codé avec Ruby on Rails, permet d'améliorer la gestion des dépôts Git en s'interfaçant avec Gitolite. Depuis la version 0.6 de nombreuses fonctionnalités ont été rajoutées et un gros travail de refonte du code et d'optimisation a été réalisé.

Vous trouverez toute la documentation nécessaire dans le Wiki du projet Github.

Mise à jour : depuis la rédaction de la dépêche, le plugin a reçu deux mises à jour mineures. La dernière version à utiliser est donc la 0.7.2.

ChiliProject: Redmine forké

Posté par (page perso) . Modéré par Jaimé Ragnagna.
Tags :
20
3
fév.
2011
Ruby
Redmine, la forge-logicielle libre bâtie sur Ruby on Rails, a été forkée. Initialement lancé en 2006 par Jean-Philippe Lang, ce projet a vite trouvé sa place grâce à ses capacités multi-projets, manquant au vénérable Trac.

Le torchon a brûlé entre JP Lang et les développeurs de la communauté : « intégration sporadique des patchs, manque de réactivité » sont les arguments avancés par les fondateurs de ce fork.

Rubinius 1.0 est sorti

Posté par (page perso) . Modéré par Nÿco.
Tags :
19
15
mai
2010
Ruby
Rubinius est une implémentation du langage de programmation Ruby, dont le code est placé sous licence BSD. Rubinius permet d'exécuter du code Ruby, mais vise également les objectifs suivants :
  • Rubinius est Threadsafe ;
  • Son code est propre, lisible, facile à comprendre et à étendre ;
  • Il est fiable et solide (avec l'aide de Valgrind) ;
  • Et surtout, il apporte les dernières avancées de la recherche sur les machines virtuelles, les ramasses-miettes et les compilateurs à Ruby.
Le développement de Rubinius a commencé en novembre 2006 et, aujourd'hui, une étape importante a été franchie : la sortie de la version 1.0. Celle-ci marque la compatibilité avec Ruby 1.8.7, y compris Ruby on Rails (aussi bien la version 2.3 et que la version 3), Rspec, Rubygems, les bibliothèques Ruby et même une grande partie des extensions codées en C.

D'un point de vue plus technique, Rubinius est écrit majoritairement en Ruby, et pour les parties où ce n'est pas (encore) possible en C++. Il fonctionne avec une machine virtuelle dont le bytecode est transformé en code machine à l'exécution grâce à LLVM et utilise un garbage collector générationnel, précis et compactant. Et pour ceux qui seraient d'humeur taquine, je ne résiste pas à l'envie de mettre un petit lien vers un benchmark. Vous pouvez voir que Rubinius est l'implémentation Ruby la plus rapide, ou du moins, l'était en janvier quand le benchmark a été fait.

Si vous êtes convaincus, vous pouvez installer Rubinius soit en suivant les instructions officielles, soit en utilisant Ruby Version Manager. Je recommande d'utiliser la seconde solution, car RVM vous permet d'installer plusieurs implémentations de Ruby sur la même machine, d'installer des gems pour chacun d'eux et de passer d'une implémentation à l'autre sans problème.

Les pouvoirs magiques d'Unicorn 1.0.0

Posté par (page perso) . Modéré par baud123.
19
19
juin
2010
Ruby
Unicorn est un serveur applicatif HTTP en Ruby comparable à Mongrel ou à Thin, sous licence GPLv2. Il est utilisé notamment par Twitter et Github et vient d'atteindre la version 1.0.

Unicorn est compatible avec Rack, une interface entre les serveurs applicatifs et les frameworks. Il peut ainsi être utilisé pour servir des applications Ruby, dont celles écrites en Ruby on Rails. Il tourne avec Ruby 1.8, Ruby 1.9 et bientôt Rubinius. Rappelons que Rubinius est une implémentation alternative de Ruby dont la version 1.0 est sortie récemment.

Unicorn s'appuie au maximum sur les noyaux Unix pour éviter de réinventer la roue. Par exemple, la répartition des requêtes entre les différents processus se fait grâce à une socket partagée. Il est également possible de mettre à jour Unicorn, l'application ou l'interpréteur Ruby sans perdre la moindre connexion.

De même, Unicorn est optimisé pour servir des clients rapides. Il est donc très souvent utilisé derrière un reverse-proxy, qui pourra bufferiser les requêtes des clients lents.

A l'inverse, utiliser Unicorn pour des connexions longues comme du Comet (Comet désigne un ensemble de techniques où un serveur maintient des connexions HTTP ouvertes pour pouvoir pousser des contenus vers les clients) ou des websockets serait très inefficace, je vous conseille pour cela de regarder Rainbows : c'est un projet inspiré d'Unicorn qui vise justement à répondre à cette problématique particulère.

Reia, un langage fortement inspiré de Ruby

Posté par (page perso) . Modéré par j.
19
18
déc.
2010
Ruby
Ruby est un langage de programmation génial (je vous assure, je suis totalement objectif quand je dis ça ;-) ), mais qui a quand même quelques petits défauts. On peut par exemple citer la mauvaise prise en charge de la concurrence ou l'absence de rechargement de code à chaud. À l'opposé, Erlang a une syntaxe parfois cryptique mais sa machine virtuelle est très avancée pour tout ce qui concerne les aspects distribués, la concurrence et la tolérance aux erreurs.

Reia est un langage de programmation qui cherche à prendre le meilleur des 2 mondes (licence MIT). Le code en reia ressemble à s'y méprendre à du code Ruby, mais il s'exécute sur la machine virtuelle d'Erlang. Voici à titre d'exemple le très classique Hello World :

"Hello world!".puts()

Pour le moment, il n'y a pas encore de version officielle de reia. Si vous souhaitez l'essayer, il vous suffit de cloner le dépôt git, d'avoir Erlang et Rake installés puis de lancer rake.

DataMapper 1.0

Posté par (page perso) . Modéré par Mouns.
Tags :
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.

Sortie de Ruby 1.9.3-p125 pour corriger une faille de sécurité

Posté par (page perso) . Édité par Nÿco et Benoît Sibaud. Modéré par Lucas Bonnet. Licence CC by-sa
Tags :
18
16
fév.
2012
Ruby

La version 1.9.3-p125 de Ruby est sortie aujourd'hui. Elle vient corriger une faille de sécurité dans le module OpenSSL, ainsi que d'autres bugs.

Dans OpenSSL, l'option SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS pour les connexions SSL est utilisée pour se prémunir d'une vulnérabilité de TLS-CBC-IV. Il s'agit d'une faille bien connue de TLSv1/SSLv3, qui est revenue sur le devant de la scène sous le nom d'attaque BEAST (CVE-2011-3389). Jusqu'à présent, l'extension OpenSSL de Ruby ne permettait pas de désactiver cette option. Or, pour contrer l'attaque BEAST, il s'avère que Ruby doit laisser la possibilité aux utilisateurs de la désactiver afin d'insérer des fragments vides au début des connexions SSL (le fameux "0/n splitting").