Les commercants les plus betes du monde

Les commerçants les plus bêtes du monde sont à deux pas de chez moi et je ne m’en doutais pas.

Il aura fallu que la mairie de Paris se décide enfin à construire une piste cyclable pour qu’ils se manifestent aussi clairement.

Les commerçants les plus bêtes du monde sont aussi les plus manipulés. Ils répandent sans discernement les contrevérités distillées par la mairie du 15ème arrondissement et affichent sur leurs vitrines les tracts qui expliquent que les pistes cyclables polluent et que celle-ci signera la mort du petit commerce et l’asphyxie du quartier.

Cette position pourrait se comprendre de la part de concessionaires automobiles, auto-écoles ou autres stations services. Mais non, ce sont des libraires, des boulangers, des coiffeurs, des restaurateurs qui semblent penser que leur chiffre d’affaires est directement proportionnel au nombre véhicules qui vrombissent devant leurs vitrines. Il ne me semble pourtant pas que les commerçants des rues piétonnes aient particulièrement à se plaindre, ni qu’il soit plus difficile de s’arrêter pour acheter une baguette en vélo qu’en voiture…

Et en admettant que ce soit vrai, la réduction de la circulation à Paris est une affaire de santé publique qu’on ne doit pas sacrifier aux intérêts catégoriels d’une minorité.

Si je ne pense vraiment pas que la construction d’une piste cyclable ait une influence négative sur leur chiffre d’affaires, je sais que leurs affiches leur a déjà fait perdre au moins un client (moi) et j’incite tout ceux qui pensent comme moi à les boycoter comme je le fais!

Share and Enjoy:
  • Identi.ca
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Add to favorites

Declarer ses impots sous Linux

Je sais bien que nous avions jusqu’au 12 avril, mais nous gardions en mémoire les déboires que nous avions eu l’année dernière avec notre déclaration d’impôts sur Internet et nous nous y sommes mis hier soir…

Partant du principe que l’administration avait du privilégier Windows, nous avons décidé d’utiliser le poste de travail Wintel de Catherine que je n’ai pas encore réussi à convertir à Linux.

Mal nous en a pris puisque après trois bonnes heures de bataille (mot de passe du certificat de l’année dernière oublié, difficultés pour révoquer ce certificat, appel à l’assistance technique à un euro la minute, recherche laborieuse des multiples documents dans lesquels sont éparpillés les informations nécessaires à la création d’un nouveau certificat, remplissage des différentes pages de la déclaration…), cette merveilleuse application nous informe que nous n’avons pas de certificat et ne pouvons pas signer la déclaration. Un comble puisque la même application vérifie le même certificat avant de vous permettre de commencer la saisie.

Entre temps, il était déjà près d’une heure du matin et l’assistance technique était fermée…

Ce matin, long dialogue avec trois interlocuteurs différents, le premier qui filtre l’appel, la deuxième qui me fait vérifier une nième fois la configuration, me fait enlever tout ce qui ressemble à un caractère accentué dans la déclaration (il semble que le calcul de signatures bute sur nos malheureux caractères accentués) et un troisième qui me fait refaire ce que la deuxième m’avait déjà fait faire et finit par conclure qu’il s’agit sans aucun doute d’un problème réseau et qu’il faut que je révoque mon certificat pour en demander un nouveau.

J’ai dirigé, dans une vie antérieure, un service de support technique et cette explication me semblait un peu suspecte, aussi ai-je décidé de tenter autre chose…

Après d’autres essais sous Windows, j’ai fini par revenir sur mon poste de travail Linux/Debian que je n’aurais jamais du quitter pour voir ce que cela donnait.

Comme tout cela n’est pas très documenté sur le site des impôts, je vous donne la marche que j’ai suivi.

J’ai utilisé un navigateur Firefox tout neuf (package “mozilla-firefox” 0.8-7).

Ma machine virtuelle Java est une 1.4.2 Sun installée manuellement et pour la valider dans firefox, j’ai rajouté le lien symbolique suivant en tant que “root” (les chemins devront être adaptés à votre configuration) :

ln -s /usr/local/lib/j2sdk1.4.2/jre/plugin/i386/ns610-gcc32/libjavaplugin_oji.so /usr/lib/mozilla-firefox/plugins/ 

Après avoir pointé mon navigateur sur http://www.ir.dgi.minefi.gouv.fr/ et cliqué sur “déclarer”, l’application cherche à télécharger “teleir_cryptolib.jar” dans le répertoire “/usr/local/lib/j2sdk1.4.2/jre/lib/ext/”, ce qui naturellement lui est refusé.

