MySQL : mémo perso : Requête qui sélectionne tous les clients ayant choisi une formule surprimée

SELECT IP.ID AS IDPROPOSANT,
IP.NOM AS NOM,IP.PRENOM AS PRENOM,
IE.ID AS IDEMPRUNT,
IEFG.SURMORTALITE AS SURMORTALITE,
SP.DESCRIPTION AS PRODUIT,SF.DESCRIPTION AS FORMULE
FROM INTERNETPROPOSANT IP
JOIN INTERNETEMPRUNT IE
ON IE.IDINTERNETPROPOSANT=IP.ID
JOIN INTERNETEMPRUNTDECISIONMEDICALE IED
ON IE.ID=IED.IDINTERNETEMPRUNT
JOIN INTERNETEMPRUNTFORMULE IEF
ON IEF.IDINTERNETEMPRUNTDECISIONMEDICALE=IED.ID
JOIN INTERNETEMPRUNTFORMULEGARANTIE IEFG
ON IEFG.IDINTERNETEMPRUNTFORMULE=IEF.ID
JOIN SRCPRODUIT SP
ON SP.ID=IE.IDSRCPRODUITCHOISI
JOIN SRCFORMULE SF
ON SF.ID=IE.IDSRCFORMULECHOISIE
WHERE IEFG.SURMORTALITE>0
AND IE.NO_CONTRAT IS NOT NULL
AND IE.NO_CONTRAT<>""
AND IP.IDPARTENAIRE=578
AND IE.IDSRCFORMULECHOISIE=IEF.IDSRCFORMULE
GROUP BY IP.ID, IP.NOM, IP.PRENOM, IE.ID,
IEFG.SURMORTALITE, SP.DESCRIPTION, SF.DESCRIPTION;

Est-ce si difficile de se couler ? Voilà cinq méthodes efficaces.

Cet article vient d’ici

Il y a un nombre énorme de projets technologiques qui finissent mal. C’est une nouveauté pour personne. Que vous démarriez une compagnie qui vend un programme avec plein de travaux de programmation à venir, ou que vous possédiez une compagnie pas du tout technique qui loue des consultants ici et là afin de vous aider à intégrer des choses dans votre système, vous avez dû très certainement faire face à ce problème. Délais dépassés, budgets explosés, et échecs techniques sont si courants dans le monde informatique, en réalité, que c’est pas si choquant que ça, finalement, quand un gros projet a quelques années de retard et dépasse le budget prévu de plusieurs millions.

En 2003, par example, j’avais pris l’avion pour Los Angeles afin d’assister à une des conférences que Microsoft (NASDAQ:MSFT) organise occasionnellement pour les développeurs. Pendant l’événement, Microsoft a fait tout un tas d’annonces super excitantes au sujet de nouveautés hallucinantes sur le point de sortir pour la prochaine version de Windows. En revoyant mes notes, je vois qu’une des nouveautés vraiment importantes concernait quelque chose appelé WinFS. Je vous évite les détails ennuyeux, mais grossièrement WinFS proposait de combiner un système de fichiers du système d’exploitation (stocker des fichiers et des répertoires sur disque dur) avec des possibilités de base de données (ranger des enregistrements individuels de données pour une recherche et une récupération rapide) en un seul et unique gloubiboulga « fichier-base-de-données ».

C’était une entreprise on ne peut plus ambitieuse. WinFS était, en termes techniques, globalement la réorganisation du système de transport national pour donner la priorité aux bus volants. Oui, cela détruirait les compagnies aériennes, et oui, tous les garages auraient besoin de faire d’énormes travaux pour être élargis afin de pouvoir accueillir ces autobus nouvelle génération qui auraient des ailes, mais, hé, bon, c’est rien, ou le sortira en un an. Bon, au pire deux, allez, tope là !

Trois années se sont écoulées. Un manager à Microsoft, Quentin Clark pour ne pas le nommer, a écrit sur son blog que WinFS ne pouvait tout simplement pas être livré dans les temps, et qu’il était en train de retarder le lancement du dernier système d’exploitation de Microsoft. Donc, WinFS allait être retardé et livré, « peut-être », en tant que fonctionnalité super originale dans une base de données à venir, validant par là le fait qu’il n’allait pas combiner base de données et système de fichiers, ce qui était la seule chose qui le rendait intéréssant. Donc, dites moi, comment pouvez-vous dire quand un de vos projets technologiques est destiné à être un autre WinFS ? Voici mes 5 premiers conseils qui vous assurent un échec sur un projet :

Erreur numéro 1 : débuter avec un équipe de développeurs médiocres.

