Finally out of MySQL encoding hell [en]

[fr] Description de comment je me suis sortie des problèmes d'encodage qui résultaient en l'affichage de hiéroglyphes sur tous les sites hébergés sur mon serveur.

It took weeks, mainly because I was busy with a car accident and the end of school, but it also took about two real whole days of head-banging on the desk to get it fixed.

Here’s what happened: remember, a long time ago, I had trouble with stuff in my database which was supposed to be UTF-8 but seemed to be ISO-8859-1? And then, sometime later, I had a weird mixture of UTF-8 and ISO-8859-1 in the same database?

Well, somewhere along the line this is what I guess happened: my database installation must have been serving UTF-8 content as ISO-8859-1, leading me to believe it was ISO-8859-1 when it was in fact UTF-8. That led me to try to convert it to UTF-8 — meaning I took UTF-8 strings and ran them through a converter supposed to turn ISO-8859-1 into UTF-8. The result? Let’s call it “double-UTF-8” (doubly encoded UTF-8), for want of a better name.

Anyway, that’s what I had in my database. When we upgraded MySQL and PHP on the server, I suddenly started seeing a load of junk instead of my accented characters:

encoding-problem-2

What I was seeing looked furiously like UTF-8 looks when your server setup is messed up and serves it as ISO-8859-1 instead. But, as you can see on the picture above, this page was being served as UTF-8 by the server. How did I know it wasn’t ISO-8859-1 in my database instead of this hypothetical “double-UTF-8”? Well, for one, I knew the page was served as UTF-8, and I also know that ISO-8859-1 (latin-1) served as UTF-8 makes accented characters look like question marks. Then, if I wanted to be sure, I could just change the page encoding in Firefox to ISO-8859-1 (that should make it look right if it was ISO-8859-1, shouldn’t it?) Well, it made it look worse.

Another indication was that when the MySQL connection encoding (in my.cnf) was set back to latin-1 (ISO-8859-1), the pages seemed to display correctly, but WordPress broke.

The first post on the picture I’m showing here looks “OK”, because it was posted after the setup was changed. It really is UTF-8.

Now how did we solve this? My initial idea was to take the “double-UTF-8” content of the database (and don’t forget it was mixed with the more recent UTF-8 content) and convert it “from UTF-8 to ISO-8859-1”. I had a python script we had used to fix the last MySQL disaster which converted everything to UTF-8 — I figured I could reverse it. So I rounded up a bunch of smart people (dda_, sbp, bonsaikitten and Blackb|rd — and countless others, sorry if I forgot you!) and got to work.

It proved a hairier problem than expected. What also proved hairy was explaining the problem to people who wanted to help and insisted in misunderstanding the situation. In the end, we produced a script (well, “they” rather than “we”) which looked like it should work, only… it did nothing. If you’re really interested in looking at it, here it is — but be warned, don’t try it.

We tried recode. We tried iconv. We tried changing my.cnf settings, dumping the databases, changing them back, and importing the dumps. Finally, the problem was solved manually.

  1. Made a text file listing the databases which needed to be cured (dblist.txt).
  2. Dumped them all: for db in $(cat dblist.txt); do mysqldump --opt -u user -ppassword ${db} > ${db}-20060712.sql; done
  3. Sent them over to Blackb|rd who did some search and replace magic in vim, starting with this list of characters (just change the browser encoding to latin-1 to see what they look like when mangled)
  4. Imported the corrected dumps back in: for db in $(cat dblist.txt); do mysql -u user -ppassword ${db} < ${db}-20060712.sql; done

Blackb|rd produced a shell script for vim (?) which I’ll link to as soon as I lay my hands on the URL again. The list of characters to convert was produced by trial and error, knowing that corrupted characters appeared in the text file as A tilde or A circonflexe followed by something else. I’d then change the my.cnf setting back to latin-1 to view the character strings in context and allow Blackbr|d to see what they needed to be replaced with.

Thanks. Not looking forward to the next MySQL encoding problem. They just seem to get worse and worse. (And yes, I do use UTF-8 all over the place.)

Dell s'y met aussi! [fr]

