Petites brèves sur ditaa, DocumentUp et Sensu

Posté par (page perso) . Édité par Nÿco et baud123. Modéré par Malicia. Licence CC by-sa.
Tags :
24
10
fév.
2012
Technologie

ditaa

Dessiner des diagrammes en ascii art, c'est sympa. Enfin, c'est comme la ligne de commande, certains ne comprennent pas que l'on puisse rester avec des outils qui paraissent aussi rustiques mais pour d'autres, c'est juste impensable de faire autrement.

Heureusement, il existe ditaa, un outil sous licence GPL qui permet de créer des images à partir de diagrammes en ascii art, permettant ainsi de réconcilier les deux populations.

DocumentUp

Écrire une documentation agréable, jolie et pratique à utiliser n'est pas une tâche simple. Mark Phillips a recensé une liste de documentations remarquables sur ces critères, beautiful-docs, pour vous inspirer si vous le souhaitez. Si vous souhaitez vous lancer dans l'écriture d'une telle documentation, je vous souhaite bon courage et sachez que le résultat en vaudra très certainement la peine.

Mais pour les gens qui, comme moi, ne s'en sentent pas la motivation ou ne souhaitent pas prendre le temps de faire ça, il existe aussi une solution de facilité : DocumentUp. Cet outil, sous licence MIT, prend un fichier README depuis un dépôt github et le transforme en une page web structurée, offrant ainsi une documentation pour votre projet dont vous n'aurez pas à rougir.

À noter que le site web de DocumentUp est généré avec DocumentUp et est donc un bel exemple d'utilisation de DocumentUp.

Sensu

Sensu se veut une solution moderne de monitoring sous licence MIT, apte à travailler dans des infrastructures élastiques. Sonian, la société qui a développé Sensu, travaillait avec Nagios mais ils n'en étaient pas totalement satisfaits. Utilisant Chef et Puppet pour faire varier le nombre de serveurs et leurs rôles, ils étaient particulièrement gênés par certaines limitations de Nagios comme devoir déclarer l'intégralité des serveurs au démarrage.

Sensu est écrit en Ruby avec le framework EventMachine. Il utilise un message queue RabbitMQ pour la communication entre le tableau de bord et les sondes. Ses fichiers de configuration sont écrits en JSON et Sensu utilise Redis comme base de données pour des données transitoires.

Il est possible d'utiliser des greffons Nagios pour les sondes et d'envoyer des métriques à différents backends dont Graphite.

Nouveau moteur de recherche interne à LinuxFr.org

65
1
fév.
2012
LinuxFr.org

Jusqu'à présent, la recherche de contenus sur LinuxFr.org se faisait avec Google. Ce n'est plus le cas : nous avons maintenant notre propre moteur de recherche \o/. C'est une fonctionnalité qui était très demandée. Pour les utilisateurs pressés de l'utiliser, le champ de recherche est en haut à droite avec la feuille de style par défaut (« Entrer un mot-clé »). Il permet de rechercher sur tous les contenus de LinuxFr.org : dépêches, journaux, forums, sondages, pages de wiki et entrées de suivi.

D'un point de vue technique, ce moteur de recherche utilise Elastic Search et la gem Ruby Tire. Elastic Search est une interface REST (Representational_State_Transfer), sous licence Apache2, construit au dessus de Lucene. Il permet donc de profiter de la puissance des index Lucene, et notamment des facettes, en HTTP et JSON. Tire, de son coté, est une petite bibliothèque Ruby qui simplifie les requêtes d'indexation et de recherche à destination d'Elastic Search. Un autre avantage est qu'il est possible de profiter des opérateurs de recherche avancée de Lucene. Par exemple, "Elastic Search"^3 OR Google permet de faire une recherche sur la chaîne Elastic Search ou sur Google, mais en favorisant Elastic Search. Ce moteur est bien sûr perfectible (N'est pas Google qui veut !). Une première entrée a déjà été ouverte dans le système de suivi de LinuxFr.org. N'hésitez pas à y ajouter vos remarques de manière constructive.

Auparavant, comme mentionné plus haut, le champs de recherche renvoyait vers Google search. Pour la transparence, cela leur permettait de placer de la publicité et pour LinuxFr.org cela générait quelques petits revenus, en décroissance régulière cependant (moins de 100 $ par an désormais). Donc nous perdons une petite source d'argent (l'autre étant les dons ponctuels), mais nous gagnons désormais encore plus en indépendance.

