Affichage des articles dont le libellé est Informatique. Afficher tous les articles
Affichage des articles dont le libellé est Informatique. Afficher tous les articles

vendredi 6 mars 2009

session_start()

A poem.

Would you be my if, so I'd be your else
And while between brackets we do
array_join in $love ; array_merge($our_cells)
for we can never break; && we can only be True
We db_connect() with no exception
My body without yours looses its head's control flow
Our line will overflow without a semicolon
'Cause if (I'm not in your switch()) { I'll die() with no echo ; }
I'll try and catch you even if you display:none;
'Cause you're the RegExp() that tests True my DOM...

mercredi 11 février 2009

while ($programmation === $relations) {

J'ai réfléchi sur une manière de parler de relations de couples en faisant référence à des langages de programmation, parce que je m'ennuie dans les meetings. Voici donc mes trouvailles, en ordre alphabétique et du point de vue exclusif du mâle :

ASP : Abnormal Sex Providing
Se dit dans le cas d'une relation avec une maîtresse avec qui on partage des expériences sexuelles inusitées, des fétiches, etc.

C+ : Costs More
Se dit d'une relation avec une femme qui prend son homme pour un portefeuille. C'est un protocole qui peut aller très loin, mais qui est très complexe à entretenir.

CSS : Constant Sex Situation
Une blonde, une copine, une petite amie, un couple. Un bon CSS fait que tout dans la vie paraît beau et ergonomique, et impressionne les gens. Un CSS pauvre aura une allure désordonnée et laide et ne s'adaptera pas à toutes les situations.

HTML
: Hoe's Towards Maternity Language
Adaptation du langage d'un futur père à partir du moment où sa conjointe tombe enceinte. Une variante, le XHTML, peut venir ajouter des détails importants après l'accouchement. Souvent, c'est considéré comme un langage de base, car bien des femmes ne considéreront même pas un homme inepte à l'apprendre.

JS
: Just Sex
Relation communément appelée Fuck-Friends en France. C'est un protocole très simple et très rapide, mais qui s'adapte mal et recquiert souvent plusieurs versions complètement différentes pour contourner les bogues.

PERL
: Protocol of Ending Regrettable Lingering
Protocole complexe visant à terminer une relation qui aurait dû finir il y a déjà longtemps. Langage subtil et complet, les variations sont presque infinies, mais il est très facile à faire crasher.

PHP
: Perfect Hoe Protocol
Protocole encore plus complexe visant à draguer une femme à la fois jolie, intelligente et fine fine fine. C'est un protocole dont la théorie est simple, mais la pratique est infiniment compliquée. L'avantage, c'est qu'un expert dans ce langage est très souvent versatile dans tout le reste de sa vie. À noter, une forme de PHP, qu'on dit "object-oriented" ou "orientée objet", est excessivement plus compliquée à apprendre et à appliquer, mais à la longue fait gagner un temps précieux.

SQL
: Sex-Qualifying Language
Langage traçant le chemin le plus court possible entre le lieu de rencontre et le lit. Souvent et préférablement accompagné de PHP.

UNIX
: U N I Expire (You and I Expire)
Langage archaïque pour terminer une relation ; plusieurs ont aujourd'hui adopté le PERL, qui est beaucoup plus subtil.

VBS
: Vascillating Babe Situation
Se dit d'une situation où une conjointe, blonde, whatever, décide successivement de terminer une relation, puis de revenir avec le même homme une semaine plus tard, et de recommencer. Ce langage a tendance à être récurrent et à tourner en rond, mais peut tout de même accomplir un bon travail en attendant de maîtriser un autre langage.

XML
: Extended Matrimonial Language
Adaptation de protocole faisant souvent suite à l'installation du logiciel Mariage. De nos jours, près d'un couple sur deux ne connaissent pas assez bien ce langage pour profiter de tous les avantages de l'application, et finissent par la désinstaller, convaincus qu'elle ne sert pas à grand-chose.

vendredi 30 janvier 2009

Le Computer Slang is my ƒ|2¡5|\|d !!!1

Je voudrais partager quelques définissions et faits intéressants.
D'abord, une source ab-so-lu-ment crédible et avec de l'emphase sur son extraordinaire talent pour les pâtes avec sauce soya et jus de citron, nous livre ses récentes découvertes concernant quelques termes informatiques qui sont en fait des acronymes savamment dissimulés :

B.U.G. : Blatant User Glitch ; se dit de quelque chose qu'on croit avoir été causé par un oubli, une mauvaise gestion ou une entourloupette de la part du programmeur, alors qu'étymologiquement, c'est la faute de l'utilisateur.
H.O.A.X. : Hebetudinous Ordeal of Aimless Xanda ; le produit d'un humain léthargique et manquant désespérément de vie mais qui se croit a) un hacker, ou b) drôle, ou c) toutes ces réponses. Et chaque personne qui passe au suivant partage la moitié de la faute originelle.
S.P.A.M. : Senseless Pillage of Anonymous Mails ; ben... violer sans raison un e-mail dont on ne connaît rien... Le nom le dit !
B.L.O.G. : Bloating League of Ordinary Gentlemen ; une collectivité de personnes très ordinaires qui écrivent des choses très ordinaires qui passent pour les meilleures blagues et/ou aventures du monde de luer point de vue et de celui de leurs amis.

Et maintenant, quelques autres définissions que je trouve bien amusantes :

Christmas Tree Packet : a packet with every single option set for whatever protocol is in use. Also known as a "Kamikaze" packet, nastygram, and lamp test segment.
- http://en.wikipedia.org/wiki/Christmas_tree_packet

Rain Dancing : any ceremonial action taken to correct a hardware problem, with the expectation that nothing will be accomplished. This especially applies to reseating printed circuit boards, reconnecting cables, etc. "I can't boot up the machine. We'll have to wait for Greg to do his rain dance."
- http://en.wikipedia.org/wiki/Rain_dancing#Hacker.27s_jargon

Scratch Monkey : a term used in hacker jargon, as in "Before testing or reconfiguring, always mount a scratch monkey", a proverb used to advise caution when dealing with irreplaceable data or devices. Used to refer to any scratch volume hooked to a computer during any risky operation as a replacement for some precious resource or data that might otherwise be destroyed.
- http://en.wikipedia.org/wiki/Scratch_monkey

I'm gonna sing the doom song now !

vendredi 23 janvier 2009

Analogie entre la bureaucratie moderne et un cours de programmation informatique

Dans le film L'Auberge Espagnole de Cédric Klapisch, Xavier, le protagoniste principal, dit au début quelque chose qui ressemble à : "Je ne comprends pas comment le monde est devenu un tel bordel."
Il va passer une entrevue, se présente au building d'une imposante entreprise économique dont les activités exactes restent vagues. Pour faire court, il s'adresse à la secrétaire à l'entrée, qui le redirige vers un autre bâtiment, où il est reçu par une autre secrétaire, qui lui indique le bon étage, où il rencontre une troisième secrétaire, qui lui fait traverser une bonne dizaine de couloirs bondés de portes de bureaux, avant d'arriver à l'officine qui les intéresse, où une autre secrétaire présente finalement Xavier à la personne qui lui fera passer son entrevue. Le tout en fast-motion pour nous éviter la demi-heure que ç'aurait réellement duré.
Bref, la maison qui rend fou.

J'ai concocté une anaglogie intéressante pour illustrer ce bordel et comment il est devenu ce qu'il est.

Je me rappelle mes cours de programmation au Cégep. On commence tout en douceur : en apprenant comment se faire afficher du texte à l'écran.

print "Hello World !"

Puis le cours suivant, on apprend à poser des conditions.

if ($x==1) { print "Hello World !" }

Puis on s'amuse à poser plusieurs conditions.

if ($x==1) { print "Hello World !" }
else if ($x==2) { print "Hola Mundo !" }
else if ($x==3) { print "Bonjour Monde !" }

Mais le cours d'après, on apprend qu'il est inutilement long de programmer de cette façon, on apprend donc des méthodes plus ergonomiques d'arriver au même résultat. On garde notre ancien code dans un coin pour ne pas l'oublier, on le met en commentaire pour le rendre inactif, et on rajoute à sa suite la réelle instruction.

switch ($x) {
case 1 : print "Hello World !"; break;
case 2 : print "Hola Mundo !"; break;
case 3 : print "Bonjour Monde !"; break;
}

Par la suite on apprend à gérer plusieurs variables, mais ultimement on se rend vite compte qu'il est nécessaire de les classer en tableaux. Ces tableaux se complexifient, deviennent dses tableaux dans des tableaux.

$x = array(
'chiffres' => array(
'premiers' => array('un','deux','trois','cinq','sept'),
'non-premiers' => array('quatre','six','huit','neuf'),
),
'fruits_legumes' => array(
'fruits' => array('pomme','banane','ananas','poire'),
'legumes' => array('concombre','carotte','patate'),
),
'mots_sans_rapport' => array(
'fbb' => array('foo','bar','baz'),
'autres' => array('blah','flih','zeek'),
),
);

Notez que je m'amuse.
Mais alors l'arrivée de ces nouvelles variables en tableaux nous oblige à revoir toutes nos conditions précédentes, qui doivent non plus aller chercher $x, mais $x[$category][$subtype]. Et à cette fin il faudra évidemment trouver un moyen de définir $category et $subtype, probablement par des formulaires qui se trouvent dans un autre fichier qui sera inclus à celui sur lequel on travaille.
Mais assez d'exemples. Je voulais que vous ayez une idée visuelle de l'évolution du code en complexité. Le fait est que comme on parle ici d'un cours pas à pas pour débutant, tout ce qui a été fait précédemment a été conservé quelque part, dans un coin où il ne dérangeait pas, même s'il était désormais parfaitement inutile. On va raboter des bouts de code les uns à la suite des autres, afin d'explorer les possibilités, et finalement à la fin de la session, on se retrouve avec un programme que certains motivés pourraient réécrire pour donner le même résultat en, environ, dix lignes de code. Cependant, le code ressemblerait un peu à ceci :

function display_content() {
global $section, $contenu;
if (isset($_GET['showImg']) && $_GET['showImg'] != '') {
print '‹div id="content" lang="fr-CA"›‹div class="displayImg"›‹img src="images/images/' . $section . '/' . $_GET['showImg'] . '.png" /›‹/div›';
} else if (file_exists($contenu)) {
$openFile = file($contenu);
foreach ($openFile as $line_num =› $line) { print format_line($line); }
} else {
include('contenu/error.php');
}
}

Avouez que ç'a l'air simple.

Pour revenir à mon propos principal, maintenant que je me suis bien amusé... Voici où en est la bureaucratie moderne, dans ma tête. Un bordel de rabotage de bouts de code. La fonction décrite ci-dessus, le gouvernement et les grandes compagnies sont bien capables de l'exécuter, mais en 60 lignes de code au lieu de dix. Parce que le code n'a pas été vérifié, optimisé, nettoyé.
On en est peut-être là, ou peut-être pas encore, mais on le sera ; au point où il faudra revoir les structures en place, et comprendre comment on peut arriver au même résultat avec six fois moins de commandes. Peut-être devrons-nous faire table rase et tout reprendre du début avec des connaissances plus avancées, ce qui irait logiquement plus vite mais ferait temporairement sombrer le monde dans un Dark Age dont personne ne veut. Ou alors, scénario plus probable, il nous faudra encore des siècles pour optimiser un petit bout de code à la fois jusqu'à obtenir un résultat raisonnable. Mais rendu là, un nouveau langage plus optimisé, plus puissant et plus solide aura fait son apparition.
Bref, on sera toujours dans la merde.

Il y a trois manières de voir les choses. Du plus chouette au plus décourageant, la liste va dans cet ordre : l'optimisme, le pessimisme, et le réalisme.