En vrac spécial Ruby : JRuby, Sinatra et Goliath

Posté par  (site web personnel) . Modéré par Xavier Teyssier.
Étiquettes :
27
20
mar.
2011
Ruby

JRuby

JRuby est une implémentation complète de Ruby au-dessus de la machine virtuelle Java. La version 1.6 récemment sortie apporte des fonctionnalités majeures :

  • compatibilité avec Ruby 1.9.2, aussi bien pour le langage que pour l'API ;
  • prise en charge expérimentale des extensions écrites en C ;
  • profiler intégré ;
  • performances améliorées ;
  • meilleure expérience utilisateur sous windows ;
  • etc.

Sinatra

Sinatra est un micro-framework en Ruby pour construire rapidement des applications web (licence MIT). La version 1.2 est sortie au début du mois avec des nouveautés intéressantes :

Goliath

Goliath est un serveur HTTP en Ruby sous licence MIT. Sa particularité est de s'appuyer sur EventMachine et les fibres de Ruby 1.9. Il peut ainsi fonctionner de manière asynchrone et performante tout en gardant le code lisible (l'exécution reste linéaire et ne repose pas sur des callbacks enchainés comme on peut le voir dans d'autres environnements).

En pratique, Goliath convient bien pour écrire des services HTTP en complément d'une application web : API de streaming, upload de fichiers volumineux, proxy HTTP adaptés, etc.

En vrac : Drizzle, MongoDB et Webdis

Posté par  (site web personnel) . Modéré par Xavier Teyssier.
Étiquettes :
23
20
mar.
2011
Base de données

Drizzle

Drizzle est un fork de MySQL allégé et spécialement adapté pour le web et les infrastructures Cloud. Contrairement à MySQL qui est la propriété d'Oracle, Drizzle est développé et conduit par la communauté. Parmi les autres différences avec MySQL, on peut également citer :

  • l'absence des vues, triggers et procédures stockées ;
  • la non prise en charge de Windows ;
  • un nouveau moteur, HailDB ;
  • une configuration optimisée par défaut pour 1024 connexions simultanées…

La version 2011.03.13 a été déclarée General Availability (GA), c'est-à-dire prête pour la production, et ce trois ans après l'annonce du fork.

MongoDB

MongoDB est une base de données NoSQL de type documents, sous licence GNU AGPL. La version 1.8 est sortie le 16 mars et apporte :

Webdis

Redis est une base de données de type clé-valeur, un memcached boosté aux stéroïdes. Webdis est une interface HTTP au-dessus de Redis, sous licence BSD.

Il permet d'interroger une base de données Redis en appelant un chemin de la forme /Commande/Argument1/Argument2/.../ArgumentN. Le retour sera par défaut du JSON, mais il est également possible d'utiliser du JSONP ou d'autres formats : HTML, texte brut, etc. Webdis intègre également une gestion des droits en fonction de l'adresse IP, de l'authentification HTTP ou des deux.

Sortie de Redis en version 2.2

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
34
27
fév.
2011
Base de données

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).

FreedomBox

Posté par  (site web personnel) . Modéré par patrick_g.
69
26
fév.
2011
Debian

La FreedomBox est un projet de la FreedomBox Foundation qui veut permettre à chacun d'héberger ses propres informations à partir de chez lui pour ne plus dépendre de sociétés qui regroupent toutes ces informations. Le projet a été annoncé par Eben Moglen devant l'ISOC à New York le 2 février 2010.

L'idée est de se baser sur les plug computer afin de fournir un système qu'il suffit de brancher chez soi pour qu'il soit opérationnel. Ce serveur tournerait grâce à des logiciels libres afin de garantir le respect de la vie privée des utilisateurs.

