David Madore's WebLog: 2013-08

This WebLog is bilingual, some entries are in English and others are in French. A few of them have a version in either language. Other than that, the French entries are not translations of the English ones or vice versa. Of course, if you understand only English, the English entries ought to be quite understandable without reading the French ones.

Ce WebLog est bilingue, certaines entrées sont en anglais et d'autres sont en français. Quelques-unes ont une version dans chaque langue. À part ça, les entrées en français ne sont pas des traductions de celles en anglais ou vice versa. Bien sûr, si vous ne comprenez que le français, les entrées en français devraient être assez compréhensibles sans lire celles en anglais.

Note that the first entry comes last! / Notez que la première entrée vient en dernier !

Index of all entries / Index de toutes les entréesXML (RSS 1.0) • Recent comments / Commentaires récents

Entries published in August 2013 / Entrées publiées en août 2013:

(mardi)

Labyrinthes

J'ai toujours été fasciné par les labyrinthes. Pas tant le genre de labyrinthes dessinés sur un papier et dont on doit trouver la solution au stylo, mais plutôt les labyrinthes dont on ne voit qu'un morceau, dans lesquels on s'immerge complètement, et qu'on doit explorer au fur et à mesure, ou les labyrinthes informatiques. Un des programmes que mon papa a écrit pour moi quand j'étais petit, en Basic sur le New Brain qui a été mon premier ordinateur (voir ici pour les détails) était un programme de labyrinthe, ou peut-être un programme de dessin un mode texte que j'utilisais comme programme de labyrinthe. C'est aussi un des premiers programmes que j'ai réécrits en Turbo Pascal 4 vers '88–'89, et c'est avec lui vers cette époque (la date du fichier dit 1989-01-03, mais je ne sais pas si elle est fiable) j'ai réalisé ce chef d'œuvre (dessiné à la main, pas généré par ordinateur, je précise) :

[Un labyrinthe en mode texte CP437]

J'ai forcé des barres de défilement à l'image (cliquez dessus pour la voir complètement) parce que c'était important que sur la taille 100×100 carrés du labyrinthe on n'en voyait que la région 80×25 d'un écran de PC à l'époque (c'est normalement à peu près ce qu'on devrait voir de l'image en question — mais je ne peux pas régler exactement parce que CSS ne permet pas de tenir compte de la taille des ascenseurs). Le but était d'aller du ‘D’ qui est à peu près au centre vers l'un des deux ‘A’ qui sont à droite en haut et en bas, en déplaçant le carré blanc qui se trouve juste en-dessous du ‘D’, et en évitant les murs définis par le caractère 177 (▒) du jeu CP437.

Bref, je crois que j'ai la palme du labyrinthe le plus pourri de l'univers, mais ça n'empêche pas qu'ils me hantent jusque dans mes rêves.

Je me rappelle aussi avoir été fasciné par les jeux Ultima Underworld, justement par cet aspect d'un monde à explorer, un labyrinthe, et surtout, un labyrinthe en 3D, ce qui est tout de même bien plus intéressant qu'un labyrinthe en 2D, parce que c'est plus complexe et parce qu'on s'y immerge vraiment.

Les labyrinthes mentionnés ci-dessus sont générés à la main, cependant. Je me suis aussi demandé comment faire des labyrinthes procéduraux qui soient intéressants. La première idée, que j'ai eue quand j'étais petit, c'était de remplir le monde avec des murs aléatoires juste autour de la probabilité de percolation (c'est-à-dire celle qui fait la transition de phase où le labyrinthe acquiert une grosse composante connexe ; on la détermine empiriquement) et ensuite creuser un chemin du départ à l'arrivée avec une marche aléatoire un peu dirigée pour être sûr que le problème est résoluble. Ce n'est franchement pas terrible, parce qu'on voit immédiatement ce qui a été creusé en plus, et le labyrinthe est trop facile. Pour compenser, j'ai tenté de programmer des labyrinthes en 3D et même en 4D dont on ne voyait que des tranches, mais c'est très peu intéressant à jouer. Quand vers '97 j'ai écrit le programme XLaby, mon premier programme un petit peu sérieux sous Unix (et qui est toujours disponible sous Debian et Ubuntu, mais il n'a plus l'air de marcher très bien), j'ai tenté différents algorithmes de génération du labyrinthe, notamment toutes sortes de variations autour de l'algorithme consistant à faire « pousser un arbre » (creuser les murs aléatoirement sans jamais repasser par un endroit déjà creusé, de sorte qu'on ne crée pas de cycle), puis éventuellement retirer quelques murs supplémentaires au hasard pour ajouter quelques cycles. Mais je ne suis pas très satisfait de l'intérêt de ces labyrinthes non plus : ils ont trop de culs-de-sac qui les rendent pénibles mais pas vraiment intéressants à explorer. Pour moi, un labyrinthe intéressant devrait avoir beaucoup de cycles, devrait avoir une difficulté qui ne soit pas la simple répétition d'un million de culs-de-sac, mais je ne sais pas générer ça automatiquement.

