Disqus Plugin Aftermath: Removing Duplicate Comments [en]

[fr] Comment se débarrasser de 5000 commentaires à double dans sa base de données WordPress!

Now that Disqus integrates Friendfeed comments, I could be tempted to give it another try, if I hadn’t spent an hour yesterday cleaning up my database because of an earlier attempt to use Disqus on this blog. After the story, how I did it — in case you’re in the same mess and could use the help.

Back in August, I installed the Disqus plugin for WordPress. Things started off not too badly, though I was a bit concerned that the plugin seemed to have duplicated all the comments in my database. It didn’t seem to show up on the blog though, so I didn’t worry too much.

After a few months, I was a bit frustrated with Disqus and the plugin (which was clearly an older version than the Disqus plugin available now). Moderating comments through the WordPress interface seemed to work erraticly, and some spam just wouldn’t accept to stay in the spambox. I never really tried to identify the exact problems too closely, I have to admit, but things were not really working how I expected them to.

Then a few (unrelated) people told me they had completely failed to comment on my blog with the new system. At some point, I got fed up and uninstalled it. Unfortunately, the duplicate comments which had been hidden from view remained there after uninstalling the plugin, so all the old comments appeared on the blog twice. I let the problem sit for a long time before attempting to fix it — wild hope there might be a ready-made script out there I could just run& in vain.

Here’s how I tackled the problem this week-end and ended up removing the duplicate comments without too much trouble, through PhpMyAdmin (PMA for short).

  • In PMA, I made sure that duplication seemed constant — it was
  • I discovered that the duplicate comments had “DISQUS” in the user-agent field
  • I dug around until I identified the last duplicate comment (when I installed the Disqus plugin, actually; I sorted the database comments table by comment date to do that)
  • I did a search, selecting comments which were younger than the last duplicate comment date AND had “DISQUS” in the user-agent field (the date bit is important, because comments posted while the plugin were active have “DISQUS” in the user-agent field but are not duplicates)
  • Then, I deleted everything that came up in the search — about 5000 comments (it helps to tell PMA to display 3000 lines per page when doing that :-))

Hope this can help somebody, and remember: always back up your database first!

Becoming a Professional Networker: Tags in Address Book OSX Needed! [en]

[fr] Besoin, de toute urgence: plugin Address Book.app permettant de taguer ses contacts.

For some time now, I’ve been aware that I’m becoming a professional networker. Almost all I do to promote Going Solo, for example, relies on my reputation and the connections I have to other people.

Now, I’ve never been somebody to collect contacts just for the sake of collecting contacts, but until LeWeb3 last year, I had just been content with butterflying around and stacking business cards somewhere near by desk. At LeWeb3, when I started telling people about Going Solo, I also started realising that the people I met and contacts I made were going to have more importance for my business than before.

And if I’ve learnt something during these last two months, it’s the importance of getting back to people. I’ve figured out how iGTD and GMail can play nice together to help me with that, but it’s not sufficient. I need to keep track of who I’ve asked what, of who can help me with what, who has this or that connection. And yes, I have too many people in my business network to keep everything in my head.

As I explain in the video above, the lovely Cathy Brooks put me on the right track: use Address Book.app. I don’t really need to keep all the contact details related to a person close at hand (ie, phone number, e-mail, etc.) because I have that in LinkedIn, Facebook, GMail address book, or on business cards. I’m not interested in keeping an exhaustive repository of all the contact details of all the people I’ve met. What I’m interested in, however, is keeping the names of these people somewhere I can attach meaningful information to them.

Where we met. What we talked about. Stuff that’ll help me remember who people are.

So, I started simply adding names (Firstname Lastname) into my OSX address book, along with a few words in the Notes field. The nice thing about the Notes field is that you don’t have to toggle edit mode on to add stuff in the Notes. So, of course, I started using the notes field to tag people. Not too bad (smart folders allow me to “pull out” people with a certain tag) but not great either, because tags get mixed up with notes, and it’s a bit clunky.

Somebody suggested I create a custom “Tags” field (a “Names” type field is fine). Unfortunately, though this looks like a good idea at first, it fails because you have to edit a contact each time you want to add tags. Also, you can’t create a smart folder based on the contents of that field — you need to search through the whole card. Clunky too.

I don’t know how to write Address Book plugins, but I know they exist, and I have an idea for a plugin that would save my life (and probably countless others) and which doesn’t seem very complex to build. If there’s anybody out there listening… here’s a chance to be a hero.

