Catégorie : Technique

  • Faire table rase, et cacher le passé

    C’est malheu­reu­se­ment habi­tuel, mais je ne peux m’em­pê­cher de secouer la tête à chaque fois.

    Le gouver­ne­ment ou l’élu change, la première action publique juste après la confé­rence de presse est toujours suppri­mer très très vite le site web précé­dent pour mettre quelque chose de neuf, quasi­ment vide au départ.

    La première. C’est urgent.  Pas juste mettre une nouvelle version, chan­ger les noms, biogra­phies et attri­bu­tions, mais suppri­mer le contenu du précé­dent. Qu’on fasse semblant de ne pas savoir qu’il y avait un précé­dent. Qu’on retire toute réfé­rence à ce qu’il a fait.

    Vous voulez réfé­ren­cez un contenu publié par l’an­cien président, l’an­cien gouver­ne­ment ? oubliez, il a été supprimé. Dans le meilleur des cas il sera remis en ligne ailleurs, bien caché dans des archives et sans redi­rec­tion à partir de l’an­cienne adresse.

    Il est hors de ques­tion que le site puisse parler d’autre chose que LE nouveau président ou LE nouveau gouver­ne­ment et faire de l’ombre à leur personne. Vous devriez avoir honte d’y avoir pensé.

    Même si on n’a aucun contenu à y mettre et juste un PDF à lier en page d’ac­cueil, même quand il y a conti­nuité dans le gouver­ne­ment avec la même couleur poli­tique et nombre d’in­chan­gés, même les pages d’aides, même les pages sur les insti­tu­tions elles-mêmes, non, on supprime tout.

    On peut rigo­ler, expliquer, justi­fier, person­nel­le­ment je n’y vois qu’une person­ni­fi­ca­tion désas­treuse des élus. Ils n’en­dossent pas un rôle ou ne prennent pas une charge, ils deviennent le nouveau roi. Il est temps d’ar­rê­ter tout ça. Le SIG joue le jeu, et c’est bien dommage (désolé, je ne peux pas faire de lien vers la page web du SIG, elle a été suppri­mée avec tout le reste, elle était sur l’an­cien site du gouver­ne­ment…).

  • The Expert (Short Comedy Sketch)

    J’hé­site toujours avant de parta­ger des vidéos, et encore plus quand il s’agit juste de renfor­cer les poncifs et stéréo­types. Celle là est cari­ca­tu­rale, mais elle repré­sente telle­ment ce que j’ai vu tout au long de ma carrière que je la mets ici, pour pouvoir la citer en réfé­rence, et vous permettre de faire de même.

  • Talents publi­ci­taires – star­tup

    Quelle honte d’ac­cor­der 33% de son revenu à son espace de vie. À l’édu­ca­tion que l’on a reçu, aux soins dont on béné­fi­cie. Mais rassu­rez-vous, vous pouvez en être dispensé grâce au fabu­leux statut de JEI qui fait pâlir d’en­vie outre-atlan­tique

    […]

    Et cerise sur le gâteau, on peut virer ses sala­riés dans les 6 mois sans aucun risque. Sous réserve de rester en-dessous des 50 sala­riés (excluant les stagiaires bien entendu). Et puis un déve­lop­peur français est si peu cher, pourquoi s’en priver ?

    Voilà, Tariq, les talents français du code sont au mieux de la chair à canons publi­ci­taires US

    Voici la meilleure réponse à l’article du NewYork Times. Parce que oui, la France est attrac­tive pour des star­tup. Les 33% de coti­sa­tions sociales ne sont en réalité pas payées par les JEI, et la préten­due rigi­dité des contrats de travail ne l’est pas tant que ça. Factuel­le­ment la plupart des études mettent la France comme bien moins chère pour les star­tup tech­nos que les US ou Londres.

    D’autres ont fait des réponses sur les critères finan­ciers (pas de meilleure foi) mais on tape à côté. Pourquoi est-il si choquant de payer 30% du salaire en retraite, assu­rances et santé ? C’est encore plus crétin quand on compare avec des pays où ces frais sont décomp­tés du salaire net que reçois le sala­rié au lieu d’être pris plus haut au niveau de l’em­ployeur.

    Mais même en dehors de la compa­rai­son, nous devrions être heureux d’avoir un tel équi­libre. Comment est-on arri­vés à s’enor­gueuillir de ne pas payer de pres­ta­tions sociales, d’échap­per à l’im­pôt collec­tif, de payer moins cher nos déve­lop­peurs ou de pouvoir les virer faci­le­ment ? Est-ce vrai­ment de ça que le monde a besoin ? L’in­no­va­tion et les nouvelles tech­nos ne savent-elles se déve­lop­per que sur ce terreau ? Si vous répon­dez « oui » alors il faut vite arrê­ter ce désastre.

    D’au­tant que c’est juste crétin. Si Google ou Github attirent autant c’est par l’en­vi­ron­ne­ment qu’ils offrent (ou offraient). Sur le campus il y a tout ce qu’il faut, au restau­rant d’en­tre­prise on fait venir les meilleurs chefs, l’es­pace de travail est large, éclairé, atti­rant, en interne on glori­fie ceux qui agissent et renforce les déve­lop­peurs.

    Ici on se fait concur­rence au moins disant social, on abaisse les déve­lop­peurs à de l’exé­cu­tion tech­nique, on leur retire l’idée qu’ils peuvent être le moteur.

    Ce n’est pas d’un Github à la française dont nous avons besoin, mais d’une multi­tude de projets citoyens. Pour créer du lien social, du lien inter-géné­ra­tio­nel, du lien local, du lien poli­tique. Pour se sentir utile en tant que déve­lop­peur, pour se sentir agile en tant qu’hu­main.

    Notre objec­tif ne doit pas être de créer des socié­tés de 50 milliards et de copier le voisin en étant plus profi­table ou plus gros finan­ciè­re­ment. L’in­no­va­tion se nour­rit du lien, de l’uti­lité, d’une culture. La réduire à son sens écono­mique et aux copy-cat ne ne mènera nulle part.

    Il y a une culture à avoir, et ce n’est pas une culture busi­ness, c’est une culture de l’uti­lité, de colla­bo­ra­tion sociale. On ne la créera pas en jouant à celui qui propose le moins au niveau social pour un meilleur profit des inves­tis­seurs.

    À lire entiè­re­ment : Talents publi­ci­taires de David Larlet

  • Sur-Javas­cript

    J’avais regardé CoffeeS­cript il y a long­temps, mais sans être convaincu. Si j’ai besoin de faire du Javas­cript, je fais du Javas­cript. Coffee apporte bien des amélio­ra­tions sur la syntaxe, mais le langage n’est lui-même pas parfait et je doute que le rapport béné­fice/coût soit très élevé.

    J’en ai à peu près autant au service de Dart même si, sans réel­le­ment percer pourquoi, j’ai l’im­pres­sion qu’ils ont réussi à mieux se déta­cher de Javas­cript, et donc avoir un vrai langage distinct qui « compile » du Javas­cript (c’est bien l’es­prit de Coffee aussi, mais je n’ai pas eu ce ressenti).

    Je suis proba­ble­ment plus ouvert à TypeS­cript ou Traceur, qui sont plus proches du langage d’ori­gine et dont les objec­tifs et syntaxes sont presque « le prochain Javas­cript ». On a plutôt une couche de compa­ti­bi­lité arrière, et c’est un bon système.

    L’im­pres­sion que ça donne est tout de même qu’ils ont fait leurs propres exten­sions qui n’ap­par­tiennent qu’à eux.

    Est-ce qu’on a quelque part un projet simi­laire, qui implé­mente un maxi­mum de nouveau­tés des futurs EcmaS­cript mais qui évite d’ajou­ter trop de syntaxes diver­gentes au cœur du langage ?

    Quelles sont vos expé­riences avec l’un ou l’autre de ces systèmes ?

  • The star­tup free­lan­cer

    Partage de lecture:

    I deci­ded to stop doing the office job thing and star­ted doing exactly what I want with my time, seven days a week.

    […]

    I’m also a free­lance program­mer. I help early stage star­tups get their MVPs out the door. That means I get invol­ved when the first server needs to be set up, the first data­base instal­led, the first repo crea­ted and the first line of code hastily banged out. There’s some­thing about those first moments of a star­tup’s exis­tence that is hard to repro­duce – the thrill of a newborn idea coupled with the urgency of the penni­less.

    The star­tup free­lan­cer — Vassili van der Mersch

  • Flysys­tem – accès aux systèmes de fichier au PHP

    Petite décou­verte récente et sympa : Flysys­tem. Une biblio­thèque de code PHP qui présente une abstrac­tion assez simple et sympa autour des systèmes de fichier locaux, S3, drop­box, FTP, …

  • Docu­men­ta­tion PHP

    Quelques (nombreux) écrans de présen­ta­tion de Willian Durand à propos de PHP

    Je ne sais pas à qui est destiné cette docu­men­ta­tion, mais c’est un boulot énorme et très bien fait de collecte, analyse et présen­ta­tion des bonnes pratiques. Vous devriez passer dessus et prendre du temps à lire même si vous travaillez déjà avec PHP au jour le jour.

    Pour m’être frotté à ce genre d’exer­cice, j’ai rare­ment vu un résul­tat aussi bon.

    Il y a une version pour la suite qui parle plus parti­cu­liè­re­ment de Symfony, mais moins essen­tielle à mon avis.

  • Gérer les services home­brew sur Mac OS X

    Laun­chRo­cket : Petit soft qui rajoute une page dans l’ap­pli de préfé­rences Mac OS X. De là vous pouvez gérer les services instal­lés via Home­brew : les arrê­ter, les démar­rer.

    Je ne suis pas convaincu par leur expli­ca­tion sur le côté sécu­rité donc je ne coche­rai pas le « run as root » mais sur le reste c’est assez pratique.

  • Offshore & star­tup

    Je recherche des star­tups Europe/US dont une partie de l’équipe tech­nique a été basée hors Europe/US pour des raisons de coûts.

    • Est-ce que ça existe ? Vous avez des noms ?
    • Si vous l’avez vécu (quel que soit le côté), quelles en ont été les enjeux, les diffi­cul­tés et les résul­tats ?
    • Si vous avez choisi de ne pas le faire, pourquoi ?

    Note : Je ne parle pas de régie offshore mais bien de gens internes à la star­tup.


    I am looking for Euro­pean/US star­tups in which part of the team has been loca­ted outside Europe/US to lower the costs.

    • Did you heard about such expe­riences ? Do you have names ?
    • If you lived it  (whate­ver the side), what where the stakes, the diffi­cul­ties and the results ?
    • If you choose not to go this way: why ?

    Note: I am not talking about offshore contrac­ting but about people who are direct employees of the star­tup

  • Lien vers du Javas­cript

    Problé­ma­tique du jour : Inter­cep­ter l’ap­pel à des liens via Javas­cript.

    Mon cas d’usage : J’ai des conte­nus (images, vidéos, audio, polices de carac­tères) stockés côté client (indexedDB, webSQL ou DOMS­to­rage) que je souhaite insé­rer dans mes pages.

    (billet mis à jour au fur et à mesure des réponses)

    Quelques solu­tions :

    Data:URI

    Je récu­père ma donnée, je la trans­forme en base64, et je remplace le lien stan­dard par un lien en data:uri.

    Deux défauts : Je stocke N fois la donnée dans le DOM où N est le nombre d’ap­pa­ri­tion de l’image ou de la ressource dans mes pages HTML/CSS. Pour ne rien gâcher, on stocke en base64 donc avec 30% de poids en plus. De plus, même si je n’ai pas de test à montrer, on s’est déjà pris les pieds dans le tapis à cause de très mauvaises perfor­mances de pages avec beau­coup de data:uri, spécia­le­ment sur Fire­fox (proba­ble­ment sur les polices de carac­tères)

    Blob + crea­teObjectURL

    Je récu­père ma donnée, je créé un Blob à partir de cette donnée, je passe par URL.crea­teObjectURL pour créer une URL dédiée et j’uti­lise cette dernière quand je réfé­rence ma ressource.

    On résout les problèmes du data:uri mais on se coupe de IE 9, IE mobile et iOS 5. Pas gravis­sime mais j’au­rai préféré éviter.

    Par contre la solu­tion ne fonc­tion­nera de toutes façons pas pour les images ou polices de carac­tères réfé­ren­cées depuis les CSS (sauf à construire les CSS via Javas­cript mais là on entre dans des usines à gaz).

    Cas spéci­fique des vidéo et audio

    Les deux solu­tions me posent de toutes façons un sérieux problème pour les vidéo et les audio, qui peuvent être de gros volume. Je me vois mal sortir d’in­dexedDB des dizaines de méga­oc­tets (au mieux) pour construire un blob juste et avoir une URL dans ma balise HTML sans même savoir si l’uti­li­sa­teur tentera effec­ti­ve­ment de lire la vidéo ou le fichier audio.

    Pour les vidéos et les audio (mais unique­ment ces deux types de contenu) je peux réflé­chir à mettre un lien vers une vidéo de taille quasi nulle et le chan­ger dès que la vidéo est acti­vée. J’ai toute­fois un peu peur des effets de bords. Il va falloir aussi bosser en amont pour que la première image s’af­fiche bien dans le lecteur vidéo malgré l’ab­sence de la vidéo complète.

    Bidouille

    Pour l’ins­tant ma solu­tion serait :

    • Pour les images et polices de carac­tères dans les CSS : data:uri. En espé­rant que la CSS ne contient pas trop de ressources inutiles ou trop de liens vers la même ressource.
      • Au pire : Géné­rer la CSS en Javas­cript avec des liens obte­nus par crea­teObjectUrl, l’in­sé­rer dans le DOM manuel­le­ment
    • Pour les images dans le code HTML : crea­teObjectURL si possible.
      • Véri­fier tout de même si le data:uri n’est pas plus simple. La diffé­rence entre les deux sera assez faible si les images ne sont pas répé­tées plusieurs fois.
    • Pour les audio et vidéo : Désac­ti­ver le preload, rensei­gner le lien via crea­teObjectURL qu’au lance­ment de la vidéo. Pour les vidéo, penser à créer une image d’at­tente avec l’at­tri­but poster.

    Ça reste fran­che­ment du brico­lage je trouve, et ça va néces­si­ter plein de javas­cript pour géné­rer tout ça.

    Dans mon monde idéal

    Dans l’idéal j’au­rai bien aimé avoir une sorte de faux serveur web en javas­cript depuis le navi­ga­teur. Genre toute url en « local-js://xxxxx » fait appel à un objet Javas­cript qui répond ensuite ce qu’il veut.

    À défaut, un URL.createObjectURL( 'text/html', function() { return bindata; } ) serait bien pratique : Le navi­ga­teur n’ap­pe­lant la fonc­tion pour récu­pé­rer le contenu que quand il cherche à accé­der au dit contenu, au lieu de lui donner tout le contenu par avance au cas où il en aurait besoin.

    Quelqu’un a des pistes pour moi ?