Toujours est-il que je voulais apprendre à programmer un peu en WebGL sous JavaScript, et je voulais voir si je pouvais fabriquer des mondes et des labyrinthes 3D à explorer : j'ai écrit ce petit jeu de labyrinthe simpliste en JavaScript. Qui ne marchera probablement pas chez la plupart des gens (déjà, je n'ai pu tester que sous Firefox et Chrome, et encore, Chrome, il faut vraiment le supplier pour qu'il accepte de considérer que les drivers Gallium pour ma carte graphique Radeon peuvent fonctionner).

Le but est de trouver la sortie du labyrinthe (généré aléatoirement quand on charge la page), laquelle sortie se trouve au niveau z=7 (tout en haut ; on commence en z=0, tout en bas), quelque part sur le mur sud. Il n'y a pas de passages secrets (encore moins de monstres, d'objets à ramasser, ou quoi que ce soit de ce genre). On se déplace avec les flèches (si je n'ai pas trop merdé dans la façon de les capturer en JavaScript, ce qui, soit dit en passant, est un cauchemar) : gauche et droite pour tourner, haut et bas pour avancer et reculer, et aussi insert et delete pour se décaler vers la gauche et la droite sans tourner ; on peut aussi consulter une carte de ce qu'on a vu du niveau en tapant F1. Les variations de couleur servent à la fois à aider le sens de l'orientation en brisant la monotonie, et aussi à fournir quelque indice sur le progrès qu'on fait dans le labyrinthe (les couleurs elles-mêmes n'ont aucune signification, mais le changement d'une déco à une autre a un sens).

Je ne suis pas trop mécontent de l'apparence (la partie WebGL) et de la navigation, disons que la structure du labyrinthe ne me déplaît pas, c'est simple comme je le voulais. Mais les labyrinthes générés sont malheureusement très peu intéressants : ils sont sans doute assez difficiles, mais juste parce qu'ils accumulent une quantité phénoménale de fausses pistes et de culs-de-sac, pas vraiment d'une manière qui suscite la curiosité ou l'envie d'explorer. J'ai tenté mille et une variations sur l'algorithme de génération, sans réussir à changer vraiment les choses.

J'aurais pu utiliser un générateur pseudo-aléatoire déterministe (au lieu du Math.random() du JavaScript) pour générer le labyrinthe, histoire qu'on puisse retourner dans un labyrinthe déjà visité. Je pourrais encore ajouter cette fonctionalité, mais il faut dire que le peu d'intérêt des labyrinthes produits ne m'a guère incité à me fatiguer à ça.

Ajout () : J'ai ajouté une possibilité primitive de sauvegarder le labyrinthe et de recharger un labyrinthe sauvegardé.

(mercredi)

Des difficultés à voir une vidéo

On m'avait signalé récemment un documentaire potentiellement intéressant de la BBC, Make Me a German (l'Allemagne vue par les Anglais). Le lien qu'on m'avait donné était sur YouTube, je l'avais ajouté à ma watch later list et je n'y ai plus trop pensé. Ce soir je me suis dit que je regarderais bien le documentaire en question.