I want a “tag your contacts” plugin for Address Book.app. What would it do? Simple, add a “Tags” field that behaves similarly to the “Notes” field. That would allow me to separate notes and tags — they aren’t quite the same thing, don’t you agree?

In addition to that, the plugin could display a list of all contacts tagged “thisorthat” when you double-clicked the tag. That would be nice.

Does anybody else want this? Does it already exist? Would anybody be willing to build it? (If other people are interested, I’d be willing to suggest we pool some cash to donate to the kind person building this life-saving plugin.)

Netvibes Widget of my Shared Items [en]

If you read this blog “on the blog”, and look at my very cluttered sidebar, you probably noticed there is a feed of my “shared items” from Google Reader hidden in there (grab the feed!). “Sharing” is the reason I switched to Google Reader over a year ago.

I’m sitting in a workshop about UWA widgets at Paris Web, which had me looking at netvibes again. Even though it never clicked for me, I know lots of you use it (I check my stats, yes I do).

So, here we go. One thing leading to another, I created a widget with my shared items in it. It’s more for fun than because it’s really useful, as you netvibes users can create it really easily — but hey, here it is:

Add to Netvibes

Update: how disappointing! I thought it was going to look like this in the blog post:

My Shared Items Netvibes Widget

Not there yet, it seems.

Update 2: something I’ve been wanting to do with netvibes (not sure how feasible it is, actually): create a tab with “my stuff” in it. See, I’m scattered online. And the stuff I “share” is also scattered. If I found it through my feed reader, it’ll appear as a whole post in my shared items. If I was randomly browsing around, it’ll be in my del.icio.us links. If it was a video I watched on YouTube, it’ll end up in my VLog. If I wanted to share a quote, it’ll be in my Tumblr. Creating something to collect all these “things of others that I consider worth passing on” would be really nice. I wonder if a netvibes tab would be a solution — and if people would use it at all.

Diving Into Something New [en]

[fr] Pour se familiariser avec un sujet nouveau, il faut lire, et même si on ne comprend pas tout, continuer à lire. Au bout d'un moment, les choses commencent à tomber en place, et on peut reprendre avec plus de succès les premiers textes que l'on avait compris que partiellement.

I remember very clearly when I understood this: I was working on my coursework about gnosticism. I didn’t know anything about the subject and had a pile of about 10 books to go through.

I started reading, and felt completely lost: I couldn’t really understand much. But by the time I reached the middle of the pile of books, things started to make sense. I went back to the first books, and they were making sense too.

To learn about something new, one method is to dive in, and just read on even if you don’t understand. At some point, it will sink in, come together, and you’ll start to get it.

Something about Agile popped up this morning when I clicked my Google Reader “Next” bookmarklet this morning. This isn’t the first time I hear about Agile, and I have a rough idea what it is, but I thought that I should probably read up a bit on it. So I’m reading this case study, even though not everything makes sense. At some point, it will. I’m just starting.

Note: don’t misunderstand. I’m not heading for a career change into software development. I just want to understand more.

Le placement dans les moteurs de recherche [fr]

[en] A document on how search engins function and how to improve indexing for your site, which I wrote for a client over June/July. If this interests you, you should definitely check out my notes on Matt Cutts' Whitehad SEO tips for bloggers.

Ceci est un document rédigé pour un client en juin/juillet 2007. Un grand merci à Béatrice pour son assistance éditoriale! Si vous voulez l’imprimer et le lire tranquillement, je vous recommande de télécharger le PDF (6 pages). Ce document est distribué sous une licence Creative Commons by-nc-sa.

Introduction

On est souvent tenté de mesurer le succès d’un site internet par son placement dans les moteurs de recherche [1]. En effet, un bon placement dans les moteurs de recherche peut être un indicateur parmi d’autres du succès d’un site. Malheureusement, le fonctionnement des moteurs de recherche en général et du positionnement en particulier est difficile à comprendre et amène souvent à avoir des attentes peu réalistes en la matière, en particulier l’exigence des résultats précis pour certains mots-clés donnés.

Le positionnement dans un moteur de recherche ne peut pas être contrôlé [2]. On peut l’influencer positivement en soignant certains aspects techniques ou rédactionnels du site, mais le facteur principal dans un bon placement demeurera inévitablement la qualité du contenu.

En fait, le placement dans les moteurs de recherche est une conséquence de la popularité d’un site, et non sa cause. (Même si, bien entendu, un bon placement peut amener des visiteurs au site — mais un bon placement seul ne suffit pas.)