Le but est d'éviter de reproduire ce qu'il s'est passé en Tunisie ou en Égypte, même si cela s'est bien terminé. En effet, les gens ont principalement communiqué via Twitter et Facebook et la seule parade a été de couper Internet, mais que se serait-il passé si ces sociétés étaient forcées (ou ne pouvaient pas s'offrir le luxe de refuser) de couper les communications ou pire, de donner la listes des gens qui ont participé à tel groupe ou écrit tel tweet.

La FreedomBox doit permettre à chacun de maitriser ses données et ses canaux de communications. En mettant en œuvre Logiciels Libres, cryptographie et réseaux P2P, ces boitiers auront pour objectifs d'offrir les services suivants :

  • un réseau social protégé
  • des sauvegardes sécurisées
  • une protection contre la censure sur les réseaux
  • la publication anonyme sûre
  • la sécurité du réseau local
  • les courriels chiffrés sans peine
  • la VOIP privée.

Vous pouvez dès maintenant participer à cette initiative en faisant un don sur Kickstarter pour aider à financer la fondation, en participant à Debian qui sera la base de la future FreedomBox ou encore en commençant à vous auto-héberger.

N. D. M. : merci à Xavier Claude qui a rédigé une bonne partie de cette dépêche.

Architecture logicielle de la nouvelle version de LinuxFr.org

Posté par  (site web personnel) . Édité par Benoît Sibaud. Modéré par tuiu pol.
90
23
fév.
2011
LinuxFr.org

La nouvelle version de LinuxFr.org est en ligne depuis quelques jours. Vous nous remontez régulièrement des bugs et des propositions d'améliorations dans le suivi. Je vous encourage à continuer et à commenter / voter sur les entrées qui vous intéressent.

Voici quelques entrées sur lesquelles j'aimerais particulièrement avoir vos retours :

Je pense que vous êtes également intéressés par l'architecture logicielle de cette nouvelle version. Vous pourrez donc trouver quelques explications à son sujet en seconde partie et n'hésitez pas à poser des questions dans les commentaires.

Nouvelle version de LinuxFr.org

Posté par  (site web personnel) . Modéré par Benoît Sibaud.
110
20
fév.
2011
LinuxFr.org

Le site LinuxFr.org existe depuis juin 1998. Il est passé par différentes versions, fonctionnant avec différents moteurs : DaCode, Templeet et maintenant Ruby on Rails. Le site a donc utilisé le tout intégré DaCode, puis des modèles de page en Templeet développés par l'équipe du site, puis une version intégrée en Ruby.

Templeet avait été lancé principalement pour LinuxFr.org, il a été et est utilisé par d'autres sites comme moteur de « templates ». Il continuera sa vie de son côté, une version 4 étant attendue d'ici quelques mois.

La nouvelle version propose une charte graphique refaite pour l'occasion. Un concours a été organisé dans ce but et la feuille de style (CSS) gagnante, RonRonnement, est devenue la nouvelle CSS par défaut. Si celle-ci ne vous plaît pas, vous pouvez toujours profiter des autres CSS (l'ancienne feuille de style est là sous le nom kaiska-new).

Il est difficile de lister tous les changements liés à cette migration, mais voici les plus notables :

  • Les contenus et commentaires utilisent maintenant une syntaxe wiki, du Markdown en l'occurrence ;
  • L'espace de rédaction collaboratif a été refait (d'ailleurs, cette dépêche a été écrite simultanément par les 3 admins du site : lukhas, oumph et NoNo) ;
  • Le site intègre maintenant un wiki ;
  • Chaque utilisateur a maintenant un avatar : par défaut, il vient de gravatar mais il peut être changé dans les préférences ;
  • Les utilisateurs authentifiés peuvent étiqueter les contenus ;
  • Le script d'envoi de la lettre quotidienne d'annonce des dépêches est à refaire.

Mais certaines fonctionnalités n'ont pas encore été portées : la messagerie interne, les statistiques et le choix des contenus sur la première page.

Après les remous de la migration vers le nouveau site, l'équipe du site est à votre écoute pour recenser tous les problèmes que vous pourriez rencontrer.

Les résultats du concours LinuxFr.org

Posté par  (site web personnel) . Modéré par Lucas Bonnet.
Étiquettes :
49
15
fév.
2011
LinuxFr.org
Le site LinuxFr.org existe depuis 12 ans et la prochaine version va bientôt arriver. Pour la charte graphique de cette nouvelle version, nous avons fait appel à vous, lecteurs, en organisant un concours. Nous remercions chaleureusement tous les participants pour le travail accompli.

Après une petite période de flottement, l'équipe de modération a fini par se mettre d'accord. Voici donc le classement final du concours :
  1. RonRonnement, dans sa variante gris-bleu, par 2PetitsVerres ;
  2. cascade, par Benoît Monin ;
  3. kaiska-new, par Yggdras ;
  4. nightgrey, par Nicolas Paris ;
  5. greyscale, par Marin Moulinier ;
  6. retro, par Yellowiscool.

Les gagnants vont recevoir les prix suivants : une tablette Android type Archos 101 offerte par Nuxeo, deux bons d'achat de 250 € pour du matériel libre offerts par Hackable Devices, et trois fois un an d'hébergement sur un serveur virtuel fourni par Gandi (1 part × 1 an). Un grand merci à tous nos partenaires pour nous avoir soutenu tout au long de ce concours, ainsi qu'à InDefero pour les forges mises à notre disposition.

La nouvelle feuille de style par défaut va donc être RonRonnement gris-bleu. Vous pouvez l'essayer sur la version bêta, qui devrait devenir dans les prochains jours la toute nouvelle version officielle de LinuxFr.org. Stay tuned!

