Le grand concours pour définir l'habillage de la nouvelle version de LinuxFr s'est terminé hier soir à 23h59. Les feuilles de style proposées peuvent maintenant être testées sur la version beta^Walpha (se connecter puis se rendre sur la page « changer de style »).
Vous pouvez en profiter pour tester la future version du site et remonter les bugs que vous pourriez rencontrer.
Pour rappel, les prix mis en jeu sont 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.
Je tiens à féliciter les participants pour leurs travaux de qualité : il ne reste plus à l'équipe de modération qu'à voter voter pour choisir le style par défaut (vous avez néanmoins le droit de nous influencer en mettant en avant vos styles favoris dans les commentaires).
Note pour les participants : nous vous conseillons de vérifier que votre CSS est listée en seconde partie de cette dépêche, qu'elle se trouve bien sur http://alpha.linuxfr.org et qu'elle s'affiche correctement.
En vrac : Doctrine 2, MySQL 5.5 et VimGolf
Doctrine est une bibliothèque en PHP, sous licence LGPL, qui permet d'utiliser les enregistrements d'une base de données (relationnelle ou documents) sous forme d'objets PHP. Une réécriture complète avait commencé il y a deux ans et demi et vient d'aboutir sous la forme de la première version stable de Doctrine 2. Cette nouvelle version implémente maintenant le motif DataMapper (au lieu d'ActiveRecord précédemment), apportant ainsi plus de souplesse, de nouvelles fonctionnalités et une prise en charge de nouveaux moteurs de base de données dont MongoDB.
Oracle a annoncé le 15 décembre la sortie de la version 5.5 de MySQL, avec au programme amélioration des performances et meilleure prise en charge de la réplication et du failover. L'édition communautaire reste sous licence GPL et est toujours livrée avec les moteurs de stockage InnoDB, MyISAM, NDB, mémoire, archive, merge, etc. Il semblerait donc que MySQL soit l'un des rares projets Open Source à profiter du rachat de Sun par Oracle.
Pour finir, je souhaite vous présenter VimGolf. Le but de ces challenges de passer d'un fichier de départ à un fichier d'arrivée en tapant le moins de touches possible dans Vim. Bref, c'est un bon moyen d'apprendre à utiliser Vim de manière joyeuse :-)
Oracle a annoncé le 15 décembre la sortie de la version 5.5 de MySQL, avec au programme amélioration des performances et meilleure prise en charge de la réplication et du failover. L'édition communautaire reste sous licence GPL et est toujours livrée avec les moteurs de stockage InnoDB, MyISAM, NDB, mémoire, archive, merge, etc. Il semblerait donc que MySQL soit l'un des rares projets Open Source à profiter du rachat de Sun par Oracle.
Pour finir, je souhaite vous présenter VimGolf. Le but de ces challenges de passer d'un fichier de départ à un fichier d'arrivée en tapant le moins de touches possible dans Vim. Bref, c'est un bon moyen d'apprendre à utiliser Vim de manière joyeuse :-)
Apprendre à programmer avec Hackety Hack
Vous souhaitez apprendre à programmer ? Alors Hackety Hack est fait pour vous. Essayez-le !
Hackety Hack est un environnement en Ruby, sous licence MIT, pour apprendre à développer. Il s'adresse aux débutants et propose des leçons pour coder en quelques lignes des choses fun.
Le projet a été initié par Why the lucky stiff, un célèbre hacker Ruby et a été repris par une équipe menée par Steve Labnik. La version 1.0 vient de sortir pour Noël et ce fût également l'occasion de la mise en ligne du nouveau site web.
D'un point de vue technique, il fonctionne avec le framework Shoes et tourne sur les plateformes GNU/Linux, Windows et Mac OS X. Le code écrit au cours des leçons est du Ruby et utilise également Shoes.
Hackety Hack est un environnement en Ruby, sous licence MIT, pour apprendre à développer. Il s'adresse aux débutants et propose des leçons pour coder en quelques lignes des choses fun.
Le projet a été initié par Why the lucky stiff, un célèbre hacker Ruby et a été repris par une équipe menée par Steve Labnik. La version 1.0 vient de sortir pour Noël et ce fût également l'occasion de la mise en ligne du nouveau site web.
D'un point de vue technique, il fonctionne avec le framework Shoes et tourne sur les plateformes GNU/Linux, Windows et Mac OS X. Le code écrit au cours des leçons est du Ruby et utilise également Shoes.
Dernière ligne droite pour le concours 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) :
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.
- Proposer une nouvelle charte graphique ;
- Réaliser une « killer feature » en HTML5.
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.
Agrémentez votre JavaScript avec CoffeeScript 1.0
CoffeeScript est un langage qui se compile en JavaScript (licence MIT). Il vise à proposer une syntaxe alternative, plus agréable, au JavaScript, mais reste très proche de celui-ci au niveau de la sémantique.
Par exemple, le code coffee suivant :
se compilera de la façon suivante en JavaScript :
Ainsi, CoffeeScript permet d'éliminer les caractères ou constructions disgracieuses du JavaScript pour n'en garder que les bonnes parties. Une autre volonté derrière CoffeeScript est de rester proche du JavaScript. Cela permet de débugger facilement du JavaScript généré par coffee, d'autant plus que le code en question est correctement indenté et passe JS Lint sans avertissement.
CoffeeScript existe depuis un an et vient de passer en version 1.0 pour Noël. Son utilisation se répand (exemples de projets écrits avec CoffeeScript : un client Riak, une bibliothèque pour scanner des chaînes de caractères, un équivalent de Rack pour Node.js et un jeu de tanks). Le succès de CoffeeScript est tel que le comité d'EcmaScript, Brendan Eich en tête, travaille à améliorer la syntaxe du JavaScript en s'inspirant de CoffeeScript de manière ouverte.
Par exemple, le code coffee suivant :
square = (x) -> x * x
square 42
se compilera de la façon suivante en JavaScript :
square = function(x) {
return x * x;
};
square(42);
Ainsi, CoffeeScript permet d'éliminer les caractères ou constructions disgracieuses du JavaScript pour n'en garder que les bonnes parties. Une autre volonté derrière CoffeeScript est de rester proche du JavaScript. Cela permet de débugger facilement du JavaScript généré par coffee, d'autant plus que le code en question est correctement indenté et passe JS Lint sans avertissement.
CoffeeScript existe depuis un an et vient de passer en version 1.0 pour Noël. Son utilisation se répand (exemples de projets écrits avec CoffeeScript : un client Riak, une bibliothèque pour scanner des chaînes de caractères, un équivalent de Rack pour Node.js et un jeu de tanks). Le succès de CoffeeScript est tel que le comité d'EcmaScript, Brendan Eich en tête, travaille à améliorer la syntaxe du JavaScript en s'inspirant de CoffeeScript de manière ouverte.
En vrac, spécial Django
Django est un framework de développement d'applications web en Python, sous licence BSD.
Les versions 1.2.4, 1.1.3 et 1.3 beta 1 de Django sont sorties hier pour corriger deux problèmes de sécurité :
Django Projector est un outil de gestion de projets développé en Django (sous licence BSD). Encore très jeune, il est difficile de le comparer à Trac ou Redmine, mais il offre déjà des fonctionnalités intéressantes comme la possibilité de personnaliser les workflows des tickets.
Les versions 1.2.4, 1.1.3 et 1.3 beta 1 de Django sont sorties hier pour corriger deux problèmes de sécurité :
- il était possible de récupérer des informations sans être connecté en tant qu'administrateur via l'admin Django en créant des URL avec certains filtres particuliers ;
- le mécanisme de « Mot de passe oublié » pouvait servir à des attaques par déni de service.
Django Projector est un outil de gestion de projets développé en Django (sous licence BSD). Encore très jeune, il est difficile de le comparer à Trac ou Redmine, mais il offre déjà des fonctionnalités intéressantes comme la possibilité de personnaliser les workflows des tickets.
Rubygems.org, So Nice et Rubinius
En juillet 2009, le site rubygems.org a été lancé par la communauté Ruby pour héberger les gems Ruby. Depuis, le site est en très grand forme et vient de fêter le 100 millionième téléchargements de gems. Il vient également de passer juste devant le CPAN pour le nombre de paquets disponibles : 19 042 gems contre 19 013 modules Perl au moment de l'écriture de ces lignes (à comparer avec les 12548 packages sur PyPI et 562 packages Pear).
So Nice est une application web pour contrôler iTunes, Rhythmbox ou MPD. Elle est développée en Ruby avec Sinatra et disponible sous licence WTFPL.
Rubinius est une implémentation du langage de programmation Ruby, sous licence BSD. La version 1.2.0 vient de sortir avec :
So Nice est une application web pour contrôler iTunes, Rhythmbox ou MPD. Elle est développée en Ruby avec Sinatra et disponible sous licence WTFPL.
Rubinius est une implémentation du langage de programmation Ruby, sous licence BSD. La version 1.2.0 vient de sortir avec :
- Passage à LLVM 2.8
- Améliorations des performances
- Vérification du bytecode (particulièrement utile avec l'arrivée d'autres projets utilisant la machine virtuelle de Rubinius)
- Des optimisations, notamment de la consommation mémoire
- Query Agent, un nouvel outil pour débugger et remonter des informations de bas niveaux (statistiques sur le Garbage Collector par exemple)
- Et autres améliorations et correctifs.
Apprendre un langage de programmation par an
Un de mes livres d'informatique préférés est The Pragmatic Programmer, from journeyman to master. Dedans, on y trouve une foultitude de conseils, dont l'un m'a particulièrement marqué : il est souhaitable d'apprendre un nouveau langage de programmation tous les ans pour parfaire son portfolio de connaissances.
L'année 2011 va bientôt arriver et je souhaite partager avec vous quelques suggestions de langages pour ceux qui voudraient suivre ce conseil :
Au fait, je n'ai pas encore choisi quel langage j'allais étudier en 2011, donc n'hésitez pas à défendre votre langage favori dans les commentaires ;-)
L'année 2011 va bientôt arriver et je souhaite partager avec vous quelques suggestions de langages pour ceux qui voudraient suivre ce conseil :
- Ruby (disponible sous Licence Ruby et GPL) reste mon langage préféré et je ne saurais trop vous conseiller de le découvrir !
- Reia (disponible sous licence MIT) est un langage avec une syntaxe inspirée de Ruby qui tourne au-dessus de la machine virtuelle d'Erlang, permettant ainsi de profiter du meilleur des deux mondes.
- Go (disponible sous Licence BSD) est un langage assez jeune mais déjà très intéressant, avec notamment la programmation concurrente à base de Goroutines.
- Io (disponible sous Licence BSD) est un langage de programmation qui s'appuie sur les prototypes, avec des inspirations venant de Smalltalk, Self, Lisp et Lua.
- Scala (disponible sous Licence BSD) pourrait être le futur pour les développeurs Java et propose déjà des avancées très pertinentes comme son modèle d'Actors ou son travail sur le typage.
- F# (disponible sous Licence Apache) est un langage de programmation fonctionnelle, fortement inspiré d'OCaml et issu des laboratoires de Microsoft.
Au fait, je n'ai pas encore choisi quel langage j'allais étudier en 2011, donc n'hésitez pas à défendre votre langage favori dans les commentaires ;-)
Reia, un langage fortement inspiré de Ruby
Ruby est un langage de programmation génial (je vous assure, je suis totalement objectif quand je dis ça ;-) ), mais qui a quand même quelques petits défauts. On peut par exemple citer la mauvaise prise en charge de la concurrence ou l'absence de rechargement de code à chaud. À l'opposé, Erlang a une syntaxe parfois cryptique mais sa machine virtuelle est très avancée pour tout ce qui concerne les aspects distribués, la concurrence et la tolérance aux erreurs.
Reia est un langage de programmation qui cherche à prendre le meilleur des 2 mondes (licence MIT). Le code en reia ressemble à s'y méprendre à du code Ruby, mais il s'exécute sur la machine virtuelle d'Erlang. Voici à titre d'exemple le très classique Hello World :
Pour le moment, il n'y a pas encore de version officielle de reia. Si vous souhaitez l'essayer, il vous suffit de cloner le dépôt git, d'avoir Erlang et Rake installés puis de lancer rake.
Reia est un langage de programmation qui cherche à prendre le meilleur des 2 mondes (licence MIT). Le code en reia ressemble à s'y méprendre à du code Ruby, mais il s'exécute sur la machine virtuelle d'Erlang. Voici à titre d'exemple le très classique Hello World :
"Hello world!".puts()
Pour le moment, il n'y a pas encore de version officielle de reia. Si vous souhaitez l'essayer, il vous suffit de cloner le dépôt git, d'avoir Erlang et Rake installés puis de lancer rake.
Prolongation du concours LinuxFr.org
À l'occasion de la nouvelle version de LinuxFr.org, nous organisons un concours. Actuellement, 26 participants se sont déclarés. Vous pouvez toujours y participer sur l'une de ces catégories (ou les deux) :
Le concours devait se finir le 29 décembre 2010, mais, suite à un certain nombre de demandes justifiées (notamment le fait de pouvoir bénéficier des jours de repos lors de la trêve des confiseurs) nous avons décidé de le prolonger d'une semaine. Les participants ont donc jusqu'au 5 janvier 2011 à 23h59 pour nous envoyer leurs copies.
Pour rappel, vous pouvez gagner de l'hébergement virtualisé, une tablette Android type Archos 101, des bons d'achats pour du matériel « ouvert » et une 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.
Bon courage !
- Proposer une nouvelle charte graphique
- Réaliser une « killer feature » en HTML5
Le concours devait se finir le 29 décembre 2010, mais, suite à un certain nombre de demandes justifiées (notamment le fait de pouvoir bénéficier des jours de repos lors de la trêve des confiseurs) nous avons décidé de le prolonger d'une semaine. Les participants ont donc jusqu'au 5 janvier 2011 à 23h59 pour nous envoyer leurs copies.
Pour rappel, vous pouvez gagner de l'hébergement virtualisé, une tablette Android type Archos 101, des bons d'achats pour du matériel « ouvert » et une 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.
Bon courage !
Quelques nouvelles de Go, le langage de programmation
Le langage de programmation Go suit son chemin. Voici quelques faits marquants depuis la précédente dépêche sur LinuxFr.org :
- Le site officiel, golang.org a été refait : il est plus complet et la navigation est plus simple.
- La prise en charge de Go dans GCC a été commitée et sera donc incluse dans la prochaine version de GCC, la 4.6.
- Tous les tests sont maintenant au vert pour l'architecture ARM et le portage vers Windows avance
- La spécification du langage évolue : arrivée de recover, nouvelle syntaxe pour les fonctions avec un nombre variable d'arguments, simplification de la syntaxe pour les types composites, etc.
- De nouvelles commandes sont disponibles, dont goinstall, un gestionnaire de paquets qui peut, entre autres, installer des paquets depuis GitHub, Bitbucket, Launchpad et Google code et goplay qui permet de tester Go depuis un navigateur web.
- Rob Pike a fait une présentation très intéressante : The Expressiveness Of Go (PDF).
Campagne de documentation Rails, RubyDrop et Refinements
RubyDrop est un clone de Dropbox libre développé en Ruby. Il permet de synchroniser des fichiers entre plusieurs ordinateurs en utilisant en interne git. Rappelons que SparkleShare propose la même chose, mais en mono (ce qui avait engendré de nombreux commentaire sur la dépêche à son sujet).
Ryan Bigg est l'auteur de plusieurs guides Ruby on Rails, écrit un livre sur Rails et participe au développement de nombreux gems Ruby. Il a lancé un appel à dons pour lui permettre de passer du temps à écrire de la documentation pour Rails. Le choix des sujets se fera parmi les suggestions proposées publiquement.
À la dernière RubyConf, Shugo Maeda a parlé des Refinements, qui devraient arriver dans Ruby 2.0. En Ruby, il est possible de faire ce que l'on appelle du monkey-patching : réouvir une classe déjà définie pour lui ajouter de nouvelles méthodes, voir modifier les méthodes existantes. Cela peut être très pratique mais peut très facilement devenir une source de bugs. Par exemple, si deux bibliothèques ajoutent toutes les deux une méthode camelize sur la classe String et que ces méthodes se comportent différemment, alors une des deux bibliothèques va utiliser l'implémentation de l'autre avec un comportement qui n'est pas celui attendu. Les Refinements pourraient être une solution pour corriger ce problème en limitant la portée de ces modifications.
Je profite également de cette dépêche pour annoncer la publication de la première revue mensuelle sur Ruby France.
Ryan Bigg est l'auteur de plusieurs guides Ruby on Rails, écrit un livre sur Rails et participe au développement de nombreux gems Ruby. Il a lancé un appel à dons pour lui permettre de passer du temps à écrire de la documentation pour Rails. Le choix des sujets se fera parmi les suggestions proposées publiquement.
À la dernière RubyConf, Shugo Maeda a parlé des Refinements, qui devraient arriver dans Ruby 2.0. En Ruby, il est possible de faire ce que l'on appelle du monkey-patching : réouvir une classe déjà définie pour lui ajouter de nouvelles méthodes, voir modifier les méthodes existantes. Cela peut être très pratique mais peut très facilement devenir une source de bugs. Par exemple, si deux bibliothèques ajoutent toutes les deux une méthode camelize sur la classe String et que ces méthodes se comportent différemment, alors une des deux bibliothèques va utiliser l'implémentation de l'autre avec un comportement qui n'est pas celui attendu. Les Refinements pourraient être une solution pour corriger ce problème en limitant la portée de ces modifications.
Je profite également de cette dépêche pour annoncer la publication de la première revue mensuelle sur Ruby France.
Faire évoluer LinuxFr.org
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.
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.
Journal Pourquoi Ruby on Rails pour la réécriture de LinuxFr.org ?
La réécriture de LinuxFr.org en Rails pose deux grandes questions : pourquoi réécrire et pourquoi Rails ? Pour les deux questions, j'ai pu répondre à travers différents commentaires, mais je souhaite expliquer ça de manière plus structurée.
Pour la première question, j'ai publié un journal hier : http://linuxfr.org/~NoNo/30481.html . Et la seconde fait l'objet de ce journal ;-)
Avant d'expliquer le choix de Ruby on Rails, je vais expliquer le contexte. J'ai commencé le développement de la nouvelle version début (…)
Pour la première question, j'ai publié un journal hier : http://linuxfr.org/~NoNo/30481.html . Et la seconde fait l'objet de ce journal ;-)
Avant d'expliquer le choix de Ruby on Rails, je vais expliquer le contexte. J'ai commencé le développement de la nouvelle version début (…)
Journal Pourquoi réécrire LinuxFr.org ?
LinuxFr.org tourne actuellement avec un moteur qui s 'appelle templeet et, à dire vrai, ça tourne plutôt bien. Et pourtant, je suis en train de réécrire le site avec Ruby on Rails parce que je pense que c'est indispensable pour que le site puisse continuer à vivre. J'ai déjà pu donner quelques explications, notamment dans les commentaires, mais je ne crois pas avoir déjà fourni une explication complète.
Alors, pourquoi cette réécriture ? 2 raisons : maintenance et évolutions.
Pour (…)