Pas encore bilingue, translate est là pour toi !

Si comme moi tu passes pas mal de temps sur des sites de traduction, ce post est fait pour toi.

En effet 99% des bonnes docs étant écrite dans la langue de Shakespeare il n'est pas toujours évident de tout comprendre sans assistance.
C'est pourquoi je me retrouve assez souvent sur wordreference dans une journée.

Globalement wordreference est un très bon service. Toutefois après avoir cherché un peu je me suis rendu compte qu'il n'offrait pas d'API.
Je me suis donc résolu à créer mon propre script (en ruby) qui attaque le site en GET et qui parse le résultat à l'aide de l'excellente lib Hpricot.

Actuellement le script permet de faire les traductions suivantes :

  • Anglais vers français
  • Anglais vers italien
  • Français vers anglais
  • Italien vers anglais

Bizzarement, et c'est dommage, le site n'utilise pas le même format d'URL ni d'affichage pour les traductions en espagnol ; que ce soit depuis ou vers l'espagnol.
Toutefois rien n'empêche de patcher le script pour y remédier.

Pour utiliser ce script il te faut rubygems et hpricot. Rubygems est disponible sur la plupart des distributions ainsi que sous Mac OS X avec fink ou port.
Une fois rubygems installé il faut installer Hpricot à partir de ce dernier :

# gem install hpricot

ou

# gem install hpricot --source http://code.whytheluckystiff.net