Plus que de l'argent, ce dont LinuxFr.org a vraiment besoin pour vivre, c'est du contenu. Nous avons de sympathiques mécènes pour l'hébergement ou la motivation. Le meilleur moyen de nous aider est donc de contribuer. Merci à tous.

Petites brèves autour de Ruby

Posté par (page perso) . Édité par Benoît Sibaud. Modéré par Benoît Sibaud. Licence CC by-sa.
Tags :
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 0.1 de Rust

Posté par (page perso) . Édité par Xavier Claude et Lucas Bonnet. Modéré par baud123. Licence CC by-sa.
36
22
jan.
2012
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.

Sortie de Ruby on Rails 3.2.0

Posté par (page perso) . Édité par Xavier Claude. Modéré par Xavier Claude. Licence CC by-sa.
Tags :
29
21
jan.
2012
Ruby

Ruby on Rails est un framework de développement web agile, sous licence MIT. La version 3.2.0 est sortie hier, avec au menu :

  • Amélioration des performances : un nouveau moteur pour le routage, Journey, a fait son apparition et, en mode développement, seules les classes réellement modifiées sont rechargées ;
  • Requêtes SQL Explain : il est maintenant très facile de faire une requête Explain depuis la console pour vérifier la présence d'un index ou optimiser une requête (Person.active.limit(5).explain par exemple) et ce sera fait par défaut pour les requêtes prenant plus de 0,5 seconde en mode développement ;
  • Active Record Store : Active Record permet maintenant d'utiliser un champ d'une base de données SQL comme un stockage de type clé/valeur ;
  • Logger avec des tags : la classe TaggedLogging permet de préfixer chaque ligne de log avec un ou plusieurs tags. Exemple :

logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
logger.tagged("BCX") { logger.info "Stuff" }
# Logs "[BCX] Stuff"

Je vous recommande d'utiliser Ruby 1.9.3 pour profiter pleinement de cette version de Rails. Mais dans le cas où vous seriez coincé avec un Ruby 1.8.7, pensez à mettre à jour Rubygems, il semblerait que l'installation ne se passe pas très bien avec des versions un peu anciennes de rubygems.

Note : LinuxFr.org tourne depuis aujourd'hui avec Rails 3.2.0.

pof pof p0f la prise d'empreintes réseau passive !

Posté par (page perso) . Édité par Benoît Sibaud. Modéré par Xavier Teyssier. Licence CC by-sa.
Tags :
42
17
jan.
2012
Sécurité

