blog.name.nil? - blog

vendredi 12 février 2010

db/seeds.rb

Initialiser une application avec des données nécessaires à son bon fonctionnement n'était pas vraiment aidée par rails et ses normes : faut il créer un script distinct ? utiliser un jeu de fixtures ? un controlleur de configuration de l'application ? une migration ?

# · Lire toute l'histoire · Aucun commentaire
lundi 01 février 2010

Steve jobs : dancing hero

La page de présentation de la keynote de ce mois de janvier (iPad) contient quelques surprises concernant la photo de Steve Jobs.

http://images.apple.com/quicktime/qtv/specialevent0110/images/hero20100127.jpg

# · Lire toute l'histoire · Aucun commentaire
samedi 26 décembre 2009

RubyZip vs Zip

Ayant besoin dans un projet de créer des archives zip depuis un code ruby, j'ai cherché dans un premier temps du côté de gems ou librairies purement ruby pour faire cela. Je n'ai pu trouver que quelques librairies dont certains semblent obsolètes ou non maintenues.

Décidant tout de même de tester une de ces librairies (rubyzip), je me suis posé la question des performances de ces librairies en comparaison d'une implémentation en C. Etant donné que je n'ai que l'archivage d'un répertoire à effectuer, sans contrôle d'erreur fin, pourquoi ne pas créer l'archive en passant par un bon vieux binaire zip disponible de facto sur pratiquement tous les systèmes.

# · Lire toute l'histoire · 2 commentaires
vendredi 25 décembre 2009

Flickraw et rails

Ayant parlé avant d'une librairie ruby pour flickr, je me suis lancé dans un petit test de cette librairie en l'incorporant à une application ruby on rails. L'idée est simple : nous avons des utilisateurs qui peuvent avoir un compte flickr. Les accès à ce compte seront stockés dans la base de données pour donner à l'utilisateur un accès à ses données flickr à tout moment sans qu'il ne doive se ré-authentifier sur flickr.

# · Lire toute l'histoire · Aucun commentaire

Objective-C : ajout dynamique de fonctions

L'Objective-C pouvant être percu comme une imposante librairie tournant au dessus du C/C++, il ne semble pas impossible pour ce langage compilé de fournir des mécanismes de réflexion. Une des possibilités appréciée dans l'intercession est l'ajout de fonctions au runtime, en fonction du contexte rencontré par le programme lors de son exécution. En ruby, ceci est relativement aisé avec method_missing, il existe un mécanisme similaire en Objective-C.

Le côté réflection de l'Objective-C est fourni à travers la class NSObject, classe racine de toutes les autres classes. La lecture de la documentation de cette classe peut fournir des éléments intéressants, comme les méthodes permettant de déterminer la classe ainsi que la classe parente : class et superclass.

# · Lire toute l'histoire · Aucun commentaire
jeudi 24 décembre 2009

Flickraw: client flickr en moins de 300 lignes

Encore une librairie cliente pour flickr, mais enfin une implémentation vraiment différente cette fois-ci : aucun des appels ou presque n'est implémenté dans la librairie, tout est créé dynamiquement.

Dans un premier temps, il ne faut pas oublier 2 choses : flickr offre une API très bien construite permettant ce genre de chose et ruby de part son dynamisme permet de l'utiliser pleinement.

# · Lire toute l'histoire · Aucun commentaire

Console en ruby + readline

Ayant besoin d'une petite console effectuant des appels sur un webservice, je me suis lancé à la découverte de readline. Cependant, la documentation officielle est totalement innexistante.

Après quelques recherches, j'ai pu trouver un tutoriel donnant les principales fonctions de readline.

L'idée derrière readline est simple : fournir une librairie permettant simplement d'éditer des lignes de commandes au moment de leur frappe. La gestion des racourcis ctrl+a et ctrl+e, ainsi que l'historique sont des exemples des fonctions supportées par readline.

# · Lire toute l'histoire · Aucun commentaire
mardi 01 décembre 2009

Mac os X : terminal tips

Voici une petite liste de quelques petites commandes commandes unix pour spécifiques Mac os X.

# · Lire toute l'histoire · Aucun commentaire
lundi 30 novembre 2009

Ruby: blocks, to_proc, &

Les blocks représentent une fonctionnalité puissante de Ruby. Mais comment sont ils traités d'un point de vue langage ?

Ruby étant totalement objet, derrière les blocks se cache en fait une classe Ruby : Proc. De la déclaration en utilisant les accolades '{}' ou l'ensemble do..end resulte une instance de la classe Proc :

class MyClass
  def envelope(myblock)
    myblock.call
  end
end

m = MyClass.new
p = Proc.new { puts 'test' }
m.envelope p

# · Lire toute l'histoire · Aucun commentaire

Ruby: blocks

Les blocks en Ruby est une des fonctions incontournables qui rendent ce langage si attrayant. En simplifié, il s'agit d'un boût de code que l'on peut passer à des fonctions. Ce code peut prendre des paramètres si nécessaire. On les appelle plus communément fonction annonyme.

Une des utilisations principales de ces blocks est fait lors de l'itération d'éléments Enumerable :

[1,2,3].each do |item|
  puts item + 5
end

# · Lire toute l'histoire · Aucun commentaire

1 · 2 · 3 · 4