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'

jeudi 18 septembre 2008

10 astuces pour survivre en Rails

Voici les 10 gestes de survie pour Rails.

1 ) Installer Rails :
gem install rails

2 ) Lister les gemmes
gem list -r

3 ) Creer une application Rails
rails monappli -d mysql/oracle/postgresql/sqlite2/sqlite3

4 ) Les sept actions d'une application RESTFull
index - show - new - create - edit - update - destroy
La page d'accueil est : index.html dans le repertoire public
Modification possible par :
map.connect '', :controller => "controller_you_want_as_a_default"

5) Générer une application CRUD
./script/generate scaffold Demo name:string surname:string

ou bien générer le modèle et le contrôleur et venir mettre dans le fichier contrôleur :
scaffold : nom_classe

6) Gérer les tables par Rake
rake db:migrate
rake db:reset (suppression)

7 ) Tester la sortie HTML et XML
(a tester)
respond_to
format.html
format.xml
end

8 ) Le rendu
Trois niveaux : Layout , Template , Partial
Layout (views/layout defaut application.rhtml)
Template (views//.rhtml)
Partial (views//_.rhtml

9) Lien entre l'action et le rendu
Le lien entre l'action et le rendu se fait par la clause render_action

10) Les helpers
Ils sont dans le repertoire helpers/_helper.rb (defaut application_helper.rb)

Recherche sur le cheesecake chez amandine

Je continue mes recherches sur la confection du cheesecake :
J'ai essayé la préparation suivante pour la pâte :

120 g de biscuit spéculos
120 g de biscuit thé brun
120 g de beurre

Mixer tout les ingrédients, étaler la préparation dans le moule , mettre au frigo 10 minutes puis passer au four 10 minutes (th 180).
Verser la préparation au fromage blanc et faire cuire.

Conclusions :

Je n'ai pas eu assez de pâte. (prévoir 270 g de biscuit)
Je pense augmenter la proportion de spéculos (meilleur gout).
Mireille et amandine m'ont offert un moule à charnière pour pouvoir démouler le gâteau.

La photo :








DSCN0659



La photo a été prise chez sébastien et amandine :
Voici des toilettes RATP :


DSCN0650


Son clavier:DSCN0654

Article ajouté le 2008-09-18 , consulté 1 fois

lundi 15 septembre 2008

Il y a plus malheureux que nous

Parfois j'ai tendance à m'apitoyer sur mon travail, alors je regarde cette photos et je me dis que vraiment je n'ai pas à me plaindre.
(source digg)

jeudi 11 septembre 2008

Google face aux architectes astronautes

On a assisté avec la sortie de google Chrome à un gros buzz pour pas grand chose .

Google n'a jamais caché son désir de contrôler toute la chaine utilisateur <==> ressources web.
Pour goolge le réseau EST la machine, le réseau n'est pas une application. C'est dans cette optique que google lance un navigateur.
Ce navigateur est remarquable sur deux points :
L'exécution dans des fenêtres indépendantes des rendus des pages web. Cela laisse présager un environnement multitâche.
La possibilité de consulter ses documents en ligne et hors ligne pour ensuite les resynchroniser.

C'est sur ce dernier point que que Microsoft se sent le plus attaqué , car les prochains systèmes d'exploitation de la firme de Seattle mettront en l'accent sur cette fonctionnalité.
Et c'est là qu'intervient le gourou Joel Spolsky du site http://www.joelonsoftware.com . Ce blog est l'un des plus intéressant qui soit . Son auteur est un ancien 'superprogrammeur' de chez Microsoft et a une vision clairvoyante sur ce qui agite le microcosme du web.

Ce qui fait la force des gens de Google c'est qu'ils n'écoutent pas forcement les architectes astronautes. Un architecte astronaute c'est quelqu'un qui a force de s'élever dans l'abstraction finis par atteindre des couches ou l'oxygène est trop rare pour respirer. Ces architectes ne raisonnent qu'en terme de 'pattern' (modèle) . Si on veut se rendre d'un point à un autre , ces architectes vont pensez en 'pattrern' et vont construire un modèle en 10 couches ,alors que vous ne désirez que vous rendre d'un point à un autre. Tout ceci est illustré par l'antagonisme entre le modèle DOD Tcp/IP (4 couches) et le modèle ISO de l'OSI en 7 couches. Les quatre couches ont gagnées.

Pour le reste le nom 'chrome' fait directement référence à Firefox dont google est un gros contributeur financier.