A nouveau sous root, j’ai donc temporairement permis l’écriture sous ce répertoire (par “chmod a+w”) puis, après le téléchargement, ai changé le propriétaire de ce jar et interdit l’écriture à ce répertoire (par “chmod a-w”).

La dernière manipulation a été de récupérer le certificat qui était sur la machine Windows.

Pour cela, il faut savoir (cela ne semble pas documenté sur le site des impôts) que sous Linux, le répertoire “teleir” qui contient les données de l’application et notamment les certificats est stocké sous le répertoire “home” de l’utilisateur qui utilise le navigateur.

J’ai donc simplement recopié le répertoire “c:\teleir” de la machine Windows sous mon répertoire home.

Et là, surprise, tout fonctionne à merveille.

Je peux visualiser les informations saisies hier, les modifier et même signer ma déclaration et l’envoyer comme cela m’avait été refusé sous Windows (au passage, j’ai remarqué que le champ de saisie du mot de passe ne s’était pas affiché sous Windows au moment de la signature ce qui explique sans doute que la signature ait échoué).

Déclarer ses impôts sous Linux? Assurément : c’est plus facile que sous Windows!

Share and Enjoy:
  • Identi.ca
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Add to favorites

Half a day to learn about XML schema languages…

One of the things which are really hard when you specialize in XML schema languages is to play the classical “elevator story” and explain in the time it takes to go from the ground floor to your 7th floor what you are doing to own your life to your neighbor.

That’s already tough to play the elevator story explaining what is XML, just try to imagine how difficult it is with XML schema languages!

In fact, I have found that the shorter amount of time it takes me to really initiate people (that is, not my neighbors but people already knowing XML quite well) to XML Schema languages is half a day and I have made a tutorial to perform that initiation!

The next times I’ll be giving this tutorial will be on April 18th in Amsterdam for XML Europe and then on July 27th in Portland for the Open Source Conference.

I have already been giving that tutorial quite a few times at various conferences including previous issues of XML Europe, XML 2003, OSCON and even SD West 2004 no later than last month but I am still enjoying giving that talk as much as I did the first time.

As far as I know, its agenda is unique and no other tutorials or training cover all three big schema languages (Schematron, RELAX NG and W3C XML Schema).

Most of the attendees seem to enjoy this tutorial as well and to be astonished by the scope that is hiding beyond the term of “XML schema languages”. Of course, many of the concepts seem familiar to those of them who are DTD experts, but the approach taken by these “modern” schema languages is quite different and people tend to underestimate the amount of work that has been done in these areas.

I have been asked why people should want to learn about three different schema languages if they are going to use only one or two of them.

Of course, people can always learn no more than what they will immediately need, but I think that it’s a good thing to know your environment before stepping into a new discipline.

When you start learning computer science, you can start learning only a single programming language, let’s say Visual Basic, if you think that it’s the one that you’ll be using later on. I would argue that you’ll become a better programmer (even in Visual Basic) if you have an insight of other programming languages (let’s say C and Java or Python). Furthermore, you may also find out that Visual Basic isn’t always the best choice for what you’ll have to do later on.

That’s the same with schema languages. Even if right now you think that you’ll be using only one of them (let’s say W3C XML Schema), you’ll get a better understanding of W3C XML Schema if you learn about other approaches: that will help you to understand its most basic principles and also its limitations. And eventually, you may find out that W3C XML Schema isn’t always the best choice for what you’ll have to do…

See you in Amsterdam!

Share and Enjoy:
  • Identi.ca
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Add to favorites

Le liberalisme n a pas d avenir

Je suis allé voir hier soir une conférence-débat où Guillaume Duval présentait son livre intitulé “le libéralisme n’a pas d’avenir”.

C’est un livre que j’avais commencé à feuilleter et dont la thèse est que le libéralisme porte en lui même les raisons d’un échec certain pour plusieurs raisons :

  • Pour se développer, le libéralisme (que Duval qualifie de “système marchand”) a besoin d’une infrastructure généralement étatique (le système “non-marchand”). Le libéralisme ne peut donc émerger et se maintenir que sur les bases d’un système non libéral.
  • Le marché pousse les entreprises à se concentrer (Duval explique chiffre à l’appui que la concurrence est source de coûts) et cette logique tend à créer de nouveaux monopoles qui sont contraires aux principes même du libéralisme.