Créer un programme, l’inventer et construire est une tâche difficile, et malheureusement plein de gens s’auto-proclamment développeurs et pourtant n’y arrivent pas du tout. Malgré le fait qu’une mauvaise équipe de programmeurs soit à mon sens la cause numéro 1 des échecs des programmes informatiques, vous ne pouvez pas le prédire en faisant une étude détaillée des CVs. Dans tous les domaines, en partant du programme, en passant par la logistique, jusqu’au service après vente pour le client, les gens sont beaucoup trop gentils entre eux pour parler du manque de compétence de l’un ou de l’autre, surtout s’ils travaillent côte à côte. Vous n’entendrez jamais personne dire « l’équipe n’était pas suffisamment perspicace, ou n’avait pas assez de talent pour sortir le produit. » Pouquoi blesser les gens ? C’est bien simple : si les personnes qui font partie d’un projet donné ne sont pas très bons dans ce qu’ils font, ils vont venir tous les jours au travail et malgré ça le programme ne sera pas fini. Et surtout, gardez bien en tête que cela ne sert à rien de lorgner du côté des compagnies off-shore prêtes à vous louer, ou vous trouver des personnes pour vous aider à avancer : dans la plupart des cas, je vous garantis qu’ils ne vont rien faire de plus que vous, et ne pourront pas empêcher le fait que vous embauchiez quelqu’un qui ne tient pas la route.

Erreur numéro 2 : posez un jalon par semaine.

Imaginons que vous refassiez votre cuisine. Que le type que vous avez engagé pour faire le travail a déjà fait plein de cuisines avant la vôtre, et peut estimer le coût du projet sans vous sortir les choses dans le détail. Tout ça c’est bien beau, mais il faut avoir conscience que les développeurs de programmes construisent systématiquement des choses qu’ils n’ont jamais construites auparavant. Si c’était le cas, il n’auraient qu’à vous vendre une copie sur un CD de leur programme. Des estimations à la louche sont impossibles. Ils ont un besoin impératif d’avoir un plan détaillé avant qu’ils commencent à écrire du code. Que vous soyiez le client, ou le chef de projet de l’équipe, votre boulot est de vous assurer qu’il y a un plan détaillé. Quand vous demandez à un développeur de donner une estimation à un plan, presque tous vous répondront en faisant un planning grossier, qui découpe les processus en semaines de travail. Ca pourrait sembler raisonnable, mais ça ne l’est pas. Si vous laissez une équipe faire un tel planning, avec des estimations grossières par gros paquets, (par gros paquets j’entends quelque chose qui prend plus de deux jours de développement), vous pouvez être pratiquement certain qu’ils ne prennent pas en compte chaque petit détail qui aura besoin d’être implémenté, et ce sont ces détails qui vont ajouter un énorme délai au projet.

Erreur numéro 3 : négocier la fin du projet.

Quoi de pire que d’accepter une planification dont l’échelle est si grossière qu’on parle, sur un projet informatique, en semaines ? Une chose : demander que l’équipe s’engage à terminer son travail beaucoup plus tôt que les estimations. Avec mon expérience, je vous certifice que la plupart des developeurs sont optimistes et vont vous suivre en s’engageant dans des négociations du genre « découper-tout-ça-autrement ». Vous serez super content, vous aurez un très zoli projet, sur lequel tout le monde s’est mis d’accord, et vous n’allez absolument jamais y coller.

Pensez à cela en ces termes : la mère du veau vêle entre le 15 et 16ème mois. Vous pourriez demander à cette mère de s’engager à 15 mois maximum et elle pourrait tout à fait dire « No problem ! » Ou vous pourriez dire, « Quinze mois ? Vous êtes folle ? Il nous faut ça pour dans huit mois ! » Bien sûr, beugler comme ça ne peut pas accélérer les choses, et même si vous réussissez à faire accepter ce délai à la maman, je vais vous confier un petit secret : elle ne vêlera jamais au huitième mois. Vous pouvez avoir un planning qui dit onze mois, mais vous aurez votre bébé en 15 mois, parce que dans tous les cas c’est le temps qu’il faut pour faire un veau. Seize mois, parfois.

Erreur numéro 4 : diviser les tâches équitablement.

Voilà une superbe façon de torpiller votre projet. Faites une liste de tous les travaux à faire, et, en milieu de projet, redistribuez-les à des personnes différentes afin de tout équilibrer. Si Marie a trop de travail, donnez quelques unes de ses tâches à John. Ca a l’air tout à fait logique, donc personne ne vous contredira.

