Petites brèves Ruby

Posté par  (site web personnel) . Modéré par baud123. Licence CC By‑SA.
Étiquettes :
17
21
avr.
2012
Ruby

Sortie de Ruby 1.9.3-p194

Une nouvelle version de Ruby est sortie récemment : Ruby 1.9.3-p194. En plus des diverses corrections de bugs mineurs, elle contient deux correctifs de sécurité pour RubyGems :

  • elle active la vérification des certificats SSL pour les dépôts de gems privés ;
  • elle interdit les redirections d'une adresse en HTTPS vers une adresse en HTTP.

mruby

mruby est un projet mené par le créateur de Ruby, matz, depuis quelques années. Il vise à avoir une implémentation de Ruby plus légère, pouvant être compilée et liée avec une autre application pour pouvoir utiliser Ruby comme langage de script embarqué au sein d'un programme plus large.

mruby est encore loin d'être complètement fonctionnel mais il est intéressant de noter qu'il va être utilisé pour MobiRuby un framework de développement d'applications mobiles qui devrait sortir cet été (sur iOS puis sur Android).

Rails-API

Le framework Ruby on Rails est de plus en plus souvent utilisé pour développer des API Rest au format JSON. Le plugin Rails-API tire parti du travail de modularisation de Rails 3 pour fournir une version optimisée de Rails pour ce cas d'usage.

Ce n'est pas un fork mais bien un plugin pour Rails, ce qui veut dire qu'il est toujours possible de réinclure les fonctionnalités manquantes (utile si on veut avoir une API utilisable depuis les navigateurs) et d'utiliser tout l'écosystème autour de Rails.

Sortie d'une première version stable de Go

Posté par  (site web personnel) . Édité par Nÿco. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
48
9
avr.
2012
Golang

Go est un langage de programmation généraliste, sous licence BSD, à typage statique, disposant d'un ramasse-miettes et de facilités pour gérer la concurrence. Ses avantages sont d'être concis et expressif, de compiler très rapidement et de proposer les performances d'un langage compilé avec la souplesse d'un langage interprété.

Après deux ans et demi de développement, la première version stable du langage Go, nommée Go 1, est sortie. Elle vise à apporter de la stabilité sur les prochaines années pour les utilisateurs du langage, mais aussi pour les auteurs, qui vont ainsi pouvoir écrire des livres dont les exemples et explications continueront d'être valables bien après leur sortie. En particulier, cela implique une compatibilité garantie de tout programme écrit avec la version 1.0 vers toutes les versions 1.x.

Notons que le langage a fortement évolué depuis les premières annonces et que son positionnement a également été revu. Par exemple, Go était initialement vendu comme un langage de programmation système mais il est maintenant décrit comme un langage généraliste, ce qui correspond mieux à l'utilisation qui peut en être faite. Autre changement, Go était au départ un projet de Google mais il n'y a plus, aujourd'hui, de mention de Google sur la page d'accueil du site officiel. Cela ne veut pas dire que Google se désintéresse de Go (pour preuve, il est utilisé pour des composants critiques comme vitess pour Youtube) mais que les auteurs du langage souhaitent mettre en avant la communauté qui s'est construite autour du langage.

Des binaires pour Go 1 sont fournis sur le site officiel pour Linux, FreeBSD, Mac OS X et Windows au cas où votre distribution ne fournirait pas encore de paquets officiels.

NdM : merci à Xavier Claude pour la rédaction d'une dépêche sur le même sujet qui a été intégrée à celle-ci.

Remise des prix Free Software 2011 à Matz et GNU Health

Posté par  (site web personnel) . Édité par Benoît Sibaud, baud123 et Nils Ratusznik. Modéré par j. Licence CC By‑SA.
Étiquettes :
15
31
mar.
2012
GNU

La Free Software Foundation (FSF) remet une fois par an des prix pour récompenser les avancées du Logiciel Libre. La cérémonie de remise des prix 2011 a eu lieu le 25 mars.

