- 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).
Et si JavaScript allait droit dans le mur ?
Cette dépêche pose la question de l’avenir du JavaScript. Celui‐-ci continue de gagner en popularité, mais aussi en complexité. L’auteur du journal a étudié d’autres langages encore peu connus (Elixir, Elm, Pony, Oden et Crystal) et ceux‐ci lui ont fait sauter aux yeux les défauts du JavaScript. Il s’interroge donc sur le futur de ce langage.
Dans les commentaires du journal, de nombreux développeurs ont fait un retour sur leur expérience. Certains apprécient le JavaScript (souvent, un sous‐ensemble de ce langage qui va à l’encontre des dernières nouveautés). D’autres, souhaiteraient fortement s’en débarrasser, mais quasiment tous sont d’accord sur le fait qu’il va rester grâce à son monopole sur les navigateurs).
Certains ont encouragé à essayer leur langage de prédilection : Go, OCaml, ClojureScript, etc.
Enfin, on peut également retrouver un certain espoir avec WebAssembly (le successeur d’asm.js), qui permettrait à de nombreux langages d’être compilés vers la plate‐forme Web.
Node.js passe la sixième vitesse
Node.js est la principale implémentation du langage JavaScript côté serveur. Elle utilise V8, le moteur JavaScript de Google Chrome, et vient d’atteindre la version 6.0.0 le 26 avril 2016.
La montée de version de V8 vers la version 5.0 a d'ailleurs permis une meilleure prise en charge d'ES6, avec 93 % des fonctionnalités couvertes. Parmi les autres nouveautés, on trouve des performances accrues (notamment pour le chargement des modules), une meilleure stabilité et utilisabilité des API JavaScript (notamment Buffer et File System).
Peu de temps après la sortie de la version 6.0.0, des failles OpenSSL ont été annoncées, ce qui a conduit à la sortie d'une version 6.1.0.
Les vrais développeurs utilisent ed !
Certains logiciels font parti de la tradition UNIX. C'est, par exemple, le cas de l'éditeur de texte ed. Écrit par Ken Thompson (OS UNIX, Plan 9 et les langages B et Go), il a marqué une étape importante pour les expressions rationnelles. Avant cette implémentation, le concept des expressions rationnelles n'était formalisé que dans des publications mathématiques, que Ken Thompson avait lues.
GNU ed, l'implémentation de l'éditeur ed par le projet GNU, sous licence GPL, est sorti en version 1.6 hier.
GNU ed is an 8-bit clean, more or less POSIX-compliant implementation of the standard Unix line editor.
Sortie de la version 0.1 de Rust
Mozilla a annoncé le 20 janvier la sortie de la version 0.1 du compilateur pour Rust, sous une licence de type MIT. Rust est un langage de programmation système fortement typé. L'accent est mis sur la sûreté des accès mémoire et la concurrence. Il fonctionne actuellement sur les plateformes GNU/Linux, OSX et Windows.
Voici un exemple d'Hello World :
use std;
import std::io;
fn main() {
for i in [1, 2, 3] {
io::println(#fmt("hello %d\n", i));
}
}
Rust est un langage proche de Go, il partage d'ailleurs une inspiration commune venant de Newsqueak, Alef et Limbo. Toutefois, les développeurs de Rust ont commencé leur travail avant l'annonce de Go et ne sont pas satisfaits par la sémantique adoptée par Go (état partagé mutable, Ramasse-miettes global, pointeurs NULL, absence de destructeurs).
Plus d'informations en seconde partie.
Campagne de financement d’eelo pour un smartphone respectueux de la vie privée
Gaël Duval, le créateur de la distribution Mandrake Linux, a décidé de se lancer dans un nouveau combat : créer un système d’exploitation pour smartphone / ordinateur de poche qui soit respectueux de la vie privée, libre et utilisable par le commun des mortels. Ce projet nommé eelo est à but non lucratif, dans l’intérêt du public.
Mais pour avancer et atteindre une taille critique suffisante pour maintenir un système d’exploitation, il y a besoin de pouvoir payer des développeurs et donc de financer tout ça. Gaël Duval a décidé de faire appel à un financement participatif pour atteindre un premier produit utilisable en partant de LineageOS. Il espère pouvoir ensuite attirer des contributeurs et itérer sur de nouvelles versions.
Des nouvelles de Cozy
Qu’est‑ce que Cozy ? Eh bien, c’est tout d’abord un domicile numérique, un espace où vous êtes chez vous avec vos données (fichiers, photos, bancaires, vacances). Cozy vous permet également de récupérer vos données depuis des services tiers pour mieux les utiliser. Comment ? Avec les connecteurs qui vous les rangent automatiquement pour ne plus perdre de temps à les chercher. Enfin, on peut faire confiance à son Cozy : le code est libre, il est possible de s’auto‑héberger, Cozy Cloud (la société) ne fait pas dans la publicité ciblée, l’exploitation ou la revente de vos données. Grâce à tout ça, Cozy peut vous simplifier votre vie numérique.
Quelques nouvelles rapides du langage Go
Go devient plus stable : de nouvelles versions de Go sortent régulièrement, en moyenne une fois par semaine. C’est un rythme soutenu qui ne convient pas à tout le monde. Les développeurs de Go ont donc décidé de continuer ces versions sous le nom de weekly, mais de publier également des versions stables tous les un à deux mois. Ces versions seront soigneusement choisies et annoncées sur la nouvelle liste, golang‑announce.
Gorun est un outil qui permet de lancer en ligne de commande des « scripts » écrits en Go. Il suffit de mettre « #!/usr/bin/gorun »
en 1re ligne ([[Shebang]]) pour que le script écrit en Go puisse être lancé directement.
Cgo est un outil qui permet de compiler du code Go qui utilise des bibliothèques en C. Il fonctionne, pour le moment, avec le compilateur Go de Google, mais il est aussi prévu de prendre en charge le back‑end Golang de GCC.
Découvrez Backbone.js 0.5.0 pour organiser votre code JavaScript
Backbone.js est un framework JavaScript sous licence MIT que Jeremy Ashkenas a écrit dans le cadre de son travail chez DocumentCloud. Il permet d’apporter de la structure à des applications JavaScript grâce à une bibliothèque qui ne fait pourtant qu’un millier de lignes de code en tout.
Pour cela, il apporte la séparation du code en classes :
- les modèles et collections sont responsables de la logique métier et peuvent également servir pour la persistance, aussi bien locale avec localStorage que distante via des API RESTful en JSON. Les modèles proposent des enregistrements clé‐valeur et des événements associés. Les collections offrent un catalogue bien pratique de méthodes d’énumération : ce sont les méthodes
map
,reduce
,filter
importées depuisunderscore.js
, une des rares dépendances de Backbone.js ; - les vues font la liaison entre les modèles et le DOM. Elles mettent à jour le code HTML en fonction des modifications des modèles et, dans l’autre sens, peuvent gérer les événements du DOM ;
- le routeur permet de modifier l’URL de la page (le
#fragment
ou, depuis la version 0.5.0, le chemin complet grâce àpushState
) et de retourner à l’état associé quand la page est rechargée. Cela permet d’avoir des URL qui peuvent être mises en favoris ou partagées.
Backbone.js a atteint la version 0.5.0 il y a quelques jours et est déjà utilisé sur des projets notables comme Basecamp Mobile.
Reposez vos yeux la nuit devant votre écran avec Redshift
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.
Sortie de Redis en version 2.2
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.
La version 2.2.0 est sortie la semaine dernière, très rapidement suivie de la version 2.2.1. Cette version apporte principalement des optimisations par rapport à Redis 2.0 :
- importante diminution de la consommation mémoire (à ce sujet, je vous conseille la lecture des astuces pour optimiser la mémoire) ;
- réplication non-bloquante ;
- la commande Watch pour faire du check and set ;
- l'Algorithme LRU pour l'éviction des données quand la mémoire consommée par Redis est limitée ;
- nouvelles commandes : SETBIT, GETBIT, SETRANGE et GETRANGE permettant d'accéder à des valeurs de type « chaînes de caractères », comme s'il s'agissait de tableaux.
Pour la suite, antirez (le principal développeur) souhaite se concentrer sur la prise en charge des grappes de serveurs (clusters) et sur diskstore (un stockage sur disque des données pour les instances où tout faire tenir en mémoire n'est pas une option).
Les technos web cools du moment
Hébergez vos projets avec Gitlab
Gitlab est une application de gestion de dépôts git sous licence MIT. Elle permet d'héberger sur votre propre serveur des dépôts git avec l'interface web offrant tout le nécessaire pour vos projets : navigation dans le code source, suivi des demandes de bugs et d'évolutions (« issues »), wiki, gestion des droits d'accès par équipe, commentaires, notifications, etc.
D'un point de vue technique, c'est une application Ruby on Rails avec les dépendances suivantes : Ruby 1.9, sqlite3, git, gitolite (pour la gestion des droits d'accès aux dépôts git) et pygments (pour la coloration syntaxique du code).
L'équipe développant Gitlab travaille sur le rythme d'une version par mois et la version 2.0 vient juste de sortir. Celle-ci apporte des changements importants : les très attendues « merge requests », un tableau de bord revu, une gestion des permissions plus fines, notamment grâce à la prise en charge de gitolite, des améliorations graphiques, des fils Atom pour les commits et issues, etc.
API OAuth d'authentification
LinuxFr.org dispose maintenant d'une API Rest au format JSON qui s'appuie sur OAuth2 pour l'authentification. Cette API est encore très limitée (elle ne possède qu'une seule méthode), mais elle s'enrichira en fonction de vos demandes. N'hésitez pas à créer des entrées dans le suivi pour indiquer quelles seraient les méthodes dont vous auriez besoin.
Pour le moment, elle permet à des sites externes d'authentifier un utilisateur à partir de son compte sur LinuxFr.org comme le proposent des réseaux sociaux bien connus. Cela pourrait par exemple servir à des tribunes hébergées sur d'autres sites pour permettre à leurs utilisateurs de se connecter en un clic.
Cela fonctionne avec le standard OAuth2 mais, si vous êtes un développeur Ruby, je vous recommande d'utiliser la gem Omniauth qui permet de mettre en place l'authentification via LinuxFr.org de manière très simple.
Activité du site LinuxFr.org
L'équipe de modération essaye de faire en sorte que LinuxFr.org reste cet espace vivant avec des dépêches sur Linux et les Logiciels Libres, un espace d'entre-aide, des discussions sur des sujets divers et variés, et tout cela sans avoir les chevilles qui enflent. Voici une petite sélection de nos faits d'armes :
Activité de l'équipe de modération
- Il y a quelques semaines, l'équipe de modération s'est un peu renouvelée. Thomas Petazzoni, Scara et xals, pas mal occupés par ailleurs, nous ont quitté. Merci à eux pour le temps qu'ils ont consacré à LinuxFr. Nous pouvons saluer l'arrivée de Malicia, claudex et boa13, déjà très actifs !
- À l'occasion du salon Solutions Linux 2010, Nils Ratusznik a donné un entretien à Intelli'N TV. C'est l'occasion de faire une séance de rattrapage pour ceux qui ne connaissent pas le site sur le bout des doigts.
- NeoX va atteindre les 5000 réponses sur le forum. Chapeau !
- Nÿco a atteint les 250 dépêches, Floxy et poltuiu font la course à leur 200ème dépêche, et moi, je me concentre sur ma série de 6 dépêches en 6 jours.
Dans un autre registre, le site tourne actuellement avec Templeet (NdM: lien réédité en 2021 pour pointer vers la version archive.org de l'époque) et très rares sont les personnes à y toucher. J'ai commencé au début de l'année 2009 une réécriture du site en Ruby on Rails. Les chances que ce projet aboutisse m'apparaissaient comme assez faibles quand j'ai commencé, mais bon gré, mal gré, cela avance.
Aujourd'hui, une nouvelle étape a été franchie : j'ai taggé la version alpha1 sur le dépôt git. Je considère que le code contient les fonctionnalités essentielles pour pouvoir remplacer la version actuelle basée sur Templeet. Je vais maintenant m'attacher à corriger les bugs et optimiser le code. J'espère que cette version pourra être mise en ligne bientôt.
Dernière chose, nous utilisons webalizer pour nos statistiques web, et plus précisément le package debian. Celui-ci n'est plus très jour, et si un développeur Debian a un peu trop de temps libre, nous lui serions reconnaissants s'il pouvait regarder ça.