Je vous promet qu’à moyen ou long terme, cela va inévitablement causer des problèmes. C’est parce que lorsqu’un développeur doit en remplacer un autre, on peut raisonnablement penser qu’il va avoir une efficacité d’un dizième par rapport à son prédécésseur. John va passer des heures entières à essayer de comprendre toutes les choses que Marie connaît déjà sur le bout des doigts dans son propre code. Et John ne résoudra jamais aussi rapidement les problèmes dans le code de Marie que Marie elle-même parce que notre Marie sait où sont cachées toutes les petites astuces et trappes à éviter.

Erreur numéro 5 : travailler jusqu’à minuit.

Imaginons qu’un projet doit prendre six mois à raison de 40 heures par semaines, pour être terminé. Si vous disiez à tout le monde de travailler 60 heures par semaine, vous pourriez finir le développement en quatre mois. L’équipe de programmation devrait même avoir envie de réussir ce challenge parce qu’ainsi ils auront la sensation d’être de vrais héros. (« Incroyable, cette équipe de mamans qui vont vêler en 4 mois, ils sont là même le week-end ! »). Ca devrait fonctionner, non ? Devinez quoi. Il y a des centaines de livres qui établissent un fait qu’on ne peut plus nier : travailler plus d’heures n’aide en rien à sortir quelque chose plus vite. Edward Yourdon, directeur d’une bonne équipe de développeurs, et écrivain, a donné un petit nom à ce genre de projet : « marche funèbre. »

Le développement d’un programme demande un gros effort intellectuel. Même les meilleurs programmeurs peuvent rarement soutenir un niveau d’effort qui atteint quelques heures par jour. Derrière tout ça, ils ont besoin de se changer les idées, car c’est une façon d’aider le cerveau à se reposer, c’est pourquoi on a toujours l’impression qu’ils sont en train de se ballader sur Internet ou en train de jouer à des jeux quand on jette un coup d’oeil à ce qu’ils font

Les forcer à passer plus d’heures devant leur ordinateur ne va jamais se traduire par plus de production, ou si c’est le cas, ce sera de la mauvaise production. Quand leurs cerveaux sont complètement frits, les développeurs créent plus de problèmes qu’ils n’en réparent, en écrivant du mauvais code ou en créant des bogues à n’en plus finir. Et si vous bannissez Internet et les jeux multijoueurs pour les forcer à garder la tête dans le guidon et à écrire du code après les heures où, normalement on se couche, eh bien, il vont très certainement démissionner. Faire une « marche funèbre » n’est pas la seule manière de faire exploser les délais, le budget ou les deux. Mais c’est une manière certaine d’y arriver.

Si ce sont toutes les choses à éviter, comment peut-on s’assurer qu’on projet va dans le bon sens ? En premier lieu, vous avez intérêt à embaucher des superstars. A Fog Creek, on lis en moyenne 400 CVs avant une embauche en CDI, parce qu’un bon développeur peut être dix fois plus productif qu’un développeur normal.

Deuxièmement, demandez une découpe très précise des tâches à faire à chaque developeur. Oui, c’est difficile pour un développeur de prédire le temps qu’il faut pour une nouvelle application. C’est pour cela qu’il faut qu’ils fassent vraiment de bons plans, bien fiables, avant chaque début de projet.

Une fois que vous avez le planning entre les mains, n’essayez pas de réduire la durée. Si le projet ne peut pas être achevé dans une durée que vous estimez raisonnable, la solution est de négocier un planning qui vous convient mieux, mais ne pas toucher à la durée totale. Ou bien éventuellement d’annuler quelques évolutions. Ou, enfin, de mettre de côté certaines options qui ne sont pas forcément nécéssaires.

Pendant le projet vous allez être tenté parfois de réassigner le travail en pensant que cela ira plus vite. Dans ce cas faites très attention. De nouveaux développeurs mettent toujours du temps avant de trouver leur vitesse de croisière et d’arriver, s’ils y arrivent, à la vitesse de leur prédécésseur. C’est bien entendu positif de faire tourner les développeurs sur différents types de travaux, ainsi de cette façon personne n’est irremplacable, mais je le fais très précautionneusement et je réserve dans ce cadre trois semaines complètes sur le planning pour le développeur qui arrive et qui prend la nouvelle place, et une semaine de plus pour celui qui s’en va car il va devoir apprendre le code à son remplacant.

Finalement, encouragez votre équipe à travailler au maximum 40 heures par semaine. Non non, je ne blague pas. Sérieusement. A part de manière vraiment occasionnelle, où nous avons des impératifs vitaux, l’équipe de Fog Creek travaille 8 heures par jour au maximum. Dans notre monde qui devient de plus en plus technologique, il est vital de considérer un gros projet comme un marathon et non pas comme un sprint.

Je suis un geek. Est-ce vrai ?