À cette occasion, Yukihiro Matsumoto (aka Matz) s'est vu remettre une jolie^W décoration des mains de Richard Stallman pour son travail sur Ruby, le projet GNU et les logiciels libres auxquels il a participé. Notons que les créateurs de Perl, Larry Wall, et de Python, Guido Van Rossum, avaient remporté cette récompense en 1998 et 2001 respectivement.

L'autre prix, visant à récompenser les projets avec des bénéfices sociétaux, a été décerné au projet GNU Health. Luis Falcon, le président de l'association GNU Solidario qui soutient le projet GNU Health, était également présent pour recevoir le prix au nom du projet.

Sortie d'Elastic Search en version 0.19

Posté par  (site web personnel) . Édité par baud123 et NeoX. Modéré par Lucas Bonnet. Licence CC By‑SA.
14
3
mar.
2012
Base de données

Elastic Search est un moteur de recherche full-text, sous licence Apache 2. Plus précisément, c'est une interface Rest (Representational State Transfer) distribuée, utilisant le format JSON, qui permet d'exposer des index Lucene pour construire des moteurs de recherche avec des fonctionnalités avancées comme de la recherche par facette. On peut donc le comparer à Solr, mais avec une approche plus moderne et plus proche du mouvement NoSQL.

Il existe de nombreux clients pour Elastic Search comme la gem Tire dans le monde Ruby ou ElasticSearch.pm pour Perl. Elastic Search est utilisé en production par Mozilla, Stumble Upon , yfrog, Klout, af83, etc.

NdM : LinuxFr.org utilise Elastic Search pour son moteur de recherche interne, dans sa version 0.19 depuis le jour de sa sortie. Merci Lukhas !

Apache passe en version 2.4

Posté par  (site web personnel) . Édité par Florent Zara et baud123. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
49
22
fév.
2012
Internet

La fondation Apache a fêté le 17ème anniversaire du célèbre serveur HTTP éponyme en sortant la version 2.4 de celui-ci. Cette version majeure, la première depuis 2005, apporte évidemment des améliorations notables. Citons les suivantes :

Rappelons que le serveur web Apache est apparu en 1995 comme un fork de NCSA HTTPd. Son code source a depuis été entièrement réécrit et est publié sous licence Apache. Il est devenu le serveur web le plus utilisé au monde : les études montrent qu'environ les 2/3 des serveurs web connectés à Internet tournent avec Apache.

Petites brèves sur Dartium et l'utilisation de Redis sur Youporn

Posté par  (site web personnel) . Édité par NeoX, Lucas Bonnet et claudex. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
22
18
fév.
2012
Internet

Dartium

Google vient d'annoncer la disponibilité de binaires pour Dartium, une version modifiée du navigateur web Chromium embarquant une machine virtuelle pour Dart. Rappelons que Dart est un langage de programmation développé chez Google dans l'objectif de remplacer JavaScript. À l'annonce de sa publication, les développeurs JavaScript avaient fortement critiqué ce projet ; Mozilla et Microsoft avaient annoncé ne pas vouloir intégrer de VM Dart dans leurs navigateurs ; Google s'était même vu refusé l'intégration d'une VM multi-langages (dont Dart) dans Webkit. Google a donc choisi de poursuivre le développement de Dart dans son coin et sort maintenant une Technology Preview de la VM Dart avec Dartium.

Redis

Youporn.com est un site web avec du contenu pour adultes, faisant parti du top 100 des sites avec le plus fort trafic (100 millions de pages vues par jour). La nouvelle version du site lancée récemment utilise exclusivement Redis comme base de données. Il est intéressant de noter que le cluster Redis utilisé est capable de traiter 300 000 requêtes par seconde sans problème, le facteur limitant étant les cartes réseaux. Eric Pickup, un des développeurs, fera un retour détaillé de cette utilisation lors de la conférence Confoo 2012.

Sortie de Ruby 1.9.3-p125 pour corriger une faille de sécurité

Posté par  (site web personnel) . Édité par Nÿco et Benoît Sibaud. Modéré par Lucas Bonnet. Licence CC By‑SA.
Étiquettes :
18
16
fév.
2012
Ruby

