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 !

Netbeans 6.7

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
14
30
juin
2009
Java
NetBeans est un projet qui consiste d'une part en une plate-forme de conception d'applications Java et d'autre part en un environnement de développement intégré - un IDE.

NetBeans a été racheté par Sun en 1999 et est développé en Java. Il est distribué sous double-licence CDDL et GPLv2.

Il est disponible dans de nombreuses langues - et en partie francisé - et prend en charge plusieurs langages de programmation parmi lesquels :
  • Java SE, Java EE, Java ME, JavaFX
  • C / C++
  • Javascript, AJAX...
  • XML
  • PHP
  • Ruby
  • Groovy
  • Python
  • ...

NetBeans dispose de fonctionnalités bien connues des utilisateurs d'IDE : coloration syntaxique, auto-complétion, gestion multi-projets, intégration des documents de référence, support de solutions de gestion de versions, intégration de débogueurs... Le logiciel a été conçu en prenant en compte le principe de la modularité. Il est ainsi proposé au téléchargement via des paquetages centrés sur les langages employés : PHP, C, JavaFX, Ruby, etc. mais rien n'empêche d'ajouter de nouvelles fonctionnalités via le système d'extensions.

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.

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.

Sortie d'Elastic Search en version 0.19

Posté par  (site web personnel) . Édité par baud123 et NeoX. Modéré par Lucas Bonnet. Licence CC By‑SA.
14
3
mar.
2012
Base de données

Elastic Search est un moteur de recherche full-text, sous licence Apache 2. Plus précisément, c'est une interface Rest (Representational State Transfer) distribuée, utilisant le format JSON, qui permet d'exposer des index Lucene pour construire des moteurs de recherche avec des fonctionnalités avancées comme de la recherche par facette. On peut donc le comparer à Solr, mais avec une approche plus moderne et plus proche du mouvement NoSQL.

Il existe de nombreux clients pour Elastic Search comme la gem Tire dans le monde Ruby ou ElasticSearch.pm pour Perl. Elastic Search est utilisé en production par Mozilla, Stumble Upon , yfrog, Klout, af83, etc.

NdM : LinuxFr.org utilise Elastic Search pour son moteur de recherche interne, dans sa version 0.19 depuis le jour de sa sortie. Merci Lukhas !

Spree 1.0.0

Posté par  (site web personnel) . Édité par Xavier Teyssier, baud123 et Nÿco. Modéré par Malicia. Licence CC By‑SA.
14
10
fév.
2012
Ruby

Spree est une solution d'e-commerce, sous licence libre, écrite avec le framework Ruby on Rails. Après cinq ans de développement, elle vient d'atteindre la version 1.0.0 grâce à plus de 150 contributeurs.

Spree est une plateforme d'e-commerce complète conçue pour simplifier le développement d'applications e-commerce en faisant certaines suppositions. Elle peut-être utilisée telle quelle mais, plus important, elle est surtout pensée pour être une base solide pour que des développeurs puissent l'utiliser dans des développements plus importants. Voici les quatre opinions à la base de la vision de Spree :

  1. Aucune solution ne peut satisfaire tout le monde. Spree se concentre sur fournir les 80 % des fonctionnalités les plus utiles, charge aux développeurs de coder les 20 % restantes, spécifiques à chaque projet.
  2. Le commerce en ligne n'est pas pour les débutants. Spree vise un public de développeurs Rails aptes à se confronter aux besoins avancés nécessaires pour les boutiques en ligne sérieuses.
  3. Les développeurs ont besoin d'un contrôle total. Spree ne doit pas se mettre en travers du chemin des développeurs quand ceux-ci travaillent sur les fonctionnalités spécifiques et rester suffisamment souple pour permettre les adaptations à moindre coût.
  4. Il faut rester concentré. Spree est une solution d'e-commerce et ne doit pas s'éparpiller. Il n'y a pas de raison de proposer des fonctionnalités de type CMS alors qu'il existe déjà des CMS dans le monde Rails comme Radiant.