Personnellement j'ai choisi la deuxième version pour avoir la build la plus récente.
Si tu as une erreur du genre : `require': no such file to load -- mkmf (LoadError) c'est sûrement qu'il te manque le paquet ruby1.8-dev Une fois installé tu peux utiliser le script de manière suivante :

./translate.rb house

Pour avoir un panel de ce que peut faire le script :

./translate.rb -h

Pour avoir quelques exemples :

./translate.rb -e

Note : Tu peux très bien mettre le script directement dans ton path pour l'utiliser depuis n'importe où, comme une commande normale :

$ sudo ln -s /path/to/translate.rb /usr/local/bin/translate

Le script est disponible sur ce post en annexe, mais la version la plus à jour se trouve dans mon dépôt mercurial.
J'essaierai de mettre une documentation un peu plus complète sur le script dans mon espace dédié sous peu.

Tout est dit, j'attends tes commentaires, retours ou patchs !

bivouac 0.1.3

La version 0.1.3 de bivouac est disponible. Au programme, peu de choses. Quelques bugs corrigés, l’ajout du script console et la génération d’un Rakefile permettant de faire les migrations de la base et de purger la table des sessions.

$ rake db:migrate
(in /Users/greg/temp/toto)
– create_table(:sessions, {:force=>true})
   -> 0.2465s
– create_table("toto_schema_infos")
   -> 0.0023s
==  Toto::Models::CreateUser: migrating =======================================
– create_table(:toto_users)
   -> 0.0022s
==  Toto::Models::CreateUser: migrated (0.0024s) ==============================

$ ruby script/console
>> u = User.new( :fname => "Gregoire", :lname => "Lejeune" )
=> #<Toto::Models::User id: nil, fname: "Gregoire", lname: "Lejeune">
>> u.save
=> true
>> u = User.new( :fname => "Arthur", :lname => "Lejeune" )
=> #<Toto::Models::User id: nil, fname: "Arthur", lname: "Lejeune">
>> u.save
=> true
>> User.find( :all ).each do |u|
?>   puts "#{u.fname} #{u.lname} is user ##{u.id}"
>> end
Gregoire Lejeune is user #1
Arthur Lejeune is user #2
=> [#<Toto::Models::User id: 1, fname: "Gregoire", lname: "Lejeune">, #<Toto::Models::User id: 2, fname: "Arthur", lname: "Lejeune">]
>>

Faites parler Mail

source : Mac OSX Hints

using terms from application "Mail"
  on perform mail action with messages newMessages
    repeat with newMessage in newMessages
      tell application "Mail"
        set senderName to (extract name from sender of newMessage)
        say "You’ve just received an email from " & senderName
      end tell
    end repeat
  end perform mail action with messages
end using terms from

Blog.refresh

Comme tout le monde tu me lis directement via un lecteur de flux, ce qui signifique que tu ne vas jamais réellement sur le blog.

C'est pourquoi je t'annonce ici que j'ai changé de thème, pour en faire un maison, plus adapté à mes besoins.

Les modifications sont presque exclusivement esthétiques. Par contre comme j'ai voulu un thème plus minimaliste j'ai viré la sidebar, qui encombrait inutilement.

J'en ai profité aussi pour passer de urchin.js à ga.js, le nouveau tracker de google. Si tu veux une explication des différences je te recommande le PDF fait par Google.

Je mettrai très certainement mon thème à disposition une fois que j'aurai fignollé quelques détails, histoire de remplir la section qui sert à ça. Pour le moment ça s'affiche bien sur les navigateurs qui coopérent, et presque bien sur les autres (comprendre que sur IE j'ai deux trois décalages de pixels, mais rien de compromettant).

Si tu détectes un bug ou un élément non stylé fais le moi savoir, histoire d'avoir un truc clean avant de le mettre à disposition.

Pictrails 0.1.0 sortie pour une première alpha

Ca y est, j'ai enfin sortie une première version de Pictrails.

Pictrails est une application réalisé avec Rails 2.0. Elle permet de gérer des albums photos.

Pictrails est venue du constat qu'aucune application libre réalisé avec RubyOnRails n'était plus à jour sur la création d'une galerie personnel de photo. Il existe bien des sites internet qui fournissent ce service comme Flikr, mais cela pose la question de la diffusion de ses données. Grâce à des applications libre comme Pictrails, vous êtes le seuls maitre de vos données.

Actuellement Pictrails est encore en alpha. Il n'y a aucun test unitaire de réalisé dessus ce qui peux entrainer de grosses erreurs. Je vais immédiatement réaliser tous ces tests pour que la prochaine version ait une couverture de code de 100%

Toutes personnes souhaitant contribuer à ce projet est la bienvenue. J'ai mis en place un projet sur mon redmine personnel pour gérer pictrails. Vous pouvez y poster des bugs ou améliorations que vous souhaitez. Un repository mercurial est lui aussi en place pour le contrôle de source. Ma plus grosse difficultés étant le graphisme, toutes propositions est la bienvenue.

VIDAL sur iPhone

L’information ayant été publiée, je peux en parler : le VIDAL est disponible sur iPhone et iPod Touch.

Pourquoi en parler ? Simplement pour vous dire que cette application est développée avec Rails 2.0.2 et utilise les travaux de Joe Hewitt pour la partie interface.

Cette version du VIDAL pour iPhone est numérotée 1.0.1 β. En effet, il y a déjà eu une version 1.0.0 qui n’a pas été rendue publique. Il s’agissait en fait d’une maquette basée sur bivouac. Nous travaillons déjà sur des améliorations afin d’utiliser pleinement iui. Quant à savoir si nous allons rester sur Rails ou revenir à bivouac, la question se pose sachant que j’ai, pour d’autres projets, un plugin iui pour bivouac en cours de finalisation.

Ruby France à Solutions Linux 2008

Comme l’an passé, l’association Ruby France tiendra un stand au Village des Associations à Solutions Linux 2008 (Cnit La Défense) du mardi 29 janvier au jeudi 31 janvier 2008. Cette fois-ci, nous serons avec nos confrères de Squeak-Fr / ESUG (emplacement B37). N’hésitez pas à passer nous rendre visite pour discuter ou en savoir plus sur Ruby, Rails ou notre association.

5000e projet sur RubyForge

Tom Copeland vient d’annoncer sur son blog que RubyForge hébergeait son 5000e projet (ruby-reddit, une interface à reddit) !! C’est l’occasion de rappeler que RubyForge est une des pierres angulaires du développement en Ruby. Prochain objectif : 10 000 :)

Première version de Revactor

Revactor voit sa première version publique disponible. Revactor est une lib qui implémente le modèle d’Acteurs, similaire à celui que l’on trouve dans Erlang : système de messages et de boîtes aux lettres, le tout se basant sur les Fibres de Ruby 1.9. Ce modèle de concurrence a pour intérêt de s’affranchir de certains problèmes inhérents à la programmation multithreadée : à savoir les races conditions, les deadlocks, l’utilisation de mutex… Il tend aussi à favoriser une architecture où chaque composant est indépendant et communique avec un autre par passage de messages. C’est certainement le premier gem basé sur les Fibres, cela faisait quelques mois que Tony Arcieri travaillait sur ce sujet, comme le montre ce pastie Il est aussi annoncé qu’il est possible de patcher le serveur Web Mongrel pour qu’il utilise les Acteurs, apportant un accroissement de performances par rapport à un Mongrel normal.

Profitons du fait que 2008 soit bissextile

Selon matz lui-même [ruby-core:15030], La prochaine release (de développement) de Ruby (1.9.0-1) devrait sortir vraisemblablement à la fin février, le 29 du mois.