Sortie de Ruby 1.9.2

Posté par  (site web personnel) . Modéré par tuiu pol.
Étiquettes :
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

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.

Mailman, Locomotive, Greenletters et re2

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
12
29
juil.
2010
Ruby
Dans le cadre du Ruby Summer of Code, un des étudiants a publié un micro-framework pour traiter des courriels entrants. Mailman est sous licence MIT et en est encore à ses balbutiements (et n'a rien à voir avec GNU Mailman logiciel libre de gestion de listes de diffusion). Pour le moment, il permet d'aller chercher des courriels en POP3 ou depuis un Maildir et d’exécuter des actions pour chaque courriel en fonction de critères sur l'émetteur, le destinataire, le titre ou le contenu.

Locomotive CMS est, comme son nom l'indique, un système de gestion de contenu et est sous licence MIT. Il est écrit en Ruby on Rails et fonctionne avec une base de données MongoDB. Il peut être déployé pour gérer un ou plusieurs sites ou être utilisé sous forme d'engine au sein d'une application Rails plus large.

Greenletters est un clone d'Expect écrit en Ruby. Il permet donc d'automatiser des interactions avec des outils en ligne de commande comme telnet, ftp, passwd, etc. Greenletters peut aussi être utilisé depuis des specs Cucumber en utilisant les raccourcis fournis.

RE2 est une bibliothèque développée par Google pour manipuler des expressions rationnelles de manière efficace. Il existe désormais des bindings pour profiter de cette bibliothèque en Ruby.

RedNotebook 1.0

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
21
30
juin
2010
Bureautique
RedNotebook est un logiciel sous licence GPLv2 qui vous permet de tenir un journal. Il vous aide ainsi à garder trace de vos notes et pensées et de naviguer à travers celles-ci via un calendrier, un nuage de tags, une hiérarchie de catégories ou un moteur de recherche.

RedNotebook est écrit en Python et GTK. Il est donc possible de le faire fonctionner sur de nombreuses plateformes dont GNU/Linux, Mac OS X et Windows. Il est traduit en 16 langues, dont le français.

Ses principales fonctionnalités sont :
  • L'export d'un journal en PDF, HTML ou texte brut ;
  • Possibilité de formater le texte et d'inclure des images ou fichiers ;
  • Reconnaissance automatique des URL et adresses de courriel ;
  • La prise en charge du glisser-déposer ;
  • La correction orthographique ;
  • Enregistrement automatique dans des fichiers plats, en local ou à distance (ssh, ftp ou webdav) ;
  • Des gabarits par jour de la semaine ou nommés ;
  • Possibilités avancées comme gérer plusieurs journaux ou chiffrer un journal.

RabbitMQ 1.8.0

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
14
20
juin
2010
Technologie
RabbitMQ est une solution de messagerie d'entreprise complète et fiable, qui implémente le standard AMQP (Advanced Message Queuing Protocol). Elle est écrite en Erlang, publiée sous licence MPL et en concurrence avec Apache Qpid et ØMQ.

Le projet RabbitMQ comporte plusieurs composants :
  • Le serveur, pièce maîtresse, en charge du routage des messages, des files d'attentes, de la gestion des droits, etc. ;
  • Des passerelles pour les protocoles HTTP, XMPP et STOMP ;
  • Des bibliothèques client AMQP pour Java et .Net (il existe de nombreuses bibliothèques pour les autres langages développées ailleurs) ;
  • Des greffons comme Shovel (pour déplacer un message d'une instance de RabbitMQ vers une autre) ou rabbitmq-bql (un langage qui ressemble à du SQL pour interroger et configurer une instance de RabbitMQ).

La version 1.8.0, sortie récemment, est la première depuis le rachat de Rabbit Technologies Ltd. par SpringSource, une filiale de VMWare. Elle apporte de nouvelles API pour étendre le fonctionnement de RabbitMQ par des greffons, ainsi que diverses optimisations.

Les pouvoirs magiques d'Unicorn 1.0.0

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
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.

Petites brèves, spécial Javascript

Posté par  (site web personnel) . Modéré par Xavier Teyssier.
Étiquettes :
14
18
juin
2010
Internet
HTTP-console est un outil en ligne de commande qui vous permet de faire des requêtes HTTP et d'examiner la réponse. C'est donc une sorte de Curl, mais son mode interactif en fait un outil très pratique si vous avez à débugger une API Rest. Pour ceux qui préfèrent les interfaces web à la ligne de commande, vous pouvez regarder Hurl (code source).

PDF.js est une bibliothèque javascript qui permet de générer des fichiers PDF simplement. Elle peut être utilisée dans un navigateur web ou coté serveur avec Node.js.

À propos de Node.js, Ryan Dahl, son créateur, viendra en parler lors du Web Workers Camp le 3 juillet à la Cantine, Paris. Node.js est une implémentation Javascript côté serveur qui utilise le moteur V8 de Google Chrome. Il est publié sous licence MIT et est très performant. Par exemple, il est possible de faire tourner des composants serveur XMPP avec xmpp.js.

Enfin, pour ceux qui préfèrent utiliser jQuery (une bibliothèque Javascript facilitant le développement d'un site web), Rebecca Murphey a mis en ligne un livre intitulé « jQuery fundamentals », sous licence CC by-sa. Celui se compose de trois parties : une introduction au Javascript, les concepts de base de jQuery et jQuery avancé (la troisième partie n'est pas encore là).

StropheCappuccino est un ensemble de classes Javascript qui - comme le nom l'indique - lient Capuccino (framework pour applications desktop-like) à Strophe (bibliothèque XMPP). Il permet donc d'écrire de vraies applications desktop en Javascript se reposant sur XMPP.

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.

Présentation de nginx

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
21
17
juin
2010
Internet
Nginx est un reverse proxy et serveur web, ainsi qu'un proxy mail (IMAP et POP3), sous licence BSD. Igor Sysoev a commencé à le développer en 2002 pour un site russe à fort trafic, et depuis la popularité de nginx n'a cessé de croître. Selon netcraft, 6,5% des sites web dans le monde seraient servis par nginx.

Nginx est réputé pour ses performances et sa faible consommation mémoire. Cela vient de son architecture : au lieu de dédier un processus ou un thread pour traiter chaque requête, il utilise un modèle événementiel. Cela lui permet notamment de tenir un grand nombre de connexions simultanées sans voir sa consommation mémoire s'envoler. Des sites connus comme Wordpress, github et SourceForge l'ont choisi pour cette raison.

Nginx est également développé selon une approche modulaire : il est composé d'un cœur réduit et d'un grand nombre de modules que l'on peut choisir d'inclure à la compilation. Comme il est facile de développer un module, il en existe de nombreux et qui couvrent une large palette de fonctionnalités, des plus essentielles (SSL, fastcgi, gzip, rewrite, log) aux plus exotiques (servir des fichiers GIF vides, afficher des pages d'index aléatoires).

Si vous souhaitez télécharger nginx, 3 versions vous seront proposées : la branche 0.8 offre les dernières avancées, la branche 0.7 est la branche stable, et la branche 0.6 (legacy) est encore maintenue. La dernière version, sortie le 15 juin, est la 0.8.41. Vous pourrez l'installer sur Linux, BSD, Solaris, OSX ou encore Windows.

Transmission 2.00

Posté par  (site web personnel) . Modéré par Mouns.
Étiquettes :
19
16
juin
2010
Internet
Transmission est un client BitTorrent multi-plateforme libre. Il propose cinq interfaces utilisateur : ligne de commande, Web, GTK+, Qt et Mac OS X.

La version 2.00 vient de sortir et offre principalement des optimisations pour le téléchargement, mais également un démarrage plus rapide, une vue compacte, et les classiques corrections de bugs. Cette nouvelle version n'est donc pas une révolution, mais vient plutôt marquer l'accomplissement des changements apportés depuis la version 1.00 pour en faire un client BitTorrent agréable et pratique à utiliser.

Ainsi, transmission est un client facile à utiliser, léger, avec une bonne intégration aux différents environnements, mais qui n'en reste pas moins puissant (chiffrement, échange de peers, liens magnet, DHT, etc.).

Ce qui est moins connu, c'est son extensibilité via les add-ons. On trouve parmis celles-ci le contrôle à distance (dont téléphones mobiles), des interfaces, ou d'autres encore, malgré un écosystème encore assez peu étendu.

Petites nouvelles pour rubyistes

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes : aucune
14
16
juin
2010
Ruby
Les Ruby Hero Awards sont remis une fois par an, lors de la RailsConf, et mettent en avant des personnes ayant fait avancer la communauté Ruby. Cette année, six trophées ont été remis :

Un sondage Ruby est organisé pour mieux cerner les préférences des développeurs Ruby : Rails ou Sinatra ? Textmate ou Vim ? Espaces ou tabulations ? Si vous êtes un développeur Ruby, je vous encourage à y participer (ça ne prend que deux minutes).

Pour ceux qui ont la malchance d'être sous Windows, sachez qu'il existe un moyen simple d'installer Ruby sur votre plateforme : l'installeur. Les versions de Ruby disponibles ont été mises à jour la semaine dernière et le site vient d'être refait.

Enfin, le 19 août sera l'occasion de célébrer le Why Day, en l'honneur de Why the lucky stiff. Ce hacker a très fortement influencé la communauté Ruby, par ses écrits et notamment le guide poignant de why, ses projets Ruby (Camping, Shoes, RedCloth, Try Ruby, etc.), et plus généralement par sa présence en ligne. Le 19 août de l'année dernière, il a décidé de supprimer toute son activité en ligne, probablement pour préserver son anonymat. Le Why Day sera l'occasion de lui rendre hommage et de se lancer dans des projets fous.

SparkleShare pour partager vos fichiers sur internet

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
10
11
juin
2010
Mono
SparkleShare est un outil de partage de fichiers sous licence GPL.
Inspiré de Dropbox, il se veut à la fois simple, pratique et efficace.

En pratique, SparkleShare tourne en tâche de fond synchronisant vos répertoires partagés avec votre serveur (ou ceux de vos amis).
Il est écrit en Mono et GTK+, s'intègre bien à GNOME et, particularité intéressante, utilise git.
Il est ainsi capable de versionner les documents et de garder la trace de qui a fait quelle modification.
Vous serez également notifié des changements dès que ceux-ci auront été synchronisés.

Le projet est encore très jeune, il devrait fonctionner sous Linux, et il est prévu de le porter sur windows et OSX.

N'hésitez pas à contribuer pour aider son auteur à faire avancer cet outil.

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.

Sortie de la version 0.6 de Grisbi, logiciel de comptabilité

Posté par  (site web personnel) . Modéré par Nÿco.
21
4
juin
2010
Bureautique
Grisbi est un logiciel de comptabilité personnelle sous licence GPL. C'est un programme écrit par des Français qui respecte parfaitement l'esprit de la comptabilité à la française.

Développé dans un esprit de simplicité, il n'en supporte pas moins des fonctionnalités avancées. Grisbi est multi-comptes, multi-devises, et multi-utilisateurs. Il gère les tiers, les catégories de recettes et de dépenses, mais aussi les imputations budgétaires et les exercices.

La version 0.6 est sortie récemment et apporte les nouveautés suivantes :
  • Chiffrement des fichiers
  • Nouveau système d'impression
  • Interface utilisateur améliorée
  • Import des fichiers au format CSV et GnuCash
  • Astuce du jour
  • Travail conséquent pour améliorer l'internationalisation
  • Système de plugins
  • Et bien d'autres encore !
NdM : merci à MrBidon pour avoir proposé un journal sur le même sujet.

Activité du site LinuxFr.org

Posté par  (site web personnel) . Édité par Benoît Sibaud. Modéré par baud123.
33
2
juin
2010
LinuxFr.org
Le site LinuxFr.org vit grâce aux contributions de ses lecteurs. Merci à vous tous, on ne le répétera jamais assez. La communauté LinuxFr.org est active et instructive.

L'équipe de modération essaye de faire en sorte que LinuxFr.org reste cet espace vivant avec des dépêches sur Linux et les Logiciels Libres, un espace d'entre-aide, des discussions sur des sujets divers et variés, et tout cela sans avoir les chevilles qui enflent. Voici une petite sélection de nos faits d'armes :

Activité de l'équipe de modération
  • Il y a quelques semaines, l'équipe de modération s'est un peu renouvelée. Thomas Petazzoni, Scara et xals, pas mal occupés par ailleurs, nous ont quitté. Merci à eux pour le temps qu'ils ont consacré à LinuxFr. Nous pouvons saluer l'arrivée de Malicia, claudex et boa13, déjà très actifs !
  • À l'occasion du salon Solutions Linux 2010, Nils Ratusznik a donné un entretien à Intelli'N TV. C'est l'occasion de faire une séance de rattrapage pour ceux qui ne connaissent pas le site sur le bout des doigts.
  • NeoX va atteindre les 5000 réponses sur le forum. Chapeau !
  • Nÿco a atteint les 250 dépêches, Floxy et poltuiu font la course à leur 200ème dépêche, et moi, je me concentre sur ma série de 6 dépêches en 6 jours.
Côté technique
Dans un autre registre, le site tourne actuellement avec Templeet (NdM: lien réédité en 2021 pour pointer vers la version archive.org de l'époque) et très rares sont les personnes à y toucher. J'ai commencé au début de l'année 2009 une réécriture du site en Ruby on Rails. Les chances que ce projet aboutisse m'apparaissaient comme assez faibles quand j'ai commencé, mais bon gré, mal gré, cela avance.

Aujourd'hui, une nouvelle étape a été franchie : j'ai taggé la version alpha1 sur le dépôt git. Je considère que le code contient les fonctionnalités essentielles pour pouvoir remplacer la version actuelle basée sur Templeet. Je vais maintenant m'attacher à corriger les bugs et optimiser le code. J'espère que cette version pourra être mise en ligne bientôt.

Dernière chose, nous utilisons webalizer pour nos statistiques web, et plus précisément le package debian. Celui-ci n'est plus très jour, et si un développeur Debian a un peu trop de temps libre, nous lui serions reconnaissants s'il pouvait regarder ça.