« avril 2008 »
lunmarmerjeuvensamdim
123456
78910111213
14151617181920
21222324252627
282930

Blog Bazar


Add to Technorati Favorites

jeudi 17 avril 2008

Internet pue ?

Une petite nouvelle comme il y en a tant d'autres sur Internet, lue au hasard des blogs : "Vers un moteur de recherche d'odeurs ?".

On nous informe avec un enthousiasme débordant que l'on va bientôt pouvoir transmettre les odeurs via un portable, et donc, que "les évolutions seraient multiples", et "pourquoi pas ? Un moteur de recherche d'odeurs?".

Ma première pensée a été d'imaginer des ingénieurs et commerciaux fébriles se disant "ah génial! Personne ne l'a fait avant nous! Les débouchés, le marché, dément"... Hé les gars! Réveillez-vous ! Vous n'avez rien de mieux à faire ? Ma pensée va vers les 6 milliards d'êtres humains (moins 10 ou 20) qui s'en fichent totalement. J'aimerais que ces gens aillent expliquer à un paysan du Darfour :

- "Eh tu sais que l'on va bientôt pouvoir envoyer des odeurs sur un portable ?"
- "...?!"

La news , si vous avez du temps à lire : très résumée mais en français : http://www.top-logiciel.net/news-article.storyid-2632.htm, et en anglais : http://www.ntt.com/release_e/news08/0004/0407.html

mardi 1 avril 2008

Retrouver le nom d'une fonction C++ (demangle)

Parfois , lors de l'édition de lien d'un programme, ou bien encore lors de son lancement, il peut arriver qu'une erreur fasse mention d'une fonction C++ au nom improbable:

Exemple:

 dyld: lazy symbol binding failed: Symbol not found: __ZN7Indexer16CrawlPatternListC2Ev
 Referenced from: /opt/albertqa/libexec/libalbcore.dylib
 Expected in: flat namespace

Pour retrouver quelle est cette fonction que le compilateur n'a pas correctement liée (ceci intervient tout de même fréquemment avec le compilateur GCC modifié par Apple :( ), il suffit d'utiliser une fonction de demanglage (unmangle, ou demangle en anglais). Le petit programme qui fait cela fait partie des GNU Binutils qui se trouve en standard sur un Mac ou sur un Linux, avec l'environnement de développement installé : c++filt

Exemple:

 c++filt __ZN7Indexer16CrawlPatternListC2Ev
 Indexer::CrawlPatternList::CrawlPatternList()
 c++filt __ZNK7Indexer16CrawlPatternList5MatchERKN3WWW3URLE
 Indexer::CrawlPatternList::Match(WWW::URL const&) const