Le site LinuxFr.org vit grâce aux contributions de ses lecteurs (oui, c'est vous). Cette dépêche est une occasion de plus de remercier toutes les personnes qui ont participé au site d'une façon ou d'une autre et d'encourager les autres à s'y mettre et regarder ce qu'ils peuvent apporter.
Et, en ce moment, nous avons tout particulièrement besoin de vous. La nouvelle version de LinuxFr.org va arriver et elle a besoin d'une nouvelle charte graphique. Nous avons donc organisé un concours pour recueillir vos propositions et choisir celle qui nous paraît la plus réussie. Pour les autres participants, votre travail ne sera pas perdu : les CSS seront proposées dans la partie « Feuilles de styles personnalisées ».
Le concours finit le 29 décembre, mais, suite à certaines remarques, nous envisageons de repousser cette date de quelques jours afin de coïncider avec les vacances scolaires de Noël (françaises) pour permettre à plus de personnes de concourir pendant leur congés. N'hésitez pas à poster un commentaire si vous pensez que c'est une bonne idée.
En bonus, vous pouvez gagner de l'hébergement virtualisé, une tablette Android type Archos 101, des bons d'achats 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. Pour vous mettre le pied à l'étrier, Barret Michel vous propose un « guide démarrage rapide » pour ce concours, dont voici le début : « Comme certains semblent penser qu'il est compliqué et qu'il va falloir qu'ils apprennent pleins de langages pour participer au concours je poste ici une méthode (la mienne) pour pouvoir travailler sur la CSS de la prochaine version du site sans nécessiter d'apprendre quoi que ce soit !».
Dans la seconde partie, vous trouverez d'autres manières de participer à LinuxFr.org.
Participez au concours LinuxFr.org !
La future version du site LinuxFr.org en Rails avance à grand pas, mais nous avons besoin de votre aide pour qu'elle aboutisse. Comme vous avez pu le constater, la charte graphique de la nouvelle version doit être refaite, et nous comptons sur vous, lecteurs et contributeurs, pour cela.
Pour que cette collaboration se fasse dans un cadre sympathique, nous avons lancé un concours il y a deux semaines. Pour le moment, la participation reste assez modeste (une dizaine de personnes se sont officiellement déclarées) mais il n'est pas trop tard pour que cela change. Le concours finit le 29 décembre et vous avez donc encore largement le temps d'y participer.
Rappelons que le concours est ouvert aux esprits créatifs et aux développeurs, via deux catégories :
Dans la suite de la dépêche, vous trouverez de l'aide pour la mise en œuvre rapide d'un environnement de développement (image Virtual Box et données anonymisées)
Pour que cette collaboration se fasse dans un cadre sympathique, nous avons lancé un concours il y a deux semaines. Pour le moment, la participation reste assez modeste (une dizaine de personnes se sont officiellement déclarées) mais il n'est pas trop tard pour que cela change. Le concours finit le 29 décembre et vous avez donc encore largement le temps d'y participer.
Rappelons que le concours est ouvert aux esprits créatifs et aux développeurs, via deux catégories :
- Nouvelle charte graphique (NdM : Aucune compétence Ruby, Rails requise. C'est principalement du CSS)
- Killer feature en HTML5 (NdM : comme indiqué précédemment, l'utilisation de Ruby on Rails n'est pas obligatoire. Si l'idée peut être réalisée avec juste du HTML statique, du JS et de la CSS (voire un peu de PHP), cela ne pose pas le moindre problème, nous ferons le portage).
Dans la suite de la dépêche, vous trouverez de l'aide pour la mise en œuvre rapide d'un environnement de développement (image Virtual Box et données anonymisées)
Avancement du concours pour la future version de LinuxFr.org
Le concours a commencé il y a une semaine et nous avons déjà une dizaine de participants déclarés. Certains ont posé des questions et dans un souci d'équité, nous avons regroupé ces questions et leurs réponses dans cette dépêche (en seconde partie).
Nous souhaitons préciser que nous attendons des chartes graphiques qui couvrent l'intégralité des pages du nouveau site. En, particulier, n'oubliez pas le nouvel espace de rédaction. Cet espace se compose d'une tribune où chaque utilisateur authentifié peut proposer des sujets de dépêches ou venir chercher des idées. Il est aussi possible d'écrire des dépêches à plusieurs avant de les soumettre à la modération (pour éditer un paragraphe, il faut cliquer dessus).
Ce serait également une bonne idée de proposer des pages d'erreurs originales. Les principales erreurs sont :
Enfin, nous rappelons que cette nouvelle version a besoin d'être testée et améliorée. Nous vous encourageons à remonter les bugs et propositions d'améliorations sur GitHub (ou le suivi interne de LinuxFr.org, dans la catégorie "Nouvelle version RoR").
Nous souhaitons préciser que nous attendons des chartes graphiques qui couvrent l'intégralité des pages du nouveau site. En, particulier, n'oubliez pas le nouvel espace de rédaction. Cet espace se compose d'une tribune où chaque utilisateur authentifié peut proposer des sujets de dépêches ou venir chercher des idées. Il est aussi possible d'écrire des dépêches à plusieurs avant de les soumettre à la modération (pour éditer un paragraphe, il faut cliquer dessus).
Ce serait également une bonne idée de proposer des pages d'erreurs originales. Les principales erreurs sont :
- 404 - Page non trouvée
- 500 - Erreur du serveur
- 403 - Accès non autorisé
Enfin, nous rappelons que cette nouvelle version a besoin d'être testée et améliorée. Nous vous encourageons à remonter les bugs et propositions d'améliorations sur GitHub (ou le suivi interne de LinuxFr.org, dans la catégorie "Nouvelle version RoR").
Testez la nouvelle version de LinuxFr.org
Le site LinuxFr.org existe depuis 12 ans et a connu de nombreuses versions et évolutions. La version actuelle fonctionne avec templeet (NdM: lien éditée en 2021 pour pointer vers la version archive.org de l'époque) et est devenue difficile à faire évoluer pour diverses raisons (peu de contributeurs, absence de documentation, écosystème de templeet quasi-inexistant, etc.).
J'ai donc décidé, début 2009, de réécrire LinuxFr.org en Ruby on Rails. Commit après commit, cette nouvelle version a commencé à prendre forme. Je suis maintenant arrivé à un point où je souhaite qu'elle soit visible publiquement.
Oh, je sais, il reste encore du boulot : la charte graphique n'est vraiment pas réussie, il manque encore des fonctionnalités du site existant, il reste probablement beaucoup de bugs, etc. Mais je pense que vous, lecteurs, pouvez plus que jamais contribuer à améliorer cette version.
Pour cela, vous pouvez :
Merci pour votre soutien et implication !
J'ai donc décidé, début 2009, de réécrire LinuxFr.org en Ruby on Rails. Commit après commit, cette nouvelle version a commencé à prendre forme. Je suis maintenant arrivé à un point où je souhaite qu'elle soit visible publiquement.
Oh, je sais, il reste encore du boulot : la charte graphique n'est vraiment pas réussie, il manque encore des fonctionnalités du site existant, il reste probablement beaucoup de bugs, etc. Mais je pense que vous, lecteurs, pouvez plus que jamais contribuer à améliorer cette version.
Pour cela, vous pouvez :
- Tester cette version à plus grande échelle et remonter le maximum de bugs avant le passage en production (plus de détails en seconde partie) ;
- Vérifier que les contenus importés depuis le site existant sont corrects. Cela consiste à vérifier que le contenu est présent, en entier et que son balisage HTML est le même que celui du site actuel ;
- Nous aider à adapter la charte graphique à ce nouveau site. En effet, le graphisme n’est pas le fort de l’équipe qui gère le site. Et comme nous ne sommes pas des ingrats, nous y mettons les moyens et nous lançons un concours pour déterminer le prochain design du site. Au menu : un HTC Desire et une tablette sous Android, un hébergement dédié et du matériel pour Geek. Tous les détails dans la dépêche dédiée au concours !
- Packager pour Debian la dernière version de webalizer que nous utilisons pour nos statistiques web.
Merci pour votre soutien et implication !
Sortie de Redis 2.0.0
Redis est une base de données de type clé-valeur, sous licence BSD. On peut voir Redis comme une sorte de memcached boosté aux stéroïdes.
Les principales caractéristiques de Redis sont :
Le principal développeur de Redis, Salvatore Sanfilippo, a été embauché par VMWare pour travailler à plein temps sur Redis. Cela a conduit à la récente sortie de la version 2.0 dont quelques nouveautés seront mises en avant dans la seconde partie de la dépêche.
Les principales caractéristiques de Redis sont :
- Les performances impressionnantes (de quelques dizaines à une centaine de milliers d'opérations à la seconde) ;
- La persistance, via des copies régulières de la mémoire vers le disque ou écriture à chaque modification (mais c'est plus coûteux) ;
- Réplication de type maître/esclave ;
- Typage des valeurs, avec au choix, chaînes de caractères, listes, ensembles, ensembles triés et hashs ;
- Des opérations avancées sur ces types (exemple : calculer l'intersection de plusieurs ensembles) ;
- L'exécution de plusieurs commandes de manière atomique ;
- Un mécanisme pub/sub ;
- Des bibliothèques pour de nombreux langages de programmation ;
- La simplicité à installer et à gérer, la portabilité, etc.
Le principal développeur de Redis, Salvatore Sanfilippo, a été embauché par VMWare pour travailler à plein temps sur Redis. Cela a conduit à la récente sortie de la version 2.0 dont quelques nouveautés seront mises en avant dans la seconde partie de la dépêche.
Prenez de bonnes habitudes avec Daily Stamp
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.
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.
Reposez vos yeux la nuit devant votre écran avec Redshift
Les écrans LCD actuels sont très lumineux et bien adaptés pour travailler en journée. Mais des études montrent que cette luminosité a des effets indésirables sur notre physiologie quand nous travaillons sur ces mêmes écrans la nuit. En particulier, cela fatigue rapidement nos yeux et peut perturber notre sommeil.
Heureusement, il existe une solution : éteindre nos écrans. Non, je rigole, revenez. Vous pouvez aussi utiliser Redshift. Ce logiciel ajuste la température de la couleur de votre écran en fonction de la position du soleil dans le ciel, et adapte de même l'écran durant la nuit, en considérant l'utilisation de lumières artificielles.
Son auteur s'est inspiré de F.lux, un logiciel propriétaire mais déçu par celui-ci, a écrit Redshift et l'a publié sous licence GPLv3. Il existe des packages pour Debian, Ubuntu, Mandriva Linux, Fedora, Gentoo, Arch Linux et Frugalware.
Heureusement, il existe une solution : éteindre nos écrans. Non, je rigole, revenez. Vous pouvez aussi utiliser Redshift. Ce logiciel ajuste la température de la couleur de votre écran en fonction de la position du soleil dans le ciel, et adapte de même l'écran durant la nuit, en considérant l'utilisation de lumières artificielles.
Son auteur s'est inspiré de F.lux, un logiciel propriétaire mais déçu par celui-ci, a écrit Redshift et l'a publié sous licence GPLv3. Il existe des packages pour Debian, Ubuntu, Mandriva Linux, Fedora, Gentoo, Arch Linux et Frugalware.
Piwik 1.0, Inkscape 0.48 et RabbitMQ 2.0
Piwik est une application de mesure d'audience de sites internet en temps réel. Il fournit des rapports détaillés sur les visiteurs de votre site web avec de nombreux graphiques et tableaux sur les moteurs de recherche et mots clés qu'ils ont utilisés, les langues qu'ils parlent, les pages populaires et tant d'autres statistiques. Développé en PHP et MySQL, il vient d'atteindre la version symbolique 1.0 et peut être téléchargé sous licence GPL.
Le fameux logiciel de dessin vectoriel Inkscape est sorti en version 0.48. Grâce au Google Summer of Code, cette version propose de nombreux améliorations dont :
RabbitMQ est une solution de messagerie d'entreprise complète et fiable, qui implémente le standard AMQP (Advanced Message Queuing Protocol), sous licence MPL. La sortie de la version 2.0 apporte un nouveau moteur de stockage scalable, une API pour la persistance, le support natif du multi-protocoles (en plus d'AMQP, RabbitMQ prend en charge XMPP, STOMP, SMTP, JSON/RPC et PubSubHubBub) et une meilleure gestion des greffons.
Le fameux logiciel de dessin vectoriel Inkscape est sorti en version 0.48. Grâce au Google Summer of Code, cette version propose de nombreux améliorations dont :
- L'outil Node a été profondément modifié et permet maintenant de modifier plusieurs paths en même temps ;
- Amélioration de l'outil texte avec la prise en charge de subscript, superscript et le paramétrage des espaces ;
- Nouvel outil Airbrush ;
- Export LaTeX avec PDF/PS/EPS ;
- Création de présentations avec l'extension JessyInk.
RabbitMQ est une solution de messagerie d'entreprise complète et fiable, qui implémente le standard AMQP (Advanced Message Queuing Protocol), sous licence MPL. La sortie de la version 2.0 apporte un nouveau moteur de stockage scalable, une API pour la persistance, le support natif du multi-protocoles (en plus d'AMQP, RabbitMQ prend en charge XMPP, STOMP, SMTP, JSON/RPC et PubSubHubBub) et une meilleure gestion des greffons.
Ruby on Rails 3 est là
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.
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.
Sortie de Bundler 1.0.0
Bundler permet de gérer les dépendances d'une application Ruby au cours de sa vie sur plusieurs machines de manière systématique et reproductible. Cette application sous licence MIT vient de sortie en version 1.0.
Bundler peut être utilisé conjointement à Ruby Version Manager pour les développeurs travaillant sur de nombreux projets, mais il est déjà très utile par lui-même. Je vous invite à lire la seconde partie de la dépêche pour comprendre comment bundler peut vous rendre service.
Bundler peut être utilisé conjointement à Ruby Version Manager pour les développeurs travaillant sur de nombreux projets, mais il est déjà très utile par lui-même. Je vous invite à lire la seconde partie de la dépêche pour comprendre comment bundler peut vous rendre service.
Google va vous faire payer pour des raisons de sécurité
Google se targue d'avoir pris en compte la sécurité des extensions Chrome/Chromium depuis le premier jour. Dans un souci d'aller toujours plus loin dans la sécurité, Google a décidé d'ajouter deux nouvelles mesures :
Nous ne pouvons que saluer les efforts totalement désintéressés de Google pour améliorer la sécurité. Ces mesures ne servent en aucun cas à préparer le terrain pour le Chrome Web Store dont, par pure coïncidence, Google a annoncé la mise en ligne de la developer preview le même jour : les développeurs peuvent ainsi mettre en ligne les extensions qu'ils souhaitent proposer sur le futur store depuis... la galerie des extensions de Chrome.
- Les développeurs devront maintenant payer 5$ pour pouvoir proposer leurs extensions et thèmes sur la galerie. Cela va permettre d'empêcher les vilains pirates^Wcrackers de proposer leurs extensions malicieuses tout en permettant aux gentils développeurs de continuer à proposer les leurs (pour peu qu'ils n'habitent pas dans un pays du tiers monde, où 5$ peut représenter une somme conséquente et où faire le versement avec google checkout ne sera pas toujours possible).
- Les extensions liés à un domaine particulier pourront désormais être estampillées. Les développeurs peuvent maintenant utiliser Google's webmaster tools pour associer leurs extensions aux domaines qu'ils contrôlent.
Nous ne pouvons que saluer les efforts totalement désintéressés de Google pour améliorer la sécurité. Ces mesures ne servent en aucun cas à préparer le terrain pour le Chrome Web Store dont, par pure coïncidence, Google a annoncé la mise en ligne de la developer preview le même jour : les développeurs peuvent ainsi mettre en ligne les extensions qu'ils souhaitent proposer sur le futur store depuis... la galerie des extensions de Chrome.
Gollum, un wiki propulsé par git
Gollum est un wiki dont la particularité est d'être propulsé par git. Il a été codé par les développeurs de Github, le choix de git n'est donc pas étonnant. Il est ainsi possible d'éditer un wiki Gollum en passant par l'interface web ou directement depuis son éditeur de texte préféré, puis en commitant dans le dépôt git utilisé par Gollum.
Gollum est une application web sous licence MIT, développée en Ruby avec le framework Sinatra. Parmi les fonctionnalités, citons :
À titre anecdotique, notons que les développeurs de Gollum ont suivi quelques principes :
Gollum est une application web sous licence MIT, développée en Ruby avec le framework Sinatra. Parmi les fonctionnalités, citons :
- La prise en charge de plusieurs langages de markup (ASCIIDoc, Creole, Markdown, Org Mode...) ;
- La coloration syntaxique de bloc de code grâce à Pygments ;
- L'affichage de formules mathématiques au format TeX avec MathJax ;
- La possibilité d'attacher des fichiers et d'inclure des images.
À titre anecdotique, notons que les développeurs de Gollum ont suivi quelques principes :
- Le développement orienté par le fichier README ;
- Documentation exhaustive du code avec TomDoc ;
- Respect des règles de numérotation des versions de la norme Semantic Versioning.
Ruby Version Manager 1.0.0
Ruby Version Manager, ou RVM pour les intimes, est un outil en ligne de commande qui permet d'installer et de travailler facilement avec plusieurs environnements Ruby. Chaque environnement se compose d'un interpréteur Ruby et d'un ensemble de gems.
RVM s'installe très rapidement en tapant la ligne de commande suivante :
Il est ensuite possible d'installer les interpréteurs Ruby que vous souhaitez utiliser ou tester d'un simple rvm install [interpréteur], que l'interpréteur en question soit le tout récent Ruby 1.9.2, Rubinius, JRuby, IronRuby ou bien d'autres encore. Vous pouvez alors passer d'un interpréteur Ruby à un autre en tapant rvm use [interpréteur]. De même, vous pouvez choisir l'ensemble de gems qui vous intéresse grâce à la commande rvm gemset. Tout ceci peut être très pratique pour tester une bibliothèque Ruby avec plusieurs versions de Ruby ou un greffon Rails avec plusieurs versions de Rails.
RVM est publié sous licence MIT et vient d'atteindre la version 1.0.0, un an exactement après le premier commit. Cette évolution rapide a notamment été permise par le travail de Darcy Laycock, alias Sutto, dans le cadre du Ruby Summer of Code. Parmi les changements récents, nous pouvons citer :
RVM s'installe très rapidement en tapant la ligne de commande suivante :
bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
Il est ensuite possible d'installer les interpréteurs Ruby que vous souhaitez utiliser ou tester d'un simple rvm install [interpréteur], que l'interpréteur en question soit le tout récent Ruby 1.9.2, Rubinius, JRuby, IronRuby ou bien d'autres encore. Vous pouvez alors passer d'un interpréteur Ruby à un autre en tapant rvm use [interpréteur]. De même, vous pouvez choisir l'ensemble de gems qui vous intéresse grâce à la commande rvm gemset. Tout ceci peut être très pratique pour tester une bibliothèque Ruby avec plusieurs versions de Ruby ou un greffon Rails avec plusieurs versions de Rails.
RVM est publié sous licence MIT et vient d'atteindre la version 1.0.0, un an exactement après le premier commit. Cette évolution rapide a notamment été permise par le travail de Darcy Laycock, alias Sutto, dans le cadre du Ruby Summer of Code. Parmi les changements récents, nous pouvons citer :
- RVM demande maintenant à l'utilisateur s'il a confiance dans un fichier rvmrc d'un projet avant de l'exécuter pour des raisons de sécurité
- Une option --with-rubies a été ajoutée pour lancer une commande avec un ensemble particulier d'environnements (par exemple, rvm --with-rubies gemsets ruby [somethimg] lancera la commande ruby pour tous les gemsets de l'interpréteur Ruby courant).
- La complétion des commandes, des rubies et des gemsets dans ZSH.
Sortie de Node.js v0.2.0
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 !
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 :
- Node.js ircd, un serveur IRC ;
- How To Node, un blog parlant de Node.js ;
- Vows, un framework BDD ;
- Express, un framework web qui utilise les middlewares Connect.
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 !
Vim 7.3
Vim, le célèbre éditeur de texte, est sorti en version 7.3. Bram Moolenaar a annoncé que cette version, sans être majeure, était néanmoins plus conséquente qu'une simple version mineure. Il faut dire que deux ans s'étaient écoulés depuis la sortie de la version 7.2.
Les nouveautés les plus intéressantes de cette version sont :
Les nouveautés les plus intéressantes de cette version sont :
- Persistance de l'historique des commandes pouvant être annulées ;
- Possibilité d'annuler un rechargement ;
- Chiffrement avec blowfish ;
- Chiffrement du fichier de swap ;
- Possibilité de cacher du texte (par exemple, des commentaires) ;
- Interface pour Lua ;
- Interface pour Python3 ;
- Prise en charge de la coloration syntaxique et de l'indentation pour Perl6 ;
- Coloration syntaxique pour le langage de balisage Markdown.