Redo, un remplaçant de choix pour Make

Posté par (page perso) . Modéré par Xavier Teyssier.
Tags :
19
16
jan.
2011
Ligne de commande
Make est l'outil le plus couramment utilisé pour automatiser la production d'un fichier à partir de règles. L'exemple typique est la compilation d'un logiciel à partir de ses sources. Mais Make a des inconvénients de taille, dont :
  1. La syntaxe sujette aux erreurs ;
  2. Les appels récursifs à make posent problème ;
  3. Le manque de modularité ;
  4. L'absence d'atomicité de l'application des règles.

Daniel J. Bernstein, l'auteur de qmail et djbdns, a proposé une alternative à Make qu'il a appelée redo, mais celle-ci se présente sous forme de notes et non pas de code.

Avery Pennarun a trouvé ses notes et en a écrit une version en Python sous licence LGPL.

Redo fonctionne avec des scripts shell avec l'extension .do et chacun de ces fichiers décrit une règle. Par exemple, le fichier default.o.do qui servirait à générer des fichiers .o à partir des sources .c correspondantes s'écrirait de cette façon :
redo-ifchange $1.c

gcc -MD -MF $3.deps.tmp -c -o $3 $1.c
DEPS=$(sed -e "s/^$3://" -e 's/\\//g' <$3.deps.tmp)
rm -f $3.deps.tmp
redo-ifchange $DEPS
Note : $1 est le nom du fichier cible sans l'extension et $3 le nom du fichier temporaire qui deviendra le fichier cible ($3 sera renommé à la fin de la règle, évitant ainsi de laisser un fichier cible corrompu si quelque chose devait mal se passer). redo-ifchange est une commande servant à déclarer une dépendance.

Hudson devient Jenkins, Riak 0.14, Chrome abandonne H264

Posté par (page perso) . Modéré par patrick_g.
19
12
jan.
2011
Technologie
s/Hudson/Jenkins/

Hudson, le serveur d'intégration continue en Java, va devenir plus indépendant d'Oracle. Cela a plusieurs conséquences :
  • Hudson est une marque déposée et en l'absence de garanties d'Oracle, le dépositaire, il a été décidé de changer de nom : ce sera maintenant Jenkins ;
  • Le dépôt pour le code sera hébergé par Github ;
  • Le reste de l'infrastructure va également sortir du giron d'Oracle, à commencer par les mailing-lists.


++Riak

Riak est une base de données NoSQL de type clé-valeur dont l'intérêt principal est de pouvoir ajouter ou supprimer des nœuds très simplement. La version 0.14 est sortie début janvier :
  • Le map-reduce de Riak a bénéficié d'améliorations très conséquentes ;
  • Deux nouveaux outils permettent de débugger plus simplement les clusters ;
  • Bitcask, le moteur de stockage par défaut de Riak, est plus efficace et on peut configurer les périodes de temps plus favorables pour les opérations de nettoyage.


cat H.264 > /dev/null

Google a annoncé que les prochaines versions de Chrome ne vont plus prendre en charge le codec H.264. Cette décision fait partie de la stratégie de Google de mettre en avant son codec WebM.

Gérez vos projets avec Redmine

Posté par (page perso) . Modéré par Lucas Bonnet.
23
10
jan.
2011
Ruby
Redmine est une forge logicielle sous licence GPL. Ses concurrents se nomment Trac, Retrospectiva, Django Projector ou encore InDefero, mais Redmine se défend très bien et offre un ensemble de fonctionnalités difficile à égaler :
  • Prise en charge de plusieurs projets ;
  • Contrôle d'accès avec un modèle flexible de rôles ;
  • Gestion avancée des tickets ;
  • Diagramme de Gantt et calendrier ;
  • Publication de news, documents et gestionnaire de fichiers ;
  • Notifications par emails et flux ATOM ;
  • Wiki et forums par projet ;
  • Outil de suivi du temps ;
  • Champs personnalisables pour les tickets, suivi de temps, projets et utilisateurs ;
  • Intégration avec plusieurs SCM : SVN, CVS, Git, Mercurial, Bazaar et Darcs ;
  • Création de tickets par email ;
  • Possibilité de se brancher sur de multiples annuaires LDAP pour l'authentification ;
  • Traduction dans 34 langues dont le français ;
  • Extensible grâce à ses greffons ;
  • Et plein d'autres choses encore...


Redmine est écrit en Ruby on Rails et vient de sortir en version 1.1. Vous pouvez l'essayer sur le site officiel ou sur la demo.

Nouvelle version de JSLint

Posté par (page perso) . Modéré par Mouns.
19
10
jan.
2011
Mozilla
JSLint est un outil sous licence MIT qui permet de vérifier la qualité d'un programme JavaScript. Écrit par Douglas Crockford il y a 10 ans, JSLint continue d'évoluer pour prendre en compte les nouveaux usages et les avancées de la standardisation d'ECMAScript. Une nouvelle version vient d'ailleurs d'être publiée et le code est disponible depuis peu sur GitHub.

JSlint tourne partout où JavaScript ou Java est disponible et peut notamment être utilisé directement depuis le site officiel. Il prend du code JavaScript en entrée et en vérifie la qualité en fonction d'un certain nombre de règles configurables.

Vous le trouverez probablement trop strict au départ, mais suivre ces recommandations permet d'améliorer sensiblement la qualité et la lisibilité du code JS que vous écrivez. Par exemple, il vous forcera à éviter les variables globales et à utiliser les accolades {} avec if, for et while.

Fin du concours LinuxFr.org

Posté par (page perso) . Modéré par patrick_g.
Tags :
21
6
jan.
2011
LinuxFr.org
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

Posté par (page perso) . Modéré par baud123.
18
30
déc.
2010
Technologie
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 :-)

Apprendre à programmer avec Hackety Hack

Posté par (page perso) . Modéré par Nÿco.
Tags :
15
29
déc.
2010
Ruby
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.

Dernière ligne droite pour le concours LinuxFr.org

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

Agrémentez votre JavaScript avec CoffeeScript 1.0

Posté par (page perso) . Modéré par Xavier Teyssier.
11
28
déc.
2010
Technologie
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 :
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

Posté par (page perso) . Modéré par Christophe Guilloux.
7
24
déc.
2010
Python
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é :
  1. 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 ;
  2. 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

Posté par (page perso) . Modéré par Nÿco.
8
24
déc.
2010
Ruby
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 :
  • 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

Posté par (page perso) . Modéré par baud123.
24
20
déc.
2010
Technologie
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 :
  • 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

Posté par (page perso) . Modéré par j.
19
18
déc.
2010
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 :

"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

Posté par (page perso) . Modéré par tuiu pol.
Tags :
16
10
déc.
2010
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) :
  • Proposer une nouvelle charte graphique
  • Réaliser une « killer feature » en HTML5
Pour connaître la procédure pour participer, déployer une instance chez vous pour tester, avoir des réponses à vos questions, trouver des idées, etc. consultez les dépêches précédentes via les liens ci-dessous. Sinon, vous pouvez toujours nous aider en testant la version bêta et en remontant les bugs.

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.

Mosaïque de logos au fil des années

Bon courage !

Quelques nouvelles de Go, le langage de programmation

Posté par (page perso) . Modéré par patrick_g.
37
5
déc.
2010
Golang
Le langage de programmation Go suit son chemin. Voici quelques faits marquants depuis la précédente dépêche sur LinuxFr.org :