[en] Announcing Dell's blog.

A surveiller: le blog de Dell. Jetez un oeil, du coup, à ce qu’en disent les blogueurs. Vous pouvez aussi voir ce que raconte la blogosphère au sujet de Dell. Comme quoi, les blogs ce n’est pas que pour les PME, ça marche aussi dans les grandes boîtes!

Technorati est un service vraiment utile, dommage que tout le monde ne le connaisse pas encore! Robert Scoble nous rapportait il y a quelques jours comment il a montré Technorati à une équipe de dirigeants Nestlé: ils ignoraient totalement qu’ils pouvaient suivre en temps quasi-réel ce qui se dit au sujet de leur marque! (Il y a un peu de bruit, c’est sûr, mais garder un oeil là-dessus peut s’avérer loin d’être inutile.)

Should I sell it? [en]

[fr] Est-ce que je devrais vendre mon blog?


My blog is worth $93,149.10.
How much is your blog worth?

Du blog à  se mettre sous la dent [fr]

[en] A new blogger in the French Swiss blogosphere.

Je vous encourage vivement à  aller jeter un oeil sur la Chronique de l’Abrincate, un nouveau venu dans la blogosphère romande. De la culture, des lettres, un regard piquant d’humanité sur le monde dans lequel nous vivons: Bernard Boëton aime écrire, il a des choses à  dire, et après de longues années de rédaction “contrôlée”, il avait envie d’un espace où il pourrait être seul maître à  bord.

Il a pris contact avec moi afin que je lui offre soutien technique et conseils blogosphériques pour la mise à  l’eau de son navire. Il s’est lancé à  l’eau, et ma foi, je trouve qu’il s’en sort fort bien.

Faites-lui une visite, et si l’un ou l’autre de ses articles vous inspire réflexion… ne vous privez pas!

Marre de l'hiver? [fr]

[en] Sign the petition for the return of Spring in the northern hemisphere.

Si, comme moi, vous désirez ardemment le retour du printemps, filez de ce pas signer la pétition pour le retour du printemps (adressée à  M. Climat) concoctée par notre inimitable Baud.

N’hésitez pas à  la faire circuler, on finira bien par se faire entendre.

Merci!

ETech: I'm at Microformats BOF! [en]

[fr] Petite démonstration avec apparition vidéo de bibi à  ETech, dans un peu moins de deux heures. Didier Barbas a bossé dur sur le projet!

Well, almost. There should be a minute or so of video footage of me in Kevin‘s lightening demo on tags during the Microformats Panel tonight.

Check it out! It has to do with this little project. Didier Barbas wrote the code, graduating from coding slave to coding hero in the process. If you need an Iron Coder, hire him! (He tells me he loves it…)

So, head off to Microformats BOF.

Vous parlez de la blogosphère suisse? [fr]

[en] Tag posts talking about the swiss blogosphere (or swiss meta-blogging issues) with blogosphera helvetica. The posts can then be syndicated to create a true multi-author metablog. This seems to me a better solution then setting up a new multi-author blog somewhere. Let's use what we already have: bloggers!

Je crois que tout le monde (ou presque) a réalisé que la blogosphère suisse commence à bouillonner. Mais peut-on parler de blogosphère “suisse”? Savons-nous ce que nos amis d’outre-Sarine fabriquent avec leurs blogs? Les frontières linguistiques sont les plus fortes que l’on puisse trouver sur le web. Pour cause, ce sont pour ainsi dire les seules.

Swiss Metablog fait pas mal de “veille blogosphérique” suisse, mais c’est en allemand. J’ai un compte, mais je ne l’utilise presque pas car j’ai déjà de la peine à suivre avec CTTS. Le blog de iFeedYou aborde souvent également des sujets touchant aux blogs dans notre douce Helvétie.

On a proposé et reproposé de faire un blog multi-auteurs et multilingue pour tenter de rapprocher un peu les différents groupes linguistiques. N’oublions pas non plus qu’il y a en Suisse aussi des italophones, des anglophones, et des toutes-sortes-de-phones.