La thèse est intéressante et crédible. Guillaume Duval est un orateur convaincant qui a le don de trouver des chiffres qui parlent et de relier ses thèses à des évènements d’actualité connus de tous. En revanche, j’ai trouvé le débat moins réussi : Duval semblait souvent replonger dans les démonstrations de son livre plutôt que de chercher à réellement comprendre les questions.

Je suis loin d’être un spécialiste de la question, mais je me demande si la principale raison pour laquelle le libéralisme n’a peut être pas l’avenir que certains lui prédisent n’est pas plutôt que ses principaux promoteurs semblent avoir cessé d’y croire et de l’appliquer (si tant est qu’ils l’aient réellement appliqué).

L’administration Bush semble sous bien des angles la moins libérale que l’on ait vu aux Etats-Unis depuis bien longtemps. On l’a vu lors de la crise de l’acier et on voit aujourd’hui les tentations protectionnistes pour protéger l’industrie du logiciel contre l’externalisation. De plus, les budgets de la défense (actuels) et de la recherche spatiale (annoncés) constituent un développement notable du “non-marchand” et la banque centrale des Etats-Unis semble plus soucieuse de la santé financière des entreprises américaines que du respect des règles du marché international.

Au point que l’on peut se demander si la “vieille Europe” n’est pas la seule à jouer un peu naïvement la carte du libéralisme dogmatique pur et dur, au risque de marquer contre son camp!

Share and Enjoy:
  • Identi.ca
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Add to favorites

Tim Berners-Lee has taken up the hatchet

Tim Berners-Lee takes up the hatchet and publishes use cases for relative URIs as namespace names:

I can’t remember what prompted me to write up these sue cases [sic] for relative URIs in namespaces, and I apologize if I have done it before. The XML 1.0 and XML 1.1 namespaces documents “deprocate” this practice, following a vote at a XML plenary. It seems that RDF does need this, but no one else seems to just now.

Two use cases follow, the first one contradicted by Elliotte Rusty Harold, the second one related to RDF:

2. In in RDF, local identifiers are of the for rdf:id=”foo” or about=”#foo”, which are equivalent. These are sed for naming arbitrary things within a description.

The URl “#foo” is defiuned to be relative to the current document. by the URI spec.

RDF can also use these ientifiers as class names or properties, in which case they are usedas element names in a namespace of the document itself. It is clearly useful to be able to say xmlns:=””in this case.

We have had plenty of trouble with information (for example in the cwm test suite) being serialized as XML, and the local identifiers having necessarily to be given absolute URIs. This has mean that the test files have ended up bein branded with the local filepath whether they were processed(xmlns=”file:/disk4/joe/devel/test/set5/bar”) which works, but its a pain. It makes files arbitrarily different for testing, can have privacy implications, and so on.

I am not sure what is meant by xmlns:=””.

xmlns=”” has been allowed since namespaces in XML 1.0 and xmlns:foo=”” has been introduced by namespaces in XML 1.1 (now a Proposed Recommendation). Both are namespaces “undeclaration” and that’s probably not what’s meant here.

If it’s about using relative URIs in RDF, I wonder if all this is really an issue with XML namespaces and not rather an issue with the XML syntax of RDF. Maybe RDF just needs some kind of rdf:base attribute?

Also, I have more than mixed feelings about using rdf:about=”#foo”.

The only circumstance where that would seem legitimate to me would be to make assertions about the XML fragment identified as “#foo”, but is that interesting?

Doesn’t it make RDF no better than XLink+XPointer which relies on URIs used as addresses rather than names?

Of course, that’s painful to give each resource an absolute URI, but at least, these URIs don’t change when you move the documents containing the assertions.

Or have I misunderstood the whole point?

Share and Enjoy:
  • Identi.ca
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Add to favorites

SVG a sparklingPoint, multimedia sur XMLfr

Comme promis, j’ai fini par transcrire la présentation d’Antoine Quint à sparklingPoint.

Ce faisant, j’en ai profité pour aller plus loin et publier également la version sonore de son intervention et comme cela, sans être très complexe, a justifié l’utilisation de pas mal d’outils différents (sous Linux/Debian), je vais en décrire ici les grandes lignes.

Le première étape a été de récupérer l’enregistrement réalisé par la fonction “mémo vocal” de mon téléphone (Sony Ericsson P800).

Curieusement, les mémos vocaux n’apparaissent pas lorsque l’on visualise le contenu du téléphone grace au logiciel fourni avec le téléphone. Par contre, ils sont présents dans les sauvegardes du téléphone qui se trouvent être des archives au format ZIP :