À partir de cette vision, les développeurs de Spree ont réussi à construire une solution d'e-commerce robuste, offrant de nombreuses fonctionnalités, parmi lesquelles on retrouve :

  • Apparence facilement personnalisable ;
  • Parcours client flexible ;
  • Gestion avancée du catalogue de produits ;
  • Interface de gestion des commandes ;
  • Prise en charge de nombreuses passerelles de paiement et de calcul de frais de ports ;
  • Traduction en 30 langues ;
  • Plus d'une centaine d'extensions.

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.

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.

Dernière ligne droite pour le concours LinuxFr.org

Posté par  (site web personnel) . Modéré par j.
Étiquettes :
14
29
déc.
2010
LinuxFr.org
À l'occasion de la nouvelle version de LinuxFr.org, nous organisons un concours. Nous sommes dans la dernière ligne droite, le concours finit le 5 janvier 2011 à 23h59. Il vous reste juste le temps pour y participer sur l'une de ces catégories (ou les deux) :
  • Proposer une nouvelle charte graphique ;
  • Réaliser une « killer feature » en HTML5.
Vous pouvez continuer à tester la version bêta^Walpha et à remonter les bugs. En revanche, pour simplifier la vie des participants au concours, cette version ne devrait pas bouger jusqu'à la fin du concours.

Pour rappel, vous pouvez gagner de l'hébergement virtualisé, une tablette Android type Archos 101, des bons d'achat pour du matériel « ouvert » et un 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.

Les informations pour participer au concours sont données dans les dépêches précédentes. Il ne me reste plus qu'à vous souhaiter bon courage.

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.

3 frameworks de développement : Ruby on Rails, Snap et Lamson

Posté par  (site web personnel) . Modéré par tuiu pol.
Étiquettes :
13
25
mai
2010
Internet
Ce week-end, la version 2.3.6 de Ruby on Rails est sorti, suivi de peu par la version 2.3.7. Ces versions apportent un bon nombre de correctifs pour divers problèmes, mais surtout préparent le terrain pour Rails 3. Certaines API vont être supprimées dans Rails 3, et la version 2.3.6 permet d'être averti si votre application Rails utilise une de ces API.

La version 3 va également apporter un grand plus au niveau de la sécurité en échappant par défaut toutes les chaînes de caractères pouvant être sujettes à une attaque XSS. La version 2.3.6 devait permettre de tester ce comportement en installant le greffon Rails XSS. Mais, certains commits n'ont pas été backportés depuis Rails3, rendant ainsi cette protection non seulement inefficace mais aussi source de plantages. Heureusement, la version 2.3.7 est sortie juste après pour réparer ça. Au final, si vous êtes un utilisateur de Rails, vous êtes encouragés à sauter la version 2.3.6 et à passer directement à la version 2.3.7.

Mise à jour : Rails 2.3.8 vient de sortir pour corriger un problème lorsque l'on n'utilise pas le greffon Rails XSS. C'est donc vers cette version qu'il faut migrer.

Et si vous préférez la programmation fonctionnelle, sachez que le développement web vous est aussi ouvert. Par exemple, Snap est un framework web en Haskell sous licence MIT. Snap se décompose en trois parties :
  • Une bibliothèque serveur HTTP très rapide, qui s'appuie sur la boucle événementielle de la libev ;
  • Une monade particulièrement bien adaptée au développement web ;
  • Un moteur de templating XML qui permet de générer entre autres du HTML.
Snap est encore très jeune, mais ses performances sont déjà impressionnantes : plus rapide qu'apache !

Enfin, Lamson est un framework de développement en Python sous la double licence BSD et GPL. Sa particularité est d'être un framework pour les mails. Il propose une approche similaire à celle de Django ou Ruby on Rails, mais pour développer des applications qui gèrent des mails. Vous avez ainsi la possibilité de router des mails entrants, d'utiliser le modèle MVC, d'utiliser des données en provenance de différentes bases de données (relationnelles ou non), d'utiliser un ORM si vous le souhaitez, ou encore d'écrire des tests unitaires. Bref, Lamson permet enfin d'écrire facilement des applications qui gèrent des mails, que ce soient des filtres anti-spams, des mailing-listes, ou des applications très spécifiques.

Sortie de Phusion Passenger 2.2.12

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

