my blog

Thursday 15 June 2006

Women's Summer Outreach Program

Women's Summer Outreach Program

Thanks to everyone who helped with this program!

We want to see the poster in lots of universities, so everyone can help out and spread the word!

Thursday 8 June 2006

What is GNOME?

Havoc wrote:

Thinking about a category like "social networking" as the goal just doesn't work for me because it predefines what we can do. (I'm also not a fan of goals like "a desktop" or "a web browser" or "a window manager," by the way, though in the past I obviously did think that way. If I were dictator of GNOME today the first thing I'd do is change the project definition on the front page of gnome.org to something broader and more open-ended.)

What I'd like to encourage is either thinking concretely about the details of user needs or the user experience, or thinking broadly about all the stuff the project could do in the big picture, and keep some allergy to thinking in terms of existing technology names or trends (even when they apply, to me they're just a bad place to have my head).

I believe there have been discussions about clarifying the definition of GNOME for a really long time, and this is an issue we need to tackle.

Here's how I would define GNOME (I expect some people to disagree, of course ;-)): GNOME is a community working towards one goal: making informatics useful to the user.

I don't like the computer term and don't want to use it (since we should not forget about mobile and embedded devices, and also consider other devices that might appear). Sure, informatics is probably not widely used in English and might not sound great (yet), but it's really the best term for this in my opinion. It's up to us to make it more widely used (similarly, we should make ISD widely known, but that's for another post).

This definition does not talk about freedom, but I don't think it's an issue. Freedom is one of our core values (if not the most important one), and we will continue to explain why GNOME being free/libre is essential. However, if it was just a matter of freedom, we could stop working on GNOME: there are already other free/libre projects playing in the same field as GNOME. If we continue to work on GNOME, it's because we think we are trying to achieve the right thing and because we love our community.

I guess a lot of people would have defined GNOME as a desktop. GNOME is not a desktop. We're already providing some software that goes beyond the desktop: it's our platform, which other people are using to build something different. Also, our current definition of the desktop is aging and limiting us: if you ask me, Rhythmbox is part of the desktop; but it's not part of the GNOME Desktop. We're blocked with the "should it be included in the desktop set?" question, which is limiting our vision. A lot of software out there is not in our desktop set, but integrates well with the GNOME Desktop. I believe we should continue to ship our software, but we should also be more open-minded and use a process like the GNOME certification to bless software (including ours). We should be able to tell people without any hesitation: you don't like nautilus, try the great Thunar! Is the GNOME panel (or, to be more correct, some of the applets) not optimal for the users? Why not look in another direction?

What we're trying to do is to let the user use his computer, his internet tablet, his phone, etc. This is our goal. This is a broad goal, but it's okay because it frees us. Technical details are important (bonobo? dbus?), but they are only this: details.

This goal could be a definition of the GNOME project, but I wouldn't define GNOME in the same way. GNOME is a community. Community of contributors and of users. GNOME can't live without those people. They love GNOME and they make GNOME worthwhile. GNOME is a community working towards one goal: making informatics useful to the user.

Tuesday 6 June 2006

Le CPE, quelques mois après...

Non, je ne vais pas parler de pourquoi le CPE est bien ou pas bien. Je préfère juste rappeler quelques petits points intéressants :

  • un petit rappel de la chronologie (merci Wikipédia) ;
  • Nicolas Sarkozy s'est assez rapidement désolidarisé du gouvernement. Ainsi, dès le 17 mars, il ne fait que signaler que les forces de l'ordre font du bon travail, et ne cherche pas à soutenir le premier ministre :

Refusant de s'exprimer sur les moyens de sortir de la crise du CPE, il a précisé que son travail, "c'était que les manifestants puissent manifester en toute sécurité et que les voyous soient arrêtés".

  • Marseille est une ville fantastique :
    • le 7 mars : entre 10 et 12 000 personnes selon la police, 100 000 personnes selon les organisateurs
    • le 16 mars : plus de 15 000 personnes selon les organisateurs, 7 000 d'après la police
    • le 18 mars : 7 000 manifestants, selon la police, 130 000, selon les organisateurs
    • le 23 mars : 10 000 personnes selon la préfecture, 50 000 selon les organisateurs
    • le 28 mars : 250 000 personnes, selon les organisateurs, 28 000 selon la préfecture
    • le 4 avril : 250 000 personnes selon les organisateurs. Pas de chiffre de la police trouvé.
  • pour une ville de la taille de Grenoble, 26 000 personnes selon la police et 60 000 selon les organisateurs est assez impressionnant ;
  • un symbole est toujours très efficace lorsqu'il s'agit de faire passer un message. Cette manifestante déguisée en Marianne l'a bien compris et cela a fonctionné à merveille : tout le monde a parlé d'elle.

Des détails pas forcément importants, mais un peu significatifs quand même...

Petite parenthèse : c'est dommage que si peu de sites d'informations laissent les articles accessibles en permanence. J'aurais pu utiliser Wikinews, certes...

Monday 5 June 2006

Google Video est mon ami

Je suis toujours en retard quand il s'agit de découvrir les nouveaux sites à la mode ou les nouveaux services... J'ai donc joué seulement récemment avec Google Video. Un des intérêts de Google Video par rapport à YouTube (par exemple) est qu'on peut télécharger la plupart des vidéos pour les regarder, sans avoir à souffrir avec Flash. Très pratique, lorsqu'on est allergique comme moi à Flash ;-)