vdv@delleric:/tmp$ unzip Mon\ P800\ 2004-01-26\ 08.59.05.ecs
...
vdv@delleric:/tmp$ find backup/ -name "*.wav"
backup/Internal/documents/Media files/audio/unfiled/Arrow sound.wav
backup/Internal/documents/Media files/audio/unfiled/Carhorn sound.wav
backup/Internal/documents/Media files/audio/unfiled/Oldfashioned.wav
backup/Internal/documents/Voice/VoiceNote/voicenote14720051577282279.wav
backup/Internal/documents/Voice/VoiceNote/voicenote14724921931175759.wav
backup/Internal/system/data/DefaultSounds/alarm.wav
vdv@delleric:/tmp$

Celui qui nous intéresse est “voicenote14724921931175759.wav”. Ce fichier se révèle être un “.wav” utilisant un codec GSM peu utilisé par les outils Linux classiques :

vdv@delleric:/tmp$ file backup/Internal/documents/Voice/VoiceNote/voicenote14724
921931175759.wav
backup/Internal/documents/Voice/VoiceNote/voicenote14724921931175759.wav: RIFF (
little-endian) data, WAVE audio, GSM 6.10, mono 8000 Hz

Il ne s’ouvre pas directement avec des outils d’édition sonore tels qu’audacity mais la commande “play” permet de l’écouter ce qui me permit de suspecter que “sox” sur lequel s’appuie “play” devait connaître ce codec et, de fait, ces documents peuvent être convertis en formats plus usuels en utilisant sox. Je l’ai converti en .ogg en multipliant son volume par deux et en le rééchantillonnant en 44100 Hz (ce qui est une fréquence plus habituelle et facilite les conversions ultérieures) avec la commande :

vdv@delleric:/tmp$ sox -v 2 voicenote14724921931175759.wav -r 44100 voicenote.ogg
maskChannels: 1  Rate: 44100

Après cette étape, l’enregistrement est prêt à être transcrit, sectionné et publié en MP3.

Il existe de nombreux outils permettant l’édition et la transcription des documents sonores (audacity, glame, transcriber, …).

Bien que transcriber, qui m’avait été aimablement signalé par Erwan le Gall, soit spécifiquement adapté à la transcription de documents sonores, j’ai hésité à apprendre à me servir d’un nouvel outil et ai préféré pour cette fois-ci me servir d’audacity que j’utilise couramment pour sectionner mes enregistrements de disques vinyles. J’ai eu quelque déboires avec la fonction export en MP3 et ai préféré exporter en .wav et convertir manuellement en MP3 en utilisant BladEnc. Pour chaque plage, j’ai donc utilisé la commande :

vdv@delleric:/tmp$ bladeenc -br 32 voicenote1.wav voicenote1.mp3

BladeEnc 0.94.2    (c) Tord Jansson            Homepage: http://bladeenc.mp3.no
===============================================================================
BladeEnc is free software, distributed under the Lesser General Public License.
See the file COPYING, BladeEnc's homepage or www.fsf.org for more details.

Files to encode: 1

Encoding:  voicenote1.wav
Input:     44.1 kHz, 16 bit, mono.
Output:    32 kBit, mono.

Completed. Encoding time: 00:00:02 (28.78X)

All operations completed. Total encoding time: 00:00:02

Dernière opération, pour ajouter les tags MP3, j’ai utilisé cantus, un outil qui est une petite merveille pour ce genre d’opérations.

Il ne restait ensuite plus qu’à publier.

Pourquoi des MP3?

J’ai hésité à ce sujet. J’aurais préféré publier au format Ogg Vorbis (.ogg) que j’utilise dès que je le peux (Ogg est à MP3 ce que PNG est à GIF) mais ai pensé que les utilisateurs potentiels de ces documents sonores auraient du mal à les écouter (Ogg n’est pas supporté par Windows Media Player).

Qu’en pensez-vous?

Share and Enjoy:
  • Identi.ca
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Add to favorites

Viruses

Last week, when “W32.Beagle.A@mm” started to spread out, I decided to switch my mailing lists to “moderated”.

Not that my subscribers can be affected by viruses (I configure my mailing lists to scrap binary attachments to reduce the risk), but a flurry of mails saying “Hi” was something I wanted to avoid, even if they are safe!

This week, when “W32.Novarg.A@mm” came out, I decided I needed something stronger and more automatic…