Première constatation : il n'est plus sur YouTube, la BBC l'en a fait retirer. Forcément, j'aurais dû me rappeler : la BBC ne met pas elle-même des choses sur YouTube, donc si elles y sont, elles vont disparaître rapidement. Première morale de l'histoire (que j'ai déjà rencontrée, mais que je n'ai manifestement toujours pas bien intégrée) : dès que je regarde une vidéo YouTube ou dès que je l'ajoute dans ma liste de vidéos à voir, je devrais la télécharger parce qu'elle risque de disparaître et que je risque d'avoir envie de la revoir ou de la voir. (D'autant que j'ai plusieurs téra-octets d'espace disque essentiellement inutilisés, donc télécharger toutes les vidéos YouTube que je regarde n'est pas spécialement problématique.)

(Au passage, si on se pose la question, ce que j'utilise pour télécharger les vidéos YouTube, c'est youtube-dl, et je le recommande. D'ailleurs, il ne marche pas qu'avec YouTube.)

Mais bon, cette histoire m'a donné envie de regarder quand même ce documentaire. Il est (pour encore quelques jours) disponible sur le site de la BBC. Alors pas de problème, il suffit de le regarder ?

Sauf que non, parce que la BBC fait du filtrage par pays sur l'adresse IP : or je ne suis pas au Royaume-Uni. J'ai déjà dû dire tous les supplices que j'ai envie de faire subir à ceux qui utilisent la géolocalisation d'adresses IP (je trouve d'ailleurs que les fournisseurs d'accès Internet ne devraient pas avoir le droit de signaler dans quel pays les IP qu'ils routent sont situées, histoire d'empêcher la constitution de ce genre de bases de données). Heureusement, il existe un moyen de contourner ça : installer Tor (que je n'utilise jamais pour l'anonymat mais souvent pour contourner le géofiltrage), demander un nœud de sortie au Royaume-Uni (et au passage, bien se rappeler que le code ISO du Royaume-Uni c'est GB et pas UK), configurer mon navigateur pour utiliser le Tor en question comme proxy, et recommencer.

Bon, la vidéo se lance dans le navigateur, mais là je me dis, regarder ça à travers Tor c'est risqué, l'émission durant une heure, il est fort probable que ça se mette à merder à la moitié, et je préfère ne rien voir du tout que d'en voir la moitié. Je voudrais donc tout télécharger pour être sûr que j'ai l'intégralité de la vidéo avant de commencer à la regarder. (C'est d'ailleurs ce que je fais le plus souvent même sur YouTube pour une vidéo un peu longue ; en plus, ça me permet d'utiliser la télécommande que j'ai configurée sur mon ordinateur pour fonctionner avec MPlayer, c'est plus agréable.)

L'ennui c'est que la vidéo n'est pas proposée en téléchargement. Enfin si, mais sous un format (WMV) accompagné de mécanismes de protection (DRM). (Vous comprenez, si on ne mettait pas ces mécanismes de protection, les gens pourraient — horresco referens — partager cette vidéo disponible gratuitement en ligne.) Quant au lecteur Flash dans le navigateur, il fait du streaming et ne stocke pas la vidéo dans un fichier temporaire (ce que certaines versions font parfois, auquel cas il est facile de la récupérer — même, d'ailleurs, si le fichier se fait effacer immédiatement, puisque Linux permet de le retrouver dans /proc/$pid/fd/ et j'en profite souvent).

Heureusement, il y a un petit mode d'emploi ici qui permet souvent de récupérer des flux RTMP : essentiellement, on demande à la couche réseau Linux de rediriger le port RTMP (1935) sortant vers un programme local ad hoc (rtmpsrv), qui va afficher la requête produite par le lecteur Flash dans le navigateur sous forme d'une ligne de commande rtmpdump qu'il n'y a plus qu'à recopier (après avoir supprimé la redirection !). Ici, il y a eu quelques petites subtilités qui ont rendu le timing un peu compliqué (le lecteur Flash de la BBC commence par jouer un petit logo animé qui dure environ cinq secondes, donc il faut mettre en place la redirection pendant ce temps-là ; et par ailleurs, dès qu'on a la bonne ligne de commande pour l'essentiel de l'émission il faut arrêter le lecteur Flash du navigateur sinon il fait une connexion par un autre moyen qui invalide le cookie de téléchargrement qu'on a reçu).

Bref, j'ai fini par pouvoir télécharger ma vidéo ; mais la manip' a été si longue que je n'ai maintenant plus le temps de la regarder. (Je suppose que, comme d'habitude, un petit malin de commentateur va m'expliquer qu'il est capable de la télécharger en trois secondes sur son Mac ou sa machine Windows. 'Fin bon.)

Je me lamente surtout de l'absurdité de la chose. Je ne suis pas en train de téléchager le dernier blockbuster du moment, je suis en train de téléchager un documentaire que la BBC, service public, a diffusé sur les ondes et met maintenant gratuitement à disposition du public sur son site Web : quel sens cela a-t-il d'en restreindre la diffusion ou de chercher à empêcher qu'on le télécharge ? Même s'ils veulent rediffuser l'émission plus tard ou la vendre à un autre pays (seule explication plausible de la limitation aux IP du Royaume-Uni), quelle importance que deux-trois geeks l'aient déjà vue sur YouTube ? Quelle raison de ne pas tout mettre sur YouTube ?

(Tiens, à ce propos, la chaîne d'informations allemande dont je disais tour récemment qu'elle mettait son journal de 20h sur YouTube a cessé de le faire juste après que je me suis mis à le regarder. C'est quand même vraiment un manque de chance, là. Du coup, je suis à nouveau à la recherche de quelque chose d'équivalent.)

(vendredi)

Je change des petites choses sur mon téléphone

La principale raison pour laquelle je veux avoir sur mon téléphone (ou sur mes ordinateurs) un système d'exploitation relativement ouvert n'est pas tant philosophique, elle est pratique : quand quelque chose ne me plaît pas, si je n'aime pas la manière dont la configuration est faite par défaut, je veux pouvoir changer, au moins en principe, plutôt que rester coincé sur les choix qu'auraient fait M. Google, ou M. Apple ou M. Microsoft ou je ne sais qui. Reste que ce n'est pas forcément facile.

Un exemple concret : je n'ai plus de clavier physique sur mon téléphone, comme je m'en suis déjà suffisamment plaint. J'essaie au moins de faire en sorte que cette disparition soit la moins douloureuse possible. À défaut de clavier physique qui soit un QWERTY, je veux un clavier virtuel (sur écran) qui en soit un. Mais d'un autre côté, je tape essentiellement du français, et ça ne me déplaît pas forcément d'avoir un dictionnaire qui fasse des propositions de complétion et/ou de la correction orthographique, en français. Ou même mieux, bilingue (i.e., qui considère un mot comme correct quand il existe soit en français soit en anglais — comme il m'arrive aussi de taper de l'anglais sur mon téléphone, ce n'est pas inutile). Sous Android (au moins AOSP), par défaut, ce n'est pas possible : si vous voulez taper en français et bénéficier de complétions proposées en français, il faudra supporter d'avoir à l'écran un clavier AZERTY, ce qui est plus que mes nerfs ne peuvent encaisser. Ou alors, on peut choisir un clavier QWERTY « générique » (c'est-à-dire sans langue associée), mais alors les seules complétions qu'il propose sont basées sur les noms des contacts qu'on a ou celles qu'on a manuellement ajoutées — pas complètement inutile mais pas très utile non plus.

J'ai donc voulu me fabriquer une application (méthode d'entrée) Android qui fournisse un clavier QWERTY mais avec dictionnaire combiné français et anglais, et tant qu'à faire ajouter quelques caractères Unicode courants (par exemple le symbole moins, , qui est différent du trait d'union -) à des endroits relativement facilement accessibles.

Au final j'ai réussi, mais disons que ça n'a pas été sans mal. Je pensais naïvement que ce serait facile de prendre l'application clavier standard qui vient avec CyanogenMod/AOSP, la modifier très légèrement et la recompiler, mais il s'avère que cette chose est une horreur à recompiler (elle utilise un package Java com.android.inputmethodcommon qu'il faut aller chercher dans un exemple accompagnant le SDK Android, elle utilise des bouts de code natif, qu'il faut donc recompiler en C++, pour lire plus rapidement les dictionnaires binaires, ceux-ci doivent d'ailleurs être inclus sans compression dans le APK, et il faut encore réussir à compiler un utilitaire Java pour fabriquer un dictionnaire binaire à partir d'une liste de mots en XML, sans compter un autre utilitaire qui sert à fabriquer du code autogénéré). C'est fréquemment le problème avec le logiciel libre : avoir le source est une chose, mais les instructions pour s'en servir (et pour commencer, pour le compiler) manquent souvent cruellement.

Si cela peut servir à quelqu'un, je suis prêt à donner quelques indications sur comment compiler le machin sous Linux, et/ou fournir les sources que j'ai utilisées et/ou le APK compilé. (Je ne veux pas le mettre sur le marchand de jouets Play Store parce que c'est juste une bidouille rapide.)

Un autre exemple : le Firefox mobile (enfin, Fennec) que j'utilise sur mon téléphone permet facilement de faire des recherches Google. Mais ces recherches se font en anglais. Ça me va très bien, l'essentiel des recherches que je fais sur Google sont effectivement en anglais. Mais je veux pouvoir de temps en temps faire des recherches sur Google en français (évidemment, quand on cherche un mot spécifiquement français, la langue de recherche n'a pas grande importance ; mais elle en a quand le terme existe dans les deux langues, et détermine quelle langue sera privilégiée : ceci correspond à ajouter un simple paramètre &hl=fr dans la barre d'adresse, ce qui est malcommode à faire sur un téléphone). Heureusement, Firefox permet d'ajouter un nouveau moteur de recherche. Mais la seule manière de le faire vraiment est de se créer une page web pour distribuer un fichier XML décrivant le moteur de recherche (contrairement à ce que ce lien indique, le fichier en question n'est pas exactement OpenSearch, d'ailleurs, c'est un truc spécifique à Firefox), et encore, je ne sais pas pourquoi, l'icône ne fonctionne pas. Mais bon, si ça peut servir à quelqu'un d'ajouter un moteur de recherche pour Google en français dans Firefox pour Android, il suffit de suivre ce lien.

(mercredi)

J'apprends un peu plus d'allemand

Comme je l'avais déjà mentionné, j'essaie de perfectionner un peu mon allemand (ou devrais-je dire, de combler les années où je l'ai à peu près complètement laissé tomber, entre la fin de ma prépa et le moment où je suis allé à Berlin), avec l'idée que mon poussinet et moi comptons aller à Munich début septembre. Disons que mon but est de parler allemand mieux que l'Allemand typique ne parle anglais, histoire que ce ne soit pas complètement inutile d'utiliser cette langue — et ce n'est pas forcément acquis. Je combine différentes méthodes : l'Assimil avancé (qui a l'avantage de me fournir un nombre assez limité de phrases avec un nombre assez limité de mots nouveaux que je peux donc réécouter ad lib. jusqu'à ce que ça rentre parfaitement dans ma mémoire essentiellement auditive), le Tagesschau du Norddeutscher Rundfunk, et la lecture du Spiegel. (Ce serait bien si je trouvais un forum intéressant de geeks germanophones, aussi, histoire d'être exposé à un allemand plus informel.)

Une des difficultés de l'allemand est que les noms ont un genre (un parmi trois : masculin, neutre ou féminin). C'est amusant comme le cerveau est fait : si une langue avait trois genres mais que le genre d'un nom fût infailliblement (ou avec très très peu d'exceptions) indiqué par une voyelle à la fin du mot, ce ne serait pas d'une grande difficulté de les apprendre, puisqu'on apprend le mot comme un tout ; mais sous prétexte que le genre, au lieu d'être indiqué par la fin du mot est indiqué par un article qui vient avant (et surtout, qui n'est pas absolument toujours présent), le cerveau le considère comme une information auxiliaire et on a beaucoup plus de mal à l'apprendre ! (Du coup, je me demande comment le cerveau s'en tire pour les langues scandinaves qui indiquent le genre des noms utilisés avec l'article défini, en postposant celui-ci sous forme d'un suffixe, mais pas celui des noms utilisés avec l'article indéfini.) C'est à tel point, d'ailleurs, que l'apprentissage des pluriels est (à mon avis) beaucoup plus facile que celui des genres, et que j'en viens parfois à retrouver le genre d'après le pluriel (si le mot sonne bien avec un pluriel de féminin, il a des chances d'être féminin).

Bref, je me constitue une longue liste de mos courants, ou plutôt de racines courantes (parce que le genre d'un mot allemand est normalement déterminé par son dernier élément, même s'il y a quelques exceptions, soit parce qu'un mot peut avoir deux genres — der Vorteil mais das Gegenteil — soit probablement parce que l'analyse est trompeuse — der Bericht mais die Nachricht : je retiens justement ce dernier parce que je sais bien que les pluriels sont die Berichte mais die Nachrichten). Majoritairement masculins et neutres parce que les féminins sont souvent très reconnaissables (sans compter qu'il est quasiment impossible d'utiliser un féminin sans que ça s'entende, alors qu'on peut facilement faire une phrase où on ne saura pas si un mot est masculin ou neutre). Et tous les jours je les fais afficher par mon ordinateur dans un ordre aléatoire et je contrôle que je les connais tous parfaitement, et quand je fais une faute sur l'un d'entre eux, je me répète quelques phrases l'utilisant et qui mettent bien en évidence le genre. De surcroît, à chaque fois que je pense à un mot allemand, je m'assure d'être certain de son genre (et j'ai une petite application dictionnaire sur mon téléphone qui me permet de faire ça à tout moment). Voilà ce que j'aurais dû faire il y a bien longtemps, parce que maintenant je dois surtout réapprendre une quantité faramineuse de vocabulaire allemand que j'ai mal apprise puisque j'ai fait l'impasse sur les genres. Mais le plus énervant, il faut le dire, ce sont encore les mots importés par l'allemand d'autres langues et qu'on a affublés de genres assez aléatoires : das Internet, der Automat, der Computer, das Hotel, der Bus, die Jeans, etc.

Il n'y a pas, bien sûr, que le genre des mots que je dois apprendre : je ne veux pas donner l'impression que je parlerais parfaitement la langue si ce n'était cette petite difficulté. À vrai dire, mon vocabulaire est cruellement limité (parce que j'ai toujours été passionné par la grammaire alors que je trouvais pénible d'apprendre des séries de mots) et je me fais donc aussi des listes de termes ou d'expressions que je trouve potentiellement utiles. Il y a du vrai dans le fait qu'on apprend plus vite du vocabulaire en allemand que, disons, en anglais, à cause de la possibilité de former des mots composés qui fait qu'il est, au minimum, plus facile de comprendre ou de retenir un mot quand on en connaît les parties (Zufalls+fund : découverte due au hasard) que si c'est, au hasard, un mot importé d'une obscure légende persane (je pense à l'équivalent anglais du précédent : serendipity). J'aime bien dire qu'il n'y a rien de plus mauvais que les « moyens mnémotechniques » qui ne touchent pas à un vrai phénomène, et que pour retenir, par exemple, le un mot dans une langue, si on a du mal, il faut chercher à en garder en mémoire l'étymologie, ou un cognat, ou une expression l'employant, ou quelque chose comme ça qui fasse appel à un vrai fait linguistique : l'allemand est plutôt plus agréable pour ça que d'autres langues. (Je le sais parce que je me fais aussi des listes de mots que j'apprends en français et en anglais.)

Parlant de mots composés, il y a une chose qui m'amuse beaucoup, c'est quand on trouve des étymologies complètement parallèles dans différentes langues. Je me rappelle notamment avoir eu une sorte d'épiphanie en remarquant sur un emballage alimentaire dont les ingrédients étaient indiqués en français, en néerlandais et en grec, que le mot com+position se disait en grec σύν+θεση (synthèse, quoi) et en néerlandais samen+stelling — autrement dit, dans les trois langues, posé ensemble. (En allemand, Zusammen+stellung semble plutôt désigner une com+pilation, tandis qu'une com+position chimique se désignera par Zusammen+setzung, autrement dit, on asseoit les com+posants ensemble plutôt qu'on ne les pose debout : tout est dans la nuance.) Mais je digresse.

Il faut reconnaître que les mots composés allemands ne sont pas toujours très transparents. Je pense par exemple au préverbe ver- que certains analysent comme indiquant la perte de quelque chose, mais qui semble plutôt avoir pour signification de « transformer le sens du verbe de manière complètement imprévisible » (ce n'est pas le seul qui fasse ça, mais ça doit être le plus courant) :

bringenapporter verbringenpasser le temps
führenconduire, guider verführenséduire, tenter
kaufenacheter verkaufenvendre
laufenmarcher, courir sich verlaufense perdre (en marchant)
lagernstocker verlagerndéplacer
lassenlaisser verlassenabandonner
meidenéviter vermeidenéviter, empêcher
passenconvenir, s'appliquer verpassenrater
pflegensoigner, garder, maintenir verpflegennourir, alimenter
ratendeviner, conseiller verratentrahir
schiebenpousser verschiebenrepousser, retarder
sprechenparler versprechenpromettre
sich versprechenfaire un lapsus (en parlant)
stehenêtre debout verstehencomprendre
suchenchercher versuchententer, essayer
tragenporter vertragensupporter
wendentourner verwendenutiliser, employer
zeihenaccuser verzeihenpardonner

(Saturday)

Random jokes for my birthday

An atom walks into a bar and says to the bartender, hey buddy, you gotta help me… I lost an electron!

Bartender says back, Are you sure?

Atom replies, Yeah, I'm positive.


A neutron walks into a bar and says to the bartender, How much do I owe you?

Bartender, For you, no charge.


So Helium walks into a bar and orders a beer, the bartender says: Sorry, we don't serve noble gases here. Helium doesn't react.


Higgs boson goes into a church. Priest says we don't allow any God particles here. Higgs boson says, then how do you have mass?


A Freudian slip is when you think one thing and say your mother.


What do you get when you cross a joke with a rhetorical question?


I am a solipsist, and I can't understand why everyone else isn't too.


Two behaviorists meet. One says to the other: You're fine. How am I?


What did the Buddhist say to the hot dog vendor?

Make me one with everything.


And when the Buddhist asks for his change, the vendor replies: Change comes from within.


I got expelled from college for cheating during my metaphysics final. I got caught looking into the soul of the guy next to me. [Woody Allen]


A Franciscan priest sits down next to a a Jesuit priest while riding a train to Rome. After a while the Franciscan notices that the Jesuit is smoking and praying.

Franciscan: I'm surprised to see you doing that. Jesuit: Why's that? Franciscan: Well, our order asked the Holy Father for permission to do that and were denied. Jesuit: Really? We asked the Pope, and he said we could. What did you ask him? Franciscan: We asked if we could smoke while we prayed, and he said no. Jesuit: Ahhhh! That's the problem. We Jesuits asked if we could pray while we smoked, and he said, of course!


The tomb of Jesus is discovered, with a body inside. A Franciscan, a Dominican and a Jesuit are called on the spot to ascertain that this is, indeed, the body of Jesus. The Franciscan emerges first, crying: Christ didn't resurrect? Then the world is devoid of meaning! The Dominican comes next, thoughtful: That's bothersome: now we'll have to interpret resurrection metaphorically, and a lot of theology will have to be rewritten. The Jesuit emerges at last, amazed and joyous: It's wonderful! So Jesus really existed!


The Pope and one of his top cardinals were taking a long train ride one day. The Pope was doing a crossword puzzle, and the cardinal was reading the Bible. Suddenly the Pope asked the cardinal, What's a four letter word for woman ending in UNT?

The startled cardinal stammered for a bit, then said, Uh… er… aunt! Yes, aunt!

Oh, of course. Got an eraser?


A good classicist never declines sex.


M. C. Escher is looking for his impossible cube. I think it's in the basement, he thinks. Let me go upstairs and check.


A friend is trying to set up an appointment with Sartre. How about Tuesday? Are you free? Answers Sartre: I've spent the last ten years trying to answer that question. [insp. Monty Python]


Did you hear that two rabbits escaped from the zoo and so far they have only recaptured 116 of them?


Did you hear Heisenberg had to get his speedometer removed from his car because every time he looked at it he got lost?


Did you hear Heisenberg had terrible problems in his sex life? Whenever he found the right position, he lacked the momentum; and whenever he had the energy, he didn't have the time.


Werner Heisenberg, Kurt Gödel, and Noam Chomsky walk into a bar. Heisenberg turns to the other two and says, Clearly this is a joke, but how can we figure out if it's funny or not? Gödel replies, We can't know that because we're inside the joke. Chomsky says, Of course it's funny. You're just telling it wrong.


How many University of Chicago economists does it take to screw on a lightbulb?

None, the market will take care of itself.


How many mathematicians does it take to screw in a lightbulb?

1: he gives it to 6 Californians thus reducing it to a previously solved joke.


Q: What does the B. in Benoît B. Mandelbrot stand for?

A: Benoît B. Mandelbrot


What is a comathematician? A machine for turning cotheorems into ffee.


Two guys walk into a bar. One orders 3 beers for himself. The other decides to out-do his friend and orders 10 beers.

The bartender looks at him startled and says: Wow, that's an order of magnitude.

A nearby customer who feels an urge to be at the center of attention tops this by ordering 100 beers.

Whereupon the bartender : Now we have two orders of magnitude!


The bartender says: Sorry, we don't serve your kind here. A tachyon enters a bar.


Three logicians walk into a bar. The bartender asks: Beer for everyone?

The first logician answers: I don't know.

The second logician answers: I don't know.

The third logician answers: Yes.


I know a great joke about UDP, but I don't know whether you'll get it.


Theft in an Apple Store: 15000€ of equipment have been stolen.

But the police think they can find the thieves and the two computers in question.


The scene is 1930, in a German school.

Teacher: Can somebody tell me why we lost the great war? Yes, Moshe?

Moshe: It's because of all those Jewish generals.

Teacher: Yes, Moshe, very good… But wait a minute, there weren't any Jewish generals in our army!

Moshe: Not the German army. The French.

Continue to older entries. / Continuer à lire les entrées plus anciennes.


Entries by month / Entrées par mois:

2017 Jan 2017 Feb 2017
2016 Jan 2016 Feb 2016 Mar 2016 Apr 2016 May 2016 Jun 2016 Jul 2016 Aug 2016 Sep 2016 Oct 2016 Nov 2016 Dec 2016
2015 Jan 2015 Feb 2015 Mar 2015 Apr 2015 May 2015 Jun 2015 Jul 2015 Aug 2015 Sep 2015 Oct 2015 Nov 2015 Dec 2015
2014 Jan 2014 Feb 2014 Mar 2014 Apr 2014 May 2014 Jun 2014 Jul 2014 Aug 2014 Sep 2014 Oct 2014 Nov 2014 Dec 2014
2013 Jan 2013 Feb 2013 Mar 2013 Apr 2013 May 2013 Jun 2013 Jul 2013 Aug 2013 Sep 2013 Oct 2013 Nov 2013 Dec 2013
2012 Jan 2012 Feb 2012 Mar 2012 Apr 2012 May 2012 Jun 2012 Jul 2012 Aug 2012 Sep 2012 Oct 2012 Nov 2012 Dec 2012
2011 Jan 2011 Feb 2011 Mar 2011 Apr 2011 May 2011 Jun 2011 Jul 2011 Aug 2011 Sep 2011 Oct 2011 Nov 2011 Dec 2011
2010 Jan 2010 Feb 2010 Mar 2010 Apr 2010 May 2010 Jun 2010 Jul 2010 Aug 2010 Sep 2010 Oct 2010 Nov 2010 Dec 2010
2009 Jan 2009 Feb 2009 Mar 2009 Apr 2009 May 2009 Jun 2009 Jul 2009 Aug 2009 Sep 2009 Oct 2009 Nov 2009 Dec 2009
2008 Jan 2008 Feb 2008 Mar 2008 Apr 2008 May 2008 Jun 2008 Jul 2008 Aug 2008 Sep 2008 Oct 2008 Nov 2008 Dec 2008
2007 Jan 2007 Feb 2007 Mar 2007 Apr 2007 May 2007 Jun 2007 Jul 2007 Aug 2007 Sep 2007 Oct 2007 Nov 2007 Dec 2007
2006 Jan 2006 Feb 2006 Mar 2006 Apr 2006 May 2006 Jun 2006 Jul 2006 Aug 2006 Sep 2006 Oct 2006 Nov 2006 Dec 2006
2005 Jan 2005 Feb 2005 Mar 2005 Apr 2005 May 2005 Jun 2005 Jul 2005 Aug 2005 Sep 2005 Oct 2005 Nov 2005 Dec 2005
2004 Jan 2004 Feb 2004 Mar 2004 Apr 2004 May 2004 Jun 2004 Jul 2004 Aug 2004 Sep 2004 Oct 2004 Nov 2004 Dec 2004
2003 May 2003 Jun 2003 Jul 2003 Aug 2003 Sep 2003 Oct 2003 Nov 2003 Dec 2003