emacs et le copier-coller

Je suis un fervent utilisateur d’emacs : passée la phase d’apprentissage de ses raccourcis relativement imbitables, il s’avère être un outil extrêmement puissant. Bref, je ne peux plus m’en passer.

Et à propos de raccourcis justement, il en est un que je ne retiens jamais : copier une région en vue de la coller. Alors je fais quasiment à chaque fois un C-k (couper) suivi d’un C-y (coller) et j’ai alors ma région en mémoire. Mais il arrive parfois que cette technique ne soit pas pratique, notamment lorsqu’il s’agit d’une grande région. Dans ce cas on peut toujours appeler explicitement la fonction copier, avec M-x copy-region-as-kill (c’est dans ces moments que l’on apprécie la compétion !).

Et là, emacs de rappeler qu’il existe un raccourci : « You can run the command `copy-region-as-kill` with <f-16> » . Ah oui, merci ! Bon il faudra tout de même que je lui explique que je n’ai pas toujours un clavier Sun… :-/

Jeu vidéo de calcul mental

Nintendo se distingue depuis quelques temps en sortant des consoles et des jeux reposant sur des concepts quelque peu nouveaux, dans l’univers très établi du jeu vidéo. Son jeu éducatif, « Programme d’entraînement cérébral du Dr Kawashima » fait partie de cette nouvelle vague de jeux. Très circonspect à priori, j’ai eu par hasard l’occasion de voir un ami jouer à ce fameux jeu, et je suis resté stupéfait.

Une bonne part des exercices proposés tient du calcul mental, comme par exemple calculer aussi vite que possible des sommes, différences, produits et quotients. Et la vitesse à laquelle il donnait les réponses était très nettement supérieure à celle à dont on fait typiquement preuve devant des questions de cet ordre. Après quelques minutes de test, alors que mon niveau est pourtant relativement catastrophique, je commençais déjà à anticiper les opérations, comme s’il s’agissait d’un Tetris.

Finalement, le calcul mental n’est pas différent de Tetris, Quake 3, ou DDR : il suffit de s’entraîner pour atteindre rapidement un niveau impressionnant. Oh bien sûr, c’est défoncer une porte grande ouverte que de dire cela, mais d’avoir constaté à quel point cela peut aller me laisse songeur. Il faudrait que j’y joue plus souvent. :-)

N’ayant cependant pas l’intention de faire l’acquisition d’une DS, je me suis amusé à écrire rapidement ce petit script pour essayer. À tester dans votre shell. ;-)

#!/bin/sh
max=20
operators=("+" "-" "*" "/" "%")
range=`expr 2 * $max + 1`
passed=0
total=0
while true; do
  a=`expr "$RANDOM" % $range - $max`
  b=`expr "$RANDOM" % $range - $max`
  operator=${operators[`expr $RANDOM % 5`]}
  if ( test "$operator" == "/" || test "$operator" == "%" ); then
    while test "$b" -eq 0; do
      b=`expr "$RANDOM" % $range - $max`
    done
  fi
  echo -n "$a $operator $b = "
  read input
  result=`expr "$a" "$operator" "$b"`
  total=`expr $total + 1`
  if test "$input" -eq "$result"; then
    passed=`expr $passed + 1`
    echo "OK ($passed/$total)"
  else
    echo "KO -> $result ($passed/$total)"
  fi
  echo
done

A venir

La fonctionnalité <code> n’aura mis que peu de temps avant de décevoir le nouvel utilisateur de WordPress que je suis : la première tentative d’utilisation aura suffit. Je voulais poster un billet ridiculement court avec quelques lignes de shell, et il n’y a manifestement pas moyen de voir ces lignes sortir un tant soit peu correctement à la publication. Allant probablement vouloir insérer d’autres bouts de code, je me documente donc sur les plugins existants.

La page ci-liée propose une comparaison brève mais efficace de plusieurs d’entre eux, et conseille finalement l’utilisation de ce plugin de coloration syntaxique. Le billet actuellement en file d’attente devrait donc paraître bientôt, le temps que je teste par moi-même. :-)

Une journée au Google Developer Day 2007

Si je n’avais pas passé la soirée à jouer comme un gamin avec un hélicoptère télécommandé, ce compte rendu du Google Developer Day 2007, qui se tenait hier à Paris, boulevard Richard Lenoir, aurait été publié dès hier. Seulement voilà : offrez un tel jouet à un geek à l’issue d’une journée de conférences, et vous êtes sûr de faire un heureux. Il faisait en effet partie du contenu du sac donné à la fin de la journée, avec un tee-shirt et quelques plaquettes ventant les mérites des outils Google.

File d'attente