Alors, voici l’idée: on va utiliser un tag pour identifier les billets qui traitent de la blogosphère helvète. Pour ne pas faire de jaloux, on va parler latin: blogosphera helvetica. Ensuite, on peut consulter la page du tag, s’y abonner, et même syndiquer le contenu pour en faire un meta-meta-blog quelque part.

Je crois que c’est plus viable de demander à des blogueurs déjà fort occupés de simplement rajouter un petit tag sur un billet qu’ils écrivent de toute façon pour leur blog, plutôt que de leur demander d’aller écrire le billet ailleurs.

Qu’en pensez-vous?

Précision 08.03.06: ce tag (blogch ou blogospherahelvetica, on verra) ne sert pas à identifier un billet comme étant “suisse”. Il sert à identifier un billet qui parle de ce qui se passe en Suisse côté blogs. Le public cible pour ce tag est “quelqu’un qui veut savoir où en sont les blogs en Suisse, et ce qui est en train de se passer d’important”. Regardant les quelques billets que j’ai tagués ainsi, je me demande si c’est pertinent pour chacun. Les aurais-je tous publiés dans un blog multi-auteurs portant sur la blogosphère suisse? Pas certain. A méditer…

Anonymat et blog intime [fr]

[en] My reaction to a new French-speaking blogger who desires to remain anonymous because he will be dealing with private stuff on his blog.

I consider that it is not possible to blog anonymously in the long run. As you create relationships with readers, temptation to let out your real name to some of them will be great, and at some point somebody may let your name slip. Or if that doesn't happen, somebody who knows you might come upon your blog by chance and recognize you through the contents of your writing.

Writing with a pseudonym to keep oneself from unknown stalkers is fine. But when the pseudonym is there to keep people who know you from recognizing you, the consequences to face when it does happen may be very uncomfortable

Saturnin says his "blogging rule" is to not write anything he wouldn't be willing to stand up for if he was discovered. I ask him, then, what his anonymity adds to his blogging enterprise, apart from the fact he won't be easily googled for. If being anonymous helps him write more freely then if he was signing with, say, his first name, then maybe being anonymous is a trick he's playing on himself, and he might be brought to regretting it someday.

Saturnin entre en blogosphère il y a dix jours, avec un billet dont le contenu m’interpelle. Il nous annonce un blog intime, anonyme, et il nous en donne les raisons:

La condition : l’anonymat, quoi qu’on en pense. Impossible en effet de m’attacher à exprimer mes pensées et mes sentiments les plus secrets, impossible de livrer ma vie intérieure profonde sous mon vrai nom. Je suis enseignant. J’ai des élèves et des étudiants, que je vois chaque jour. Imagine, mon lecteur, que mes étudiants lisent mon blogue quotidiennement et sachent, avant même que j’entre en classe, dans quel état j’erre. Impossible.

Saturnin fait référence dans son billet à ma théorie des deux anonymats, et je sens justement dans son dernier billet, intitulé le droit à l’anonymat, un mélange un peu flou entre les deux.

Là où je rejoins entièrement Saturnin, c’est sur le fait que l’anonymat n’est pas mauvais en soi. Edicter une règle du style “Tu ne blogueras point anonymement” est inévitablement réducteur et ne tiens pas comptes des motivations du blogueur qui cherche à protéger son identité. Dans le passage reproduit ci-dessus, Saturnin nous dit clairement pourquoi la solution de l’anonymat s’est imposée à lui. Il désire parler de choses privées, intimes même, et ne désire pas être reconnu par un partie de son entourage (ses élèves en particulier — comme je le comprends).