La version 1.9.3-p125 de Ruby est sortie aujourd'hui. Elle vient corriger une faille de sécurité dans le module OpenSSL, ainsi que d'autres bugs.

Dans OpenSSL, l'option SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS pour les connexions SSL est utilisée pour se prémunir d'une vulnérabilité de TLS-CBC-IV. Il s'agit d'une faille bien connue de TLSv1/SSLv3, qui est revenue sur le devant de la scène sous le nom d'attaque BEAST (CVE-2011-3389). Jusqu'à présent, l'extension OpenSSL de Ruby ne permettait pas de désactiver cette option. Or, pour contrer l'attaque BEAST, il s'avère que Ruby doit laisser la possibilité aux utilisateurs de la désactiver afin d'insérer des fragments vides au début des connexions SSL (le fameux "0/n splitting").

Spree 1.0.0

Posté par  (site web personnel) . Édité par Xavier Teyssier, baud123 et Nÿco. Modéré par Malicia. Licence CC By‑SA.
14
10
fév.
2012
Ruby

Spree est une solution d'e-commerce, sous licence libre, écrite avec le framework Ruby on Rails. Après cinq ans de développement, elle vient d'atteindre la version 1.0.0 grâce à plus de 150 contributeurs.

Spree est une plateforme d'e-commerce complète conçue pour simplifier le développement d'applications e-commerce en faisant certaines suppositions. Elle peut-être utilisée telle quelle mais, plus important, elle est surtout pensée pour être une base solide pour que des développeurs puissent l'utiliser dans des développements plus importants. Voici les quatre opinions à la base de la vision de Spree :

  1. Aucune solution ne peut satisfaire tout le monde. Spree se concentre sur fournir les 80 % des fonctionnalités les plus utiles, charge aux développeurs de coder les 20 % restantes, spécifiques à chaque projet.
  2. Le commerce en ligne n'est pas pour les débutants. Spree vise un public de développeurs Rails aptes à se confronter aux besoins avancés nécessaires pour les boutiques en ligne sérieuses.
  3. Les développeurs ont besoin d'un contrôle total. Spree ne doit pas se mettre en travers du chemin des développeurs quand ceux-ci travaillent sur les fonctionnalités spécifiques et rester suffisamment souple pour permettre les adaptations à moindre coût.
  4. Il faut rester concentré. Spree est une solution d'e-commerce et ne doit pas s'éparpiller. Il n'y a pas de raison de proposer des fonctionnalités de type CMS alors qu'il existe déjà des CMS dans le monde Rails comme Radiant.

À partir de cette vision, les développeurs de Spree ont réussi à construire une solution d'e-commerce robuste, offrant de nombreuses fonctionnalités, parmi lesquelles on retrouve :

  • Apparence facilement personnalisable ;
  • Parcours client flexible ;
  • Gestion avancée du catalogue de produits ;
  • Interface de gestion des commandes ;
  • Prise en charge de nombreuses passerelles de paiement et de calcul de frais de ports ;
  • Traduction en 30 langues ;
  • Plus d'une centaine d'extensions.

Petites brèves sur ditaa, DocumentUp et Sensu

Posté par  (site web personnel) . Édité par Nÿco et baud123. Modéré par Malicia. Licence CC By‑SA.
Étiquettes :
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

Posté par  (site web personnel) . Édité par Florent Zara, Nÿco, tuiu pol, Lucas Bonnet et Benoît Sibaud. Modéré par Lucas Bonnet. Licence CC By‑SA.
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  (site web personnel) . Édité par Benoît Sibaud. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
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  (site web personnel) . Édité par claudex et Lucas Bonnet. Modéré par baud123. Licence CC By‑SA.
Étiquettes :
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  (site web personnel) . Édité par claudex. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
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  (site web personnel) . Édité par Benoît Sibaud. Modéré par Xavier Teyssier. Licence CC By‑SA.
Étiquettes :
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  (site web personnel) . Édité par Nÿco, Lucas Bonnet, Manuel Menal, Malicia et claudex. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
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.