Notebook / Archives / December 2004

December 2004 entries.

« November 2004 / \ January 2005 »

December 30, 2004

Knowledge Visualization Applets in Java

Following my entry about mindmapping tools,

    Knowledge Visualization Applets:

  • Thinkmap (“Thinkmap is designed to improve the ability of users to browse through complex information. It allows for interactive, dynamic filtering and the display of structured information without overwhelming the user or undermining the depth of the information resource.”);
  • TheBrain Technologies Corporation (“Collapsing the Time to Knowledge”);
  • Inxight Software (“Discover the True Value of Information”);
  • TouchGraph (open source);
  • at last, The Ceryle Project, which is more a knowledge management application than an applet (“Ceryle is a free tool to help you get organized. If you use a lot of post it notes, are a writer, journalist, researcher, student, or anyone compiling a lot of information for a project, maybe just trying to organize your recipes, bookmarks, or your MP3 collection, Ceryle is designed to assist you in keeping track of things. Ceryle includes features to help you store, find and even visualize your information, using what is called a graph visualization. Those same graphs also enable you to create structures for your documents, see relationships between ideas, and even generate composite documents based on those structures, like building a book from its chapters or a screenplay from its scenes.”).

(The first three via Swing Sightings Volume 4Knowledge Visualization Applets, the last from Keith on Wednesday, December 29, 2004).

Posted by Jean-Philippe on December 30, 2004 1 Comments, 1238 TrackBacks

Completion on the Web

After all the buzz around Google Suggest, and its use of the XMLHttpRequest Object, it is welcome to see other applications of this technology.

ObjectGraph developped the ObjectGraph Dictionary. “The data comes from a freely available online dictionary (a public domain English word list dictionary, based on the public domain portion of "The Project Gutenberg Etext of Webster's Unabridged Dictionary" which is in turn based on the 1913 US Webster's Unabridged Dictionary. You could download it from here).” They use this technology in order to auto-complete typed words and propose potential definitions in advance. More in the article How does it work?.

Interesting: Webster's Online Dictionary – The Rosetta Edition.

Posted by Jean-Philippe on December 30, 2004 1 Comments, 767 TrackBacks

Databinding in Java

There is an interesting poll on Manageability: What's the Best Java Tool for XML Binding?. In the results I discovered XStream, “a simple library to serialize objects to XML and back again”, which seems to be very lightweight, whereas I personally use the more complete XMLBeans from the Apache XML Project (via Erik's Linkblog: Wednesday, December 29, 2004 @687).

Posted by Jean-Philippe on December 30, 2004 1 Comments, 179 TrackBacks

Resolving dependencies, building and releasing in Java