Ma mise en garde contre l’anonymat qui cherche à préserver une intimité, c’est-à -dire à cacher ses écrits de personnes que l’on connaît, provient du fait que celui-ci peut s’écrouler. Sur le web, deux phénomènes peuvent précipiter cet écroulement (ou cet éclatement, suivant comment les choses se vivent).

  1. Le blog crée des conversations (comme celle-ci!) puis des liens entre le blogueur et ses lecteurs. Ces liens peuvent être forts, surtout dans le cas d’écrits intimes qui risquent de toucher profondément les lecteurs. Des correspondances par e-mail sont à prévoir. A un moment donné, le blogueur va peut-être donner sa véritable identité à quelqu’un dont il se sent proche. Des fuites sont alors possibles.

    J’ai vécu cela lorsque j’ai commencé à chatter en 1998. Mon identité véritable était un secret d’état. Assez rapidement cependant, je me suis fait des amis proches via le chat. On a échangé des mails. Vient un moment où l’on désire dire qui l’on est et ne plus se cacher derrière un pseudonyme. On résiste beaucoup la première fois, moins les suivantes. Un jour, par pure maladresse et sans aucune mauvaise intention, sans réaliser que c’était un problème pour moi, une fille avec qui je correspondais lâche mon nom complet en public, dans le chat. Bingo.

  2. Lorsque l’on écrit sur le web, les écrits ont tendance à s’accumuler. Il peut arriver, un jour, par hasard (et cela arrive!) que quelqu’un de notre entourage tombe sur nos écrits. Là , c’est le contenu de nos écrits qui nous trahit. Un billet ne trahira personne. Dix-huit mois de récit de vie, de cogitations, et d’états d’âme, oui.

Conclusion: l’anonymat sur le web n’est pas une chose sur laquelle on peut véritablement compter à long terme. Se pose alors la question de ce qui arriverait (les conséquences) s’il devenait connu publiquement que nos écrits précédemment anonymes nous appartiennent.

Quand je m’adresse à un public d’adolescents, clairement, il s’agit de prévenir des délits punissables par la loi ou des indiscrétions graves qui pourraient leur faire du tort. Beaucoup d’adolescents se sentent véritablement protégés par leur “anonymat” sur le web, qui est au fond très fragile.

Saturnin n’est plus un adolescent, par contre 😉 et ne va donc pas se croire “tout permis” parce qu’il ne signe pas de son nom. Même caché, il veut écrire de façon responsable:

Ma règle, c’est de fausser les noms et de ne rien publier que je ne pourrais assumer si j’étais découvert.

C’est fort bien. Assumer n’a ici pas une consonnance juridique, mais personnelle. Si Saturnin parle de sa vie sentimentale sur son blog, et que par un concours de circonstances encore inconnu, son nom devient public, alors il devra assumer face à son entourage ce dont il a parlé. Entourage qui inclut ses élèves.

Ma question à Saturnin: si ton anonymat “responsable et lucide”, comme j’ai envie de l’appeler, te fait choisir de n’écrire que des choses que tu es prêt à assumer face au monde, connu et inconnu, ton anonymat t’apporte-t-il réellement autre chose que la certitude qu’on n’aterrira pas sur ton blog lorsque l’on jette ton nom en pâture à Google? S’il te permet de te livrer plus qu’un simple “anonymat-discrétion” ou qu’une signature de ton simple prénom, n’est-il pas en train de te jouer un tour?

Lift: Thanks for the Videos, but… [en]

[fr] Problème pour visionner les vidéos de LIFT avec OSX et Firefox. Et vous?

I tried to get to the LIFT videos but I can’t read them. I have the latest versions of Tiger and Firefox. I spent a minute in a pop-up configuration window (that was nasty to start with), and then it just didn’t work. Can’t we have DailyMotion-style videos that “simply work”?

Audio works, though. Would be nice to be able to download it instead of stream.

As for the podcast feed, it asks me if I want to open NNWL. A little button to subscribe in iTunes would be really neat.

Journée médiatique [fr]

[en] Radio interview about blogs. Click on the loudspeaker and move the cursor to 1:35 minutes. Enjoy!

C’est la journée… si vous voyez ce billet à  temps, branchez-vous sur Couleur3 (passage prévu vers 17h30-18h00, je ne suis plus sûre)…

Si jamais, pour la radio “classique”: recherche de fréquences.

Interview Couleur3

L’émission est en ligne. Cliquez sur le haut-parleur, puis avancez le curseur jusqu’à  1:35…

Mise à  jour 19.12.05: Je l’ai pris en photo parce qu’il me menaçait avec son téléphone mobile “Oui, il y a une photo de moi, aussi!”.