Prenez de bonnes habitudes avec Daily Stamp

Posté par  (site web personnel) . Modéré par Xavier Teyssier.
Étiquettes :
13
4
sept.
2010
Ruby
Rails Rumble est une compétition qui se tient une fois par an et dont l'objectif est de faire une application Rails en moins de 48h avec une équipe de moins de quatre personnes. La prochaine édition se tiendra les 16 et 17 octobre prochain, mais je voudrais surtout vous présenter une des applications de l'édition 2009 : Daily Stamp.

Ryan Bates, aussi connu pour ses Railscasts, a développé Daily Stamp pour nous permettre de prendre de bonnes habitudes ou de casser les mauvaises. Il vient de libérer le code source sous licence MIT.

Le fonctionnement est très simple et s'inspire des Seinfeld Calendar : chaque jour, vous apposez un tampon si vous avez bien accompli votre mission et vous marquez des points au fur et à mesure que votre série de jours tamponnés grandit. Par exemple, si votre objectif est d'écrire un billet sur votre blog tous les jours, chaque fois que vous aurez écrit un billet, vous irez tamponner la case du jour sur Daily Stamp. Quand vous aurez atteint un score de 100 points (ou plus si vous le souhaitez), vous devriez avoir adopté l'habitude et pouvoir continuer sans Daily Stamp.

Daily Stamp vous permet d'avoir plusieurs objectifs en parallèle, de personnaliser vos tampons, de rendre publics vos objectifs ou de les garder privés et de suivre les tampons publics de vos amis. Bref, c'est un très bon moyen pour garder sa motivation lorsque l'on souhaite prendre une nouvelle habitude ou casser une mauvaise.

Petites brèves autour de Ruby

Posté par  (site web personnel) . Édité par Benoît Sibaud. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
13
1
fév.
2012
Ruby

RailsFrance.org fait peau neuve. Saluons le travail de Sush, Pierre Nespo, Georget Julien et Laurent Noblet pour donner à la communauté Rails un portail francophone digne de ce nom. Personnellement, je le trouve réussi et j'espère qu'il réussira à être un espace vivant pour la communauté.

Bonjour Gem est un site web qui présente une gem par jour. Rappelons qu'une gem est un package dans le monde Ruby qui peut être installé avec Rubygems.

JRuby, une implémentation alternative de Ruby au-dessus de la JVM, est sortie en version 1.6.6. La branche 1.6 de JRuby a principalement servi à apporter une prise en charge de Ruby 1.9. Avec la version 1.6.6, JRuby a largement atteint cet objectif et la prochaine version sera la 1.7.0.

Devise, le gem souvent utilisé pour l'authentification dans les projets Rails, a atteint la version 2.0. Elle n'apporte pas de changement majeur, l'incrément du numéro majeur vient suite à un changement d'API et se veut un pas vers une bibliothèque vraiment mature pour ce domaine. Notons que LinuxFr.org utilise Devise 2.0 depuis quelques jours.

Sortie de la version 2.0 de Retrospectiva

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
13
9
fév.
2010
Ruby
Retrospectiva est un outil de gestion de projets libre (licence MIT). On peut le comparer à des outils comme Redmine, Trac ou Indefero. Il est toutefois plus orienté sur les approches agiles, notamment via le greffon AgilePM.

Les principales fonctionnalités de Retrospectiva sont :
  • Gestion des tickets avec un workflow personnalisable ;
  • Suivi de l'avancement des jalons et objectifs ;
  • Intégration de subversion et git pour l'affichage des révisions ;
  • Interface d'administration complète ;
  • Multi-projets avec une seule instance ;
  • Traduction dans plusieurs langues, dont le français ;
  • Un wiki avec la possibilité d'attacher des fichiers ;
  • La possibilité d'avoir un blog ;
  • Une installation simplifiée ;
  • Une API Rest et des flux RSS.


La version 2.0 de Retrospectiva vient de sortir, et c'est l'occasion de l'essayer. Si avant cela, vous voulez voir à quoi ressemble Retrospectiva, faites un tour sur le site officiel, il tourne lui-même sous Retrospectiva.