L’événement commençait à 13h, avec déjà une file d’attente dans la rue : difficile donc de rater l’adresse. Arrivé à 13h50 devant la porte (non, je n’ai pas fait une heure de queue mais tout au plus dix minutes, j’étais juste aller acheter des piles pour pouvoir prendre des photos) cela commence mal, avec une tentative d’échec critique : « Je n’ai pas votre nom sur la liste, désolé je ne peux pas vous laisser rentrer. ». Après vérification, il est bien, mais ailleurs car intervertit avec le prénom. Aurais-je échoué lors du remplissage du formulaire ? Qu’importe, l’entrée est désormais possible. Une seconde queue attend les gens pour pouvoir échanger au vestiaire leurs effets contre un coupon numéroté, un pin’s à aimants Google clignotant façon antenne de téléphone mobile qui pique les yeux, un petit cahier (riche idée) et un stylo pour prendre des notes, et bien sûr un badge avec nom et prénom, et mot de passe pour accéder au Wi-Fi qui inonde le bâtiment avec un routeur tous les trois mètres.

À l’intérieur, l’ambiance tient beaucoup plus du bar branché que de la conférence universitaire. Des lampes meubles (tables, piliers, hémisphères) peignent les pièces de tons mauves, tandis que les tables-divan et autres fauteuils permettent aux gens de se vautrer à souhaits, et que boissons et assiettes de gâteaux (brownies, cookies, tartes Tatin) et de fraises sont proposées par des serveurs au teint méditérranéen. Tous ceux qui sont venus avec leur portable l’ont déjà ouvert, et profitent de la connexion. Combien d’entre eux auront posté sur leur blog qu’ils sont en direct de Google ? ;-p Enfin le pupitre, un dragon Mozilla habillé d’un tee-shirt Google, et l’écran de projection font face à des chaises aux couleurs de la compagnie. Le directeur de Google France fait un rapide discours d’introduction et de bienvenue, et laisse alors la parole à une organisatrice, manifestement mal à l’aise devant un auditoire, pour présenter les intervenants. Les conférences peuvent commencer.

Discours du directeur

Discours de présentation

Pour chaque session, deux présentations avaient lieu simultanément : la première à laquelle j’ai assisté, menée par Patrick Chanezon, était une introduction très intéressante aux API Google, notamment Google Maps et Google Checkout. Sans faire de résumé (il fallait être là ;-) ), les mots qui ressortaient étaient « Web 2.0 », « API » (prononcer à l’américaine, car le monsieur travaille à Mountain View),  » AJAX » (même remarque), « Atom », « Ruby », « Rails », et « SOAP » (mais là, pour dire qu’ils avaient arrêté).

Patrick Chanezon

Présentation des API Google

La deuxième, présentée par deux personnes dont je n’ai pas noté les noms, s’est avérée de nettement moins bonne qualité : l’une présentant son sujet, le format KML, de façon trop superficielle à mon goût et ne sachant répondre à aucune question, l’autre lisant carrément ses diapositives et semblant avoir oublié que les spectateurs étaient des développeurs parfaitement capables de comprendre comment à partir de données de dépouillement faire une représentation en 3D des résultats d’une élection par région.

L'une des nombreuses bornes WiFi

La troisième session ventait les mérites de Google Web Kit, une usine à gaz permettant de développer une application web en Java, bénéficiant ainsi de tous les avantages d’un tel langage (structure, typage, développement dans un environnement avec tous les outils habituels…), pour ensuite compiler vers du Javascript. Même pas peur ! L’intervenant était un excellent orateur, malgré sa propension à l’utilisation d’anglicismes (« adresser un problème », « wrapper des librairies », ou encore « un code offusqué »), et ses diapositives brèves et imagées expliquaient avec humour que le web d’avant était trop limité, le web 2.0 sympa mais une galère à développer, et qu’enfin GWK c’était le futur.

Pour finir, une session en direct de Mountain View, orchestrée par Jeff Huber, le Vice President Engineering, et au cours de laquelle est également intervenu Sergey Brin, nous faisait savoir combien ces gens étaient « excited » de participer à cette conférence. Le terme était tellement utilisé que des hypothèses sur l’existence de primes de citation commençaient à être émises. :-) Plus sérieusement, la présentation de Gears m’a marqué, l’outil semblant très puissant (gestion transparente du travail hors ligne, de la synchronisation, et du travail collaboratif… dans une interface web) mais ne donnant par contre surtout pas envie de savoir ce qu’il se passe en mémoire ( « Oh tiens Firefox, qui prend 300Mo… » ).

Jeff Huber, en direct de Mountain View

Sergey Brin

En dehors des conférences (et même pendant à vrai dire), la rencontre était aussi bien entendu l’occasion de faire connaissance avec un peu de monde ou de croiser des têtes connues, de recruter, et bien sûr de profiter de l’endroit. ;-)

Recrutement

Les organisateurs aussi !

À l’issue de la dernière session, un buffet était proposé, avec salade de fromage, pommes de terres sautées, hot-dogs, hamburgers, et des des tartes Tatins à ne plus jamais vouloir aller à une autre conférence. Finalement c’était là une très bonne journée, et c’est sans surprise que l’on constate que lorsqu’il s’agit d’organiser un événement destiné à des développeurs, Google sait y faire.

Canapé bouche