Ruby on Rails 3 est là

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
30
31
août
2010
Ruby
Ruby on Rails est un framework de développement web en Ruby, sous licence MIT. Depuis son lancement en 2004, il a permis le développement de nombreuses applications web comme Basecamp, Twitter, Github, etc.

Le 23 décembre 2008, les équipes développant Ruby on Rails et Merb, un autre framework web en Ruby, ont décidé d'unir leur effort. La fusion des deux frameworks visait à apporter le meilleur des deux dans un seul produit qui serait Rails 3.

On peut aujourd'hui affirmer que c'est une réussite. En effet, la sortie de Rails 3 a été annoncée et la liste des changements est impressionnante (cf la seconde partie de la dépêche). Remercions au passage les 1600+ personnes qui ont contribué à Ruby on Rails.

Cette nouvelle version de Rails est compatible avec Ruby 1.8.7, Ruby 1.9.2 et JRuby 1.5. Elle fonctionne également avec Rubinius 1.0 (mais sans garantie de la part de la core team Rails pour les versions 3.0.x à venir). Il ne vous reste plus qu'à lancer un gem install rails --version 3.0.0 pour l'installer.

Dernière chose, si vous appréciez Rails 3 et que vous souhaitez donner en retour, la core team de Rails vous encourage à faire un don à l'association Charity:Water.

Journal Petit compte-rendu du Intel Music Hackathon

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
30
19
juin
2011

Cher journal,

je t'ai parlé du Intel Music Hackathon il y a quelques jours et, comme j'y ai participé, je me suis dit qu'un petit compte-rendu pouvait t'intéresser.

En version courte : notre équipe a codé un karaoké qui tourne sur une tablette meego en moins de 24h et, même si nous n'avons pas gagné, développer cette application fut bien fun :-)

En version moins courte : le hackathon est un concours où il faut coder une application pour meego (…)

Petit tour des outils de visualisation libres

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
30
10
mai
2010
Audiovisuel
Les outils libres de visualisation d'informations ou de données existent, mais ne sont pas forcément très connus. Je souhaite, via cette dépêche, les mettre en avant et j'espère que les lecteurs de LinuxFr.org sauront les utiliser pour créer de jolies représentations de données pertinentes.

Je me suis donc attaché à présenter dix outils :
  • Graphviz
  • Large Graph Layout
  • Circos
  • IOGraph
  • Code Swarm
  • Gource
  • Gephi
  • Processing
  • Processing.js
  • Nodebox 2

À ce sujet, je vous recommande chaudement la lecture de l'article de LWN.net sur la visualisation des projets et communautés Open Source.

Cloud Foundry, la solution PaaS libre

Posté par  (site web personnel) . Modéré par Lucas Bonnet. Licence CC By‑SA.
29
22
avr.
2011
Ruby

VMWare a annoncé la sortie de Cloud Foundry, une solution libre de Platform-as-a-Service (PaaS). La PaaS permet de déployer des applications Web et gérer leur montée en charge, en abstrayant la gestion des serveurs, bases de données, runtimes des langages de programmation, serveurs applicatifs, etc.. VMWare va lancer une offre commerciale s’appuyant sur Cloud Foundry, mais vous pouvez aussi l’utiliser sur vos serveurs.

Cloud Foundry, sous licence Apache 2, est un ensemble de briques développées en Ruby : NATS, Cloud Controller, DEA, Router, Health Manager, etc., dont le fonctionnement est expliqué en seconde partie de cette dépêche.

En pratique, chaque serveur sera installé avec vcap, puis les applications sont déployées avec l’outil en ligne de commande « vmc » et peuvent utiliser les services mis à leur disposition. Actuellement, Cloud Foundry supporte Ruby on Rails, Sinatra, Node.js, Spring et Grails pour les applications, et MySQL, MongoDB, Redis et RabbitMQ pour les services.

Par exemple, déployer une application Rails se fait très simplement avec les commandes suivantes :

$ vmc target api.example.net   # Choisir que quel cloud on va déployer
$ vmc login                    # S'identifier auprès du Cloud Controller
$ vmc push                     # On demande à déployer l'application

Il faut ensuite répondre à quelques questions : quel est le nom de l’application ? Quelle est son URL ? Sur combien d’instances va-t-elle être déployée ? Quels services utilise-t-elle ? Puis, Clound Foundry va réserver les ressources, installer les gems nécessaires avec Bundler, lancer les services applicatifs puis mettre à jour sa table de routage. « vmc instances » permet également de modifier le nombre d’instances d’une application pour s’adapter à la charge qu’elle va avoir à traiter.

