Seesmic Tips [en]

[fr] Quelques tuyaux à partager après quelques jours sur Seesmic. (Traduction intégrale, pour une fois.)

  • Allez directement sur pour éviter d'avoir à vous re-loguer à chaque fois.
  • N'essayez pas de tout suivre. Comme dans la vie, on ne peut pas tout suivre. Autant l'accepter tout de suite, sous peine de sombrer dans la folie.
  • Pour le moment, il n'y a aucun moyen simple de voir à quelle vidéo répond une autre vidéo, ou bien où sont les réponses à une vidéo donnée -- sauf en faisant manuellement le tour de la timeline publique à la recherche de vidéos du même nom. Mais ils bossent dessus.
  • La qualité vidéo est merdique, mais n'y prenez pas garde. C'est une Bonne Chose, en fait. Ça nous libère des soucis de qualité technique pour nous encourager à nous concentrer sur le contenu.
  • Pour éviter que la fin de vos vidéos soit coupée, attendez sagement que la bare de progression grise dans l'écran de prévisualisation ait atteint le bout de la barre (illustration). Parfois, il manque quelques secondes à la vidéo quand vous la prévisualisez, mais dans mon expérience, la vidéo finale est complète (pour autant que vous ayez attendu!).
  • N'annoncez pas toutes vos vidéos sur Twitter. Soyez sélectifs. Ou ouvrez un nouveau compte rien que pour ça.
  • Quand vous cliquez sur "follow xyz" à droite de la vidéo, ça donne l'impression qu'il ne se passe rien, mais en fait, la personne est effectivement rajoutée à vos amis.
  • Essayez de regarder la caméra, et pas votre image sur l'écran (plus facile à dire qu'à faire!)
  • La webcam reste active après que vous ayez fini l'enregistrement. C'est un bug Flash, pas de la faute à Seesmic (donc vous en faites pas, ça tourne pas!) Si ça vous dérange ou que vous avez besoin d'économiser vos batteries, rechargez simplement la page.
  • La timeline est parfois capricieuse, ou certaines entrées n'y apparaissent pas. Dans le doute, rechargez la page, ou visitez les pages individuelles des gens pour être sûr.
  • Si vous en avez marre de devoir subir les annonces de vidéos dans des langues étrangères qui vous échappent, cliquez sur la petite terre à côté de "Post a video" pour les filtrer.
  • Voilà, je crois que c'est tout!

