Bonjour. Je suis un chercheur du CNRS, ou d’un quelconque organisme du même drapeau. Je travaille sur la théorie du langage, la théorie des types, et autres acabits. Je suis très généreux de mes émoluments intellectuels, et ai à cœur de les partager avec le monde entier. Voici un article totalement inutile, donc indispensable, que j’ai écrit pour la revue scientifique « Geekatorial considerations & Neuronal branling ».
Qu’appelle-je l’expression du vide ?
Afin de répondre à cette question, je vous propose de répondre à la question inverse. Que n’appelle-je-pas l’expression du vide ?
D’aucuns feront la remarque que répondre à une question inverse ne répond pas DU TOUT à la question initiale. Je m’en fous, je suis un théoricien du langage, je fais ce que je veux, c’est quand même pas vous qu’allez m’apprendre mon métier, non mais merde quoi, je suis du CNRS, j’ai fait des études moi, je diplômes. Donc aux aucuns qui font cette remarque, je réponds : « restez aucuns, et ne devenez pas quelqu’uns, vous êtes le vide. »
Bien.
Exemples de ce que n’est pas l’expression du vide dans un langage de programmation :
- Une variable numérique contenant la valeur 0
- Une variable booléenne contenant la valeur False
- Une chaîne de caractère vide
- Un tableau ou une liste contenant 0 élément
Pourquoi cela ? Parce que ces variables ont des types spécifiques, ce qui exprime déjà quelque chose. Si votre variable numérique est censée représenter une quantité de carottes, la valeur 0 exprime : « Ici, il n’y a pas de carottes ». Ce n’est pas tout à fait la même chose que d’exprimer « Ici, il n’y a rien ». Dans « il n’y a pas de carottes », on sous-entend qu’il pourrait y en avoir. Et c’est déjà l’expression de quelque chose de particulier. Donc l’expression de pas-de-vide.
Votre booléen exprime qu’une certaine proposition est vraie ou fausse. Il n’y a donc pas rien, puisqu’il y a une proposition, peu importe laquelle. Votre chaîne de caractère vide exprime « il n’y a pas de texte ». Mais il y a une chaîne de caractères. Votre tableau vide exprime : « il n’y a pas d’éléments dans ce tableau ». Mais il y a un tableau. Etc.
Dans : « Ici, il n’y a rien », le seul sous-entendu, c’est « Ici, il pourrait y avoir quelque chose ». Oui mais quoi ? On ne sait pas. N’importe quoi. Le premier bidule qui se présente. Et le contraire du premier bidule qui se présente, c’est bien « rien du tout ». Donc « Ici, il n’y a rien » est bien l’expression du vide. Voili voilà.
On admet donc comme prédicat que l’expression du vide ne peut pas être une valeur spécifique d’une variable ayant un type défini.
Des fois y’aura besoin de décocher ce prédicat, on verra ça le moment venu.
Mais encore ?
L’expression du vide n’est pas un commentaire dans le code. Du point de vue de la machine, les commentaires sont totalement ignorés. C’est « parler pour ne rien dire ». Ce n’est pas « parler pour dire qu’il n’y a rien ici ».
L’expression du vide n’est pas non plus le vide lui-même. Le vide, ce serait un fichier de code vide, ou plus localement, une ligne vide dans un fichier de code, ou encore plus localement, des espaces à la fin d’une ligne de code.
Le vide c’est « ne pas parler ». Ce n’est pas « parler pour dire qu’il n’y a rien ici ».
Mais assez parlé dans le vide, et voyons quelles sont les possibilités d’exprimer le vide.
Le mot-clé void
« void » est utilisé dans les langages de programmation de bourgeois, tel que le C, le C++, le Java … C’est le nom d’un type. Au même titre que int est un nom de type pour une variable numérique. Sauf que void est un type avec rien dedans. Pas de valeur, que d’alle.
Dans ces langages, les fonctions renvoient toujours quelque chose. Lorsqu’elles ne renvoient rien, elles renvoient une variable de type void. On aurait pu appeler ce genre de fonction des procédures, comme dans le langage Pascal, mais les inventeurs du C sont des bourgeois marrants.
On a donc bien ici une expression de vide : Ici [à l’endroit où on pourrait récupérer une donnée renvoyée par une fonction], il n’y a rien ». Qu’est-ce qu’il pourrait y avoir à la place ? On ne sait pas, puisqu’on a dit que le type lui-même était le vide. Si on veut mettre autre chose, ça pourrait être tout et n’importe quoi.
On peut également utiliser « void » pour déclarer un pointeur vers un truc qu’on sait pas ce que c’est.
void *p = &quelqueChose;
Mais cet exemple n’est pas une expression de vide, puisque le pointeur pointe sur quelque chose. De quel type ce quelque chose est ? On sait pas. C’est le type vide. Certes. Mais « ici, il y a bien quelque chose ».
Fun fact : le pointeur « void * » est le seul moyen, en C, d’obtenir l’adresse mémoire d’une fonction.
int fonction_a_la_con() {
return 69;
}
void *pointeur_fonction = &fonction_a_la_con;
// exécution de la fonction pointée par le pointeur.
// Un pointeur sachant pointer...
(*pointeur_fonction)();
On aurait pu imaginer l’existence d’un type spécifique, définissant une fonction. Quelque chose comme func. Et on aurait écrit :
func *pointeur_fonction = &fonction_a_la_con;
Mais non, on n’a pas ce genre de chose. Pourquoi ? Parce que le C est un langage de bourgeois, tout simplement.
Edit 2013-10-01 : Je me suis un peu trompé concernant les pointeurs de fonction en C. Voir le commentaire de mon ami Pudbou.
On n’en a pas fini avec les pointeurs « void * ». Y’aura une surprise un peu plus loin.
Et sinon, en javascript, il existe carrément la fonction void(). C’est une fonction qui ne fait rien, à part évaluer les arguments qu’on lui passe, ou quelque chose de ce genre. J’ai pas tout compris. En javascript, je suis pas champion. Mais on voit cette fonction dans certains sites web. Passez votre curseur de souris sur un lien un peu bizarre et vous verrez, dans la barre d’état de votre navigateur, le texte sybillin : « javascript:void() ». Merci gentil navigateur, tout le monde s’en fout.
Plus de blabla sur void dans l’inévitable (de chevet) lien kiwi-pédé (http:// fr.wikipedia.org/wiki/Void).
le mot-clé NULL
Toujours dans les langages de bourgeois, le mot-clé NULL est une valeur spécifique qu’on peut attribuer à un pointeur, pour dire qu’il ne pointe sur rien.
int *a = NULL;
Mais cette exemple n’est pas une expression de vide. « Ici, il n’y a rien ». Certes. Mais si y’avait quelque chose, on aurait quoi ? Un entier. On a explicitement précisé ce qu’on pourrait avoir à la place du vide.
Vous pensez à ce que pense ?
Oui ! Une levrette !!!
Mais non bande de petits cochons. Et si on combinait les deux ?
void *p = NULL;
Surprise !!! Voici l’expression du vide dans son excellence. « Ici, il n’y a rien. Ce qu’on pourrait avoir à la place, c’est tout et n’importe quoi. »
Dirigeons-nous maintenant vers un autre langage. Un qu’est pas pour les bourgeois. Un qu’est pour les anarcho-patchworkistes : le PHP.
Eh bien figurez-vous qu’en PHP, toutes les variables valent initialement NULL. Même celles qu’on n’a pas définies. Il s’agit d’une confusion entre l’expression du vide et l’indéfini. « Il n’y a rien ici » s’énonce de la même manière que : « je n’ai encore rien dit à propos de ici ». Je trouve cela étrange, voire carrément stupide.
Re kiwi-pédé (http:// fr.wikipedia.org/wiki/NULL).
D’autre part, dans ce joyeux langage de petits enfants innocents qu’est le Pascal, NULL se dit « nil », mais on l’utilise de la même manière que le NULL du C. Dans d’autres langages que je ne connais pas, on dit « null », en minuscunulles.
L’expression du vide dans les systèmes de fichiers
Un système de fichier n’est pas vraiment un langage de programmation. Mais ce que je vous propose ici est un petit paragraphe interludaire.
Dans un système de fichier, l’expression du vide, c’est tout simplement un fichier vide. 0 octets. Paf. Mais il y a plus rigolo. Il existe le « trou noir », qui absorbe tout ce qui s’en approche.
Le trou noir est un fichier symbolique, c’est à dire un truc qui se comporte plus ou moins comme un fichier, mais qui, physiquement, ne stocke pas d’octets sur le disque dur. Le trou noir fait disparaître tout ce qu’on écrit dedans. Il sert à balancer à la poubelle du blabla de sortie (standard ou erreur) dont on n’aurait rien à foutre.
Dans le monde Unix, ce fichier est situé à l’emplacement /dev/null. Chez Windows, il s’appelle plus simplement NUL.
En guise de dernier soubresaut interludaire, je mentionnerais le fichier Windows CON, permettant de rediriger du blabla de sortie vers la console. Alors, votre Windows, il est NUL ou il est CON ? Ha ha ha.
Le Perl
Perl, au même titre que le PHP, est un langage de programmation pour anarcho-patchworkistes. Mais à tendance hyéroglyphoïdale.
Dans ce langage, point de null ni de void, mais la possibilité d’indéfinir des variables. Ça donne quelque chose de ce style :
$a = undef;
#ou bien :
undef($a);
if (defined $a) { ... }
Et ça peut permettre de virer les éléments d’un tableau. (Ou pas, car y’a aussi l’instruction « delete » pour ça). Enfin j’y connais rien, et je m’en fous total du Perl. C’est un langage moche et incompréhensible.
On y retrouve, à priori, la même confusion entre le vide et l’indéfini. D’où le côté anarcho-patchworkiste.
Le Lisp :
Il s’agit d’un langage d’une étrange pureté. Mon collègue penseur, l’éminent geekologue Randall Munroe, de l’université blogalienne de xkcd, nous précise collégialement que ce pourrait être le langage qu’a utilisé Dieu pour coder le monde réel (http:// xkcd.com/224/). Ce n’est pas mon avis, mais ce n’est pas le sujet.
LISP signifie LISt Processing : la plupart des actions se font donc avec des listes. La valeur booléenne True s’écrit simplement « T ». La valeur False s’écrit « NIL ». Sauf que NIL signifie également : « une liste vide ».
L’opérateur « null » permet de savoir si quelque chose est NIL ou pas. (null A) renvoie T si A est vide, et renvoie NIL si A n’est pas vide.
Le Lisp comporte également l’ultra-classique opérateur « not » (inversion d’un booléen). (not A) renvoie T si A est faux, et renvoie NIL si A n’est pas faux.
Or, comme « liste vide » = « faux », on s’aperçoit que les opérateurs « null » et « not » effectuent exactement la même chose. C’est pas rigolo ça ? Dans le moteur d’interprétation du Lisp, ça pointe sur le même code. Moi je trouve ça super.
D’autre part, nous avons ici un contre-exemple de ce que je disais au début. L’expression du vide se fait par le biais d’une valeur spécifique d’une variable ayant un type spécifique.
Interlude : Ø
Le langage mathématique est presque un langage de programmation, bien qu’il manipule des valeurs sorties de mon cul, tel que Pi ou e. Il possède lui aussi son expression du vide. Il s’agit de l’ensemble vide : Ø. Un O barré.
L’origine de ce symbole nous vient de la Grèce antique (à l’époque où le pays avait encore de l’argent). Il représente le cul cousu de Pythagore, qui refusait de se faire enculer par ses amis. Pourtant ils étaient grecs.
Et puisqu’on parle de cul et que c’est interlude :
Et sinon, dans les langages de programmation qui veulent simuler des trucs de matheux, on trouve la valeur NaN (Not A Number). C’est pas tout à fait le vide, puisque c’est « du vide qui aurait pu être un nombre », mais c’est fun quand même. Pour l’obtenir, rien de plus simple : une bonne vieille division par 0 de la mort.
Nan-Nan-Nan-nanère (http:// fr.wikipedia.org/wiki/NaN)
Visual Basic
Je l’ai déjà dit dans une autre vie (vous étiez pas encore là) : le Visual Basic est à la programmation ce que la vulvovaginite est à la sexualité : un truc vraiment sale.
Ce fabuleux langage posède une foultitude de mots rigolos. Ça ne sert pas à grand chose, mais qu’est-ce qu’on s’amuse !
Nothing est l’expression du vide, mais seulement pour les variables objet. (Donc pas totalement une expression de vide). À noter qu’on ne peut pas tester la condition « If machin = Nothing ». Il faut tester « If machin is Nothing ». Pourquoi ? On ne sait pas trop.
Le mot Empty est l’expression du vide, pour le type Variant. C’est à dire le type « tout et n’importe quoi ». On a donc là une expression de vide assez complète. Cependant, Empty est considéré comme égal à 0, ainsi que égal à une chaîne vide. Bizarre, oui.
Toujours pour un Variant, le mot Null est l’expression de l’inconnu (pas du vide). Le Null n’est pas considéré comme égal à 0, ni à une chaîne vide, ni à Empty, ni même à un autre Null. Là encore, il faut tester « If machin is Null ».
Le mot Missing permet juste de savoir si un paramètre optionnel a été passé à une fonction, ou pas. Enfin que pour les Variant. Sinon, on a la valeur par défaut du paramètre selon son type.
Je ne trouve pas d’explication à tout cela.
Mais il y a plus de détails par ici (http:// allenbrowne.com/vba-NothingEmpty.html).
Les types nullables
Restons chez Microsoft, avec leur vision, toujours aussi folklorique, de la programmation. On nous y propose une petite curiosité assez saugrenue : le type que-on-a-clairement-défini-lequel-c-etait-sauf-que-en-fait-il-peut-être-nul.
Ça donne ça :
//Déclaration
int? blorp = 5;
// On peut assigner null, ou une valeur numérique
// à la variable blorp
blorp = 4;
blorp = null;
// blarg = blorp, sauf si blarg est null,
// auquel cas blarg = -1.
int blarg = blorp ?? -1
Pourquoi pas. Ça peut servir…
BrainFuck
Ce langage est trop simple, et ne permet pas d’exprimer le vide.
Le Korn shell, et autres langages de script moches
À ma connaissance, on ne peut pas non plus exprimer le vide avec ces trucs moches. En fait, toutes les variables sont des chaînes de caractères. Lorsque l’une d’elle est vide ou indéfinie, c’est une chaîne vide, tout simplement. Ce qui peut amener des tas de situations bien marrantes.
Exemple. Instruction de copie de fichier, à laquelle on passe des variables en paramètre :
cp ${SOURCE} ${DESTINATION} ${OPTION}
Outre le fait qu’il faille écrire trois caractères inutiles et moches chaque fois qu’on veut mentionner une variable, on constate ici un truc marrant. Si on a oublié de définir DESTINATION, l’interpréteur le remplace par une chaîne vide, mais aucune erreur ne sera détectée. Le shell de merde va donc stupidement décaler les paramètres. On se retrouvera à copier un fichier vers ${OPTION}, et non vers ${DESTINATION}. N’oubliez pas de nettoyer le bordel que vous aurez foutu sur le disque après tout ça.
Le python
Comme vous le savez, le python est le meilleur langage du monde entier. On peut même programmer des jeux vidéos avec.
On peut y exprimer le vide de manière simple et explicite : le mot-clé None.
Une variable non définie ne vaut pas None. Elle est explicitement pas définie, et provoque une erreur lorsqu’on essaie de l’utiliser quelque part.
Le python est un langage fortement typé. Ça a pas l’air comme ça, parce qu’on peut affecter n’importe quoi à n’importe quelle variable n’importe quand. Mais lorsqu’une affectation est faite, le type est déterminé, c’est celui là et pas un autre, bordel. (Enfin… jusqu’à la prochaine affectation).
Ah oui ? mais alors, quel est donc le type de ce fameux None ? Ouvrons une console python et jouons un peu :
a = 5
type(a)
La console répond : <type ‘int’>
Le type de a est un numérique entier. Ces valeurs possibles sont : 0, 1, 2, -1, -2, … C’est super.
a = None
type(a)
La console répond : <type ‘NoneType’>
Le type de a est ‘NoneType’. Lorsqu’une variable est de ce type, sa seule valeur possible est ‘None’. Rigolo non ? Je crois même que c’est une espèce d’astuce pour se débarrasser d’un défaut de la théorie des types. La valeur vide est censée être de tous les types en même temps, et c’est un peu gênant. Bon enfin je dis ça, c’est juste pour faire mon malin parce que j’ai fait semblant de lire un article de Wikipédia que je me souviens même plus lequel c’est.
Tiens, pendant qu’on y est :
type(type(a))
ça répond : <type ‘type’>
type(type(type(a)))
ça répond aussi : <type ‘type’>
Les définitions de type : <type ‘int’>, <type ‘NoneType’>, etc. sont des valeurs, au même titre que 5, ou que None. Le type de ces valeurs est « type de valeur ».
« type de valeur » est également une définition de type, donc une valeur. Le type de la valeur « type de valeur » est « type de valeur ». Ha ha ! BOUCLE INFINIE OF THE DEATH !!!
Comme en Visual Beurk-hic, une comparaison avec None doit se faire sous la forme « machin is None », et non pas « machin == None ». La différence, c’est qu’en python on est un peu plus libre. Les deux fonctionnent.
Le == None est conventionnellement bizarre, et un peu dangereux dans des cas tordus. Parce qu’on peut surcharger l’opérateur « == », et donc créer une putain de classe qui renverrait True lorsqu’on la compare à None. Tandis que le « is » n’est pas surchargeable. C’est une comparaison d’identité brut, et non pas d’égalité de valeur. Et donc euh… Ben c’est mieux comme ça. (Interdit de dire que mes explications ne sont pas claires).
Et de toutes façons : « on n’est pas égal au vide. On EST le vide. »
Voici du blabla fun à ce sujet (http:// jaredgrubb.blogspot.com/2009/04/python-is-none-vs-none.html).
Ne rien faire, ça c’est la vie
Le vide peut s’exprimer par l’absence d’objet, mais aussi par l’absence d’action. On peut dire, explicitement : « Là, je ne fais rien ».
Comme j’ai envie de me coucher, on va faire court.
En langage machine, il existe l’instruction NOP (No Operation Performed). Selon les microprocesseurs, on peut avoir un code spécifique pour ça. En général 0, ou une valeur hexadécimale qui tombe juste. Dans le cas contraire, on a recours à une instruction normale, qu’on utilise avec des paramètres à la con, de façon que rien ne soit fait. Par exemple, le code 0x90, sur les processeurs x86, permet d’échanger le registre EAX avec le registre EAX. Whizzz !!
Tiens à propos de Whizzz, pour indiquer un NOP, on utilise parfois le mot-clé xyzzy. Mais là je ne saurais rien vous dire de plus que ce que j’irais pomper dans wikipedia. Donc allez-y direct.
Dans les langages de programmation de plus haut niveau, l’inaction peut également être exprimée, mais ce que je propose là est une vision des choses ‘ » ‘capillotractée’ » ‘.
- Le point-virgule tout seul, dans les langages de bourgeois où les fins de lignes doivent comporter un point-virgule.
- { }. C’est à dire un début de bloc de code, immédiatement suivi de la fin du bloc de code.
- En Pascal, un « begin » immédatement suivi d’un « end ».
En python, on est beaucoup plus classe et plus explicite que cela, puisqu’il existe l’instruction pass, qui ne fait rien. Pourquoi en avoir besoin, alors que c’est un langage pas-machine ?
L’indentation a une signification en python. Or, on est obligé de mettre au moins une ligne de code, indentée, après un début de bloc « if », « while », ou autre. Si on ne veut rien y mettre, on doit explicitement mettre pass.
Le python est un putain de langage trop bien. Mais vous le saviez déjà.
Conclusion :
Un jour, on m’a reproché de parler pour ne rien dire. Et je me suis dit que c’est surtout le reproche lui-même qui était du « parler pour ne rien dire ». Après, j’ai dit que je ne dirais plus rien à ces reprochateurs. Comme ça le problème a été réglé.
Je suis content de voir que vous avez lu jusque là ! D’ailleurs, peut-être avez-vous carrément lu jusqu’ici ? Ou là ? Bon, y’a qu’ à dire « là-bas ». Ça vous va ?
Le prochain article sera corporate et purgatif. Je baverais sur les anciennes boîte pour lesquelles j’ai bossé comme un con.
Source des images.
Gordon Freeman.
http://cur.lv/3tl8q
http ://jfury.deviantart.com/art/Gordon-Freeman-from-Half-Life-84905659?q=1&qo=1
C’est quand même un chercheur en scientifies qui maîtrise parfaitement l’arbalète à headshot et le pied de biche. À une lointaine époque, j’avais commencé la version solo du jeu. J’ai pas pu le finir parce que mon PC était tout pourri, j’avais un niveau de détail au minimum et une version de DirectX complètement paranoïaque. Ce qui fait que sous l’eau, je voyais que du bleu. (La transparence était pas gérée, ou quelque chose comme ça). Donc j’ai été bloqué au premier passage sous l’eau, et je me suis alors lancé dans Mystic Quest, sur émulateur Super NES.
La carotte géante.
http://cur.lv/3tl8r
http ://www .magnoliavoice.com/2011/04/24/thats-one-big-carrot/
Ouais, c’est une putain de carotte. Tens ça me fait penser que je ne joue plus trop à Hammerfest. Ah, il y a tellement de choses à découvrir dans ce monde. Je suis dans Osmos, là.
Raymond Devos.
http://cur.lv/3tl8s
http ://le-monde-selon-fernand.com/mesdames-et-messieurs-je-vais-parler-pour-ne-rien-dire
Tout le monde dit que Raymond Devos est génial. Ça fait cultivé, ça fait « mec qui se souvient de ce qu’il y avait avant », ça fait « mec qui maîtrise la langue française ». Cette technique est trop facile pour moi. Alors juste pour faire chier les intellos : « J’EMMERDE RAYMOND DEVOS, C’EST UN BOUT DE GRAS MORT, ET VIVE FRANK DUBOSC ! »
Wing Commander.
http://cur.lv/3tl8t
http ://www .emuviews.com/reviews/reviews-256.html
La référence avec le vide est un peu lointaine. Dans ce jeu, on combat parfois des boss kilrathis. C’était des vaisseaux comme les autres, mais avec une I.A. un peu différente. Et si je me souviens bien, y’a un boss qui s’appelait Dakkath, et quand on le butait, il s’écriait dans la radio « The void ! The void ! ». C’était un chouette jeu. Parmi les copilotes, y’avait une française : Angel Devereaux. Et moi je m’étais imaginé qu’elle existerait en vrai et que ce serait ma copine. Et ça aurait été la classe, j’aurais été respecté de mes camarades. Ouais, mes années collèges ont vraiment été une vie de merde. Je vous passe les détails.
Edit 2013-09-23 : Elle s’appelait Jeannette Devereaux, et son pseudonyme de pilotesse militaire c’était Angel. Toutes mes excuses pour cette approximation historique que j’ai commise.
Graffiti « void ».
http://cur.lv/3tl8u
http ://www .coderenaissance.com/2011/02/javascripts-void-operator-explained.html
Tout y est : la flèche vers le vide. Les petites étoiles qui gravitent autour. Je trouve ça assez rassurant que des super-geekeries de ce genre parviennent de temps en temps à s’extrader dans le monde réel.
Monique, en instance de doggy style.
http://cur.lv/3tl8v
http ://www .missbbw.com/blog/2007/09/
Les gonzesses qui mettent leur photos d’elles à poil sur internet, elles devraient utiliser soit un pseudo totalement original, soit un nom et un prénom. Quand on n’a qu’un prénom, c’est super chiant pour faire des recherches d’images. Là par exemple, Monique, y’a une autre femme ronde avec des super-nichons qu’a le même prénom. (J’ai déjà mis des photos d’elle ici ou là). C’est super pas pratique. Sérieux, faudrait une espèce d’O.N.G. qui metterait en place une convention sur le sujet.
Une carte de Yu-Gi-Oh : Null and Void.
http://cur.lv/3tl8w
http ://yugioh.wikia.com/wiki/Null_and_Void
Je connais pas bien ce jeu de cartes. Je me suis arrêté au Magic, comme la plupart d’un tas de gens. J’ai un Dakkon Blackblade, si ça intéresse quelqu’un. (Gold, impossible à poser, mais tellement classe).
Un bateau sur le Nil.
http://cur.lv/3tl8x
http ://lesregionsdumonde.free.fr/afriquenord.html
On dirait une trireme dans Civilization. Faut peut-être que j’arrête de tout ramener aux jeux vidéos ? Oh et puis non.
Un clown qui jongle.
http://cur.lv/3tl8y
http ://www .humourworks.com.au/clown/index.html
Je sais plus où, y’a un site d’un mec qui a essayé de définir un langage pour décrire les différentes types de jonglage. C’était avec des chiffres, chaque balle ayant un numéro. Et après fallait identifier les mains. Et voilà. Une idée bizarre et totalement inutile. Mais j’aime beaucoup. J’aime bien inventer des langages et des données pour modéliser des trucs, quels qu’ils soient. Vous ais-je parlé de mon idée d’expression régulière en 2 dimensions ? Non ? Un jour je le ferais.
Le chat noir.
http://cur.lv/3tl8z
http ://s13.zetaboards.com/koeiwarriors/single/?p=8531227&t=6694920
De même qu’on peut se demander si un arbre qui tombe tout seul dans la forêt fait du bruit ou pas. On peut aussi se demander si un chat noir porte malheur ou pas lorsqu’il est dans l’obscurité. Sans parler des daltoniens.
Des perles en caca.
http://cur.lv/3tl90
http ://bijoucontemporain.unblog.fr/2010/06/23/se-jouer-des-corps-pour-se-parer-de-liberte-du-bijou-contemporain-comme-espace-de-normativite-alexandre-klein/
Lorsqu’on voit que des gens font des bijoux avec du caca, on est en droit de se demander dans quel monde on vit. Puis, lorsqu’on regarde le langage Perl, et sa syntaxe génératrice de déchets, on se dit que « ah non, c’est ok, c’est pas le monde, c’est juste moi qui doit pas être encore tout à fait habitué ».
Perceval.
http://cur.lv/3tl91
http ://gios-airsoft.fr/forums/viewtopic.php?f=7&t=172&start=10#p3685
Ouais ! Perceval ! Ca c’est un mec bien. Autre chose que ce boulet de Raymond Devos. Et lui au moins, il est vivant ! Et ses propos sont, eux aussi, une « fête du langage ».
Lady Seductress.
http://cur.lv/3tl92
http ://www .myproviderguide.com/escorts/central-jersey/free-posts/bdsm/3446199_you-will-love-what-i-do-bbw-se.html
La nouvelle-nouvelle égérie de mon blog. En ce moment, je renouvelle mon cheptel avec le site bbwlover.net. Franchement je vous le conseille. Y’a « énormément » de vidéos gratuites, à télécharger chez soi pour une/des utilisations ultérieures. Allez-y et profitez-en, j’ai peur qu’un jour ou l’autre il soit désoxyribé.
Le loup qui divise par zéro.
http://cur.lv/3tl93
http ://troll.me/divide-by-zero-then-divide-that-by-zero/
Bon, ben c’est le meme du moment. Une image moche, un fond moche qui fait wouuuf, et un texte débile. Lorsque je vois tous ces memes, je me demande quelle est la tendance naturelle de l’esprit humain (le bien ? le mal ? Non. Juste des phrases rigolotes, ça suffit).
Dawn Perignon et du chocolat.
http://cur.lv/3tl94
http ://femmes-grosses-bbw.erog.fr/categorie-11128494.html
Dawn Perignon, vous connaissez déjà. Le chocolat aussi, donc tout va bien. Le site que je mentionne ici est particulièrement moche et mal foutu. Et il y a une fausse protection pourrie pour empêcher de récupérer les images. (Le clic droit marche pas). Ca m’a toujours fait marrer ça. Ils ont pas compris les concepteurs de site qu’on peut faire un print-screen, et fap fap. Faut vivre avec son temps les jeunes ! Et le temps, c’est du fap fap.
Nullable object et blablabla.
http://cur.lv/3trpa
http ://www .zazzle.fr/dr_dotnetsky_objet_de_nullable_doit_avoir_un_va_tshirt-235208845298841727
Edit 2013-09-29 : Lien mort. Alors j’en ai mis un autre. Et du coup c’est pas l’image « pur », mais l’image déformé par le fait qu’elle soit sur un T-shirt de geek. Ce n’est pas grave, le commentaire que j’avais mis à son sujet n’en est qu’encore plus vrai.
Bon, c’est un truc à mettre sur un T-shirt. Les blagues de geek sur les T-shirts, moi je veux bien. Après, on les comprend ou pas, elles sont drôles ou pas, on s’en fout. Mais une blague en .NET, non merci ! Comme si le .NET était un truc de geek ! Eh bien non. C’est un truc d’informaticien qu’a pas choisi de faire ce métier, un truc de gamin de 12 ans qui veut être informaticien mais qui le sera jamais car il devra choisir un autre métier, un truc de commercial/marketeux, un truc de blogueur microsoftien qui essaie de gagner de « l’influence » en alimentant la « base de connaissance » des produits « de la firme de Redmond », mais c’est pas un truc de geek. (Microsoft c’est bien à Redmond qu’ils sont ? Oh on s’en branle).
My brain is full of fuck.
http://cur.lv/3tl96
http ://soundcloud.com/despise-byte/brain-fuck-mix
Une gargouille désèspéré. Ah putain, j’ai jamais pu bléré le mot « déséspéré ». On sait jamais ou foutre les accents et ou pas les foutre. C’est comme « expérience » qui se prononce « éxpèrience » mais qui s’écrit « expérience ». Ou « exécuter ». Putain de langue française de merde ! Je m’en vais vous créer un alphabet avec 0 accents, et une seule lettre, et y’aura plus aucune faute d’orthographe possible. Non mais.
Ghost in the shell
http://cur.lv/3tl97
http ://zabimaru-manga.allmyblog.com/1143-ghost-in-the-shell.html
Donc là y’a des nichons, on sait pas pourquoi, on sait pas ce que ça fout là. Je l’ai vu y’a longtemps Ghost in the Shell, en film-dessin-animé, pas en manga. J’en ai rien retenu, car j’ai rien compris. Mais c’est les japonais. Ils ont tous les droits. Et ils aiment bien les nichons qui bougent, donc tout va bien.
Une nonne qui montre ses seins.
http://cur.lv/3tl98
http ://www .forum-auto.com/les-clubs/section7/sujet389850-8890.htm#t18443572
Ca me fait penser à une fille que j’essayais de draguer en terminale. C’était le début de l’année, on se connaissait pas trop, je me disais que j’avais ma chance. Et une fois, après lui avoir parlé un peu, je suis rentré chez moi, et j’ai croisé des nonnes dans une 2 chevaux. Je me suis dit que c’était surement un signe mystique, et que cette fille, elle allait devenir ma copine et on partirait ensemble à la conquête de l’univers et à la découverte de l’amour. Puis la fille a changé de lycée. Heureusement que je n’ai jamais recroisé les nonnes sinon je les aurais tuées.
Poil dans la main.
http://cur.lv/3tl99
http ://blog.aufeminin.com/blog/seeone_102736_8791105/Chocoreve/le-poil-dans-la-main
Bon c’est une jolie image. Mais les conneries que j’ai raconté dans l’image précédente, par association d’idée, m’ont fait penser à une autre fille que j’aurais peut être pu embrasser pendant le lycée, mais c’était la copine d’un pote. Par respect, j’ai pas voulu le faire. Alors que le pote en question il s’en foutait complètement et ça devait être la quarantième nana qu’il se tapait. Et par association d’idée ça m’a fait penser à la soirée raclette que j’avais organisé chez moi, toujours pendant le lycée. Ca a été génial, tout le monde a gerbé sur la moquette ou dans les plantes. Je me suis fait engueuler par mes parents. Y’avait des bouteilles d’alcool partout. Un gamin de 14-15 ans qui gerbait dans le lavabo. Ca valait le coup. Je regrette pas d’avoir organisé cette soirée, car, donc, j’y avais failli rouler une pelle à une fille. Et elle était restée dans mes bras pendant au moins 30 secondes. Ouais, en fait ma vie était pas si merdique. Hein ? Allez, dites moi que oui qu’elle était pas si merdique !
Boîte de jeu de la Colossal Cave Adventure.
http://cur.lv/3tl9a
http ://www .gametronik.com/site/fiche/commodore_c64/Colossal%20Cave%20Adventure/
J’y ai jamais joué. C’est un jeu d’aventure en mode texte. Hey, j’ai pas connu ça moi. Je suis pas vieux à ce point, non mais !
Un piton rocheux.
http://cur.lv/3tl9b
http ://www .linternaute.com/voyage/Photo/2006/thailande/10.shtml
Tiens ça me fait penser à une québecoise que j’ai connu. Avec son accent bizarre, elle disait « piton » au lieu de « bouton ». Mais j’ai pas essayé de la draguer elle. Ouais, pour en revenir à ce que je disais tout à l’heure. Euh… Non en fait non. Je vais m’arrêter pour l’instant. Je dois en garder pour plus tard, de mes histoires cafardeuses. Mais c’est rigolo de pouvoir raconter n’importe quoi ici. C’est clairement pas la même ligne éditoriale que les articles « frontaux », mais ça reste des histoires. Intéressantes ou pas, là n’est pas la question.
>fun fact : le pointeur « void * » est le seul moyen, en C, d’obtenir l’adresse mémoire d’une fonction.
mmh ça fait longtemps que t’as pas fait de C on dirait:
tu peux déclarer un pointeur sur une fonction sans argument retournant un ‘int’:
int (*pfn)(void);
et après:
pfn = &fonction_a_la_con;
ou:
pfn = fonction_a_la_con; /* conversion auto en pointeur de fonction */
ou en encore mieux si tu veux exécuter une adresse arbitraire en tant que fonction sans argument retournant un ‘int’ :
int main (void)
{
return ((int (*)(void))42) ();
}
(chez moi à l’éxécution ça donne ‘Erreur de segmentation’ )
Merci pour ces compléments programmatoires, mon cher Pudbou.
Effectivement, ça fait un certain temps que j’ai pas fait de C. Je connaissais pas tous ces trucs bizarres. Ca me conforte dans l’idée que C’est quand même assez moche comme langage.
Mais je suppose que son existence est nécessaire, par exemple lorsqu’il faut programmer un interpréteur python avec des performances correctes.
Je te laisse, faut que je relise et que j’envoie le résumé du mariage de Robert et Maraude.
là, j’aimerais bien dire quelque chose de bien, mais ça vient pas, désolé, pourtant je pousse.
à plus !
Poussez plus fort, Madame ! Je vois sa tête !
Oooh magnifique, c’est un labrador de 25 kilos !
Merci tout de même pour ton commentaire plein de vide, qui est donc totalement à propos avec mon article.
A plus.aussi !
Zénon et non the null,
Ah oui, les paradoxes de Zénon, ça me dit quelque chose.
Ton blog est classe, j’y suis allé, j’ai pas tout compris, faudra que j’y retourne.
Pingback: Introduction à une introduction à la karmagraphie | Réchèr : le Grand Tout
Pour être précis, en PHP une variable non définie est non définie, elle n’est pas NULL (un appel lèvera une erreur warning).
Après, PHP essayant toujours de caster ses variables dans un truc jusqu’à en trouver un logique, ça se transforme en NULL.
Par ailleurs, il est bien possible de vérifier qu’on est fasse à du vide, avec isset($variable) qui vérifie que la variable $variable est définie !
Avec !isset() on vérifie donc qu’il n’y à rien ! Et une valeur NULL, 0, false ou encore un tableau/une chaine vide ne valident pas !isset() !
Merci pour cette précision, monsieur le masque manchoté !
Je me suis récemment mis au PHP, dans le cadre de mon Travail (avec un T majuscule corporate bien couillu). C’est plein de tâches comme langage, mais on s’y fait.
À bientôt pour de nouvelles aventures.