Pourquoi est-ce que je pense être un geek ? Un geek a deux façades :

  1. les côtés « incompétent », « idiot » du point de social ;
  2. les côtés « compétents », qui montrent que finalement, le geek n’est pas stupide.

J’insiste beaucoup sur le côté « social » de la chose. Tout simplement parce que c’est la société elle-même qui a crée ces gens hors-normes, ou encore excentriques.

Qu'est-ce qu'un geek selon moi ?

Un geek, selon moi, est une personne qui, lorsqu’elle est née, a vu son intelligence se répartir partout, mais pas dans tous les domaines qui concernent la société en général, et à l’inverse, dans des endroits, des matières, des compétences qui sont complètement inutiles, ou tout du moins inutiles du point de vue de la société.
Un geek, c’est donc quelqu’un de compétent dans certains domaines qui sont complètement hors-normes, ou considérés comme peu intéréssants, et à l’inverse, complètement incompétent dans beaucoup de choses considérées comme indispensables pour vivre en société.
Souvent, un geek passera pour un crétin, un idiot, un débile profond, alors qu’il est loin d’en être un : c’est juste que ses compétences ne sont pas celles requises par la société.

Je suis un geek

Part I : mon côté « incompétent » social

  1. En cours préparatoire, CM1 plus précisément…


    Image humour 01

    Avez-vous déjà essayé de faire quelque chose qui vous a démarqué des autres complètement ?
    De mon côté, j’ai essayé de mettre en oeuvre les concepts de construction scientifique : j’ai essayé de faire tenir tous les livres que j’avais, afin de faire une cabane, sur ma table de cours.
    Bien évidemment, au moment où j’ai réussi, je me suis rendu compte avec grande fierté que ma structure était suffisamment large pour que je puisse y mettre mes deux avants-bras et ma tête.
    Ce que je fis aussitôt.
    J’ai alors entendu un grand silence, je me suis reculé, et là j’ai vu avec horreur mon professeur qui me regardait, et… l’intégralité de la classe qui me regardait en souriant.
    Tout le monde se marrait, alors que je suis intimement convaincu que personne n’aurait réussi à faire une structure aussi large avec aussi peu de moyens. Autrement dit, je faisais preuve d’une intelligence que je trouvais très bonne et personne ne l’avait compris, bien au contraire, tout le monde se moquait.
    Cette histoire est restée ainsi longtemps gravée dans les mémoires.

  2. Au lycée, en troisième…

    Avez-vous fait quelque chose qui vous a démarqué des autres complètement ?
    Pour ma part, je suis allé avec deux chaussures différentes en cours.
    J’ai eu une chance extraordinaire : personne ne s’en est aperçu. J’avais un ami, Wilfried : deux minutes avant la sonnerie finale qui m’aurait donné la possibilité d’aller me changer incognito, je lui confie la chose :
    – « Wilfried, ne le dis pas, mais je te dis ça pour que tu rie un bon coup, surtout ne te moque pas, je pars les changer ».
    Bien évidemment, il a explosé de rire, s’est levé, en regardant ouvertement mes chaussures, et les montrant du doigt, jusqu’à ce que le professeur et tous les élèves de notre classe, me regardent en souriant… on se retrouve, vous savez, exactement comme dans les films, où la personne a horriblement honte, et part en courant en entendant les quolibets des autres qui rigolent, et cherchent les mots les plus vexants…
    Qu’est que les adolescents peuvent être méchants entre eux…

  3. Après le BAC…

    Avez-vous fait quelque chose qui vous a démarqué des autres complètement ?
    De mon côté, je suis parti en Angleterre. Mon Anglais était catastrophique. Pire : incompréhensible. A tel point, que lorsque j’ai débarqué à l’aéroport de Derby, j’ai demandé au chauffeur de m’amener à Saint-Christopher. J’ai dû lui répéter cela une dizaine de fois jusqu’à ce que, excédé, il me demande le papier et que je lui montre la destination écrite de la résidence étudiante.
    Mon Anglais était affreusement mauvais, donc. J’allais à la fac Anglaise, et je faisais tête basse pour ne pas trop me faire remarquer. On passe sa journée à essayer vainement de happer quelques mots et de les coller les uns aux autres afin d’obtenir quelque chose de compréhensible, ce qui n’est pratiquement jamais le cas au début. Le soir, on se couche, avec plein de mots qui virevoltent dans notre tête, on essaie de se souvenir de ce qu’a dit le professeur, on stresse, et on croit qu’on n’y arrivera jamais.
    Bien évidemment, c’est à cette occasion… que l’on m’a choisi pour faire un exposé avec un groupe d’Allemands.
    Il y avait Hans, Peter et un troisième larron.
    Ceux-ci ne me connaissaient pas, mais étaient extrêmement gentils et se sont proposés de m’aider un peu… donc je pris le parti de travailler et de faire mon exposé. Nous étions quatre, donc l’exposé était en quatre parties. Nous nous mîmes d’accord, Peter et moi, afin de savoir qui ferait quoi.Une journée s’était passée, lorsque Peter vint me voir à la cité et me dit que finalement il fallait remanier un peu tout ça. Il me donna de nouvelles planches. Je les pris, les amenai à ma chambre, et travaillai dessus.
    Ensuite, fût-il réellement venu me dire qu’il fallait revenir en arrière et rester sur les premières planches, ou non ? Dieu seul le sait.
    Mon piètre Anglais en était certainement la cause et je n’avais peut-être pas tout compris au moment même où il m’avait expliqué ce retournement de situation.
    Toujours est-il que j’avais travaillé sur les nouvelles planches.
    Le soir précédant mon exposé, je vis ma voisine de pallier, et je lui fis une petite présentation. Elle en conclut que c’était mauvais mais que ça pourrait passer, en travaillant encore. Moi, confiant en ce qu’elle m’avait dit, et persuadé que cela suffirait, je me couchai, rassuré.
    Le lendemain arriva, et l’exposé commenca.
    Quand on est très mauvais en Anglais, qu’on prépare certaines choses, tout doit se dérouler dans un ordre précis. Si ce n’est pas le cas, que faire ?
    Je m’en souviendrai toute ma vie, et je vais vous dire pourquoi.
    Hans fit sa présentation, puis vint au tour de Peter, et là je constatai avec stupéfaction que c’étaient les premières planches, pas les nouvelles !
    Arragh ! Que faire ? Je pris mon courage à deux mains, ainsi que mes notes et arrivai devant le tableau. De là, trente têtes me regardèrent fixement.
    Une silence de plomb s’abbatit sur la salle, et je ne sus pas quoi dire.
    Je commencai alors à bégayer mes notes et je vis les têtes de devant changer de couleur, devenir mal à l’aise pour moi.
    Je continuai, vaille que vaille, et j’eus soudain une idée : détourner un peu l’attention.
    Je cliquai pour faire défiler les planches, mais là, ce fût encore pire, les planches ne correspondaint pas à ce que je disais, que dis-je, à ce que je bégayais !
    Pour vous donner une idée de la honte que j’ai vécue, une des personnes sur les premiers rangs se cacha carrément la tête entre ses mains, afin de ne plus voir ni entendre cette partie absolument catastrophique de l’exposé.
    Pourquoi est-ce que je vous raconte cela me direz-vous ?
    Eh bien tout simplement parce que c’est la première partie de mon histoire, qui entre parfaitement dans la série : les geek parraissent débiles et incompétents.