A few tips after [a few days using Seesmic](

– Head for []( directly if you don’t want to be asked to log in each time.
– Don’t try to listen to all the videos. Just like in life, you can’t follow everything. Accept it now or it’ll drive you crazy.
– There is no way for the moment to easily find which video another video is replying to, or where the replies to a given video are — short of going through the public timeline and clicking on anything with a similar name. They’re working on it, though.
– Don’t worry about the fact the video quality is bad. It’s a Good Thing. Forces you to concentrate on content rather than technical quality (a daunting prospect, when it comes to video).
– Prevent Seesmic from chopping off the end of your video by making sure you wait for the [grey progress bar]( “Image.”) in the preview screen (after recording) reach the end. The preview may be cut before the end, but in my experience, the final video isn’t.
– Don’t Twitter all your videos. Be selective or set up a separate Twitter account.
– Clicking on the “follow username” link on the right actually *does* make you follow that person, even though it seems nothing is happening.
– Try to look at the camera, and not yourself on the screen (easier said than done).
– Your webcam will remain active after recording a video. It’s a Flash bug, not Seesmic’s fault (don’t worry about your privacy, it’s not recording). If you need to save power or if it bothers you, just reload the page.
– The timeline sometimes gets screwed up, or some posts don’t appear in it. Reload, or visit individual user pages.
– If you’re sick of having your timeline “polluted” by [foreign languages]( you don’t understand, click on the little earth icon (next to “Post a video”) and filter them out.

There, I think that’s it!

Similar Posts:

Invalid argument supplied for foreach() in wp-capabilities.php: Case Cracked! [en]

[fr] Le problème avec wp-capabilities.php qui fait qu'on peut se retrouver "exfermé" (enfermé dehors) de son blog WordPress (typiquement en cas de changement de serveur) semble avoir sa source dans le contenu du champ wp_user_roles dans la table wp_options. En particulier, pour la version française, "Abonné" est un rôle d'utilisateur, et en cas de problèmes d'encodage MySQL, le caractère accentué sera corrompu, causant ainsi l'erreur.

Il suffit de remplacer le caractère fautif dans PhpMyAdmin, et on retrouve l'accès à son blog. Bon, reste ensuite à régler les questions d'encodage... mais c'est déjà ça!

Finally. At last. Endlich. Enfin.

Once more, while trying to transfer a WordPress installation from one server to another, I found myself facing the dreaded problem which locks me out of my WordPress install with a rather cryptic message:

Warning: Invalid argument supplied for foreach() in /home/user/wp/wp-includes/capabilities.php on line 31

(Your lineage may vary.)

What happens is that WordPress cannot read user roles, and therefore, even though your password is accepted, you get a message telling you that you’re not welcome in the wp-admin section:

Vous n’avez pas les droits suffisants pour accéder à cette page.

Or, in English:

You do not have sufficient permissions to access this page.

A quick search on the WordPress forums told me that I was [not alone in my fight with wp-capabilities.php](, but that many problems had not been resolved, and more importantly, that suggested solutions often did not work for everyone.

I’ve bumped into this problem a couple of times before, and I knew that it was linked to encoding problems in the database. (I’ve had my share of encoding problems: [once](, [twice](, [thrice]( — “once” being on of the most-visited posts on this blog, by the way, proof if needed that [I’m not alone with mysql encoding issues]( either.)

I’ll leave the detailed resolution of how to avoid/cure the MySQL problems later (adding
mysql_query("SET NAMES 'utf8'");
to wp-db.php as detailed in [this thread](, and as [zedrdave]( had already previously told me to do — should have listened! — should prevent them). So anyway, adding that line to my *working* WordPress install showed me that the problem was not so much in the database dumping process than in the way WordPress itself interacted with the database, because the dreaded wp-capabilities.php problem suddenly appeared on the original blog.

Now, this is where I got lucky. Browsing quickly through the first dozen or so of [forum threads about wp-capability.php problems](, [this response]( caught my eye. It indicated that the source of the problem was the content of the wp_user_roles field (your prefix may vary). In this case, it had been split on more than one line.

I headed for the database, looked at the field, and didn’t see anything abnormal about it at first. All on one line, no weird characters… just before giving up, I moved the horizontal scrollbar to the end of the line, and there — **Eurêka!** I saw it.


“Contributor”, in French, is “abonné”, with an accent. Accent which got horribly mangled by the MySQL problems which I’ll strive to resolve shorty. Mangled character which caused the foreach() loop to break in wp-capabilities.php, which caused the capabilities to not be loaded, which caused me to be locked out of my blog.

So, in summary: if you’re locked out of your blog and get a warning/error about wp-capabilities and some invalid foreach() loop thingy, head for PhpMyAdmin, and look carefully through the wp_user_roles field in the wp_options table. If it’s split over two or more lines, or contains funky characters, you have probably found the source of your problem.

Good luck!

Similar Posts:

Tags and Categories are not the Same! [en]

[fr] Les tags et les catégories, ce n'est pas la même chose. En bref, les catégories forment une structure hiérarchique, prédéfinie, qui régit l'architecture de notre contenu et aide autrui à s'y retrouver. Les tags sont spontanés, ad hoc, de granularité variable, tournés vers le partage et la recherche d'information.

Update, Sept. 2007: when I saw Matt in San Francisco this winter, he told me he had finally “seen the light” (his words!) about tags and categories. Six months later, it’s a reality for WordPress users. Thanks for listening.

I got a bit heated up last night between [Matt’s comment that tags and categories function the same]( and a discussion I was having with [Kevin]( on IM at the same time, about the fact that [Technorati parses categories as tags](

I went back to read two of my old posts: [Technorati Tagified]( and [Plugin Idea: Weighted Tags by Category]( which I wrote about a year ago. In both, it’s very clear that as a user, I don’t percieve tags to be the same thing as categories. Tags were something like “public keywords”. Is anybody here going to say that keywords and categories are the same thing? (There is a difference between keywords and tags, but this isn’t the topic here; keywords and tags are IMHO much closer in nature than tags and categories).

Here are, in my opinion, the main differences between tags and categories, from the “tagger” point of view.

– categories exist before the item I’m categorizing, whereas tags are created in reaction to the item, often in an ad hoc manner: I need to fit the item in a category, but I adapt tags to the item;
– categories should be few, tags many;
– categories are expected to have a pretty constant granularity, whereas tags can be very general like “[switzerland](” or very particular like “[bloggyfriday](”;
– categories are planned, tags are spontanous, they have a brainstorm-like nature, as [Kevin explains very well]( You look at the picture and type in the few words it makes you think of, move on to the next, and you’re done.
– relations between categories are tree-like, but those between tags are network-like;
– categories are something you choose, tags are generally something you gush out;
– categories help me classify what I’m talking about, and tags help me share or spread it;
– …

There’s nothing wrong with Technorati treating categories as tags. I’d say categories are a kind of tag. They are special tags you plan in advance to delimit zones of content, and that you display them on your blog to help your readers find their way through what you say or separate areas of interest (ie, my Grandma will be interested by my [Life and Ramblings]( category and subscribe to that if she has an RSS reader, but she knows she doesn’t care about anything in the [Geek]( category. (By the way, CTTS is not a good example of this, the categories are a real mess.)

So, let’s say categories are tags. I can agree with that. But tags are not categories! Tags help people going through a “search” process. Click on a tag to see related posts/photos. See things outside the world of this particular weblog which have the same label attached. Provide a handy label to [collect writings, photos, and stuff from a wide variety of people]( “The LIFT06 tag.”) without requiring them to change the architecture of their blog content (their categories). If you want to, yeah, you can drop categories and use only tags. It works on []( But have you noticed how most Flickr users have [](sets) in addition to tagging their photos? Sets aren’t categories, but they can be close. They are a way of presenting and organizing things for human beings rather than machines, search engines, database queries.

To get back to [my complaint that does not provide real tags](, it’s mainly a question of user interface. I don’t care if from a software point of view, tags and categories are the same thing for WordPress. As a user, I need a field in which I can let my fingers gush out keyword-tags once I’ve finished writing my post. I also need someplace to define and structure category-tags. I need to be able to define how to display these two kids of tags (if you want to call them both that) on my blog, because they are ways of classifying or labeling information which I live very differently.

Am I a tag weirdo? Do you also perceive a difference between tags and categories? How would you express or define it? If categories and tags are the same, the new WP2.0 interface for categories should make [the Bunny Tags Plugin]( obsolete — does it?

Similar Posts:

Scripts for a WordPress Weblog Farm [en]

A first step to WordPress-farming: a shell script and a PHP script which allow you to easily install a whole lot of WordPress weblogs in only a few minutes (I installed over 30 in less than 5 minutes). Scripts require adapting to your environment, of course.

Update 03.11.06: Batiste made me realise I should point the many people landing here in the search of multi-user WordPress to WordPress MU. All that I describe in this post is very pretty, but nowadays completely obsolete.

Here is the best solution I’ve managed to come up with in half a day to finally install over 30 WordPress weblogs in under 5 minutes (once the preparation work was done).

A shell script copies the image of a WordPress install to multiple directories and installs them. A PHP script then changes a certain number of options and settings in each weblog. It can be used later to run as a “patch” on all installed weblog if a setting needs modifying globally.

Here are the details of what I did.

I first downloaded and unzipped WordPress into a directory.

tar -xzvf latest.tar.gz
mv wordpress wp-farm-image

I cleaned up the install (removing wp-comments-popup.php and the import*.php files, for example), added a language directory (as I’m wp-farming in French) and modified index.php to my liking; in particular, I edited the import statement for the stylesheet so that it looked like this:

@import url( );

The styles directory is a directory in which I place a bunch of WordPress styles. I don’t need the style switcher capability, but I do need to styles. Later, users will be able to change styles simply by editing that line in their index.php (or I can do it for them).

Another very important thing I did was rename wp-config-sample.php to config-sample and fill in the database and language information. I replaced wp_ by xxx_ so that I had $table_prefix = 'xxx_';.

To make it easier to install plugins for everyone, correct the language files, and edit whatever may be in wp-images, I moved these three directories out of the image install and replaced them with symbolic links, taking inspiration from Shelley’s method for installing multiple WordPress weblogs.

mv image/wp-content common
mv image/wp-images common
mv image/wp-includes/languages common
ln -s common/wp-content image/wp-content
ln -s common/wp-images image/wp-images
ln -s common/languages image/wp-includes/languages

I also added an .htaccess file (after some painful tweaking on a test install).

Once my image was ready, I compiled a list of all the users I had to open weblogs for (one username per line) in a file named names.txt, which I placed in the root directory all the weblog subfolders were going to go in.

I then ran this shell script (many thanks to all those of you who helped me with it — you saved my life):

for x in `cat names.txt`
cp -rv /home/edublogs/wp-farm/image/ $x
cat $x/wp-config.php | sed "s/xxx/${x}/" > config.tmp
mv config.tmp $x/wp-config.php

This assumes that my WordPress install image was located in /home/edublogs/wp-farm/image/ and that the weblog addresses were of the form

This script copies the image to a directory named after the user, edits wp-config to set the table prefix to the username, and then successively wgets the install URLs to save me from loading them all in my browser.

After this step, I had a bunch of installed but badly configured weblogs (amongst other things, as I short-circuited the form before the third install step, they all think their siteurl is

Entered the PHP patch which tweaks settings directly in the database. I spent some time with a test install and PHPMyAdmin to figure out which fields I wanted to change and which values I wanted to give them, but overall it wasn’t too complicated to do. You’ll certainly need to heavily edit this file before using it if you try and duplicate what I did, but the basic structure and queries should remain the same.

I edited the user list at the top of the file, loaded it in my browser, and within less than a few seconds all my weblogs were correctly configured. I’ll use modified versions of this script later on when I need to change settings for all the weblogs in one go (for example, if I want to quickly install a plugin for everyone).

In summary:

  1. compile list of users
  2. prepare image install
  3. run shell script
  4. run PHP script

If you try to do this, I suggest you start by putting only two users in your user list, and checking thoroughly that everything installs and works correctly before doing it for 30 users. I had to tweak the PHP script quite a bit until I had all my settings correctly configured.

Hope this can be useful to some!

Update 29.09.2005: WARNING! Hacking WordPress installs to build a farm like this one is neat, but it gets much less neat when your weblog farm is spammed with animal porn comments. You then realise (oh, horror!) that none of the anti-spam plugins work on your beautiful construction, so you weed them out by hand as you can, armed with many a MySQL query. And then the journalist steps in — because, frankly, “sex with dogs” on a school website is just too good to be true. And then you can spend half a day writing an angry reaction to the shitty badly-researched article.

My apologies for the bad language. Think of how you’re going to deal with spam beforehand when you’re setting up a school blog project.

Similar Posts: