Auteur/autrice : Éric

  • Phan – Static analy­zer for PHP

    • Checks for calls and instan­tia­tions of unde­cla­red func­tions, methods, closures and classes
    • Checks types of all argu­ments and return values to/from func­tions, closures and methods
    • Supports @param, @return, @var and @deprecated phpdoc comments inclu­ding union and void/null types
    • Checks for Uniform Variable Syntax PHP 5 -> PHP 7 BC breaks
    • Unde­fi­ned variable tracking
    • Supports names­paces, traits and varia­dics
    • Gene­rics (from phpdoc hints – int[], string[], UserObject[], etc.)
    • Expe­ri­men­tal dead code detec­tion

    Je me rappelle les bidouilles sur PHP_Code_Snif­fer à SQLi à partir du toke­ni­zer, et les essais d’ana­lyse statique de Pascal sur les montées en version de PHP à TEA.

    Phan semble un vrai outil, basé sur un AST natif au langage. Je suis certain qu’on n’en est qu’au début des possi­bi­li­tés offertes par l’AST de PHP 7. Rien que l’aide à la migra­tion ne va pas être inutile.

    J’ai un peu peur qu’on entre dans le monde Java, d’au­tant plus que les type hints sont main­te­nant la norme et que le langage se complexi­fie, mais pas mal de portes s’ouvrent en ce moment pour PHP, et c’est sacré­ment cool.

  • [Photo] Lotfi Dakhli

    Quelqu’un de bon en portrait et en paysage urbain… ça ne se refuse pas :
    Lotfi Dakhli, son site et son flux Flickr

    PORTRAIT_FANNY_M-3632_SD18129553432_7930965fa2_h

  • The five big lies of the encryp­tion debate

    There’s just no reason to think that the FBI is having a harder time tracking crimi­nal acti­vity than it did 15 years ago.

    […] Fifteen years ago, it would have been unthin­kable to order Micro­soft to turn over a private file from a perso­nal compu­ter, or ask Veri­zon for a trans­cript of an unflag­ged phone call from three months earlier. But the shift to mobile has made those records seem much more acces­sible. Files are all in the cloud anyway, and texts are a lot easier to store than audio.

    […] Maybe you think the FBI should have access to all that data. […] If they have a warrant, it’s perfectly consti­tu­tio­nal […] But the fact is, you’d be figh­ting for a massive expan­sion of surveillance power. Saying other­wise just starts the entire conver­sa­tion out on a lie.

    — The Verge

    Histoire de remettre les choses d’aplomb pour ceux qui pensent que les nouvelles tech­no­lo­gies rendent la vie plus diffi­cile à la police et aux services de rensei­gne­ment. Soyons sérieux de minutes, même sans penser à la NSA, il est évident que c’est tout le contraire qui se passe.

    Tiens, Apple a même répondu récem­ment que non ils ne feraient rien pour affai­blir le chif­fre­ment des iPhones, mais qu’ils étaient ouverts à divul­guer ce qui est synchro­nisé sur leurs serveurs, c’est à dire par défaut à peu près tout ce dont on peut avoir besoin et même un peu plus.

    Nous entrons dans un monde de surveillance non seule­ment parce que désor­mais tout est faci­le­ment acces­sible, mais aussi parce que l’État commence à trou­ver scan­da­leux que la moindre parcelle d’in­for­ma­tion lui échappe ou lui soit compliquée à recueillir.

    J’ai regardé la série Narcos récem­ment, qui romance la lutte anti-drogue en Colom­bie dans les années 80. Inté­res­sant de voir que pour tracer des commu­ni­ca­tions il fallait un avion en survol qui inter­cepte les commu­ni­ca­tions satel­lites et des équipes au sol pour trian­gu­ler. Même avec ça on n’avait pas l’iden­tité du télé­phone. Bien évidem­ment les carnets de notes étaient codés pour être indé­chif­frables.

    Aujourd’­hui tout est iden­ti­fié et la police peut inter­ve­nir direc­te­ment sur la compa­gnie qui gère le flux satel­lite, ne parlons même pas des inter­cep­tions et géolo­ca­li­sa­tions en temps réel sur les réseaux mobiles terrestres. Le simple fait de pouvoir chif­frer ses données sur son smart­phone devient illé­gi­time pour l’État. Tout a bien changé.

    There are real problems at the heart of this debate, funda­men­tal ques­tions of liberty and secu­rity and how tech­no­lo­gi­cal progress can change that balance. There are ques­tions about the deep state and how insti­tu­tions like the FBI or NSA can be held accoun­table to the people they nomi­nally serve. We have to come up with some sort of answer for these ques­tions, and to do that, we need to be able to talk about what’s actually at stake. So far, we haven’t been able to.

  • So You Think You Can Program An Eleva­tor

    Many of us ride eleva­tors every day. We feel like we unders­tand how they work, how they decide where to go. If you were asked to put it into words, you might say that an eleva­tor goes where­ver it’s told, and in doing so goes as far in one direc­tion as it can before turning around. Sounds simple, right? Can you put it into code?

    J’adore l’idée : Le défi de program­mer un ascen­seur, avec une expli­ca­tion initiale, quelques tests, et le défi de tout faire… pour se rendre compte que c’est quand même bien plus complexe que ça ne semble à-priori.

    C’est du python mais la syntaxe ne repré­sente très clai­re­ment qu’une très faible part de l’exer­cice. Avec la doc en ligne ça doit être faisable sans être limité par l’uti­li­sa­tion d’un langage qu’on ne connait pas vrai­ment.

    J’ai presque envie d’es­sayer, mais juste peur de commen­cer, me rendre compte que ça va me prendre des jours, et aban­don­ner. Je sais que c’est un peu l’objet de l’exer­cice, mais si je commence sans arri­ver à quelque chose ça ne va pas me mettre dans un état d’es­prit très posi­tif.

  • [Photo] Mejika Setsu­naï

    Je suis frus­tré par ces gens qui arrivent à faire des auto-portraits corrects. Les quelques fois où j’ai essayé, non seule­ment ça prend des heures mais impos­sible d’ar­ri­ver à quelque chose d’un mini­mum perti­nent. La tech­nique est ingé­rable quand on doit courir des deux côtés de l’objec­tif, et s’il faut en plus tenter de soi-même gérer sa propre émotion… c’est le désert.

    Bref, allez voir les gale­ries de Mejika Setsu­naï

    tumblr_nzj67vuD4v1uiwj2io1_1280

  • The reso­lu­tion of the Bitcoin expe­riment

    I’ve spent more than 5 years being a Bitcoin deve­lo­per. The soft­ware I’ve writ­ten has been used by millions of users, hundreds of deve­lo­pers […]

    The funda­men­tals are broken and whate­ver happens to the price in the short term, the long term trend should proba­bly be down­wards. I will no longer be taking part in Bitcoin deve­lop­ment and have sold all my coins.

    — Mike Hearn

    On y parle un peu de ques­tions tech­niques mais on se rend compte aussi que fina­le­ment les projets sont extrê­me­ment dépen­dants des humains.

    Quel est l’ave­nir souhaité pour le projet ? Il y a-t-il un consen­sus ? Quels en sont les impacts ?

    the block chain is control­led by Chinese miners, just two of whom control more than 50% of the hash power. At a recent confe­rence over 95% of hashing power was control­led by a hand­ful of guys sitting on a single stage.

    CVhkEhtUAAAl0LH[…] Even if a new team was built to replace Bitcoin Core, the problem of mining power being concen­tra­ted behind the Great Fire­wall would remain. Bitcoin has no future whilst it’s control­led by fewer than 10 people. And there’s no solu­tion in sight for this problem: nobody even has any sugges­tions. For a commu­nity that has always worried about the block chain being taken over by an oppres­sive govern­ment, it is a rich irony.

    Rien que ça empêche assez bien d’en­vi­sa­ger un avenir, mais si vous voulez un résumé plus complet :

    Think about it. If you had never heard about Bitcoin before, would you care about a payments network that:

    • Couldn’t move your exis­ting money
    • Had wildly unpre­dic­table fees that were high and rising fast
    • Allo­wed buyers to take back payments they’d made after walking out of shops, by simply pres­sing a button (if you aren’t aware of this “feature” that’s because Bitcoin was only just chan­ged to allow it)
    • Is suffe­ring large back­logs and flaky payments
    • … which is control­led by China
    • … and in which the compa­nies and people buil­ding it were in open civil war?

    I’m going to hazard a guess that the answer is no.

  • Fluent inter­face are evil

    1. Fluent Inter­faces break Encap­su­la­tion
    2. Fluent Inter­faces break Deco­ra­tors (and some­times Compo­si­tion)
    3. Fluent Inter­faces are harder to Mock
    4. Fluent Inter­faces make diffs harder to read
    5. Fluent Inter­faces are less readable (perso­nal feeling)
    6. Fluent Inter­faces cause BC breaks during early deve­lop­ment stages

    Fluent Inter­face are Evil

    J’ai parfois l’im­pres­sion d’être dans les dino quand je me bats contre cette mode alors je suis heureux de voir ne pas être le seul.

    Ce type d’écri­ture est juste magique pour créer des filtres succes­sifs, essen­tiel­le­ment dans les objets de construc­tion (buil­der).

    Pour tout le reste, c’est juste un faux raccourci d’écri­ture. On casse beau­coup de choses pour gagner quelques carac­tères. Le plus souvent on ne les gagne pas vrai­ment puisqu’il faut bien penser à faire le return $this/self dans la méthode appe­lée et à gérer correc­te­ment l’in­den­ta­tion dans la méthode appe­lante.

     

  • La confé­rence des premiers prési­dents estime que le PL de réforme pénale contient des dispo­si­tions dange­reuses

    La France ne saurait sacri­fier les valeurs fonda­men­tales de sa justice, au motif qu’un manque cruel et ancien de moyens l’a affai­blie

    […]

    Elles consti­tuent un trans­fert de compé­tence de l’au­to­rité judi­ciaire vers l’au­to­rité admi­nis­tra­tive, dans la dépen­dance de l’exé­cu­tif, incom­pa­tible avec le prin­cipe de sépa­ra­tion des pouvoirs, fonde­ment de la démo­cra­tie.

    Bref, la direc­tion prise est assez dange­reuse.

  • Extre­mely Defen­sive PHP

    Comment faire un code qui évite les mauvaises pratiques et reste main­te­nable en élimi­nant les risques ? La présen­ta­tion de Marco Pivetta est à regar­der.

    Il y a pas mal d’idées. Tout n’est pas forcé­ment à reprendre tel quel à mon avis, mais ça permet au moins d’y penser.