1. Comment fonctionne un moteur de recherche ?

1.1. Fonctionnement général

La fonction principale d’un moteur de recherche est de fournir à son utilisateur la liste des pages Internet correspondant aux mots-clés que celui-ci aura spécifiés. Généralement [3], cela revient à fournir une liste de pages contenant ces mots-clés. Cela est en soi une opération relativement simple. Ce qui est très complexe, par contre, c’est le classement de tous ces résultats afin de mettre en tête de liste les plus pertinents. L’algorithme utilisé par Google à cet effet est secret, et comprend une bonne centaine de variables. On saisit donc aisément pourquoi il n’est pas possible de contrôler sa position dans un moteur de recherche. D’ailleurs, si ça l’était, ce positionnement perdrait tout son sens…

Le premier facteur qui va influencer le placement est bien entendu le contenu de la page : les mots-clés y apparaissent-ils? Sont-ils proches les uns des autres, ou bien éloignés ? Apparaissent-ils une seule fois, ou bien plusieurs fois ? Apparaissent-ils dans le titre de la page, dans les divers titres qui organisent le contenu de celle-ci, dans le corps du texte, en gras, dans un lien, dans des citations, en haut de la page, en bas de la page… ?

Un autre facteur qui va avoir beaucoup d’influence sur “l’autorité” que Google accordera à un site Web est le nombre de liens entrants vers ce site. De plus, la provenance de ces liens a une importance : le “pagerank” (autorité) se calcule de façon circulaire. Logiquement, les liens provenant de sites dont l’autorité est déjà reconnue auront plus d’impact que des liens provenant de sites moins cotés (mais un grand nombre de liens provenant de sites peu cotés comptera également…).

Le fait de définir des “mots-clés” [4] dans les différentes pages du site était très important pour le placement dans les moteurs de recherche à une certaine époque (pré-Google). Maintenant, l’importance de ces mots-clés est très limitée, voire même nulle selon certains.

1.2. Le choix des mots clés

Lorsque l’on cherche à mesurer la performance d’un site dans Google, par exemple, on introduit dans le moteur de recherche des mots clés qui semblent pertinents par rapport au contenu du site en question. Mais ces mots-clés sont-ils ceux qu’introduiraient les personnes faisant partie du public-cible du site?

Il est en fait très difficile de deviner quels mots-clés un internaute recherchant une information donnée va introduire dans un moteur de recherche. Parfois, les gens y tapent des questions entières. Parfois juste un mot. Parfois, les mots pour lesquels ils imaginent que le site web dont ils auraient besoin aura été optimisé. Et parfois encore, l’information qu’ils tirent du site et qui a de la valeur pour eux n’est pas celle qu’imaginait l’auteur du site.

Se focaliser sur certains mots-clés n’est donc pas une stratégie très porteuse. Il vaut mieux se concentrer sur le référencement général du site et la qualité de son contenu, et laisser au moteur de recherche le soin de déterminer quels sont les mots-clés les plus pertinents pour lui.

1.3. Langue et géographie

Un moteur de recherche comme Google donne la possibilité de limiter les langues dans lesquelles la recherche est effectuée, ou de circonscrire la recherche à un pays donné. Il faut cependant prendre garde au fait que la détection de la langue ou du pays de provenance d’une page peut facilement être erronée. La langue est détectée automatiquement en analysant le contenu de la page (ce qui crée vite des problèmes lorsqu’une page contient plus d’une langue), et pour ce qui est du pays, il semblerait que la localisation physique du serveur hébergeant le site web soit déterminante.

Notons également qu’une recherche “en français” donne des résultats légèrement différents selon qu’on utilise google.fr ou google.ch.

Il ne faut donc pas trop compter sur ces distinctions qui fluctuent facilement — mais elles ont le mérite de rappeler qu’un site visant un public local est “en compétition”, pour ce qui est de la pertinence des mots-clés, avec tous les autres sites publiés dans la même langue. Les seules véritables frontières sur internet sont linguistiques.

2. Que conclure d’un placement insatisfaisant?

C’est souvent le constat d’un placement peu satisfaisant dans les moteurs de recherche qui amène à se demander ce que l’on peut faire pour l’améliorer. Il est important, tout d’abord, de ne pas perdre de vue l’élément de subjectivité que comporte un tel constat. Le placement n’est pas quelque chose d’absolu: une page va être classée en fonction de sa pertinence par rapport aux mots-clés qui ont été donnés comme critères de recherche. La sélection des mots-clés doit donc se faire très soigneusement s’ils doivent servir à évaluer d’une façon ou d’une autre si le placement est “bon”.