Voici un exemple de modèle saml / sso de chez google :





Puis chez un concurrent :




Lequel est le plus clair ?

lundi 8 septembre 2008

Nouvelle technique de reverse proxy

Le reverse proxy du portail dgfip https://portail.cp.finances.gouv.fr ou https://portail.dgfip.finances.gouv.fr (pour le ranking) est basé sur un serveur https qui analyse la suite de l'url
Exemple :
nom_du_serveur/foo correspond à une location 'foo' qui a ses propres regles de gestion. La présence de 'foo' dans l'url permet au serveur de choisir la bonne application cible. Toutes les applications ne travaillent pas sur une location, pour celles-ci il faut 'chrooter' l'application au niveau du serveur reverse proxy. Cette opération lourde nécessite un travail fastidieux de rééecriture dynamique des liens.
Ce processus est complété par une bonne dose de mod_rewrite pour les derniers ajustements.
Ainsi il serait plus simple d'abriter les applications derrière le reverse proxy.
Pour cela je serai tenté d'essayer la solution suivante:
Une page menu des applications qui au lieu de proposer un lien , provoquerait la pose d'un cookie contenant le nom de l'application à activer.
Le tout serait peut être à compléter avec mod_rewrite et des tests sur le referer.
Le système ne permettrait pas d'avoir plusieurs applications ouvertes simultanément et il faudrait repasser par le menu pour ouvrir une autre application.
Il faut avoir non pas une page menu mais une application menu. Les liens sont remplacés par des boutons de formulaires qui par un POST provoquent la génération d'un cookie au nom de l'application et la sélection de celle-ci.
L'url de la page menu doit être traitée de manière particulière : elle n'appartient pas à une application. Je ne suis pas certain qu'apache soir capable de travailler de cette façon (sans véritable location) .

dimanche 7 septembre 2008

Les dignes fils d'Apache

Bien apache soit un des projets historiques de serveur WEB, il se trouve concurrencé par deux nouveaux projets: Lighttpd et nginx

le détails des parts de marché sont sur le site news.netcraft.com

Apache : 50 %
Microsoft : 35 %
Google : 6 %
Lighttpd :1,6 %
nginx : 1,5 %

Aprés comparaison de lighttpd et nginx , mon choix se porterai sur nginx .


Sur le wiki de nginx se trouve un tableau comparant les modules d'apache, lighttpd et nginx.
Nginx a été ecrit à l'origine pour faire du proxy ,reverse proxy et du load balancing.
Un squelette est disponible pour écrire ses propres modules en c.

mardi 2 septembre 2008

Alerte rouge

Première version du jeu 'alerte rouge' disponible gratuitement sur le site de Electronics Arts .

Pour faire du bruit autour du lancement du troisième volet de ce jeu descendant légitime de Command & Conquer , l'éditeur vous offre à télécharger le premier épisode (2 iso CD de 500 mo).

Ici alerte rouge :




Ici command and conquer


Enfin l'ancêtre de cette série : Dunes 2.

Les protocoles du web 3.0

Alors que le web 2.0 n'est pas encore bien mature , des papiers sortent sur le web 3.0 .

Voici quelques exemples de protocoles :
Le RDF(a) ou RDFS : Resource Description Framework : ce langage de descrition permet de mettre à disposition de robot des informations. C'est un système qui permet de mettre dans une seule ressource (page html) une partie destinée aux lecteurs humain , une autre destinée aux flux RSS une autre destiné aux robots d'indexation.

Le FOAF : Friend Of A Friend : ce protocole permet de decrire un réseau social basé sur les amis de mes amis .
Ical : C'est un protocole deja ancien qui standardise les échanges pour des dates ou des évènements.
Vcard : système de description de carte professionnelle.
DC: Dublin Core permet de decrire un document (auteur, titre)
RSS : désigne deux protocoles :Rich Site Summary (v1) puis Really Simple Syndication (v2)
Permet la syndication des sites (blog) sous la forme de nouvelles , on parle de format ATOM.
OWL : web ontologie Language
SPARQL : Langage de requête pour le RDF.

Trouvé sur le blog de fred cavazza www.fredcavazza.net

Visite au CNAM

Hier j'étais jury au CNAM , où denis présentait le fruit de 6 ans d'étude.
Les jardins du CNAM



La buvette au fond


Le jury :






A l'issu d'une brillante présentation , denis a reçu le titre d'ingénieur avec mention BIEN.