Part II : mes côtés « compétents », mais qui ne servent à rien du point de vue social

…ou bien que très peu de gens font « naturellement » et qui dénote une intelligence disons… « cachée » :).

  1. Voici la suite de ma mésaventure en Angleterre :

    Mécontent de ce que j’avais fait, je décidai de leur montrer que je n’étais pas aussi bête ou stupide que ce que j’avais laissé paraître. Comment un geek réagit-il dans ces cas là ?
    Je pris le parti de me lier avec les Anglais, de m’éloigner des Français, et en parallèle j’achetai l’intégrale de Sherlock Holmès en Anglais.
    J’avais avec moi une arme à toute épreuve : un formidable dictionnaire, le Harrap’s dans lequel tout était traduit, de la formule la plus vulgaire aux termes les plus archaïques de la langue Anglaise. Formidable.
    Au lieu de suivre tous les Français qui se retrouvaient tous les soirs dans la salle commune à trinquer et rigoler entre Français, je me mis à lire mon livre, traduisit mot à mot, et me liai d’amitié avec Clare (prononcer « claire »), la personne qui s’occupait de la jeune fille handicapée qui logeait dans la chambre en face de la mienne. Je me mis à parler souvent avec elle, à fréquenter Ste (pronocer « sti »), mon autre voisin de pallier, un Anglais avec un accent aussi fort et peu compréhensible qu’il était chantant et agréable à entendre. Il était de Liverpool.
    Quelques semaines passèrent, et mon Anglais progressa sans que je m’en fût réellement aperçu. Je notai juste qu’en boîte, le D.J. commençait à nous faire suer à vanter toutes les trois chansons les mérites de la bière ou la prochaine soirée qu’il ne faudrait pas manquer, alors qu’aux premiers jours de mon arrivée, je tendais l’oreillle le plus possible pour essayer de comprendre un mot de ce qu’il baragouinait.
    Un soir arriva où tout le monde, les Français et tous les étrangers de la cité décidèrent de se réunir. On me demanda d’aller chercher Hans.
    Vous savez, la personne qui avait fait son exposé avec moi. Je jure devant Dieu que tout ce que je dis est vrai : juste avant d’aller le chercher, je me mis en tête les quelques mots et expressions que j’avais apprises en Anglais, avec les « questions tag » (isn’t it ? isn’t she ? …) accompagnant certaines phrases. J’ouvris la porte et lui parlai alors en Anglais… que j’estimais très bon. En fait mon Anglais ayant énormément progressé en quelques semaines, j’en profitai pour lui poser des questions, lui demander où il en était, et quand il comptait arriver car tout le monde était déjà là.
    Il me regarda avec un air ahuri et je jure encore une fois que je n’éxagère absolument rien : son visage se décomposait au fur et à mesure que je parlais.
    Ce jour là j’eus ma plus belle revanche : il me regarda plusieurs fois dans la soirée avec des yeux ronds comme des billes. Il confia à l’une des Françaises qu’il n’arrivait pas à comprendre comment il était possible en deux ou trois semaines, de faire des progrès aussi phénoménaux.

  2. Les cours préparatoires

    Le soir, quelques élèves restaient en « cours d’étude », c’est à dire que nos parents (je dis « nos » parents car une vingtaine d’autres élèves étaient concernés) ne pouvaient pas venir nous chercher avant 18-19 heures.
    Comme je savais lire, et que je m’ennuyais ferme (les devoirs ont rarement étés une passion chez un enfant), je pris un livre dans la bibliothèque du fond. C’était un livre qui racontait l’histoire de « Petitou », une sorte de « Minipouss », mais en plus âgé, pour vous donner un ordre d’idée. J’ai commencé à en lire un, puis deux, puis trois, puis, à la fin du mois, j’avais lu l’intégralité de la bibliothèque de notre école primaire.
    Je suis allé voir notre professeur, et je lui ai expliqué que j’avais lu tous les livres de la bibliothèque, et je lui ai demandé, avec l’innocence de l’age (je le précise car d’autres personnes auraient pu faire cela uniquement dans le but de se faire remarquer ou dans n’importe quel autre but plus déguisé que le mien), s’il n’en avait pas d’autres. Comme c’était la première fois de toute sa vie d’enseignant qu’un élève avait tout lu, il s’est retrouve extrêmement embarassé, s’est excusé mais « il n’y avait rien d’autre, mon petit Olivier ». Donc je suis resté durant les deux années et demi qui ont suivi (fin du CE2, CM1 et CM2) sans aucun livre à lire, à part ceux que ma mère m’avait acheté.
    Vous en connaissez beaucoup vous aussi des élèves qui ont lu l’intégralité de leur bibliothèque au CE2 ?

  3. Les labyrinthes

    Je suis un dingue de labyrinthes. Ne me demandez par pourquoi, mais c’est comme ça. Depuis que je suis au collège, c’est à dire en sixième, les labyrinthes sont quelque chose qui me passionne. Je ne sais pas pourquoi.
    Vous connaissez beaucoup de gens qui font des labyrinthes ?
    Moi, pas. Et comme un bon geek qui se respecte, non seulement je suis passionné par quelque chose dont 99,9 % de la société se moque, mais en plus je suis bon et je fais des choses assez originales, innovantes et que 99,9 % de la société ne pourrait pas faire ! Vous trouvez ça prétentieux. Peut-être, mais…
    Vous connaissez beaucoup de personnes qui font des labyrinthes immenses qui ne peuvent être correctement imprimés que sur une page de un mètre cinquante sur deux mètres ? Vous ne me croyez pas ?
    J’espère que votre ordinateur a beaucoup de mémoire, sinon vous n’arriverez pas à afficher cette image, ni cette image et celle là non plus.
    Ce n’est pas tout, parce que de loin, ces labyrinthes forment une image !
    Une image qui ne peut être vue qu’à bonne distance…
    Donc, comme dirait Jérôme Bonaldi : c’est complètement inutile, donc forcément indispensable !

  4. Les mains

    Très jeune, en me lavant les mains, j’ai constaté que je ne les lavais pas « correctement ». Ce que j’appelle par « correctement », ce sont les mouvement que l’on fait lorsqu’on se nettoire les mains.
    J’ai donc adopté une nouvelle façon de me laver les mains, que je trouvais plus efficace, et plus hygiénique. Le point important, c’est que cette méthode, je l’ai trouvée, naturellement, et seul. Une beau jour, ma mère arrive, et me voit me laver les mains. Elle constate :
    – Tiens c’est marrant, tu te laves les mains comme les médecins, et comme on nous l’a appris en école d’infirmières. Qui t’as appris ça ?
    – Personne, je l’ai trouvé seul. », lui ai-je répondu.
    Je ne sais pas encore aujourd’hui si elle m’a cru, pourtant le fait de l’avoir trouvé seul n’est ni plus ni moins que la stricte vérité.

  5. La solitude

    Un geek est souvent asocial. Il préfère être seul avec ses challenges psychologiques qui n’intéressent personne, plutôt que d’être avec un groupe d’amis à faire la fête.
    Je me rappelle un jour où il y avait eu une très grosse grève d’essence. Moi, en prévision, j’avais rempli rempli à ras-bord mon réfrégirateur, et je suis resté trois jours complets sans sortir de mon appartement, sans voir le jour. J’étais bien. Donc je n’avais ni besoin de sortir, ni besoin de voir des gens. Leur parler en leur laissant des messages sur Internet me suffisait amplement !
    Vous en connaissez beaucoup, vous, des personnes pour qui le fait de rester enfermé trois jours ne les dérange absolument pas ?

  6. Les clés

    Nous avons trois verrous sur notre porte.
    Donc cela implique d’avoir trois clés. Ajoutez-y les clés de voiture, les clés de la boîte aux lettres, les clés du travail, les clés du portail de la voisine et on commence un peu à s’y perdre.
    Forcément, quand il s’agit d’ouvrir vite la porte, on met un temps fou.
    Nous avons deux clés exactement identiques pour les verrous du haut et du bas de la porte. Mon neveu me dit un jour :
    – « Olivier, pourquoi regarde-tu les clés avant de les mettre, elles sont toutes les deux les mêmes, tu ne peux pas les distinguer. Tu es obligé d’en essayer une et si elle ne convient pas tu essayes l’autre ».
    Ce à quoi je répondis :
    – « C’est bien simple. As-tu jamais remarqué qu’il y a un ordre dans les clés ? Que si tu les pose à plat d’un côté, elle sont dans un ordre précis et si tu les retourne elles sont dans un autre ordre ? C’est pourquoi j’ai mis les deux clés identiques côte à côte dans mon trousseau, et la plus près de la grosse clé de voiture, c’est celle du verrou haut.
    Aviez-vous jamais remarqué qu’il y a un ordre dans les clés ? Qu’elles ne sont jamais mélangées ? Que si vous avez deux clés différentes (c’est un minimum), vous pourrez par la suite en ajouter autant que vous voudrez, et même si elles sont identiques ou presque, vous aurez absolument toujours un moyen de les différencier grâce à la distance qui les séparent des deux clés de « référence » ?

  7. Les aspirateurs de site

    Enfin, et pour finir, voilà ce qui a été une passion et que j’espère voir devenir quelque chose de lucratif : les interrogations des sites Internet. Le jour où j’ai compris comment fonctionnait le langage html et comment on pouvait se connecter sur les sites Internet sans être une personne vivante, ça a été comme un déclenchement psychologique pour moi : il fallait que je réussisse à faire croire à n’importe quel site qu’un être humain venait se connecter et faisait tout une séquence d’actions, alors que ce n’était qu’une machine. C’est devenu un challenge psychologique, un leitmotiv.
    Et j’en suis arrivé à un stade où mon outil peut aller aspirer, via un petit peu de configuration, n’importe quel site au monde prévu pour être lu par google.
    Image humour 05
    Par exemple, le site pbase affiche des photos, mais si on veut en récupérer trop vite, il se rend compte que ce n’est pas un être humain derrière le clavier, et interdit l’accès au site pendant quelques secondes.
    J’ai très allègrement contourné cette barrière, mais sachez que, une fois le challenge réalisé, je ne vais jamais plus loin. A partir du moment où j’ai vu que je devenais invisible et que le site ne voyait absolument pas que mon aspirateur était un robot, c’était gagné pour moi et je ne suis jamais allé plus loin.
    J’insiste, avant de lire des remarques ou des commentaires désobligeants sur le « mais c’est interdit par la loi ».
    Sachez qu’à partir du moment où l’on met du contenu sur Internet à diposition, il est par définition à disposition de n’importe qui.
    Si, sur le site, il y a des textes définissant des copyrights ou des droits, à ce moment là, on a bien évidemment le droit d’exploiter le contenu, mais uniquement dans le cadre des textes écrits sur le site.
    Par contre, rien, absolument rien ne nous interdit de les récupérer, et j’insiste : uniquement dans la mesure où l’on respecte les droits énumérés sur le site.
    Par exemple, si le site précise que l’on a pas le droit d’exploiter son contenu dans un but lucratif, alors, on a toujours le droit de venir « lire », par quelque procédé que ce soit, les informations, et on peut les exploiter tant qu’on ne les exploite pas dans un but lucratif.