Les causes d’un placement insatisfaisant peuvent être multiples. Pour y remédier, il est important des les identifier correctement. Tout d’abord, il faut distinguer parmi les facteurs agissant sur le placement ceux qui sont “internes”, propres au site placé, et donc sur lesquels on peut agir, de ceux qui sont “externes”, sur lesquels on n’a pas prise.

2.1. Facteurs externes

Ils sont au nombre de deux:

  • les mots-clés choisis
  • les sites “concurrents”

Chaque site est placé dans la liste des résultats pour les mots-clés choisis par rapport aux autres sites ayant un contenu similaire (potentiellement pertinent pour les mots-clés recherchés). Obtenir un “bon placement” dans un tel cas de figure sera donc une toute autre histoire s’il s’agit d’un domaine dans lequel il existe quantité de sites ayant déjà une présence forte, ou si le domaine en question est relativement peu documenté sur internet.

2.2. Facteurs internes

Les facteurs internes influençant le positionnement d’un site sont les suivants:

  • qualité du contenu
  • mise en valeur rédactionnelle du contenu
  • mise en valeur technique du contenu

La qualité du contenu influence de deux manières le placement. Premièrement, d’une façon tout à fait mécanique, comme expliqué plus haut: la fréquence et la place des mots-clés dans le texte de la page est analysé et interprété par le moteur de recherche. Celui-ci, par contre, n’a aucun moyen d’évaluer la “qualité” d’un texte au sens où un être humain pourrait l’entendre. Cette “qualité” est en fait mesurée au nombre de liens entrants établis par d’autres créateurs de site. Ce n’est donc pas directement le moteur de recherche qui est influencé ici, mais les êtres humains qui jugeront le contenu digne ou non d’une mention sur leur site.

La “mise en valeur rédactionnelle” consiste à organiser le texte d’une façon qui tienne compte de la manière dont le moteur de recherche indexera le contenu: que va-t-on regrouper sur une même page? Quelles expressions choisir pour les titres? comment utiliser gras, liens, sous-titres de façon adéquate?

La “mise en valeur technique”, quant à elle, consiste à s’assurer qu’il n’y a pas d’obstacles techniques à la bonne indexation du site et à la création de liens vers les différentes pages qu’il comporte. Par exemple, on évitera les cadres (“frames”), les liens en javascript, le balisage non sémantique, etc.

Lorsque le référencement n’est pas satisfaisant, il convient donc de repérer dans quel domaine les améliorations doivent être faites. Pour ce faire, on regardera dans l’ordre:

  • les aspects techniques
  • les aspects rédactionnels
  • le contenu proprement dit.

En effet, s’il y a des obstacles techniques majeurs à une bonne indexation, il ne sert à rien de s’acharner à améliorer la qualité ou l’intérêt du contenu. Celui-ci est peut-être parfaitement adéquat, mais il n’est simplement pas mis correctement en valeur. Une fois que la qualité technique du site est assurée, on peut s’intéresser à la technique de rédaction, par exemple en améliorant la façon dont les titres sont choisis, ou en optimisant la façon dont le contenu est organisé sur les diverses pages du site.

C’est seulement une fois ces questions techniques réglées (du moins pour ce qui est des grandes lignes) que l’on peut réellement évaluer si la qualité proprement dite du contenu est en cause. Et à ce moment-là, il est important d’inclure dans l’évaluation les facteurs extérieurs comme la place occupée par les autres sites consacrés à des sujets similaires.

3. Que faire pour améliorer le placement général ?

Encore une fois, la chose principale à faire pour avoir un bon placement est d’avoir un contenu de qualité. En effet, les algorithmes des moteurs de recherche visent à mettre en avant les pages qui sont utiles aux gens faisant les recherches — le contenu est donc primordial.

Les créateurs de sites peuvent ensuite aider les moteurs de recherche à indexer correctement leur contenu en prenant garde à certains points:

Aspects techniques :

  • utiliser un balisage HTML propre et sémantique
  • prévoir une architecture de site qui encourage les autres propriétaires de sites à faire des liens vers différentes pages de celui-ci
  • créer suffisamment de liens entre les différentes parties du site pour permettre une navigation facile (particulièrement dans le corps du texte lorsque cela est pertinent)
  • utiliser un schéma d’URL “sympathique” pour les moteurs de recherche
  • éviter les frames (cadres), les images représentant du texte et les liens en javascript.

