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

Sortie de Django 1.3

Posté par  (site web personnel) . Modéré par Xavier Teyssier. Licence CC By‑SA.
Étiquettes :
42
24
mar.
2011
Python

Mercredi matin, 11 mois après la 1.2, est sortie la version 1.3 du framework Web Django, écrit en Python.

Ce framework, basé sur un concept [Modèle-Vue-Contrôleur], est conçu pour le développement rapide et reprend la plupart des grands principes de Python (« Explicit is better than implicit », notamment), ce qui en fait la plate-forme de développement Web idéale pour les perfectionnistes sous pression.

De plus en plus de sites utilisent Django (par exemple, Bitbucket.org, Libération.fr, Disqus, Century21, convore, instagram, threadless…) pour sa flexibilité et pour le nombre d’applications Django réutilisables, qui ne cesse de croître.

Je vous propose de découvrir les quelques nouveautés que vous offrent les développeurs Django et toute la communauté.

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.

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

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.

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.

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.

Apprendre à programmer avec Hackety Hack

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
15
29
déc.
2010
Ruby
Vous souhaitez apprendre à programmer ? Alors Hackety Hack est fait pour vous. Essayez-le !

Hackety Hack est un environnement en Ruby, sous licence MIT, pour apprendre à développer. Il s'adresse aux débutants et propose des leçons pour coder en quelques lignes des choses fun.

Le projet a été initié par Why the lucky stiff, un célèbre hacker Ruby et a été repris par une équipe menée par Steve Labnik. La version 1.0 vient de sortir pour Noël et ce fût également l'occasion de la mise en ligne du nouveau site web.

D'un point de vue technique, il fonctionne avec le framework Shoes et tourne sur les plateformes GNU/Linux, Windows et Mac OS X. Le code écrit au cours des leçons est du Ruby et utilise également Shoes.

Rubygems.org, So Nice et Rubinius

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
8
24
déc.
2010
Ruby
En juillet 2009, le site rubygems.org a été lancé par la communauté Ruby pour héberger les gems Ruby. Depuis, le site est en très grand forme et vient de fêter le 100 millionième téléchargements de gems. Il vient également de passer juste devant le CPAN pour le nombre de paquets disponibles : 19 042 gems contre 19 013 modules Perl au moment de l'écriture de ces lignes (à comparer avec les 12548 packages sur PyPI et 562 packages Pear).

So Nice est une application web pour contrôler iTunes, Rhythmbox ou MPD. Elle est développée en Ruby avec Sinatra et disponible sous licence WTFPL.

Rubinius est une implémentation du langage de programmation Ruby, sous licence BSD. La version 1.2.0 vient de sortir avec :
  • Passage à LLVM 2.8
  • Améliorations des performances
  • Vérification du bytecode (particulièrement utile avec l'arrivée d'autres projets utilisant la machine virtuelle de Rubinius)
  • Des optimisations, notamment de la consommation mémoire
  • Query Agent, un nouvel outil pour débugger et remonter des informations de bas niveaux (statistiques sur le Garbage Collector par exemple)
  • Et autres améliorations et correctifs.

Apprendre un langage de programmation par an

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
24
20
déc.
2010
Technologie
Un de mes livres d'informatique préférés est The Pragmatic Programmer, from journeyman to master. Dedans, on y trouve une foultitude de conseils, dont l'un m'a particulièrement marqué : il est souhaitable d'apprendre un nouveau langage de programmation tous les ans pour parfaire son portfolio de connaissances.

L'année 2011 va bientôt arriver et je souhaite partager avec vous quelques suggestions de langages pour ceux qui voudraient suivre ce conseil :
  • Ruby (disponible sous Licence Ruby et GPL) reste mon langage préféré et je ne saurais trop vous conseiller de le découvrir !
  • Reia (disponible sous licence MIT) est un langage avec une syntaxe inspirée de Ruby qui tourne au-dessus de la machine virtuelle d'Erlang, permettant ainsi de profiter du meilleur des deux mondes.
  • Go (disponible sous Licence BSD) est un langage assez jeune mais déjà très intéressant, avec notamment la programmation concurrente à base de Goroutines.
  • Io (disponible sous Licence BSD) est un langage de programmation qui s'appuie sur les prototypes, avec des inspirations venant de Smalltalk, Self, Lisp et Lua.
  • Scala (disponible sous Licence BSD) pourrait être le futur pour les développeurs Java et propose déjà des avancées très pertinentes comme son modèle d'Actors ou son travail sur le typage.
  • F# (disponible sous Licence Apache) est un langage de programmation fonctionnelle, fortement inspiré d'OCaml et issu des laboratoires de Microsoft.