Et donc, dans Google Video, on peut trouver :

  • MacGyver qui fait ses courses, dans une publicité pour Mastercard (merci Yan !) ;
  • le clip de Take on me de a-ha que m'a fait découvrir mon frère récemment (ah, que de souvenirs, avec le 45-tours de cette chanson !) ;
  • les bandes-annonces des films, comme An Inconvenient Truth qu'il faudra aller voir à sa sortie ;
  • nos amis de Lordi, grand vainqueurs de l'Eurovision 2006 et une des raisons qui me fait aimer la Finlande aujourd'hui (présenter des monstres pour un concours un peu coincé comme l'Eurovision, il fallait quand même oser !) :-) Alors en vrac, il y a la finale, la demi-finale et le clip.

C'est tout de même triste de ne pas avoir assez de temps pour regarder toutes les vidéos qui semblent intéressantes !

Sunday 4 June 2006

Mangez du spam avec vos commentaires

Depuis que je me suis attaqué au problème du spam sur mes rétroliens, je n'ai plus aucun spam de rétrolien qui arrive à passer sur ce journal. Mais des spams de commentaire commençaient à être pénibles. J'ai donc ajouté deux petites modifications violentes, sans trop réfléchir :

  • la première avait été trouvée sur ce billet et l'idée est assez simple. J'ai légèrement divergé, en modifiant le contenu du commentaire HTML et en ne modifiant pas le code de DotClear (voir ci-dessous).
  • la seconde modifiction est un captcha tout bête. Je n'ai même pas cherché à regarder s'il y avait un greffon qui implémentait cette fonctionnalité (ce qui est le cas).

À noter qu'on peut créer un fichier postcon.php dans le thème utilisé pour exécuter du code avant que le commentaire soit accepté par DotClear (ou traité par spamplemousse). La mini-astuce consiste à donner une valeur à la variable $_POST['preview'] lorsque le commentaire ne passe pas les épreuves (le captcha et le commentaire HTML). Cela permet de bloquer le commentaire temporairement (comme s'il s'agissait d'une prévisualisation) et évite d'avoir à modifier le code de DotClear. Concrètement, mon postcon.php contient :

if ($mode == 'post' && $post_id) {
	$news = $blog->getPostByID($post_id);
	if (!$news->isEmpty() && $news->openComment() && !empty($_POST['redir']) && empty($_POST['preview'])) {
		if ($_POST['c_anti'] != "antipasti") {
			$form_err = __('Please fill the <q>antipasti</q> entry.');
			$_POST['preview'] = "preview";
		}
		if (isset ($_POST['c_contre'])) {
			$form_err = __('The HTML parser of your browser is broken.');
			$_POST['preview'] = "preview";
		}
	}
	unset($news);
}