Aspects rédactionnels :

  • structurer les pages avec titres et sous-titres
  • choisir des titres qui contiennent des mots-clés en adéquation avec le contenu de la page.

On notera qu’il y a deux sortes de “bon placement”: l’autorité que Google confère à une page de façon générale, ou “PageRank” [5], et la position dans laquelle cette page se trouvera pour la recherche de mots-clés précis.

Une page peut avoir un très bon PageRank mais être mal placée pour une recherche selon certains mots-clés. Cela peut être le cas parce que ces mots-clés n’occupent pas une place assez prédominante (au sens de Google) dans la page, voire n’y figurent pas (!). Mais aussi, d’autres sites existent peut-être dont le contenu relatif à ces mots-clés est plus pertinent. Cette pertinence apparaîtra (aux yeux du moteur de recherche) à travers la place qu’occupent ces mots-clés dans le contenu de la page en question et des pages proches, et surtout à travers les liens entrants vers cette page: le texte de ces liens utilise-t-il régulièrement ces mots-clés, ou non?

Par exemple, on trouvera normal qu’en tapant les mots-clés “prévention+sida” le premier résultat apparaissant soit , un site consacré uniquement à la prévention Sida, plutôt que , la page à ce sujet sur ciao.ch, un site qui comporte des informations sur des sujets très variés.

4. Qu’apporte un bon placement ?

Il peut être utile de regarder d’un peu plus près les raisons qui poussent à vouloir un bon placement dans un moteur de recherche. Effectivement, un site bien placé, qui se situe dans les premiers résultats pour les mots-clés que recherchent les gens qui seraient intéressés par le contenu du site, va attirer plus de visiteurs par ce biais.

Gardons cependant à l’esprit que le placement est un moyen d’attirer des visiteurs, et non une fin en soi. Ce n’est d’ailleurs pas le seul moyen d’attirer des visiteurs sur son site: les gens peuvent aussi y arriver parce qu’ils ont cliqué sur un lien se trouvant sur un autre site, parce qu’on leur en a parlé, ou qu’on leur a envoyé l’adresse par e-mail, chat, ou messagerie instantanée.

Ces derniers moyens font intervenir quelque chose qui est de l’ordre du bouche à oreille: une recommandation “de personne à personne”, qui est généralement beaucoup plus efficace qu’une entrée dans un répertoire automatisé (le moteur de recherche), et qui prend de plus en plus d’importance dans l’internet d’aujourd’hui. Un lien sur un site web est une recommandation, et cela d’autant plus si ce site est un site personnel, comme un blog, par exemple.

Bien entendu, les résultats des moteurs de recherche vont refléter la part “internet” de ces recommandations en bouche à oreille. Une adresse web transmise dans une liste de discussion par e-mail va se retrouver indexée via les archives en ligne de celle-ci. Les blogs sont des sites internet, et “comptent” évidemment pour le moteur de recherche — d’autant plus que bon nombre d’entre eux sont en fait très bien “cotés” (PageRank).

Si beaucoup de propriétaires de sites jugent que le contenu d’un site vaut la peine qu’on en parle, le placement de ce site dans les moteurs de recherche va s’en trouver amélioré, mais ce placement est la conséquence de cet intérêt et non sa cause. Tenter d’agir directement sur le placement est donc insuffisant: c’est le contenu du site qui va jouer un rôle prépondérant.

Conclusion

Le placement d’un site dans un moteur de recherche est un indicateur de qualité parmi d’autres. Ce placement ne peut pas être contrôlé, et ne dépend pas uniquement du site concerné — il est toujours relatif au reste du matériel existant sur internet.

Il est bien plus efficace d’agir sur le contenu et la qualité formelle d’un site afin de l’améliorer plutôt que de chercher à obtenir directement un résultat en termes de placement par rapport à certains mots-clés, objectif qui est souvient peu réaliste.

Notes

  1. La plupart des moteurs de recherche fonctionnent sur le modèle de Google. Si ce document parle des moteurs de recherche en général, c’est plus particulièrement de Google et des moteurs de recherche fonctionnant sur des principes similaires dont il s’agit ici.
  2. Les organisations qui garantissent un placement dans les x premiers résultats pour tel ou tel mot-clé utilisent des techniques peu éthiques qui reviennent en somme à tricher avec les algorithmes de classement des moteurs de recherche []. D’un moyen pour mesurer quelque chose (la qualité), le placement devient un but en soi.
  3. Google tient en effet également compte des mots utilisés pour créer des liens vers une page donnée. Le “googlebombing” abuse de ce fait pour imposer une page spécifique en première position lorsqu’on l’on recherche certains mots-clés, en obtenant qu’un grand nombre de sites Web utilisent ceux-ci dans le texte de liens pointant vers cette page. Un exemple célèbre plaçait la biographie officielle de George Bush en première position des résultats lorsque l’on cherchait l’expression “miserable failure”, même si la page ne contenait bien sûr pas cette expression. Voir aussi .
  4. Ces fameux mots-clés, importants pour les moteurs de recherche de la génération précédant Google, sont ceux que l’on place dans la balise HTML .
  5. Le PageRank est une valeur allant de 0 à 10 et qui est basée sur le nombre de liens entrants vers une page, pondérée par la valeur de PageRank de la page sur laquelle se trouve ce lien.

A lire aussi, en anglais: Matt Cutts: Whitehat SEO Tips For Bloggers, les notes que j’ai prises lors de sa conférence à WordCamp (San Francisco).

Google Questions [en]

[fr] Comment Google détermine-t-il (1) le pays d'où provient un site et (2) la langue d'une page? Pourquoi les résultats d'une recherche en français sont-ils différents, selon qu'on utilise google.ch ou google.fr?

So, I’m writing up a document for a client about search engine placement. Not really an SEO thing, more a “good search engine placement results from popularity and success, not the opposite” thing. Like, (gosh, am I being eloquent right now,) setting objectives like “be in the first three results for this or that keyword combination is not very realistic.”

Anyway, I’m stuck in the part about limiting seach to one country or a language (which is a “big thing” if you live outside Anglophonia and ambition to reach the local population). I realise that the way Google manages these different searches is not quite clear to me.

Location

If you go to google.ch you can choose to do a search for “pages from Switzerland” (I’m using my name as a search term example). Or with google.fr, “pages from France” (language set to English both times so you can compare). My assumption (thanks shastry) is that they use server location for that. But is that all? (My server is in the US, so that explains why CTTS does not show up as a “Swiss” site.)

Language

If I select French as the search language, I get different results whether I use google.ch or google.fr. I assume Google uses language detection — but why are the results different?

Thanks for any explanation which can help me see a bit more clearly.

Mystery WordPress/Markdown Problem: Troubleshooting [en]

[fr] Description d'un vilain problème WordPress avec PHP Markdown Extra. Certains billets refusaient de s'afficher et faisaient tout simplement planter la suite du chargement de la page (donc, pages archives incomplètes, billets disparus). J'ai résolu (plus ou moins) le problème en remplçant PHP Markdown Extra par Markdown tout court, mais je n'ai toujours pas compris le fond du problème. Ce billet donne quelques détails sur les symptômes et mes déductions.

If you’re a WordPress person and you feel like a bit of juicy troubleshooting, this one is for you. I’ve narrowed down part of the problem, but have failed to identify clearly the cause of the problem. I’ve found a workaround by replacing a plugin by another similar one, however. I’ve made screenshots so that even once this problem is fixed (hopefully very quickly) you can make sense of this post.

Symptoms:

Some posts on the VibrationsMusic website fail to display their content, or display incompletely. When this happens, the page stops loading altogether, resulting in a truncated page. (So we have vanishing posts and incomplete aborted archive pages where they should appear.) No error messages in source, HTML code just stops.

Narrowing it down:

Removing post content makes the post display OK, so I figured it had something to do with the content. Removing the PHP Markdown Extra plugin removed the problem, to. So it has something to do with a combination of certain things in the content and the PHP Markdown Extra plugin. (Removing other plugins didn’t change a thing, so I deduce from that it isn’t a plugin interaction issue.)

Using the “cut-half-out” technique I tried to narrow down the problem to a certain type of post content. At first, it seemed to be caused by either (a) HTML links in Markdown lists or (b) embedded YouTube players (<object>). However, some posts with either (a) or (b) were displaying correctly. In one faulty post, replacing the embedded YouTube video with another removed the problem.

However, it seems more subtle than that. In some cases, removing the other half of the post also removes the problem. => post length? Not really either. In a quite weird case, one post stops displaying right at the end of the content (Technorati tags and closing divs don’t appear) and if changes are made to the next post (like removing its content) then the first post displays correctly (and the second one too).

This seems (to me) to point to some problem in the query-array-manipulation area (but I don’t know how things work well enough in that department to make a more precise hypothesis).

Workaround:

I replaced the PHP Markdown Extra plugin with the “normal” Markdown plugin, and everything displays fine.