Linux php : ajout de json

Json est une extension pour JavaScript et php.
Ajout de l’extension Json : il faut aller la récupérer sur le site du créateur (http://aurore.net/), la compiler (make), l’installer (make install), et ensuite, ce qui n’est pas précisé (sauf ici), aller voir dans le fichier php.ini qui est très souvent dans /etc, où se situe le répertoire des extensions extension_dir, c’est sûrement, ici aussi, extension_dir = "/usr/lib".
Il suffit alors de copier le fichier json.so généré dans le répertoire des extensions, ici /usr/lib.
Rien de plus simple !
Résumé très rapide (il faut faire quelques manips en plus, mais le plus important est là) :

  1. wget http://aurore.net/projects/php-json/php-json-ext-1.2.1.tar.bz2
  2. tar -xvf php-json-ext-1.2.1.tar.bz2
  3. cd php-json-ext-1.2.1/
  4. ./configure ; make ; make install
  5. cp /usr/local/lib/php/extensions/no-debug-non-zts-20050922/json.so /usr/lib

Technique : moyen de paiement à la Société générale

Comment se passe le paiement fait via la Société Générale ?

On doit appeler un CGI qui s’appelle REQUEST auquel on passe en paramètre le n° de la transaction, le montant, etc.
Ce REQUEST va générer un code html qu’on va afficher (le code qui affiche les 3 cartes, etc, pour que le client puisse choisir).
Ensuite, le client clique sur une des cartes, et est redirigé.
Il arrive sur la banque.
Il paie, et une fois qu’il a payé, le serveur de la banque appelle autoresponse.php en passant en paramètres des infos précisant si le paiement a été effectué.
NB : le client ne voit absolument rien.
Ensuite, le client va cliquer sur le bouton Retour à la boutique.

  1. Si elle ne le fait pas heureusement on a déjà tout sauvé ;
  2. Si elle le fait, une page identique à autoresponse.php est appelée (c’est-à-dire qu’on a les mêmes paramètres envoyés par la banque) et à ce moment là on peut faire ce qu’on veut (afficher ‘Merci pour votre paiement’ ou afficher ‘le paiement a été refusé’, etc).

Zeemoz : machine virtuelle XP

  • vmrun list :
    pour voir les machines virtuelles en cours d’exécution
  • vmrun stop /opt/VirtualMachines/WindowsXPPro/WinXPPro.vmx :
    pour arrêter la machine virtuelle (en principe, avec les VMTools qui sont installés, ça ordonne à la machine virtuelle de s’éteindre « proprement », sinon ça correspond à un arrachement du cable d’alimentation…)
  • vmrun start /opt/VirtualMachines/WindowsXPPro/WinXPPro.vmx :
    démarre notre XP

Les segfault à la fin des commandes sont « normaux », c’est à cause de la façon dont VMPlayer gère le NAT sur l’interface réseau virtuelle.

MySQL : mémo perso : Nettoyage en pré-production

DELETE FROM INTERNETPROPOSANT WHERE IDPARTENAIRE<>578;
DELETE FROM INTERNETEMPRUNT WHERE IDINTERNETPROPOSANT
NOT IN (SELECT ID FROM INTERNETPROPOSANT);
DELETE FROM INTERNETEMPRUNTDECISIONMEDICALE WHERE
IDINTERNETEMPRUNT NOT IN (SELECT ID FROM INTERNETEMPRUNT);

UPDATE `INTERNETPROPOSANT`,`INTERNETEMPRUNT`
SET `INTERNETPROPOSANT`.`NOM`=
CONCAT_WS(",","NOM",
`INTERNETPROPOSANT`.`REFERENCEEXTERNE`,
`INTERNETEMPRUNT`.`NO_CONTRAT`),
`INTERNETPROPOSANT`.`PRENOM`=NULL,
`INTERNETPROPOSANT`.`NOTELEPHONE1`=NULL,
`INTERNETPROPOSANT`.`NOTELEPHONE2`=NULL,
`INTERNETPROPOSANT`.`NOTELEPHONE3`=NULL,
`INTERNETPROPOSANT`.`ADRESSE1`=NULL,
`INTERNETPROPOSANT`.`ADRESSE1`=NULL,
`INTERNETPROPOSANT`.`ADRESSE2`=NULL,
`INTERNETPROPOSANT`.`MOTDEPASSE`=NULL,
`INTERNETPROPOSANT`.`EMAIL`="monemailperso@gmail.com"
WHERE (`INTERNETPROPOSANT`.`ID` = `INTERNETEMPRUNT`.`IDINTERNETPROPOSANT`);