Vincent Massol wrote an interesting article called Unbreakable builds, or: what to do without build awareness in a team? (comment on Euxx: Self healing builds and responsibilities, via Erik's Linkblog: Wednesday, December 29, 2004 @687).

Posted by Jean-Philippe on December 30, 2004 0 Comments, 179 TrackBacks

Reading and writing PowerPoint files with Java

Yes! you can now manipulate Microsoft PowerPoint files in Java, thanks to Tonic Systems, but it is not free:

If you want a free solution, you might have a look at xlhtml or wrap the PowerPoint importer and exporter with JNI (the free complete book from Sun: Java Native Interface: Programmer's Guide and Specification).

Posted by Jean-Philippe on December 30, 2004 0 Comments, 143 TrackBacks

Powerful new search engine

Clusty – “the Clustering Engine” – is a powerful search engine displaying the results of queries in clusters. I tested it with a few queries and it is really impressive.

Nevertheless, one may build the same kind of search engine as a frontend to Google with the Google Web APIs and a clustering engine.

On Rovol Labs: Is Clusty the next generation search engine? (via Erik's Linkblog: Wednesday, December 29, 2004 @979).

Posted by Jean-Philippe on December 30, 2004 4 Comments, 156 TrackBacks

Online documentation for Java libraries

  • JDocs (“a comprehensive online resource for Java API documentation”);
  • JSourcery (“the ultimate marriage of Javadoc documentation and source code”).

Posted by Jean-Philippe on December 30, 2004 3 Comments, 218 TrackBacks

MindManager-like in Java

    Mindjet MindManager-like in Java:
  • FreeMind – “free mind mapping software” (“a premier free mind-mapping software written in Java”);
  • AutoFocus – “Your Desktop Exploration Tool” (not open source).

Have a look at Alternatives to using FreeMind for other software.

Posted by Jean-Philippe on December 30, 2004 1 Comments, 196 TrackBacks

Free project management tools in Java

Posted by Jean-Philippe on December 30, 2004 0 Comments, 178 TrackBacks

Another library in Java for Regular Expressions

Maybe the last, but not the least: the project jrexx – “automaton based regular expression API for Java” and its beautiful jrexx-Lab – “laboratory for regular expression analysis”.

Posted by Jean-Philippe on December 30, 2004 0 Comments, 183 TrackBacks

December 29, 2004

Carte de Paris des jouebeurs

Paname Ensemble a mis en pratique une idée que j'avais eu il y a pas mal de temps en voyant le site nyc bloggers, site qui propose de recenser les weblogs de New York en les plaçant sur la carte du métro de la ville.

Lorsque j'avais proposé cette idée à Franck (qui se serait occupé de la partie conception graphique), celui-ci m'avait rétorqué que, pour avoir déjà rencontré le problème, il n'est pas possible d'utiliser la carte du métro parisien, propriété de la RATP.

C'est pourtant ce qu'a fait ce site avec La Carte des Blogs à Paname.

Enfin... espérons qu'ils n'auront pas de problèmes. Reste que cette idée est très intéressante, mais ne représente qu'une possibilité parmi une infinité. En effet, les superpositions de topologies sont légions.

Merci à Cédric pour l'information.

Posted by Jean-Philippe on December 29, 2004 1 Comments, 184 TrackBacks

My revenge on spammers

Among many other defences, I have just installed Spam Poison.

An article about “poison pills”: Poisoning The Spammer on Mail Msg (what seems to be a subsection of Internet Tips And Secrets) – this article is available on Developers subsection but with the title Spam: Poison Pill.

Posted by Jean-Philippe on December 29, 2004 4 Comments, 4510 TrackBacks

December 28, 2004

WINE: second glass

An interesting point of view from Brad Choate about WINE, comparing one possible future of Linux + WINE to the misfortune of IBM OS/2 Warp + Microsoft Windows compatibility.

Posted by Jean-Philippe on December 28, 2004 4 Comments, 187 TrackBacks

Interesting development platform for PHP on Windows

NuSphere Tech Platform 3.4 for Windows (download page here for the Windows version, but there is also a Linux version).

It comes with:

  • Apache 1.3.31 web server;
  • PHP 4.3.7 scripting language;
  • PHP Debugger v2.16.9.
  • ... and a lot more!

Posted by Jean-Philippe on December 28, 2004 0 Comments, 4471 TrackBacks

Another regexp tester

Continuation from my previous entry about regular expressions: RegExpEditor from WaterProof, makers of PHPEdit.

Posted by Jean-Philippe on December 28, 2004 0 Comments, 181 TrackBacks

Advanced programming tools for PHP

For my new web project (whose temporary name is SmartyPot) I plan to use a strict way of coding in PHP. That is to say: unit testing, logging, debugging and profiling.

For unit testing, we can rely on two packages:

  • PHPUnit from the PEAR repository, a regression testing framework for unit tests;
  • the old PhpUnit (last released 20020327), which claims to be based on the JUnit framework for Java.

But you can also choose the really impressive Simple Test PHP Unit Test Framework, which is able to use the aforementioned unit testing packages. This framework does not only offer to build unit test cases, but also web test cases and it can create mock objects.

For logging, we have Log4php, a port of log4j, the most popular Java logging framework, both project being part of the Logging Services Project at Apache.

For documentation, two alternatives:

For debugging and profiling:

  • DBG, the one I use at the moment (integrated in PHPEdit);
  • apd from the PECL repository;
  • the Xdebug extension for PHP;
  • ab - Apache HTTP server benchmarking tool.

Posted by Jean-Philippe on December 28, 2004 0 Comments, 929 TrackBacks

December 26, 2004

Quizz again...

You cannot stop Marie, aka “the girl with fire in her socks”:

Your Element Is Fire
Your passion and emotion are as obvious as the brightest flame. You make sparks fly, and your passion always has the potential to burst out. You are exciting and creative - and completely unpredictable. You sometimes exercise control, and sometimes you let yourself go. Friends describe you as sensitive, spirited, and compulsive. Bright and blazing with intensity, you seem mysterious and moody to many.

You Are Socks!
Cozy and warm... but easily lost. You make a good puppet.

On Blogthings - Cool Stuff To Put In Your Blog.

Posted by Jean-Philippe on December 26, 2004 2 Comments, 195 TrackBacks

Mono intelligence

Marie & I:
Your Dominant Intelligence is Linguistic Intelligence
You are excellent with words and language. You explain yourself well. An elegant speaker, you can converse well with anyone on the fly. You are also good at remembering information and convicing someone of your point of view. A master of creative phrasing and unique words, you enjoy expanding your vocabulary. You would make a fantastic poet, journalist, writer, teacher, lawyer, politician, or translator.

On ryan gilbert garcia's Weblog: Quiz: What Kind of Intelligence Do You Have?, via Erik's Linkblog: @572.

Posted by Jean-Philippe on December 26, 2004 1 Comments, 176 TrackBacks

Couple of extensions

You are .rpm  You have a nice package.  You can be useful, but your many variations sometimes make you tough to find.  You aren't apt to get jealous.
Which File Extension are You?
You are .cgi Your life seems a bit too scripted, and sometimes you are exploited.  Still a  workhorse though.
Which File Extension are You?

Posted by Jean-Philippe on December 26, 2004 1 Comments, 176 TrackBacks

December 23, 2004

Rediscovery of Regular Expressions

This collection of links is brought to you in order to rediscover with me the fabulous world of regular expressions. I am currently using a lot of regexp in the typographic engine I am building. Books by O'Reilly:

On, a huge site with Perl documentation:


Regular Expressions testing tools:

Java packages (excepts from's Links to Java Regex Packages):

PHP can use Perl Compatible Regular Expressions (PCRE).

More: the e-x-c-e-l-l-e-n-t article Marshall McLuhan vs. Marshalling Regular Expressions by Andy Oram.

“Regular expressions extend the reach of text, and therefore inexorably change how we sense the text.”

Posted by Jean-Philippe on December 23, 2004 1 Comments, 171 TrackBacks

Main styling and markups formatting languages for XHTML: a few notes

My goal

If you read me since the beginning, you know that I am very interested in typography and web design. [french]uZine a d'ailleurs mis à jour son Petit guide typographique à l’usage de l’internet, référencé dans l'entrée Typographie de la Wikipédia francophone. [/french] When I discovered advanced typography on the web, I saw many rules… too many. The idea came fast to build a tool (or a set of tools), a kind of advanced text filter, which would enable to handle these rules easily. But I had not a kind of time. Last week, I started to look again at this problem.

To begin you have to know that this engine will be one of the first building block of a general framework for web applications (targeting CMS). This object framework will be coded in PHP 5, but low level processing (like string filters) will be done in PHP 4. Thus I will be able to use these routines with many web hosting services.

My plans for the coming days are to release a pre-version of my typography engine as a WordPress plugin. Indeed, this filter will be used on my new scientific weblog (powered by Wordpress, relaying on PHP), not on this personal one (powered by Movable Type 2.661, in Perl).

I did not want to start from scratch, so I investigated the existing. This kind of text processing tools for the web is very recent. If you search for “typography” on, you will not find anything.

But being an avid weblog reader, I already knew many styling and markups formatting languages, Textile and Markdown+SmartyPants among others.

Unfortunatly, these powerful scripts are not modular and really badly coded, that is to say in a very hackich way: unreadable and unmanageable.


The original coding: Dean Allen's PHP version

Dean Allen is the creator of Textile.

Brad Choate's Perl bounce

Textile has been ported to many languages, mainly Perl, thanks to Brad Choat.

The PHP retro-port of the Perl version from Jim Riggs

The Brad Choate's version of Textile has been ported to PHP by Jim Riggs who brought to us TextilePHP. TextilePHP is also available as a WordPress plugin, developped by Adam Gessaman. Adam Messinger wrote a list of Character Macros for Textile 2 (see the entry Documentation for Textile 2 Character Macros: a Cheat Sheet for the complete story).

There is another WordPress plugin available on Huddled Masses (entry WordPress Plugin - Textile 2.0). There are two plugins: one for Textile 1 syntax and one for Textile 2 syntax.

Markdown + SmartyPants

The original coding: John Gruber's Perl version

Everybody knows SmartyPants and Markdown, two text filters developped by John Gruber:

  • “SmartyPants is a free web publishing plug-in […] that easily translates plain ASCII punctuation characters into 'smart' typographic punctuation HTML entities. This means you can write, edit, and save your posts using plain old ASCII straight quotes, plain dashes, and plain dots, but your published posts (and final HTML output) will appear with smart quotes, em-dashes, and proper ellipses.”
  • “Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).”

SmartyPants and Markdown can both be tested on the Markdown Web Dingus (together or separatly).

Markdown has got a reverse filter which permits to take HTML and turn it back into Markdown.

The complete port from Michel Fortin and other PHP ports

These two filters have be ported to PHP:

Ports to other languages

js-markdown is a partial implementation of Markdown, written in JavaScript.

There are other ports in many languages.

It's not the end…


Actually Michel Fortin made an interesting entry about styling languages, Prolifération des langages de style (in french), where he identified:

ReStructuredText is in fact an alternative to StructuredText being developed as a Python docstring standard (more on the Structured Text Wiki). StructuredText itself is an evolution of Setext.

Following the entry Markdown on The Tao of Mac, I discovered XhtmlForWiki. The guy behind this page plans to code a global markup converter, MarkupToMarkup.

  • Wiki2xhtml (« Wiki2xhtml est une classe PHP servant à transformer du texte écrit avec une syntaxe Wiki en XHTML valide. »);
  • DotClear (a wiki syntax);
  • txt2tags syntax (“Txt2tags is a document generator. It reads a text file with minimal markup […] and converts it to […][many] formats:”);
  • Radeox (“Radeox API is a lightwight wiki markup rendering engine API to make render engines for wikis more portable.”).

And I am sure to have forgotten a lot of other languages!…

Small text tools are far more widespread

Small tools are sometimes very useful. Matthew Mullenweg (creator of WordPress) developped a lot of them:

  • New Lines to Paragraphs (“By far the most popular code in the site, and has been widely adapted in different projects. Basically it takes PHP's nl2br function to the logical next step and converts double line breaks to paragraphs where applicable, does line breaks as before, and best of all it's aware of block-level HTML tags so it won't mess up your page.”)
  • PHP Acronym Definer (“When you run your text through this code it will define all the acronyms it can using the acronym tag. It also has a few other niceities, so check it out.”)
  • Cardinal Endings for Numbers (“Adds cardinal endings to numbers, like 1st and 2nd, and doesn't do much else. Has an option or two that might make this useful for you.”)
  • Curly Quotes Function in PHP (“The predecessor to the Texturize function. Soon to be totally depreciated. Has some neat regular expressions if you want to check it out though.”) and Curly Quotes for Movable Type (“Implementation of the curly quotes function in Perl using Brad Choate's regex plugin. As far as I know this was the first code of its type for Movable Type, though now there are some better alternatives for that system such as Smarty Pants and Textile. If there's interest I'll look into porting Texturize to Perl since it does a bit typographically than either of those systems.”) – more in the article Em and En Dashes in Movable Type on Photo Matt.

But he went a lot further developping a Textile-like tool: Texturize (“the first automagic quote ‘curlifier’”), used in WordPress (some information in the entry Texturize Finished).

That would also be interesting to have linguistics statistics, like those offered by many Perl modules, for example Lingua-EN-Syllable (“Routine for estimating syllable count in words”) or Lingua-EN-Fathom (“readability and general measurements of English text”).

To be continued…

This entry was mainly focused on styling languages and structural markups. Doing that way, I obfuscated interesting subjects like code beautifying (with syntax highlighter like Beautifier) referencings (purple numbers, citations, etc.), knowledge management with a wiki (“translating Wiki formatted text into other formats” with tools like Text::WikiFormat, managing a weblog with a wiki as described in WeblogWithWikiDiscussion, or the opposite, managing a wiki with a weblog engine, for example using MTWikiFormatPlugin), etc. A upcoming entries will deal about these domains, starting with an overview of the most appealing weblog plugins for my project (found on the Movable Type Plugin Directory or in the WordPress Wiki Plugins section).

Posted by Jean-Philippe on December 23, 2004 13 Comments, 6462 TrackBacks

December 12, 2004

Microsoft m'épate

Pouf ! mon Microsoft Windows XP Professionnel vient juste de planter : écran bleu, comme d'hab' (un léger “IRQ” dans le rapport d'erreur me laisse présager un problème de matériel). Je tiens toutefois à noter que les écrans bleu que j'ai pu entr'apercevoir sous Windows XP, je les compte sur les doigts d'une main (alors qu'on vienne pas me dire que Windows n'est pas stable...).
Au redémarrage, la routine : la boîte de dialogue de signalement d'erreur à Microsoft (je signale quasiment toutes les erreurs, cela me semble important pour faire progresser le système).
Mais là ! mais là !!! trop fort !!!!!!
Windows ouvre mon Mozilla Firefox pour pointer vers une page, le Online Crash Analysis de Microsoft (en anglais... bizarre alors que, contrairement à ce que j'avais demandé à Dell – puisque je voulais un OS en anglais, mon Windows est en français) :

Solution Found: Contact Dell Inc. to obtain the update

Thank you for submitting an error report. The error was likely caused by:

Intel PRO/Wireless LAN 2100 3B Mini PCI adapter software (w70n51.sys)

Intel PRO/Wireless LAN 2100 3B Mini PCI adapter software (w70n51.sys) was created by Dell Inc.. Dell Inc. informed Microsoft that they have a solution available for the problem you reported. To learn more about the solution, Dell Inc. recommends that you visit the following website:


Note: Microsoft did not create, nor does it provide technical support for Intel PRO/Wireless LAN 2100 3B Mini PCI adapter software (w70n51.sys). If you have trouble installing the fix or the problem you reported persists, please contact Dell Inc. and alert them of the problem.

Je n'ai pas encore installé cette mise à jour, mais je trouve ça trop fort un système d'exploitation qui crashe (ça peut arriver, on est tous malade un jour... humain ou machine), qui identifie le problème et vous propose une solution.
En tant qu'ingénieur, j'aurais toutefois bien aimé une description de l'erreur plus précise sans avoir à aller sur le site de Dell (puisque Microsoft le propose déjà pour ses propres mises à jour).

Bravo Microsoft !

Posted by Jean-Philippe on December 12, 2004 5 Comments, 214 TrackBacks

December 06, 2004

Échos de l'a-moral

Je souligne :
De façon générale, le subjectivisme soutient que, soit relativement (pour le sujet), soit absolument (en soi), il n'y a de réalité que subjective, tandis que l'objectivisme considère comme existant en dehors du sujet pensant ces choses dont les subjectivistes font un état du sujet. Par exemple, une théorie de la connaissance subjectiviste affirmera que le sujet ne connaît les choses que telles qu'elles sont pour lui, ou même ne connaît que ses propres sensations ou représentations ; une gnoséologie objectiviste avancera au contraire que l'être humain peut appréhender des données objectives, contrôlables de manière intersubjective, et les différencier de données strictement subjectives, issues de l'expérience vécue, de rêve ou de l'imagination. De même, en esthétique, le subjectivisme tend à faire dépendre tous les jugements de valeur des impressions personnelles, alors que l'objectivisme soutiendra qu'il est possible de porter des jugements objectifs, ou à tout le moins justifiés et intersubjectivement partagés, sur la qualité intrasèque des oeuvres. Enfin, en méta-éthique, le subjectivisme avance que les attitudes ou comportements moraux sont uniquement affaire de préférences et que rien ne peut les justifier. Bien sûr, le subjectivisme admettra que les gens issus d'une certaine culture peuvent manifester les mêmes goûts ou préférences, il admettra même qu'on peut voir certains avantages à l'adoption de telle attitude ou de tel comportement moral, mais il continuera de penser que rien de tout ceci ne saurait prouver à quelqu'un qui aurait éventuellement des goûts, des préférences, des attitudes ou des comportements différents qu'il a nécessairement tort. A l'opposé, l'objectivisme considère que certaines vérités morales sont totalement indépendantes de ce que les gens pensent ou désirent. Tout comme, pourrait-on ajouter, l'énoncé « 2 + 2 = 4 » serait encore vrai si plus personne ne savait compter, une théorie peut être vraie pour l'objectiviste de stricte obédience même si personne ne croit en sa vérité, ou encore une toile de maître demeure un chef d'oeuvre même si tout le monde l'a oubliée. (...)

Entrée Objectivité, section L'objectivisme et le subjectivisme comme métaphysique, Robert Nadeau, dans Dictionnaire d'histoire et philosophie des sciences, sous la direction de Dominique Lecourt, Éditions puf/Quadrige [page 699, collection Dico Poche (1999)]

– Qui sait respirer l'air de mes écrits sait que c'est un air des hauteurs, un air mordant. Il faut y être fait pour y vivre, sans quoi le péril est grand d'y prendre froid. La glace est proche, la solitude effrayante – mais comme les choses y baignent paisiblement dans la lumière ! Comme on y respire librement ! Combien de choses on y sent au-dessous de soi – La philosophie, telle que je l'ai toujours comprise et vécue, consiste à vivre volontairement dans les glaces et sur les cimes, – à rechercher tout ce qui dans l'existence dépayse et fait question, tout ce qui, jusqu'alors, a été mis au ban par la morale. Je dois à la longue expérience acquise au cours d'une telle incursion dans les contrées interdites, d'avoir appris à envisager, tout autrement qu'on ne le souhaiterait sans doute, les raisons pour lesquelles on a jusqu'ici « moralisé » et « idéalisé » : l'histoire cachée des philosophes, la psychologie de leurs plus grands noms, m'est apparue sous son vrai jour. – Quelle dose de vérité un esprit sait-il supporter, sait-il risquer ? Voilà qui, de plus en plus, devint pour moi le vrai critère des valeurs. L'erreur (la croyance en l'idéal) n'est pas aveuglement, l'erreur est lâcheté... Chaque acquisition, chaque pas en avant dans la connaissance est la conséquence du courage, de la dureté envers soi, même de la probité envers soi... Je ne réfute pas un « idéal », mais je ne le touche qu'avec des pincettes... Nirimur in vetitum : c'est par ce signe qu'un jour ma philosophie vaincra, car jusqu'ici on n'a jamais, par principe, interdit que la vérité. –

Ecce Homo, Friedrich Nietzsche, Éditions Gallimard [page 94, collection Folio/Essais (2002)]

Posted by Jean-Philippe on December 06, 2004 1 Comments, 167 TrackBacks

Entries on this page

Entries by month

Entries by category