Sortie de Node.js 0.4.0

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
16
12
fév.
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 retours 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.4.0 sortie cette semaine est la deuxième stable (c'est comme pour l'ancien mode de développement du noyau Linux : le numéro mineur est pair pour les versions stables et impair pour les versions de développement). Les principaux changements depuis la version stable précédente (la version 0.2, pour ceux qui suivent) sont les suivants :
  • nouveau client HTTP, avec une API plus simple et la gestion d'un réserve (pool) de connexions ;
  • refonte du module TLS/SSL ;
  • augmentation des performances, grâce à l'allocation plus rapide des tampons mémoire (Buffer) ;
  • meilleure prise en charge des gestionnaires de paquets comme npm, grâce à l'amélioration de require() ;
  • une mise à jour de V8 pour la version 3.1.2 ;
  • un débogueur fonctionnel, mais encore très limité pour le moment ;
  • un module os qui expose des informations sur le système ;
  • et, bien sûr, plein de corrections de bogues.

Prochain meetup de Paris.js à la Cantine

Posté par  (site web personnel) . Modéré par Mouns.
4
30
jan.
2011
Communauté
Paris.js est un groupe d'utilisateurs avec un intérêt fort pour le JavaScript, dans le navigateur, mais aussi côté serveur avec, notamment, node.js. Nous nous réunissons une fois par mois pour faire quelques présentations et discuter autour d'une bière.

La prochaine réunion aura lieu le 23 février à la Cantine. L'inscription est gratuite, mais obligatoire. Et si vous souhaitez faire une présentation, n'hésitez pas à nous le faire savoir sur la liste de diffusion ou sur le canal IRC #parisjs sur freenode.

Ne ratez pas le FOSDEM édition 2011 !

Posté par  (site web personnel) . Modéré par rootix.
21
23
jan.
2011
Communauté
Le FOSDEM est la conférence européenne qui réunit le plus de développeurs de Logiciels Libres. Elle se tient une fois par an à Bruxelles et ce sera le week-end des 5 et 6 février pour l'édition 2011 (l'entrée est gratuite). Il sera précédé du Beer Event le vendredi soir, une des rares occasions de voir le Beer Distribution Algorithm v3.2 (stable) mis en application.

Un certain nombre d'associations tiendront des stands, et vous aurez l'occasion d'assister à des présentations sur 20 thèmes :
  • Accessibility
  • BSD
  • Configuration & Systems Management
  • Crossdesktop
  • CrossDistro
  • Data Analytics
  • Embedded
  • Free Java
  • GNU
  • Jabber & XMPP
  • LibreOffice
  • Mono
  • Mozilla
  • MySQL & friends
  • New challenges in Virtualization
  • Open Source Telephony
  • Perl
  • PostgreSQL
  • Security & hardware crypto
  • World of GNUstep


Et pour ne pas déroger à la tradition, voici les entretiens d'une sélection de conférenciers pour se mettre dans l'ambiance :


Ne ratez pas cet événement incontournable sur le développement de Logiciels Libres en Europe.

En vrac : Typo 6.0, Rails Installer, Pik

Posté par  (site web personnel) . Modéré par Xavier Teyssier.
Étiquettes :
11
20
jan.
2011
Ruby
Typo est un moteur de blog sous licence MIT. Typo 6.0 vient de sortir et tourne maintenant avec la version 3 de Ruby on Rails. Les nouveautés importantes sont la mise en place d'une interface de programmation (API) pour les greffons, la simplification de l'installation, une interface d'administration améliorée et des optimisations pour le référencement.

L'installation et l'utilisation de Ruby sous Windows a souvent été en retard par rapport à d'autres systèmes d'exploitation. Mais plusieurs initiatives visent à réduire ce retard. La première est Pik, un équivalent de Ruby Version Manager pour Windows. Il permet d'installer plusieurs interpréteurs Ruby, de passer facilement de l'un à l'autre, voir de lancer une même commande avec plusieurs interpréteurs (ça peut être pratique pour vérifier que des tests passent correctement avec plusieurs versions de Ruby). Il est distribué sous licence MIT.

Une autre initiative très récente est Rails Installer. C'est un kit sous licence MIT permettant d'installer le nécessaire pour développer des applications Rails à partir d'un Windows de base. Cela comprend notamment Ruby 1.8.7, Rails 3, Git 1.7 et SQLite 3. C'est donc une solution idéale pour permettre à vos amis d'essayer Rails sans être découragés par l'installation.

Redo, un remplaçant de choix pour Make

Posté par  (site web personnel) . Modéré par Xavier Teyssier.
Étiquettes :
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  (site web personnel) . Modéré par patrick_g.
Étiquettes :
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  (site web personnel) . 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  (site web personnel) . Modéré par Mouns.
Étiquettes :
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.