Au fait, je n'ai pas encore choisi quel langage j'allais étudier en 2011, donc n'hésitez pas à défendre votre langage favori dans les commentaires ;-)

Reia, un langage fortement inspiré de Ruby

Posté par  (site web personnel) . Modéré par j.
Étiquettes :
19
18
déc.
2010
Ruby
Ruby est un langage de programmation génial (je vous assure, je suis totalement objectif quand je dis ça ;-) ), mais qui a quand même quelques petits défauts. On peut par exemple citer la mauvaise prise en charge de la concurrence ou l'absence de rechargement de code à chaud. À l'opposé, Erlang a une syntaxe parfois cryptique mais sa machine virtuelle est très avancée pour tout ce qui concerne les aspects distribués, la concurrence et la tolérance aux erreurs.

Reia est un langage de programmation qui cherche à prendre le meilleur des 2 mondes (licence MIT). Le code en reia ressemble à s'y méprendre à du code Ruby, mais il s'exécute sur la machine virtuelle d'Erlang. Voici à titre d'exemple le très classique Hello World :

"Hello world!".puts()

Pour le moment, il n'y a pas encore de version officielle de reia. Si vous souhaitez l'essayer, il vous suffit de cloner le dépôt git, d'avoir Erlang et Rake installés puis de lancer rake.

Campagne de documentation Rails, RubyDrop et Refinements

Posté par  (site web personnel) . Modéré par patrick_g.
12
5
déc.
2010
Ruby
RubyDrop est un clone de Dropbox libre développé en Ruby. Il permet de synchroniser des fichiers entre plusieurs ordinateurs en utilisant en interne git. Rappelons que SparkleShare propose la même chose, mais en mono (ce qui avait engendré de nombreux commentaire sur la dépêche à son sujet).

Ryan Bigg est l'auteur de plusieurs guides Ruby on Rails, écrit un livre sur Rails et participe au développement de nombreux gems Ruby. Il a lancé un appel à dons pour lui permettre de passer du temps à écrire de la documentation pour Rails. Le choix des sujets se fera parmi les suggestions proposées publiquement.

À la dernière RubyConf, Shugo Maeda a parlé des Refinements, qui devraient arriver dans Ruby 2.0. En Ruby, il est possible de faire ce que l'on appelle du monkey-patching : réouvir une classe déjà définie pour lui ajouter de nouvelles méthodes, voir modifier les méthodes existantes. Cela peut être très pratique mais peut très facilement devenir une source de bugs. Par exemple, si deux bibliothèques ajoutent toutes les deux une méthode camelize sur la classe String et que ces méthodes se comportent différemment, alors une des deux bibliothèques va utiliser l'implémentation de l'autre avec un comportement qui n'est pas celui attendu. Les Refinements pourraient être une solution pour corriger ce problème en limitant la portée de ces modifications.

Je profite également de cette dépêche pour annoncer la publication de la première revue mensuelle sur Ruby France.

Journal Choisir un framework web...

Posté par  .
6
22
jan.
2010
Salut,

Je me renseigne actuellement sur les différents frameworks web qui me permettraient de développer un site web simplement et rapidement.

Afin de découvrir autre chose, je regarde vers d'autres langages que PHP.

D'après ce que j'ai pu voir il y à principalement 2 frameworks assez populaires, j'ai nommé Django et RoR. Il semblerait que RoR soit plutôt orienté application web tandis que Django soit orienté publication... Mais que désigne ces termes cela veut-il dire que Django ne peut pas (…)

Journal LinuxFR en rails ?

Posté par  (site web personnel) .
14
6
jan.
2009
Ce matin, lors de mon surf matinal j'ai fait un petit tour sur github[1] quand tout à coup je suis tombé là-dessus:

Description: The new version of LinuxFr.org will be in Ruby on Rails. It's my resolution for 2009. [2]

A vos trolls.

[1] http://github.com
[2] http://github.com/nono/linuxfr.org/