Au final, Cloud Foundry est une solution jeune (peu de frameworks et services disponibles pour le moment), mais VMWare semble prêt à respecter les règles du Logiciel Libre et prendre en compte les propositions d’améliorations des premiers utilisateurs.

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.

Journal Jouer avec la sécurité web

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
28
23
août
2012

Stripe organise un challenge autour de la sécurité des applications web. Le but du jeu est de capturer un drapeau (12 chiffres) en passant 9 niveaux (numérotés de 0 à 8). Pour passer un niveau, il faut réussir à récupérer le mot de passe d'une petite application web.

Les premiers niveaux sont faciles d'accès avec des attaques tout ce qu'il y a de plus classique comme des injections SQL et des XSS. Le dernier niveau est, par contre, bien plus (…)

Sortie de Ruby 1.9.3

Posté par  (site web personnel) . Modéré par Xavier Teyssier. Licence CC By‑SA.
Étiquettes :
28
31
oct.
2011
Ruby

La version 1.9.3 de Ruby vient de sortir. Cette nouvelle version apporte peu de modifications visibles, le gros des modifications se faisant sous le capot.

Parmi les changements notables, nous retrouvons :

  • la licence accompagnant Ruby est maintenant la licence BSD (c’était la GPL v2 jusqu’à présent) ;
  • le chargement plus rapide des bibliothèques, qui devrait être très appréciable pour les projets Rails ;
  • une meilleure gestion du multi‐threading ;
  • la prise en charge d’Unicode 6.0 ;
  • le moteur par défaut pour le YAML devient Psych ;
  • la mise à jour de Rubygems (1.8.10), JSON (1.5.4), Minitest (2.2.2), Rake (0.9.2.2) et Rdoc (3.9.4).

Bien entendu, vous êtes encouragés à passer rapidement à Ruby 1.9.3, en sachant que certaines versions ne seront bientôt plus maintenues :

  • les mainteneurs de Ruby vont encore proposer les correctifs de sécurité pour Ruby 1.9.1, jusqu’à janvier 2012. Après quoi, cette version sera officiellement morte ;
  • pour les utilisateurs de Ruby 1.8.7, les choses vont se faire plus en douceur : maintenance normale jusqu’à juin 2012, puis maintenance de sécurité uniquement jusqu’à juin 2013.

Pour le futur, une version 1.9.4 est prévue pour l’année prochaine et surtout, la sortie de Ruby 2.0 pourrait arriver en février 2013 pour les 20 ans de Ruby.

Panne du week-end

Posté par  (site web personnel) . Modéré par Florent Zara.
Étiquettes : aucune
28
24
mai
2010
LinuxFr.org
Le site LinuxFr.org et les services associés étaient en panne ce week-end. Le serveur qui les héberge a fait un kernel panic samedi matin (il semblerait que ce soit un problème lié au RAID).

Le serveur a pu être redémarré grâce à une intervention du NOC de la fondation Free. Nous les remercions pour s'être déplacé un week-end et plus généralement, pour l'hébergement que la fondation Free nous fournit depuis plusieurs années.

Sortie de Ruby on Rails 3.1.0

Posté par  (site web personnel) . Modéré par patrick_g. Licence CC By‑SA.
28
1
sept.
2011
Ruby

Ruby on Rails est un framework de développement web agile, sous licence MIT. Après 8 releases candidates, la version 3.1.0 est sortie aujourd'hui.

Les nouveautés sont nombreuses mais les plus importantes sont :

  • jQuery est devenu le framework javascript par défaut (à la place de Prototype) ;
  • L'Asset Pipeline permet de gérer la compilation, la minification et la gestion des dépendances pour les feuilles de style et le fichiers javascript ;
  • Sass et CoffeeScript sont maintenant proposés par défaut ;
  • Les migrations SQL ont été revues (plus simples à écrire mais également plus de possibilités offertes) ;
  • Les réponses peuvent être envoyées en plusieurs morceaux (HTTP streaming), ce qui peut être utilisé pour optimiser le temps de chargement des pages ;
  • La documentation de l'API utilise maintenant SDoc.

Note : il est prévu que LinuxFr.org passe rapidement à cette version.

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.

Node.js passe en version 0.6.0 et arrive sous Windows

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

Elixir, enfin une syntaxe agréable pour Erlang ?

Posté par  (site web personnel) . Édité par Benoît Sibaud. Modéré par Florent Zara. Licence CC By‑SA.
Étiquettes :
27
26
mar.
2011
Programmation fonctionnelle