Success: Dragon NaturallySpeaking in Parallels [en]

[fr] Voici le récit de mon installation sans histoire du Dragon dans Parallels, ce qui me permet maintenant de dicter sur mon Mac.

One of the things I wanted to do during my two weeks in England (besides go down to London and have some fun there with friends) was get Dragon NaturallySpeaking working in Parallels, and get seriously started on this bookwriting thing. Said bookwriting thing is happening in French, which means I’m afraid there will not be much in that department for my English readers.

Getting Dragon to work was a breeze. I had already installed Parallels once, but before I managed to install Dragon on it the virtual machine crashed so badly I gave up. My hands were hurting pretty badly at that time, so instead, I concentrated on spending less time online.

This time, I downloaded a fresh version of Parallels, ran the uninstaller first to make sure any traces of the previous installation had disappeared (I had deleted things manually), installed it and did an express install of Windows XP. Maybe I was lucky, but everything went smoothly. Oh, yes, I almost forgot: before installing Parallels, I plugged in my USB microphone and selected it as the default input in OSX audio settings.

The installation of Dragon went smoothly too, much to my surprise. I’m so used to things not going the way I want them to when it comes to computers! I edited the virtual machine to add a bit of memory, restarted it, launched Dragon, and created a user. The microphone passed the test straight away. And the recognition accuracy of Dragon 9 is just incredible!

Using the “coherence mode” in Parallels, I can get rid of the Windows OS cruft which surrounds my Dragon. It makes switching back and forth from dictating in DragonPad and goofing around in my OSX applications really easy. This is what it looks like:

Using Dragon in Parallels (Coherence mode)

I’m just disappointed that I haven’t managed to get the VNC hack to work, as it would allow me to dictate directly into OSX applications. But other than that, I’m really happy and reconnecting with the joys of dictation, which I had sadly forgotten during these last years in OSX land. It’s really much, much more comfortable than typing.

Geeky Frustrations [en]

