mardi 30 septembre 2008

Configuration facile pour asus eee pc

Un utilitaire tres sympa pour l'asus eeepc : TweakEEE

Il permet de configurer toute l'interface graphique et les programmes : il est à telecharger ici et ici.


Quelques photos



Les 12 mots grecs à savoir

Un article sur www.dailywritingtips.com dresse la liste des mots grecs à connaitre :
Voici :
  • Acme : (Point extrême)
  • Acropolis
  • Agora
  • Anathema
  • Anemia
  • Ethos:(disposition)
  • Dogma
  • Eureka
  • Genesis
  • Phobia
  • Plethora
  • Kudos (La gloire)

samedi 27 septembre 2008

Vos portraits de 1950 à 2000

Voici un site très amusant 'yearbook' ici ou bien ici , à partir de votre photo ,il vous fabrique un album photo année après année

Des exemples :


années 70 ou bien années 2000: je suis toujours beau .



Testez votre QI de coloriste

Ici sur ce lien , un test de couleur , il s'agit de reconstituer un dégradé.
Pas facile !

samedi 20 septembre 2008

Debug en Ruby

En perl , il suffit de faire perl -d nom_programme

En ruby , il faut préalablement installer le gemme ruby-debug par :

gem install ruby-debug

Puis lancer

rdebug nom_programme

Good hacking

La doc est ici.

La nuit du pruriel : la chasse au bug

J'ai commencé une application rails avec une classe ruby 'eleve' . Rails doit normalement créer une table sqlite nommée 'eleves' . Pour passer du pruriel au singulier , Rails utilise un 'inflector' (fichier inflections.rb dans config/initializers).

Aprés avoir généré l'echaffaudage de la table par :
./script/generate scaffold eleve nom:string prenom:string

Puis réalisé la migration par :
rake db:migrate

J'avais une systématiquement une erreur d'exécution :
ActionView::TemplateError (undefined method `eleve_path' for
#) on line #13 of eleves/index.html.erb:

J'ai commencé à chercher sur les forums un eventuel bug de la version 2.0 de Rails , la seule indication d'un problème similaire était relatif à l'opération de transformation singulier vers pluriel de Rails. J'ai recommencé l'opération avec la classe ruby 'Foo' et là pas de problème.

Puis j'ai lancé la console de Rails et réalisé l'essai suivant :

/home/user/Premappli> ./script/console
Loading development environment (Rails 2.1.1)
>> "eleve".pluralize
=> "eleves"
>> "eleves".singularize
=> "elefe"

Et oui , si la transformation singulier => pluriel fonctionne , par contre la fonction réciproque donne un résultat incorrect.
Rails fait iune mélange des règles anglaises avec du vocabulaire francais (rappel :leaf donne leaves ) .

Pour contourner le problème il y a deux solutions :

Demander à Rails d'utiliser une nom de table bien précis puis établir une relation manuelle entre la classe et le nom de la table par l'ajout dans model/bar.rb
de la ligne : set_table_name "foos" comme par exemple :

class Bar < ActiveRecord::Base
set_table_name "foos"
end

J'ai généré une application 'gestion' et ajouté
set_table_name "eleves" dans models/gestion.rb


.L'autre solution plus élégante est surcharger la classe responsable de la transformation singulier/pluriel : inflections.rb
Comme ceci
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'eleve' ,'eleves'
# inflect.plural /^(ox)$/i, '\1en'
# inflect.singular /^(ox)en/i, '\1'
# inflect.irregular 'person', 'people'
# inflect.uncountable %w( fish sheep )
end

Voila comment on passe une nuit à chercher un bug.

vendredi 19 septembre 2008

Installation de rubygem

Pour Debian

Normalement sur une debian l'installation se fait par :
apt-get install libyaml-ruby
apt-get install libzlib-ruby

Puis apt-get install rubygems

Installation manuelle


Pour une installation manuelle depuis le repertoire de l'archive faire :

ruby setup.rb

Si le répertoire d'installation n'est pas standard (/usr/local/lib/ruby)
L'installation se lancera de la manière suivante:
(/home/monrep et /home/mondepot )

export GEM_HOME= /home/mondepot
ruby setup.rb config --prefix=/home/monrep
ruby setup.rb setup
ruby setup.rb install

La mise à jour de gem se fait par la commande :
gem update --system

En cas de message d'erreur de type :

/usr/bin/gem:23 uninitialized constant Gem::GemRunner
Recherche le programme gem (sous /usr/bin)
Et ajouter la ligne :
require 'rubygems/gem_runner'