P0f est un outil de prise d'empreintes réseau passif, sous licence GNU LGPL. Cela veut dire qu'il analyse les connexions réseaux TCP/IP, même incomplètes, pour essayer d'en faire ressortir certaines caractéristiques (par exemple les flags TCP utilisés ou la taille des paquets) et ainsi en déduire l'identité (l'OS, la version du noyau) des ordinateurs derrière ces connexions.

Mais contrairement à nmap, il fonctionne de manière totalement passive, sans interférer avec les connexions TCP/IP en cours, là où nmap forge des paquets spécifiques. Nmap est donc capable d'identifier beaucoup plus rapidement l'OS derrière une adresse IP en forçant celle-ci à répondre à certaines requêtes très particulières et préparées dans ce but. Cela veut aussi dire que nmap a un comportement agressif, facile à repérer sur un réseau et pouvant mettre à mal certains équipements exotiques. P0f est plus conservateur, ce qui un avantage pour le faire tourner en continu sur un environnement de production.

La version 3.0.0 de p0f vient de sortir. C'est une réécriture complète qui apporte un certain nombre d'améliorations, dont la principale est de pouvoir analyser les charges au niveau applicatif (HTTP par exemple). Une démo est présente sur le site web de p0f : elle montre quelques caractéristiques récoltées par p0f à propos de votre adresse IP.

Les vrais développeurs utilisent ed !

Posté par (page perso) . Édité par Nÿco, Lucas Bonnet, Manuel Menal, Malicia et Xavier Claude. Modéré par patrick_g. Licence CC by-sa.
Tags :
36
4
jan.
2012
Ligne de commande

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.

Hébergez vos projets avec Gitlab

Posté par (page perso) . Édité par Malicia. Modéré par Xavier Claude. Licence CC by-sa.
Tags :
33
23
déc.
2011
Gestion de versions

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.

Appel à contribution pour les logos des sections de LinuxFr.org

Posté par (page perso) . Édité par baud123 et NeoX. Modéré par patrick_g. Licence CC by-sa.
19
20
déc.
2011
LinuxFr.org

Les dépêches de LinuxFr.org sont rangés dans différentes sections, et chaque section a son icône. L'équipe de LinuxFr.org ne possède pas particulièrement de grande capacité graphique et les logos sont donc souvent des images sous licence libre reprises là où on pouvait.

Du coup, les logos sont très disparates et pas toujours très jolis. Nous avons régulièrement des demandes dans le suivi pour nous demander d'ajouter une section ou de changer le logo d'une section existante.

Si un lecteur de LinuxFr.org est plus doué que nous pour le graphisme et a un peu de temps libre, nous serions ravis qu'il nous propose de nouveaux logos, à commencer par celui de la section Distribution :

Oh le joli baril de lessive

Pour les autres, vous pouvez aussi proposer des images sous licence libre que vous auriez vues par ailleurs et qui conviendraient bien. De manière plus générale, nous sommes preneurs de toutes les illustrations, logos, images, dessins que vous pourriez nous fournir pour agrémenter le site.

API OAuth d'authentification

Posté par (page perso) . Édité par Benoît Sibaud et Xavier Claude. Modéré par Benoît Sibaud. Licence CC by-sa.
33
11
déc.
2011
LinuxFr.org

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.

Socat, un outil en ligne de commande pour maîtriser vos sockets

Posté par (page perso) . Édité par Pierre Jarillon et Xavier Claude. Modéré par Nÿco. Licence CC by-sa.
Tags :
39
7
déc.
2011
Ligne de commande

Socat est un outil en ligne de commande pour manipuler des sockets réseau, sous licence GPL. La version 1.7.2.0 vient de sortir avec les nouveautés suivantes :

  • prise en charge des interfaces tun/tap sans adresse IP ;
  • ajout des options openssl-compress et max-children ;
  • amélioration pour certaines plateformes, et notamment Mac OS X Lion, DragonFly et Android.

Rappelons que socat sert principalement à relayer deux flux de données de manière bidirectionnelle. Comme ces flux peuvent être de types très variés et acceptent de nombreuses options, il est possible d'utiliser socat pour des usages très divers. Voici quelques exemples :

socat -d -d READLINE,history=$HOME/.http_history TCP4:www.domain.org:www,crnl
# Vous pouvez saisir du texte avec la bibliothèque readline et il sera envoyé en TCP à www.domain.org sur le port 80 (www). Pratique pour simuler des requêtes HTTP à la main.

socat TCP4-LISTEN:www TCP4:www.domain.org:www
# C'est un simple transfert de données entre 2 flux TCP. Tout ce qui arrive sur le port 80 (www) de la machine locale est envoyé vers www.domain.org et inversement.

socat -u TCP4-LISTEN:3334,reuseaddr,fork OPEN:/tmp/in.log,creat,append
# Dans cet exemple, socat va écrire tout ce qu'il reçoit sur le port 3334 dans un fichier.

htop atteint la version 1.0  !

Posté par (page perso) . Édité par Davy Defaud, patrick_g et Nÿco. Modéré par Xavier Teyssier. Licence CC by-sa.
Tags :
56
22
nov.
2011
Ligne de commande

htop est un outil en mode texte qui permet d’afficher les processus qui tournent et les informations associées à ces processus, comme leur utilisation du temps processeur ou leur consommation mémoire. htop est publié sous licence GPL et vient d’atteindre la symbolique version 1.0.

htop est un clone de top, mais en mieux. Il permet par exemple :

  • d’avoir un défilement (scroll) horizontal et vertical ;
  • de tuer un processus sans avoir à entrer à la main son identifiant PID ;
  • de démarrer plus rapidement ;
  • d’afficher des barres colorées pour indiquer l’utilisation processeur globale et la consommation mémoire.

Bref, je vous encourage à essayer htop, c’est un très bon remplaçant à top.

Évolutions du site

Posté par (page perso) . Édité par Davy Defaud, baud123, Xavier Claude, Florent Zara et patrick_g. Modéré par baud123. Licence CC by-sa.
51
19
nov.
2011
LinuxFr.org

Le site Web LinuxFr.org tourne depuis le début de l’année avec un moteur en Ruby on Rails. Il bénéficie régulièrement de nouvelles fonctionnalités et de corrections de bogues. La plupart de ces modifications sont faites au fil de l’eau et déployées dans la foulée sur le serveur de production.

Mais ce coup‐ci, les modifications sont suffisamment importantes pour avoir fait l’objet de tests sur l’environnement alpha et bénéficier d’une dépêche. En effet, l’espace de rédaction a été refait pour apporter plus de confort aux personnes écrivant des dépêches et aux relecteurs :

  • meilleure gestion des verrous sur les paragraphes ;
  • possibilité d’annuler une modification en cours ;
  • affichage d’un diff pour chaque révision ;
  • affichage de la liste des participants ;
  • diverses corrections de bogues.

Si vous rencontrez un bogue ou si vous souhaitez proposer une modification, vous pouvez le faire sur le suivi (notre bugtracker interne).

De nouvelles sections pour les dépêches ont aussi fait leur apparition. Les trois dernières sections sont Android, Open Data et Do It Yourself. Comme vous pouvez le voir, elles n’attendent que vos propositions de dépêches. Nous comptons sur vous !

Node.js passe en version 0.6.0 et arrive sous Windows

Posté par (page perso) . Modéré par Nÿco. Licence CC by-sa.
27
5
nov.
2011
JavaScript

Node.js est un environnement JavaScript côté serveur, sous licence MIT. Sa particularité est son approche asynchrone pour faciliter la montée en puissance dans des contextes avec beaucoup d’entrées‐sorties, notamment réseau. En pratique, il se compose :

  • d’un interpréteur JavaScript, à savoir V8 ;
  • de require(), un chargeur de modules compatible CommonJS ;
  • d’une bibliothèque standard, volontairement restreinte (une sorte de libc JavaScript où tous les appels sont asynchrones) ;
  • d’un ensemble de conventions : par exemple, les fonctions de retour indiquent toujours en premier paramètre si l’appel s’est bien passé, et dans le cas contraire, quelle a été l’erreur ;
  • et d’un exécutable, « node », pour lancer tout ça.

La version 0.6.0 est sortie aujourd’hui et apporte quelques nouveautés de taille (plus de détails en seconde partie) :

  • la prise en charge de Windows en utilisant les I/O Completion Ports (IOCP) ;
  • un répartiteur de charge entre plusieurs processus Node.js intégré ;
  • des moyens de communications entre des processus Node.js plus efficaces ;
  • des améliorations du débogueur en ligne de commande ;
  • des bindings pour la zlib ;
  • la mise à jour de V8, passant de la version 3.1 à la 3.6.

La prise en charge de Windows, sans dégrader les performances pour les UNIX, a pris plus longtemps que prévu. Cela a fortement retardé la sortie de cette version, mais Ryan Dahl, son créateur, souhaite sortir la prochaine version stable de Node.js (la v0.8.0) pour janvier 2012.

Vim fête son 20e anniversaire

Posté par (page perso) . Modéré par Christophe Guilloux. Licence CC by-sa.
42
3
nov.
2011
Ligne de commande

Vim, le célèbre éditeur de texte vient de fêter son 20e anniversaire. C’est, en effet, le 2 novembre 1991 que Bram Moolenaar a publié la première version de Vim. C’était alors un clone de vi pour Amiga. Toutefois, contrairement à vi, c’est un logiciel libre. Il a pu ainsi être porté rapidement sur d’autres environnements et devenir l’éditeur de référence de nombreux développeurs.

Au fil des ans, de nombreuses versions se sont succédées (la version actuelle est la 7.3), mais son auteur a gardé le principe que Vim doit rester un éditeur de texte et être le plus possible au service de l’utilisateur.

Profitons‐en pour rappeler que si Vim est un logiciel libre publié sous une licence compatible avec la GPL, ses utilisateurs sont encouragés à faire un don à ICCF Holland, une association créée par Bram Moolenaar pour aider les enfants en Ouganda.

Et pour célébrer les 20 ans de Vim, vous êtes encouragés à poster en commentaire toutes les astuces et anecdotes que vous avez sur Vim.