jeudi, juin 14, 2007

[ANN] Plugin Skinnable

Un peu d'auto promotion ;)

Le pitch:
Skinnable permet d'ajouter une skin à votre appli rails rapidement.
Ca fait un moment que j'ai ce plugin dans les cartons, je l'ai utilisé pour moi sur 2 projets (pour lesquels je ferais une annonce séparé). Mais je n'avais pas eu le temps de faire un jolie screencast.
Maintenant c'est chose faite :)

Si vous voulez que j'ajoute 2 ou 3 skins de plus; vous pouvez laisser un commentaire et je m'en occuperais quand j'aurai du temps :)

Technorati tags:

mercredi, juin 06, 2007

Aptana

Petit rappel pour ceux qui ne suivent pas dans le fond de la classe: Les développements sur RadRails (l'IDE pour rails basée sur eclipse) se sont arrêtés et que tout a été déplacé dans Aptana.

J'ai téléchargé la dernière version et je suis très agréablement surpris la plus part des fonctionnalités bien pratique dans l'équivalent pour Java sont présentes:
  • Completion
  • Rappel de l'assignation de la variable quand on laisse la souris dessus
  • Rdoc de la classe...

Quelques captures d'écran tiré du blog:




Pour plus de "tips & tricks" sur aptana jetez un coup d'oeil à leur blog.

Technorati tags:

DRb alias Distributed Ruby

Je viens de découvrir DRb (Distributed Ruby), une librairie incluse par défaut dans la distribution ruby (pas besoin de gem) pour faire du client/serveur.
Et alors me direz-vous ? Et bien c'est super simple !
Le mieux c'est un petit exemple:
Serveur:
require 'drb'

class MyServer
  def say
    "hello world"
  end
end

DRb.start_service("druby://:7777", MyServer.new)
DRb.thread.join
Client:
require 'drb'

DRb.start_service
remote_object = DRbObject.new(nil, 'druby://localhost:7777')
puts remote_object.say
Résultat dans la console du client:
hello world
Quand je pense aux EJB en java et que je vois ça...
Petit bémole, il faut redémarrer le serveur si on modifie la classe MyServer... mais si on utilise des blocks on peut éviter une partie de ce désagrément, exemple:
class MyServer
  def say(&block)
    yield
  end
end
puts remote_object.say {"hello world"}
Rem: on coupe un peu les cheveux en quatre pour dire "hello world" mais bon c'est pour la démo hein ;)

Pour en savoir plus quelques liens sur drb.
Attention l'exemple du tutorial de chad fowler sur les "songname" ne marche pas, il faut remplacer druby://hal9k:2001 par druby://localhost:7777.

Technorati tags: