LinuxFr.org organise un grand concours de fin d’année pour tous les codeurs fous avec des cadeaux pour Noël.
La fin d’année est une période calme pour la plupart d’entre nous, animée par l’esprit de fête et propice à la détente. Dans ce cadre idyllique, LinuxFr.org lance le concours des jeux de mots . Chacun choisit ses armes — son langage de programmation — et use et abuse des notations et syntaxes pour notre plus grande joie.
Fais bouillir ton cerveau. Allez, c’est parti ! ᕕ(ᐛ)ᕗ
Origine du concours
Initialement, ce concours faisait partie de la dépêche du calendrier de l’Avent du C++. Ce concours étaient illustré par deux filles nerds s’exerçant avec les littéraux hexadécimaux du C++.
0xC0DE'B0F
0x1'B0L 0x2'CAFE
0xBaffe'B0B0'C00L
Puis, après publication, les auteurs de la dépêches ont eu l’impression de détourner les cadeaux de LinuxFr.org au bénéfice d’un seul langage de programmation et au détriment de la diversité du monde libre.
Alors, est venue l’idée de rectifier le tir et de permettre à tous de participer. Pas besoin d’être balaise sur un langage de programmation, il suffit juste d’être créatif. Ce concours est accessible au plus grand nombre.
Règlement
- écrire dans un commentaire de cette dépêche un code source valide dans le langage de programmation de son choix (script shell, SQL, Rust…) ;
- l’objectif de ce code source est d’user de la notation du langage pour réaliser des jeux de mots ;
- le code source doit être publié sous une licence libre de son choix (tu peux choisir parmi celle‐ci ou celles‐là (sauf celles avec clause NC ou ND) ou ici ou là ; et n’oublie pas de la mentionner dans ton commentaire, pas besoin de copier‐coller le long texte de la licence).
LinuxFr.org étant un site francophone, les jeux de mots en langue française seront appréciés. Aucune limite du nombre de réponse par personne, de la taille du code source, si ce n’est sur les limitations techniques de LinuxFr.org.
Exemples
Les jeux de mots peuvent utiliser le nom des variables, la forme des caractères, les symboles, les opérateurs…
La dépêche originale propose le jeu ce mot :
double w = 0xC0DE'2017.1CAFEp-1;
// CC BY-SA 4 Oliver H 2016
Gof a mentionné un jeu de mots présent dans le code source du noyau Linux :
static const long HV_LINUX_GUEST_ID_HI = 0xB16B00B5p0;
// GPL 2
D’ailleurs, ce jeu de mots a été à l’origine d’un troll bien nourri comme on les aime chez LinuxFr.org. Gof nous a aussi fait part d’un autre jeu de mots :
0xcacap1-pi
// CC0 Gof 2016
Oliver H. a répondu par un humour très provocateur, complété par un lien vers godbolt.org dont le code source retourne une valeur bien étrange :
#include <cstddef>
int main()
{
auto C = NULL;
auto avenir = C + + 17 + 0xC00L;
return avenir / 000'111;
}
// CC0 Oliver H 2016
D’autres jeux de mots ont été proposés, mais la licence n’a pas été mentionnée. Par respect de la convention de Berne, nous ne pouvons nous permettre de les reproduire ici.
Sauras‐tu relever le défi et gagner un cadeau ?
Récompenses
Les meilleures réponses seront sélectionnées parmi celles qui auront le plus de points « pertinents » et le moins de points « inutiles ».
Selon la qualité des jeux de mots, un ou plusieurs auteurs auront le privilège de gagner un livre de leur choix, parmi ceux des éditions suivantes :
- ENI, dans une limite de 40 euros T.T.C. ;
- Eyrolles, dans les collections : Informatique, Accès libre, Cahiers de l’admin, Cahiers du programmeur et Architecte logiciel.
Un CD Warmux remix et un DVD SupertuxKart seront également offerts par Libre games initiatives.
La réception des récompenses se fera par courrier électronique postal.
Sponsors
Merci à nos sponsors Libre games initiatives (papap), ENI et Eyrolles pour les nombreux livres gratuitement acheminés aux meilleurs contributeurs sur LinuxFr.org.
Libre Games Initiatives | Éditions ENI | Éditions Eyrolles |
Commentaires
Afin de mieux visualiser les réponses au concours, merci de ne pas trop remplir les commentaires avec d’autres sujets.
Aller plus loin
- Dépêche à l’origine du concours (379 clics)
# Je me lance !
Posté par Eiffel . Évalué à 3. Dernière modification le 19 décembre 2016 à 18:01.
Ça sera pas le meilleur mais c'est pour rebondir sur le code d'Olivier H :p
Concernant la licence ce sera WTFPL :p
[^] # Re: Je me lance !
Posté par Oliver (site web personnel) . Évalué à 1. Dernière modification le 19 décembre 2016 à 18:28.
Pas mal du tout, je rajouterai une petite contribution sur la dernière ligne : l'opérateur
-->
qui est valide en CPour info, l'opérateur
-->
veut dire "aller jusqu'à" :Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)
[^] # Re: Je me lance !
Posté par Eiffel . Évalué à 2. Dernière modification le 19 décembre 2016 à 18:32.
Merci ^^
Je me suis rendu compte qu'après coup que mes décalages ne servaient à rien puisque 0XF0 est interprété comme étant 0XF0 et pas 0XF0000000.
Concernant l'opérateur c'est un vrai opérateur ou la décrémentation (--) suivi d'un test (>) ?
[^] # Re: Je me lance !
Posté par Jehan (site web personnel, Mastodon) . Évalué à 2.
hmm… Je n'ai jamais vu cet opérateur. Bon ensuite je ne peux prétendre connaître les moindres subtilités du C. Par contre il serait en effet indistinguible de '--' suivi de '>' (puisque l'espace n'est pas obligatoire). Donc je doute vraiment qu'un tel op puisse exister.
Dans l'exemple donné, chaque test a simplement l'effet de bord de décrémenter la variable apres coup. Ça ne marche donc que pour un décompte. Un compte croissant devra utiliser '++ >'.
Ensuite je veux bien avoir tort et apprendre quelque chose aujourd'hui. Mais ça me paraîtrait vraiment étonnant que cet op existe. :p
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: Je me lance !
Posté par louiz’ (site web personnel) . Évalué à 3.
Non, c’est effectivement ça, c’est un « while (i-- > 100) » écrit d’une façon amusante qui fait ressembler à une flèche.
Ce n’est pas un opérateur spécial. D’ailleurs ça ne veut effectivement dire « aller jusqu’à » que si c’est dans un while, et que l’on y va en décrémentant la variable.
[^] # Re: Je me lance !
Posté par Oliver (site web personnel) . Évalué à 1. Dernière modification le 19 décembre 2016 à 20:15.
chuuuuuuuuut… faut pas l'dire que c'est une blague…
Car les blagues de "code source écrit bizarrement" sont exceptionnellement autorisées dans le cadre des jeux de mots de code source. Non ?
Vite vite, cliquons sur "inutile" pour faire disparaître ces messages ;-)
Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)
[^] # Re: Je me lance !
Posté par Kerro . Évalué à 2.
Cela implique que la décrémentation ait lieu avant la comparaison.
La norme indique que c'est garanti ?
[^] # Re: Je me lance !
Posté par Renault (site web personnel) . Évalué à 1.
Vu que c'est une décrémentation post fixée, je dirais que c'est fait après la comparaison.
Il en serait pour moi autrement si c'était préfixé (avec <-- par exemple).
[^] # Re: Je me lance !
Posté par Kerro . Évalué à 2.
Quelqu'un a moinssé, mais nous ne sommes pas plus avancés.
Je viens de vérifier rapidement : le post-incrément est garanti comme étant traité après une comparaison.
J'ai le souvenir que certaines opérations de pré/post-incrémentation/décrémentation n'ont pas d'ordre garanti.
[^] # Re: Je me lance !
Posté par lmg HS (site web personnel) . Évalué à 3.
Sauf dans
i-- > t[i]
. On ne sait pas qui sera évalué en premier:i--
out[i]
.Sinon, oui, le principe de la post-décrémentation, c'est de mettre de côté la valeur qui sera utilisée pour la suite et après de décrémenter la variable.
[^] # Re: Je me lance !
Posté par whity . Évalué à 2.
Dans le même genre, il y a aussi les opérateurs tadpoles, peu connus :). cf ici
Mes commentaires sont en wtfpl. Une licence sur les commentaires, sérieux ? o_0
[^] # Re: Je me lance !
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 5.
Opérateur têtards en français, si j'ai bien compris.
[^] # Re: Je me lance !
Posté par DerekSagan . Évalué à 5.
C'est beau tous ces mécanismes pour rendre le code plus lisible et plus maintenable :-)
Et puis c'est vrai que -~x c'est beaucoup plus rapide à écrire que x+1 clairement on y gagne.
[^] # Re: Je me lance !
Posté par Kerro . Évalué à 2.
L'intérêt du « tas de pole » est d'être l'équivalent de (x+1) dont avec les parenthèses. Donc c'est un poil plus rapide à écrire, mais surtout c'est fait pour rendre le code plus lisible et fiable.
C'est juste mon avis personnel, mais c'est totalement illisible et source d'erreurs. Donc ça tombe « un peu » à côté de l'objectif.
# Perl poetry
Posté par syj . Évalué à 8.
Pour ceux qui ne connaissent pas. Il y avait/a des fans de poésie avec Perl.
http://docstore.mik.ua/orelly/perl/prog3/ch27_02.htm
J'aime bien celui-ci:
sleep, close together,
sort of sin each spring & wait;
50% die
[^] # Re: Perl poetry
Posté par Eiffel . Évalué à 2.
J'avais lu que le créateur du langage avait écrit un poème en utilisant seulement les mots clefs du langage.
Malheureusement je ne le trouve plus sur wikipédia il faudra donc se contenter d'une image.
[^] # Re: Perl poetry
Posté par gipoisson . Évalué à 4.
Il y en a sous l'entrée Black Perl. La version française renvoie sur une URL externe, l'anglaise recopie le poème.
Tant qu'on y est, L.W. avait aussi participé à deux reprises à l'IOCC, en gagnant en 1986 le prix « en confusionnisme élégant » et en 1987 celui de « la plus pertinente obfuscation.» Le code de 1987 compile sans erreur avec les toutes dernières versions de GCC et CLANG. En entrée du programme, taper successivement des
unsigned int
pour écouter Virgile et Horace.Pour terminer, dans la catégorie poésie, crapuleuse cette fois-ci (Ne pas
Bash
er !), il y a :[^] # Re: Perl poetry
Posté par srb (site web personnel) . Évalué à 3.
J'ai testé l'idée d'une succession de commandes shell :
which 'kill cat' 'kill man'
more man; less tree & awk
en CC0, au cas où ça inspire d'autres personnes.
# Langage d'interrogation de Google : suivez les liens
Posté par gipoisson . Évalué à -2. Dernière modification le 20 décembre 2016 à 10:22.
https://google.com/search?hl=fr&q=r%C3%A9cursivit%C3%A9
https://www.google.com/?hl=en#hl=en&q=answer+to+life+the+universe+and+everything
Edit. Licence : WTFPL
# content: 'de rien'
Posté par rdhlnn . Évalué à 2.
[^] # Re: content: 'de rien'
Posté par rdhlnn . Évalué à 3.
J'oubliais… Zéro la licence, forcément
# Using the force, Luke
Posté par serge_sans_paille (site web personnel) . Évalué à 10.
sous CC BY-SA 4
# Saving Nature With Gambas
Posté par Fabien Bodard . Évalué à 2. Dernière modification le 24 décembre 2016 à 10:11.
Licence WTFPL :-)
[^] # Re: Saving Nature With Gambas
Posté par Fabien Bodard . Évalué à 3.
Petite erreur de synthaxe.
Toujours Licence WTFPL :-)
# Divers Hors Sujet du concours
Posté par ghusson (site web personnel) . Évalué à 2. Dernière modification le 01 janvier 2017 à 23:20.
D'une professeur (donc de sexe féminin) de C en école d'ingé… véridique, involontaire et inopiné :
"Il n'est pas très aisé de travailler avec un String !"
=> LOL, repris par le canard de l'école, mythique :-)
Sinon, essayez de représenter 132 en binaire sur vos main (et oui, on peut compter jusque 1023 avec 10 doigts)… Il y a seulement 10 types de personnes dans le monde, tout ça… Et bonne année 2017 au passage ! :-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.