Mailman, Locomotive, Greenletters et re2

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

Petites brèves, spécial Javascript

Posté par (page perso) . Modéré par Xavier Teyssier.
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 (page perso) . Modéré par Xavier Teyssier.
Tags :
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 (page perso) . Modéré par patrick_g.
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 (page perso) . Modéré par Mouns.
Tags :
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 (page perso) . Modéré par baud123.
Tags : aucun
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 (page perso) . Modéré par baud123.
Tags :
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 (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 la version 0.6 de Grisbi, logiciel de comptabilité

Posté par (page perso) . 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 (page perso) . 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 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.

Sortie de Phusion Passenger 2.2.12

Posté par (page perso) . Modéré par patrick_g.
Tags :
13
1
juin
2010
Ruby
Phusion Passenger est un module pour Apache 2 ou Nginx qui permet de déployer simplement des applications Ruby. En particulier, il est très bien adapté aux applications Rails, d'où son surnom de mod_rails. Bien que développé et supporté commercialement par Phusion, l'intégralité du code source est placé sous licence MIT.

La version 2.2.12 est toute fraîche. Elle apporte des corrections de bogues et améliore le support de Bundler, vous permettant ainsi de gérer les dépendances de vos applications et charger les bonnes versions des gems utilisés sur vos projets.

L'installation et la mise à jour peuvent se faire en utilisant le gem passenger, puis en lançant passenger-install-apache2-module ou passenger-install-nginx-module. Brightbox fournit également des paquets pour Ubuntu.

Les développeurs de Passenger recommandent d'utiliser leur version de Ruby. Cette dernière se nomme de façon un peu pompeuse Ruby Entreprise Edition. C'est un Ruby 1.8.7 agrémenté de quelques patches pour améliorer la gestion de la mémoire et le comportement du ramasse-miettes (garbage collector). Ces patches ont été proposés à Matz, mais il les a refusés car ils peuvent dégrader incroyablement les performances dans certains cas en dehors du web.

En vrac, spécial Python

Posté par (page perso) . Modéré par patrick_g.
Tags :
21
31
mai
2010
Python
Pylons est un framework de développement web en Python, dont la version 1.0 vient de sortir (sous licence BSD). Là où Django se positionne comme un framework avec des composants fortement intégrés entre eux, Pylons privilégie un couplage lâche et la réutilisation des bibliothèques Python existantes. Par exemple, pour le templating, Pylons vous laisse le choix entre Mako, Genshi, Jinja2 ou ce que vous voulez. Pylons est utilisé par des sites à fort trafic comme Reddit ou Bittorent.

SQL Alchemy est à la fois une boîte à outils pour manipuler du SQL en Python et un ORM (sous licence MIT). Vous pouvez par exemple l'utiliser pour la partie Modèles d'une application Pylons. La version 0.6 est compatible avec Python 2.4+, Python 3 et Jython.

Fabric est un outil de déploiement et d'administration à distance (sous licence BSD) que l'on pourrait comparer à Capistrano dans le monde Ruby. Son utilisation se fait en deux temps : on commence par écrire un fabfile qui décrit des tâches en utilisant les modules Python fournis par Fabric, puis on peut exécuter ses tâches sur une ou plusieurs machines distantes via l'outil en ligne de commande fab.

Green Unicorn, ou gunicorn, est un serveur HTTP qui respecte l'interface WSGI (sous licence MIT). Son modèle pre-fork s'inspire du projet Ruby Unicorn et permet de faire tourner des applications dans les principaux frameworks Python (Pylons, Turbogears 2, Django). Le développement de gunicorn a commencé à la fin de l'année dernière, mais il avance vite : il en est déjà à la version 0.9.1.

Plone va participer pour la 5ème fois au Google Summer of Code. Quatre projets ont commencé :
  • l'ajaxification des formulaires d'édition de PloneFormGen ;
  • le développement de Core Tiles, qui pourrait servir de base à Plone5 ;
  • la simplification du parcours de création d'un thème Plone à travers l'interface web ;
  • le respect de CMIS, un standard favorisant l'interopérabilité entre les CMS.