Elixir est un langage de programmation qui s’appuie sur Erlang et sous licence MIT. Il propose une syntaxe agréable, inspirée de celle de Ruby, et un modèle objet à base de prototypes.

Erlang est un langage fonctionnel avec un typage dynamique, une évaluation stricte et une assignation unique. Il convient bien pour des applications distribuées, résistantes aux erreurs et sans arrêt grâce au mécanisme de rechargement à chaud. Mais c’est également un langage qui peut sembler difficile à apprendre et dont la syntaxe peut rebuter. Elixir propose une manière élégante de profiter des avantages d’Erlang. Il est notamment possible d’appeler des modules Erlang sans conversion des types de données, et donc sans impact sur les performances.

Elixir est encore très jeune et recherche des contributeurs pour aider au développement de sa bibliothèque standard. Pour installer Elixir, vous aurez besoin d’Erlang R14B01, et je vous invite à parcourir le README pour découvrir ce langage. Mais voici un avant-goût sous la forme d’un très classique « Hello World » :

module World
  def say_hello
    IO.puts "Hello World!"
  end
end

World.say_hello

Libération de FoundationDB

Posté par  (site web personnel) . Édité par Davy Defaud et Pierre Jarillon. Modéré par Nÿco. Licence CC By‑SA.
Étiquettes :
27
25
avr.
2018
Base de données

FoundationDB, une base de données distribuée adaptée à de grands volumes de données, a été libérée. Apple avait racheté la société FoundationDB, éditrice de la solution de base de données du même nom, il y a trois ans. Avant le rachat, une version gratuite mais non libre était disponible. Depuis, certaines personnes regrettaient qu’une base de données de cette qualité ne soit plus disponible. Apple a fait le choix tout récemment de publier FoundationDB sous une licence libre (licence Apache 2.0) et d’encourager le développement d’un écosystème autour de celle‐ci.

Logo de FoundationDB

Petites brèves : Ruby 2.0, DataMapper et RubyLive

Posté par  (site web personnel) . Modéré par Nÿco. Licence CC By‑SA.
Étiquettes :
27
27
oct.
2011
Ruby

Matz, le créateur de Ruby, a récemment créé une nouvelle branche de développement qui va accueillir les développements pour la version 2.0 de Ruby. Bien que le numéro de version laisse penser qu’il y aura de gros changements, cela devrait pourtant être une version avec moins de changements que pour Ruby 1.9, avec une date de sortie prévue pour début 2013.

La liste des fonctionnalités est encore en cours de discussion, mais on devrait notamment y retrouver les arguments sous forme de mots‐clés, l’importation‐exportation du bytecode de la machine virtuelle, la transformation de la bibliothèque standard en gems (les bibliothèques dans le monde Ruby), un meilleur ramasse‐miette (garbage collector).

DataMapper est le principal concurrent d’ActiveRecord dans le domaine des ORM dans le monde Ruby, il est sorti en version 1.2.0. Côté nouveautés, nous retrouvons des performances améliorées, des corrections de bogues et surtout la prise en charge de Rails 3.1.

Enfin, si vous souhaitez suivre l’actualité Ruby, un nouveau site Web vient de sortir : RubyLive. C’est un site collaboratif, où chacun peut proposer des liens vers des ressources Ruby et/ou Rails, avec une description en français.

3 bibliothèques javascript à découvrir : D3, Sugar et Batman

27
30
août
2011
JavaScript

D3.js

D3.js est une bibliothèque javascript légère et libre qui permet de manipuler et représenter graphiquement des documents en s'appuyant sur leurs données. Elle est une réécriture de protovis et s'appuie sur des technologies comme HTML5, CSS3 et SVG pour afficher des données et interagir avec elles. Je vous encourage à aller voir les exemples pour voir de quoi est capable d3.js.

Sugar.js

Sugar.js est une bibliothèque qui vise à faciliter la manipulation des objets natifs Javascript et à combler les différences entre navigateurs. Elle ajoute des méthodes bien pratiques aux entiers, chaînes de caractères, fonctions, tableaux, objets, dates… En revanche, elle ne concerne ni les requêtes AJAX ni le DOM (jQuery fait ça très bien).

Batman.js

Batman.js est un petit framework MVC sous licence MIT. Il est écrit en CoffeeScript et peut donc naturellement être utilisé en Javascript afin de structurer une application web qui ferait un fort usage du JS. S'inspirant des principes de Rails (convention over configuration, etc.), il doit permettre de développer rapidement des applications web mono-page.