Catégorie : Technique

  • La commu­nauté JS est actuel­le­ment une machine à créer de la dette tech­nique

    on est dans la phase de l’ado­les­cence. Ça cri, ça bouge, ça a plein d’éner­gie, et ça mérite des baffes.

    — par Sam & Max

    L’ins­tal­la­tion est deve­nue un enfer. Entre les dépen­dances dépré­ciées, les libs incom­pa­tibles, les diffé­rents outils de build, et les options de config et les plugins, c’est une merde incom­men­su­rable. Plusieurs stan­dards d’ins­tal­leurs (et outils joints) se tirent la bourre : AMD, CommonJS et Harmony. Vous vous souve­nez du temps ou on copiait juste jQuery dans le réper­toire static ?

    […] On peut faire plus de choses qu’a­vant. De manière plus propre […] Mais l’éco­sys­tème, c’est le bordel géné­ral, l’anar­chie totale, et ça conti­nue d’avan­cer, en lais­sant tout le reste derrière.

    Les projets JS s’ac­cu­mulent, de free­lances en SS2I qui se pointent, codent ou (surtout) recodent, et repartent en lais­sant un projet qu’il sera imbu­vable à reprendre, dépré­cié avant même d’être terminé, non docu­menté, non testé.

    Livré sans commen­taire, mais j’ai­me­rais bien les vôtres.

  • Deploying PHP 7

    Il y a de tout et de rien dans cette présen­ta­tion de Rasmus à Paris, mais je reste impres­sionné par le gain en perfor­mance annoncé partout pour PHP 7. Si on en obtient même la moitié de ça, ça reste une révo­lu­tion pour PHP.

    On parle de +30% de requêtes trai­tées dans le même temps au mini­mum, souvent +50% et plus, le tout en utili­sant moins de mémoire.

    J’ai envie de mettre des graphiques mais on va me dire qu’il ne sont pas repré­sen­ta­tifs, alors faites les vôtres.

     

  • 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.

  • 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.

  • 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.

     

  • 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.

  • RSS Bridge

    Pendant un temps, en parti­cu­lier grâce à Google Reader, l’ha­bi­tude commençait à prendre. Aujourd’­hui la syndi­ca­tion RSS/Atom semble de moins en moins utili­sée. Hors les blogs et les geeks, les flux dispo­nibles dispa­raissent.

    Certaines plate­formes en profitent d’ailleurs bien pour forcer le public à rester dans l’éco­sys­tème. Parfois même avoir un lien direct vers un contenu demande des contor­sions agaçantes.

    Je ne sais pas comment font les gens normaux pour suivre des conte­nus. Je n’ima­gine même pas suivre plus de 10 sources sans un agré­ga­teur bien foutu – et non, Face­book ou Twit­ter ne répondent pas au besoin, pas même de loin.

    Sébas­tien Sauvage nous propose un petit pont pour produire du RSS à partir de quelques sites ou quelques conte­nus qui n’en ont pas. Je suis un peu déçu que ça ne soit pas natif sur les agré­ga­teurs, mais c’est assez inté­res­sant pour les geeks comme moi. Allez donc voir.

    rss-bridge is a PHP project capable of gene­ra­ting ATOM feeds for websites which don’t have one.

  • Moores law hits the roof

    Through the last 40 years we have seen the speed of compu­ters growing expo­nen­tially. […] We are now approa­ching the physi­cal limit where compu­ting speed is limi­ted by the size of an atom and the speed of light.

    Agner`s CPU blog

    Et le reste de l’ar­ticle parle de nano­mètres, de paral­lé­li­sa­tion, de puces en trois dimen­sions… Jolie mise en lumière des enjeux à venir.

    As the rate of growth in hard­ware tech­no­logy is slowing down, and consu­mers turn to small portable devices where battery life is more impor­tant than number-crun­ching power, the soft­ware indus­try now has to change its course.

    Pas nouveau, mais rassu­rant quelque part, nos besoins évoluent en même temps que les limites s’ap­prochent.

  • Veille et liens

    […] Le partage d’un simple lien à peine accom­pa­gné d’un titre est remplacé par des dispo­si­tifs décen­tra­li­sés, souvent en paral­lèle de carnets en ligne. Des partages augmen­tés d’une recon­tex­tua­li­sa­tion, d’un commen­taire et de rebonds. Des veilles distri­buées.

    — Quater­num, Quatre partages de veille : des liens et des ressources distri­bués

    […] Les gens que je lis le plus souvent sont ceux qui se sont déjà éloi­gnés des réseaux. Karl a quitté Flickr bien avant les scan­dales sur le droit d’au­teur par exemple ; Éric et David partagent leur lecture sur des billets courts.

    — Chez Stéphane, Veille et liens

    Ce qu’il manque c’est de reprendre les noti­fi­ca­tions et tissages de discus­sion. Je ne sais que tu reprends une de mes lecture que parce que je te suis. Vous êtes au moins 5 à faire la suite sur vos propres blogs (Toi, David, Karl, Clément, le Hollan­dais Vollant). Il y en a certai­ne­ment d’autres – je ne peux que l’es­pé­rer.

    Je manque certai­ne­ment des suites inté­res­santes faute de noti­fi­ca­tion même la plus élémen­taires. Ça fait long­temps que j’ai­me­rais déve­lop­per un petit robot à partir des entêtes de `Refe­rer` mais non seule­ment c’est amené à ne plus fonc­tion­ner avec HTTPS, mais en plus j’ai toujours mieux à faire.

    Entre temps je lance des noti­fi­ca­tions sur Twit­ter – mais c’est quand même le contraire de l’objec­tif annoncé – et je manque certai­ne­ment beau­coup de choses.

    En atten­dant mieux, j’ai ping­back d’ac­tivé, mais je suis visi­ble­ment le seul des cinq et vous ne les rece­vez ni envoyez. Ça serait bien d’avan­cer.

  • DuoTone themes

    DuoTone themes

    Je suis de ceux qui laissent souvent les thèmes par défaut dans les éditeurs de code.

    Je ne supporte pas les colo­ri­sa­tions sapin de Noël. Les bleu clair sur bleu foncé ne m’en­thou­siasment pas plus, j’ai commencé l’in­for­ma­tique avec ça et suis heureux d’être passé à autre chose.

    Par contre je tombe sur DuoTones, et je me vois bien utili­ser ça. On garde du contrastes, trois couleurs, mais des tons pour diffé­ren­cier les choses. Je me vois bien l’uti­li­ser, dommage qu’il n’existe pas pour Subli­meText.

    DuoTone themes

    Sinon pour Sublime, dans un genre très diffé­rent, il y a le Mate­rial Theme, assez sympa aussi.

    Material Theme