[fr] Quelques râlages (comme quoi je ne fais pas ça qu'en français) au sujet de certains outils que j'utilise quotidiennement.

Right, so, just so I can get it off my chest, here is a list of little things that bug me with the tools I use daily. If I save them for a “proper write-up” they probably will never be posted, so… here goes.

  • Twitter: let me see a differential list of those I follow and those who follow me, both ways. I need to know who is following me that I’m not following (maybe I missed somebody out) and who I’m following but they’re not (to keep in mind they won’t see stuff I twitter).
  • Twitter: let me tag my friends, or sort them into buddy groups. Then let me activate phone alerts for only certain groups. One-by-one management is just impossible with 100 or so friends.
  • Adium: let me turn off Gmail notifications. I have Google Notifier for that. I hate having to click “OK” on that window all the time.
  • Google Reader: let me drag’n drop feeds from one folder to another.
  • Facebook: let me import more than one RSS feed in my notes.
  • Nokia 6280 and Macbook: please sync with each other each time I ask you to, not once out of three.
  • Nokia 6280: gimme a “mark all as read” option for my text messages, please!
  • Nokia 6280: I’d say something about the really crappy camera, but there isn’t much you can do about it now, can you.
  • iPod: let me loop through all episodes of a podcast instead of having to go to the next episode manually.
  • iTunes: let me mix playlists as a source for Party Shuffle (30% My Favorites, 30% Not Listened in Last week, 40% Artist I’m Obsessing Over These Days… for example)
  • Google Reader and del.icio.us: find a way to allow me to automatically post Shared Items to del.icio.us too.
  • Flickr: let me link to “My Favorite photos tagged …” so I can show my readers what I’ve found.
  • Added 18.02.07 0:10 Google Ajax-y Homepage: let me Share Google Reader items, not just star them.

Certainly more, but these were those which were bugging me badly just now. Well, they’re off my chest, now I can go back to fretting about all the stuff I need to get rid of in my flat and which is still lying around because I haven’t quite figured out the optimal way to dispose of it.

Please Make Holes in My Buckets! [en]

[fr] Tour d'horizon de mes différents "profils" à droite et a gauche dans le paysage des outils sociaux (social tools). Il manque de la communication entre ces différents services, et mon identité en ligne s'en trouve fragmentée et lourde à gérer. Ajouter des contacts en se basant sur mon carnet d'adresses Gmail est un bon début, mais on peut aller plus loin. Importer ses livres préférés ou des éléments de CV d'un profil à l'autre, par exemple.

Facebook is Stowe‘s fault. Twitter was because of Euan. Anne Dominique is guilty of getting me on Xing/OpenBC. I can’t remember precisely for Flickr or LinkedIn or — OMG! — orkut, but it was certainly somebody from #joiito. The culprits for Last.fm, DailyMotion and YouTube have disappeared into the limbo of lost memories. Kevin encouraged me to sign up for a good dozen of blogging platforms, open a MySpace account, and he’s probably to blame for me being on Upcoming. As for wordpress.com, I’ll blame Matt because he’s behind all that.

Granted, I’m probably the only one responsible for having gotten into blogging in the first place.

Let’s get back on track. My aim here is not primarily to point an accusing finger to all my devious friends who introduced me to these fun, addictive, time-consuming tools (though it’s interesting to note how one forgets those things, in passing). It’s more a sort of round-up of a bunch of my “online selves”. I feel a little scattered, my friends. Here are all these buckets in which I place stuff, but there aren’t enough holes in them.

Feeds are good. Feeds allow me to have Twitter, del.icio.us, Flickr, and even Last.fm stuff in my blog sidebar. It also allows me to connect my blogs to one another, and into Facebook. Here, though, we’re talking “content” much more than “self”.

One example I’ve already certainly talked about (but no courage to dig it out, my blog is starting to be a huge thing in which I can’t find stuff I know it contains) is contacts or buddies — the “Mine” in Stowe’s analysis of social applications. I have buddy lists on IM and Skype, contacts on Flickr and just about every service I mentioned in this post. Of course, I don’t want to necessarily have the same contacts everywhere. I might love your photos on Flickr and add you as a contact, but not see any interest in adding you to my business network on LinkedIn. Some people, though — my friends — I’ll want to have more or less everywhere.

So, here’s a hole in the buckets that I really like: I’ve seen this in many services, but the first time I saw it was on Myspace. “Let us peek in your GMail contacts, and we’ll tell you who already has an account — and let you invite the others.” When I saw that, it scared me (“OMG! Myspace sticking its nose in my e-mail!”) but I also found it really exciting. Now, it would be even better if I could say “import friends and family from Flickr” or “let me choose amongst my IM buddies”, but it’s a good start. Yes, there’s a danger: no, I don’t want to spam invitations to your service to the 450 unknown adresses you found in my contacts, thankyouverymuch. Plaxo is a way to do this (I’ve seen it criticised but I can’t precisely remember why). Facebook does it, which means that within 2 minutes you can already have friends in the network. Twitter doesn’t, which means you have to painstakingly go through your friends of friends lists to get started. I think coComment and any “friend-powered” service should allow us to import contacts like that by now. And yes, sure, privacy issues.

But what about all my profile information? I don’t want to have to dig out my favourite movies each time I sign up to a new service. Or my favourite books. Or the schools I went to. I mean, some things are reasonably stable. Why couldn’t I have all that in a central repository, once and for all, and just have all these neat social tools import the information from there? Earlier today, David was telling me over IM that he’d like to have a central service to bring all our Facebook, LinkedIn, OpenBC/Xing, and MySpace stuff together. Or a way to publish his CV/résumé online and allow Facebook to access it to grab data from it. Good ideas, in my opinion.

I’ll mention OpenID here, but just in passing, because although in my dreams in used to hold the promise of this centralised repository of “all things me”, I don’t think that it’s what it has been designed for (if I get it correctly, it is identity verification and doesn’t have much to do with the contents of this identity). Microformats could on the other hand certainly come in handy here.

So, please, make more holes in my buckets. Importing Gmail contacts in sticking feeds here and there is nice, but not sufficient. For the moment, Facebook seems promising. But let me use Twitter for my statuses, for example, or at least include the feed somewhere (I can only include one feed, so I’ve included my suprglu one, but it has a huge lag and is not very satisfying). Let me put photographs in my albums directly from Flickr. Talk with the profiles I made with other similar services. Grab my school and work info from LinkedIn and OpenBC. Then make all this information you have about me available to republish how I want it (feeds, feeds, feeds! widgets! buttons! badges!) where I want it.

Also, more granularity. Facebook has a good helping of it: I can choose which type of information I want to see from my contacts. I can restrict certain contacts from seeing certain parts of my profile. I’d like fine control on who can see what, also by sorting my people into “buddy groups”. “Friends” and “Family” as on Flickr is just not enough. And maybe Facebook could come and present me with Stowe-groupings of my contacts, based on the interactions I have with them.

Share your wild ideas here if you have any.