Et après cinq minutes pour modifier ce qu'il fallait, j'ai pu profiter d'un calme relatif. Je précise relatif car je dois toujours penser à modérer ma file spamplemousse de temps en temps...

Saturday 3 June 2006

Do you speak english?

Depuis un certain temps, certaines pages de mon site sont disponibles en anglais (bon, il faut que je traduise celles qui ne le sont pas quand j'aurais deux minutes). Il y avait tout de même deux points qui m'embêtaient.

Le premier est de permettre l'accès aux deux langues par un petit lien. Mais comment structure le site ? Est-ce mieux d'avoir http://www.vuntz.net/en/page/, http://www.vuntz.net/page/en/, http://www.vuntz.net/page/index.en.php, http://www.vuntz.net/page/index.php.en ? Le choix est important car il est préférable de toujours garder les mêmes adresses. J'aurais tendance à pencher vers http://www.vuntz.net/en/page/ mais cela ne colle pas trop avec la structure des fichiers. Et je traîne donc des pieds...

Le second point était que toutes les pages de mon journal étaient en français car la version actuelle de DotClear ne permet pas d'adapter la langue de la page à la personne qui la regarde. Après avoir eu droit à une ou deux petites remarques (but what does 'Merci d'écrire dans un Français correct et lisible' mean?), je me suis attelé à la tâche. Comme tout le monde devrait le savoir, la négociation de la langue utilisée a lieu par l'intermédiaire de HTTP_ACCEPT_LANGUAGE. Avec une fonction toute simple en PHP, on peut récupérer la valeur, et en fonction de celle-ci utiliser un fichier au lieu d'un autre.

Concrètement, mon fichier template.php contient :

<?php
require_once ("i18n.php");
$zen_lang = get_language ();
if ($zen_lang == "french") {
	include ("template.fr.php");
} else {
	include ("template.en.php");
}
?>

Il suffit de faire de même avec tous les autres fichiers. La fonction get_language() étant définie comme ceci :

// Taken from: http://www-128.ibm.com/developerworks/web/library/wa-apac.html

function get_language()
{
  global $HTTP_ACCEPT_LANGUAGE;
  $language_pages = array(
                      "en"=>"english",
                      "fr"=>"french"
                    );
  $language_default = "english";
  $language_nofound = "english";
  // get preferred languages in the "Accept-Language" header
  if($HTTP_ACCEPT_LANGUAGE == "")
  {
    // no preference set
    return $language_default;
  }
  // form an array of preferred languages
  $accept_language = str_replace(" ", "", $HTTP_ACCEPT_LANGUAGE);
  $languages = explode(",", $accept_language);
  // check for a recognised language
  for($i = 0; $i < sizeof($languages); $i++)
  {
    $pref = explode(";", $languages[$i]);
    if($language_pages[$pref[0]] != "")
    {
      // found a preferred language
      return $language_pages[$pref[0]];
    }
  }
  return $language_nofound;
}

Et voilà, le tour est joué. Il reste quelques petits problèmes (les dates sont en français, les greffons affichent aussi des chaînes en français, etc.), mais rien de grave.

Thursday 1 June 2006

Hero of the day #2

I'm pretty sure people don't know all the hard work Elijah is doing.

He's always here for the GNOME releases: he's creating the modulesets, he's smoketesting the releases and he does all the hard work. But he always tries to avoid sending the announce for a release. I'm glad that he did send the 2.14.2 announce.

And, well, he wouldn't be so unique without his bugzilla skills. 26 points. Isn't this impressive?

Elijah is a rocking release manager! Buy him a drink at GUADEC!

Hero of the day

I proposed two sessions for GUADEC, but my schedule makes it hard for me to be sure to be available for them.

Enter Quim.

He managed to find volunteers for both sessions while I wasn't able to do so. Sometimes, I'm wondering if he's human.

by Vincent