After some googling, I have installed clamav and amavis. That took me some time and has been painful (the mail system is probably what’s the most complex on my servers, with many different programs involved: postfix, procmail, cyrus, procmail and now clamav and amavis), but I am pretty happy with this small achievement.

Clamav is what’s doing the real work. It’s an open source anti-virus scanner. It comes with an update daemon and several virus signatures seem to be added daily as far as I can tell on my limited experience.

Also open source, Amavis is what does the interface between the MTA (Postfix in my case) and the virus scanner (Clamav in my case). I have installed a flavor of Amavis named “Amavisd-new”. Amavis is highly configurable. You can tell him when a virus is using fake sender addresses and in that case, it won’t send a report to the sender. I wish more systems and admins could be using that feature to avoid flooding the net with rubbish virus notifications!

With this setup, I have switched my mailing lists to their normal mode again and I am now watching viruses being caught: the rate has reached 30 viruses per hour. 30 mails that won’t leave my SMTP server and never spread their virus…

That may be a small achievement, but I feel a good “net citizen” :) … If more SMTP servers (including those from ISPs) were equipped with such tools, the viruses would spread much, much, much slower.

Share and Enjoy:
  • Identi.ca
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Add to favorites

Projet de loi contre l economie numerique

Stéphane Marcovitch a une nouvelle fois exposé le point de vue de l’AFA (Association des fournisseurs d’accès et de services Internet) sur le projet de loi pour l’économie numérique.

Ce projet de loi me semble représentatif d’une tentation de la part des pouvoirs publics de remplacer les dispositifs juridiques par des dispositifs techniques.

Ce point, dénoncé depuis plusieurs par de nombreux observateurs (dont Lawrence Lessig) est particulièrement préoccupant : vouloir faire d’Internet un espace ou la technique empêcherait de commettre aucun délit est un leurre qui pourrait bien étouffer toute liberté d’expression sur la toile.

Et s’il est vrai que l’économie a besoin d’un minimum de liberté pour ce développer, la loi pourrait bien se transformer loi contre l’économie numérique!

Le projet semble bien cohérent avec la tendance actuelle qui privilégie largement la sécurité à la liberté comme le démontre le projet de loi Perben contre lequel les avocats appellent à manifester cet après-midi.

En attendant, pourquoi ne pas signer la pétition sur le site de l’AFA?

Share and Enjoy:
  • Identi.ca
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Add to favorites

SVG a sparklingPoint

Antoine Quint jouait la vedette américaine a sparklingPoint hier soir.

Modeste, Antoine a attribué l’affluence record au thème qui était, vous l’aurez deviné, SVG.

Pas facile de parler de SVG pendant quinze minutes autour d’un bar, sans vidéo projecteur ni PC!

Antoine a choisi de présenter ce qui est important pour lui dans SVG en quinze points, un point par minute et il a parfaitement réussi son pari : j’ai enregistré son discours sur mon télephone portable et il a terminé son quinzième point lorsque mon enregistreur marquait 14 minutes et 59 secondes.

L’enregistrement n’est sans doute pas assez bon pour le publier en audio, mais il est audible et il faudrait que je prenne le temps de le retranscrire pour XMLfr… histoire que vous puissiez constater que si le timing était parfait, le contenu n’était pas mal non plus!

Share and Enjoy:
  • Identi.ca
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Add to favorites

Generating samples out of a schema

For one of my projects, I need to generate sample documents out of a W3C XML Schema.

I had a quick look on existing products but ruled tham out since I don’t believe they meet the requirements imposed by my customer:

  • The values need to be “significant” (no “abcd” for a name).
  • The schema is using some advanced WXS features such as derivation and xsi:type.

I plan to implement that as a two step XSLT transformation:

  1. The WXS schema is transformed into a simplified RELAX NG schema.
  2. The simple RNG schema is used to generate the samples.

The benefit of having a valid schema as the intermediate document between the two steps is that that should facilitate the debugging: if a sample document isn’t valid per the original schema, a validation against the intermediate schema should show if the bug is in step one or step two.

The reason why I have chosen RELAX NG for this intermediate schema is that it’s easier to write and easier to process but also that I can have a single schema for all the namespaces used in the original schema (that wouldn’t be possible with a W3C XML Schema).

I plan to code lists of meaningful values as WXS schema annotations and convert these annotations into RELAX NG choices so that all the alternatives (both in the achema itself and in the meaningful values) are translated into RNG choices in the intermediate schema.

Not trivial, quite a lot of work but that seems feasible to me!

Share and Enjoy:
  • Identi.ca
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Add to favorites