From 92596d56fdff389f3a42a32817f00b75973701cf Mon Sep 17 00:00:00 2001 From: Tykayn Date: Thu, 4 Aug 2022 23:07:59 +0200 Subject: [PATCH] hop --- .idea/mastodon_multi_account.iml | 5 +- assets/documents/cipherbliss_tkwp_posts.json | 28052 +++++++++++++++++ assets/documents/tykayn_wptkblog_posts.json | 27577 ++++++++++++++++ helpers/describe_picture_folders.mjs | 12 + helpers/tkblogPost.js | 135 + helpers/utils.js | 8 + helpers/wiki_osm.mjs | 29 +- package-lock.json | 6056 ++++ package.json | 1 + yarn.lock | 620 +- 10 files changed, 62167 insertions(+), 328 deletions(-) create mode 100644 assets/documents/cipherbliss_tkwp_posts.json create mode 100644 assets/documents/tykayn_wptkblog_posts.json create mode 100644 helpers/describe_picture_folders.mjs create mode 100644 helpers/tkblogPost.js create mode 100644 helpers/utils.js create mode 100644 package-lock.json diff --git a/.idea/mastodon_multi_account.iml b/.idea/mastodon_multi_account.iml index c956989..16a9ea2 100644 --- a/.idea/mastodon_multi_account.iml +++ b/.idea/mastodon_multi_account.iml @@ -1,7 +1,10 @@ - + + + + diff --git a/assets/documents/cipherbliss_tkwp_posts.json b/assets/documents/cipherbliss_tkwp_posts.json new file mode 100644 index 0000000..aed31c2 --- /dev/null +++ b/assets/documents/cipherbliss_tkwp_posts.json @@ -0,0 +1,28052 @@ +[ + { + "ID": 187, + "post_author": 1, + "post_date": "2016-07-26 20:48:35", + "post_date_gmt": "2016-07-26 18:48:35", + "post_content": "\r\nJe me suis essayé à la visualisation de données avec Gephi, un logiciel libre connu pour être le photoshop de la DataViz, tout en étant gratuit.\r\n\r\nJ'en ai profité d'avoir la main sur la base de données de fanzines de www.meluzine.org pour proposer des exportations en csv, un format de feuille de calcul ouverte (lisible avec Libre Office par exemple).\r\nAprès avoir suivi le rapide tour d'horizon de la doc officielle, j'ai rajouté une colonne Souce, et une colonne Target à l'export de la page de fanzines pour faire des liens entre les noms des associations et les titres des fanzines.\r\nQuelques ajustements de couleur par propriété sur les liens, la taille des labels correspond aux séries de fanzines ayant plein de titres en commun avec les autres (donc en tête de file des titres de numéros de fanzines, le nom \"1\", puis le nom \"2\", puis \"3\", etc...)\r\nLes liens entre les noeuds en vert représentent les fanzines toujours disponible, et en rouge ceux qui sont épuisés. Les tas de liens forment des petites galaxies rapprochées par des choses communes entre les fanzines, telles que leur prix et leur nombre de pages, non affichés pour ne pas alourdir la visualisation.\r\nCette infographie montre qu'il y a une bonne partie de rouge, surtout sur les séries extérieures.\r\nCe qu'on ne voit pas ici c'est que moins d'un pour cent des fanzines enregistrés sont sortis cette année. Et 9% sont sortis en 1991, première année de production du site.\r\nDonc, si vous êtes un fanzineux, inscrivez vos productions en créant un compte sur www.meluzine.org :)\r\nEnjoy!", + "post_title": "la galaxie des fanzines", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "la-galaxie-des-fanzines", + "to_ping": "", + "pinged": "", + "post_modified": "2016-08-19 10:53:01", + "post_modified_gmt": "2016-08-19 08:53:01", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 188, + "post_author": 1, + "post_date": "2016-07-26 09:26:48", + "post_date_gmt": "2016-07-26 07:26:48", + "post_content": "\"DSC09195\"Y'a pas longtemps j'ai découvert les Ubuntu Party de Paris.\r\nC'est super sympa et convivial. J'étais étonné de voir que les install party pouvaient ameuter autant de gens, et surtout, pas seulement des mecs barbus. Justement y'a une grande diversité d'interessés par la culture du libre et ubuntu. La communauté est inclusive et c'est super cool!\r\n\r\n\"notion_geek\"\r\n\r\nJ'ai bien aimé la conférence d'Androsème sur le sacré et le profane. Elle y réfléchit à la notion de geek, on y voit comment ce concept est exclusif des profanes, et ce qui se passe lorsque le profane essaie de toucher au sacré.\r\nOn y voit aussi comment le harcèlement en ligne est rendu possible via facebook et autres choses, mais que ça ne tient pas spécifiquement aux outils en ligne et qu'on retrouve ces comportements d'exclusion hors ligne.\r\nhttps://twitter.com/androseme\r\n\r\n\"harcelement_sacre_profane\"\r\n\r\nLa conférence interactive sur le projet Do Not Track d'Arte était super bien pour expliquer les enjeux de l'espionnage de masse légalisé, on y a vu qu'avoir des choses à cacher est parfaitement naturel et n'est pas réservé aux gens louches. Le suivi de toutes vos données vaut de l'or, vous devez vous protéger vous même ainsi que les personnes avec qui vous communiquez. Surtout que dans ces histoires de suivi vous n'avez pas autorité pour savoir ce qui est retenu contre vous, qui détient ces informations, pour combien de temps, ce qui en sera fait, et à fortiori dans les mains de qui elles tomberont par inadvertance.\r\nvous ne manquerez pas d'en entendre parler dans les mois qui suivent.\r\nhttps://donottrack-doc.com/fr/\r\n\r\n\"internet_des_objets\"\r\n\r\nIl y a eu aussi une conférence sur Mycroft, un projet ouvert d'intelligence artificielle ayant pour but d'être installée dans des objets. un projet qui a l'air vachement chouette, et compatible Arduino entre autre. de quoi fabriquer mille bidules utiles ou simplement pour le plaisir d'apprendre comment fonctionnent les choses.\r\nhttps://github.com/MycroftAI/mycrof...\"internet_objets_mycroft\"\r\n\r\nDonc wouala, ubuntu party ce sont des évènements à la cité des sciences de paris qui se produisent deux fois par an, pour chaque sortie de version d'ubuntu. en Octobre et en Avril. Vous pouvez y venir avec vos parents et leur faire essayer le système dans sa version la plus récente.\r\nN'oubliez pas de faire une sauvegarde de vos fichiers sur un disque externe avant, par précaution ;)\r\nPerso, ubuntu 15.10 installé sur mon vieux EeePC 1005HA a permis de lui redonner une certaine jeunesse, nickel pour faire du développement arduino sans se trimballer un gros ordi. Et surtout, il a une autonomie incroyable pour un ordi de 2009, on peut bien le laisser allumé 6 heures et bidouiller dessus sans avoir à le brancher.\r\n\r\nsuivez la communauté ubuntu-fr sur twouiteur :3\r\nhttps://twitter.com/ubuntuparty\r\n\r\nRetrouvez les vidéos des conférences ubuntu party sur le site officiel :)\r\nhttp://media.ubuntu-paris.org/", + "post_title": "ubuntu party 15.10", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "ubuntu-party-15-10", + "to_ping": "", + "pinged": "", + "post_modified": "2016-09-06 21:52:35", + "post_modified_gmt": "2016-09-06 19:52:35", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 189, + "post_author": 1, + "post_date": "2016-07-26 08:47:00", + "post_date_gmt": "2016-07-26 06:47:00", + "post_content": "\r\n\r\nVous voulez visualiser les relations entre vos tables SQL assez facilement? vous pouvez le faire avec phpmyadmin, ou en ligne de commande avec un dump de votre base (en exportant seulement le schéma, sans données)\r\n
 #! /bin/bash DBNAME = $1; FILENAME = $2; mysqldump $DBNAME $(mysql -D DBNAME -Bse \"show tables like 'wp_%'\") > FILENAME.sql
\r\nVous pouvez utiliser SQLfairy sur votre dump de base pour en sortir un png.\r\n
 sudo apt-get install sqlfairy
\r\n \r\n
sqlt-graph -f MySQL -o mydatabase.png -t png FILENAME.sql\r\n
\r\nastuce trouvée sur\r\n\r\nce post de nsaunders ", + "post_title": "exporter une visualisation de son schéma SQL", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "exporter-une-visualisation-de-son-schma-sql", + "to_ping": "", + "pinged": "", + "post_modified": "2016-08-24 14:23:30", + "post_modified_gmt": "2016-08-24 12:23:30", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 190, + "post_author": 1, + "post_date": "2016-07-26 08:27:22", + "post_date_gmt": "2016-07-26 06:27:22", + "post_content": "\r\n
\r\nQuel déconneur ce Djo :D\r\n
", + "post_title": "le dysoon de djo", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "le-dysoon-de-djo", + "to_ping": "", + "pinged": "", + "post_modified": "2016-07-26 08:32:32", + "post_modified_gmt": "2016-07-26 06:32:32", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 191, + "post_author": 1, + "post_date": "2016-05-11 19:25:05", + "post_date_gmt": "2016-05-11 17:25:05", + "post_content": "\"\"\r\n\r\nImageMagick permet de convertir des tas de fichiers en des tas d'autres. Il est fourni de base dans pas mal de distributions linux.\r\nconvertir un pdf en un jpg par page de 300dpi c'est aussi simple que lancer cette commande:\r\n(dans un terminal, dans le dossier de votre fichier pdf, par exemple, mon dossier de Téléchargements)\r\n
convert -density 300 -quality 100 monFichierPDF.pdf mesFichiersJpg.jpg
\r\nEt boum! aussitôt plopent dans le même dossier des jpg mesFichiersJpg (1).jpg pour chaque page.\r\n\r\nTrop magique.\r\nL'option -density 300 donne une résolution de 300dpi.\r\nL'option -quality 100 compresse la sortie au meilleur de sa qualité.\r\n\r\nIl faut nommer le fichier d'entrée et celui de sortie, j'aurai pu marquer mesFichiersJpg.png ça aurait fait des vrais png, mais ça supporte aussi des tas d'autres formats.\r\n

Option de sécurité d'ImageMagick

\r\nIl est possible que vous ayez une version d'ImageMagick avec des restrictions de conversion qui ont été mises en place pour des raisons de sécurité à une époque où GhostScript avait un problème, corrigé depuis. Si la commande convert ne veut pas convertir votre pdf, regardez dans la config du fichier de police:\r\n\r\nsudo editor /etc/ImageMagick-7/policy.xml\r\n\r\n(le dossier peut se nommer ImageMagick-6 ou autre selon votre version), et changez la ligne concernant les pdf:\r\n
<policy domain=\"coder\" rights=\"none\" pattern=\"PDF\" />
\r\nEn ceci:\r\n
<policy domain=\"coder\" rights=\"read | write\" pattern=\"PDF\" />
\r\nRelancez votre terminal et ça devrait bien vouloir convertir votre pdf en jpg.\r\n

Une commande en alias de bash

\r\nVous pouvez vous en faire un alias dans votre fichier ~/.bash_aliases\r\n
 alias pdf2jpg='convert -density 300 -trim -quality 100'
\r\nAinsi vous pourrez lancer:\r\n
 pdf2jpg machin.pdf machin.jpg
\r\nEt paf, ça fait des images de jolie qualité pour chaque page.\r\n

Le cube qui sait lire

\r\nEt donc voilà, il arrive aussi qu'on vous file un pdf contenant un contrat ou un texte (avec ou sans images) qui serait bien plus efficace en format texte pour y faire des recherches par exemple. vous avez bien entendu autre chose à faire de votre vie que de recopier tout le texte. aint nobody got time for that.\r\n\"\"\r\n
Il convient donc d'utiliser un soft qui sait faire de l'Optical Character Recognition, de la reconnaissance de caractères optiques.
\r\n\"\"\r\nLe Tesseract, ce n'est pas un cube produisant une énergie infinie au pays d'Iron Man, c'est un soft capable de lire des caractères dans une image et de pondre un texte en conséquence. Bien sûr il faut relire le texte ensuite pour corriger quelques typos, mais il fait déjà un boulot impressionnant.\r\ninstallez le avec son extension pour le français avec apt-get:\r\n
sudo apt-get install tesseract-ocr tesseract-ocr-fra
\r\nUne fois que c'est fait revenons à nos animaux laineux.\r\nVous avez donc plein de fichiers jpg dans un dossier.\r\nDans un terminal, mettez vous dans le dossier en question.\r\n\r\nNous allons donc faire une boucle sur tous les fichiers du dossier courant se terminant par jpg, les lire et en ressortir dans un fichier page_truc.txt pour chaque image.\r\n
a=0\r\nfor i in $(ls -v *.jpg); do\r\n  echo \"$i page_${a}.txt\"\r\n  # on affiche ce qu'on fait\r\n  tesseract $i page_${a}.txt\r\n  let a=a+1\r\ndone\r\n
\r\nl'option -l fra sert à dire qu'on traite un texte en français\r\net maintenant on concatène les sorties de chaque image en un seul fichier\r\n
cat page_* > all_pages.txt
\r\nEt vous pourrez maintenant avoir un texte sur lequel vous pouvez faire une recherche intégrale avec votre éditeur de texte préféré, à la recherche de l'arnaque contractuelle qui va bien.\r\n\r\nAstuce de l'OCR trouvée sur la doc ubuntu\r\nEnjoy!", + "post_title": "Conversion de pdf en image et OCR", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "conversion-de-pdf-en-image-et-ocr", + "to_ping": "", + "pinged": "", + "post_modified": "2020-08-03 11:55:32", + "post_modified_gmt": "2020-08-03 09:55:32", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 192, + "post_author": 1, + "post_date": "2016-05-10 14:56:57", + "post_date_gmt": "2016-05-10 12:56:57", + "post_content": "Apprendre de son expérience est une capacité trop souvent laissée de côté. avez vous déjà essayé d’identifier les éléments qui vous ont fait perdre du temps dans vos anciens projets?\r\nLaissez de côté vos différents entre collègues (si vous en avez, comme dans la plupart des boites), et prenez le temps de leur demander ce qui les empêche de travailler, quelles sont leur principales difficultés dernièrement, et comment les résoudre selon leur avis.\r\nEn tant que membre de l’équipe, lorsque vous résolvez un souci après bien des recherches pour vous rendre compte que c’était un truc tout simple, notez le dans un carnet.\r\nVous verrez ainsi quels sont les choses qui vous font perdre du temps et que ce sont souvent les mêmes qui reviennent.\r\nDurant les démonstrations d’avancement, il est bon de faire un tour de table de retour d’expérience en évoquant des points positifs et des axes d’améliorations. Notez cependant qu’en groupe on ose moins dénoncer certaines choses ou désigner des fautifs. C’est pourquoi il est nécessaire de se renseigner entre quatre zyeux auprès des autres gens.\r\nLe but de la manoeuvre n’est pas le lynchage collectif, il convient donc de rester courtois dans ses remarques.\r\nVous serez surpris de voir comme l’esprit d’équipe peut être amélioré juste de cette façon.", + "post_title": "Retour d'expérience", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "retour-d-exprience", + "to_ping": "", + "pinged": "", + "post_modified": "2016-06-06 13:02:32", + "post_modified_gmt": "2016-06-06 11:02:32", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 193, + "post_author": 1, + "post_date": "2016-04-21 13:10:07", + "post_date_gmt": "2016-04-21 11:10:07", + "post_content": "

''J'ai été conquis par l'histoire du petit printf, que j'ai découvert par Hteumeuleu, écrit par Fred T-H c'est presque comme le petit prince mais version pour les codeurs, avec toute sa poésie et sa réflexion sur les absurdités de ce que l'on fait. Comme il est écrit en English et qu'il faudrait carrément que plein de codeurs le lisent, et pas forcément des plus spécialisés en Angliche j'ai entrepris de vous le traduire.''

\r\n

\"\"

\r\n

Le petit printf, pourquoi codons nous?

\r\n

Chapitre 1

\r\n

J'ai eu la chance d'être né avant que les ordinateurs et les jeux vidéo étaient omniprésents. J'ai eu la chance de jouer à l'extérieur avec des amis et mon frère, et d'inventer nos propres jeux.
Nous pourrions être nos propres héros, utilisez une brindille qui pouvait soudainement devenir un arc, une arme à feu, une épée, ou un télescope. La brindille pouvait devenir n'importe quoi, sauf peut-être un boomerang, car une fois que vous jetez le bâton, il faut aller le chercher.

À un certain moment j'ai grandi, et il est devenu embarrassant de jouer de cette façon. Vous ne pouvez pas traiter une pomme de pain comme une grenade et faire semblant d' avoir des pouvoirs magiques lorsque les autres enfants pensent qu'être un adulte est cool. ça ne vous correspond plus.
On finit par être forcé de grandir. Pourtant, ça reste une enfance chanceuse.

\r\n


À un certain moment j'ai eu la chance de jouer à des jeux vidéo, et d'utiliser des ordinateurs.
Il pourrait croire que c'était comme avoir le monde imaginaire que vous aviez voulu tout ce temps, matérialisé en face de vous.
Cela vous consume, et pendant un moment vous vivez une vie différente.

\r\n

Mais il y a quelque chose de commun à la plupart des jeux vidéo : vous ne créez pas, vous réagissez, vous consommez.

\r\n

J'ai fait du théâtre d'improvisation étant adolescent. Alors, de nouveau, il était normal d'être avec les gens et de créer et de faire semblant à partir de rien.

\r\n

Bien sûr, le théâtre d'improvisation au Québec est différent ; il y a une patinoire là, tout n'est que hockey.

\r\n

Quand je suis arrivé à une école professionnelle pour étudier le multimédia à partir de 2005 jusqu'à 2008, j'ai finalement débarqué dans le domaine de la programmation. Je l'ai trouvé incroyable! La créativité était encore là, et ça pouvait m'apporter de l'argent! Je me suis alors conçu le mécanisme de mon premier jeu, et c'était époustouflant.

\r\n\r\nCe n'est pas un vrai jeu vidéo, m'a-t-on dit. C'est juste un formulaire HTML. Vous devriez avoir utilisé un tableau pour le texte et les options qu'il aurait été mieux. Le code a besoin de nettoyage.\r\nJ'étais un peu découragé ; le jeu était vraiment sur les 11 pages de texte que j'avais écrites pour son aspect \" choisissez votre aventure \". Mais je compris que si je voulais faire les choses de sorte que bien plus de gens pensaient qu'il s'agissait d'un bon jeu, j'avais beaucoup à apprendre.\r\nJe dois apprendre \" la vraie programmation \". Passer de JScript dans une boîte à outils de GUI pour quelque chose de mieux, comme PHP. Alors j'appris sur le tas, avec le Javascript. Puis finalement on m'a dit d' apprendre à faire de nouveau de la vraie programmation; PHP est atroce. On m'a dit d'essayer peut-être Python, que j'ai donc appris.\r\n\r\nMais les vrais programmeurs connaissent des choses plus impressionnantes, et les noobs de python ne pouvaient résister à l'appel, la programmation orientée objet n'était pas où je voulais être. Lire le SICP (Structure and Interpretation of Computer Programs) serait la prochaine bonne étape, m'a-t-on dit, parce qu'elle était comme la bible de la science informatique.\r\n\r\n\r\nCela m'a fait entrer dans le moule. Et j'ai pris le livre de K & R, car les vrais programmeurs dans le monde réel font du C, et je me suis inscrit pour les cours à temps partiel à mon université locale tout en jonglant avec mon travail, parce que de vrais programmeurs connaissent les structures de données et les mathématiques,\r\n\r\nChoses que j'ai appris dans une certaine mesure. Je commencé à lire des documents et des livres, parce que de vrais programmeurs restent à jour et connaissent des algorithmes incroyables.\r\nà un moment donné je me suis essayé au Erlang et j'ai commencé à en faire une carrière. J'ai écrit un livre sur le sujet. Curieusement, personne n'a jamais remis en question si j'étais un véritable auteur, ou un véritable écrivain, ou un vrai illustrateur. C'était dingue, j'ai obtenu un poste d'enseignant en Erlang sans jamais l'avoir utilisé dans un système en production.\r\n\r\n

Chapitre 2

\r\n

\r\n\tDonc, je vivais ma vie en faisant le tour du monde, en disant aux gens comment faire les choses que je n'avais parfois jamais fait, alors tout le monde semblait soudain croire que j'étais un vrai programmeur, pour des choses que je faisais qui la plupart du temps n'avaient aucun lien avec la programmation.\r\n

\r\n\r\n

\r\n\tUn jour, j'étais coincé dans un aéroport en revenant d'une conférence, en tapant furieusement sur un terminal, quand une voix douce et étrange me demanda :\r\n\t
\r\n\t\"Si vous plaît, concevez moi un système!\r\n\t-Quoi?!\r\n\tConcevez -moi un système !\"\r\n

\r\n\r\n

\r\n\tJe levai les yeux de mon écran, surpris par la demande. Je regardai autour et ai vu ce gamin qui aspirait à être un développeur et attendait de moi de l'appeller \" printf\", un nom que je trouvais très stupide et fantaisiste. Il ressemblait à peu près à ça:\r\n\t
\r\n\t\r\n

\r\n\r\n\"Je ne sais pas encore grand chose à propos des ordinateurs, mais on dirait que vous oui. Je veux écrire des programmes, faire un blog sur eux et que les gens les utilisent et les lisent. S'il vous plaît, concevez moi un système!\"\r\n
\r\nVoilà une demande surprenante, et j'avait été éveillé pendant les 20 dernières heures, je n'étais pas trop sûr d'avoir bien compris ou si j'en avais envie. Je lui ai dit les systèmes étaient compliqués. Je ne savais pas vraiment quel système il voulait faire, comment il voulait le faire échouer, combien de lecteurs il devrait supporter, où il voudrait l'héberger, et je ne pouvais donc pas concevoir un système approprié avec si peu d'informations.
\r\n\"Cela n'a pas d'importance. Concevez-moi un système.\"
\r\nJe fis donc le schéma d' architecture suivante:\r\n
\r\n
\r\n\r\nIl regarda et dit : \"Non, ce système n'est pas assez bon. Faites-moi une autre.\"\r\nDonc je l'ai fait:\r\n
\r\n
\r\net je lui ai donné un aperçu de la façon dont cela fonctionnerait.\r\nMon nouvel ami sourit poliment. \"Cela ne fait pas ce que je veux, il est beaucoup trop complexe et fait beaucoup de choses dont je ne ai pas besoin\"\r\nJe me sentais un peu insulté, après avoir examiné la redondance, la surveillance, les sauvegardes, les caches et d'autres mécanismes pour réduire la charge, le processeur de paiement externe pour la protection juridique, les basculements, le déploiement facile, et tout le reste. Je pourrais l'avoir décemment facturé en tant que frais de consultation pour cela! à bout de patience, je dessinais ceci:\r\n
\r\n
\r\n\r\nEt j'ajouté : \"Voici la conception. Le système que tu veux est à l'intérieur de la boîte noire\", espérant cette réponse pourrie me laisse tranquille. Mais je fus surpris d'entendre de retour :
\r\n\"C'est exactement comme je le voulais !\"
\r\nEt voilà comment je fis la connaissance du petit printf.\r\n\r\n

Chapitre 3

\r\n

\r\n\tJ'ai rapidement fait un tour sur le portefolio de ce petit bonhomme. Ses dépôts ne sont que de petits programmes, des pages web simples avec des formulaires, des utilitaires en ligne de commande triviales. Ils étaient peu spectaculaires, venaient rapidement à la vie, et disparaîtraient aussitôt.\r\n\t
\r\n\tPuis à un moment donné, il a commencé à travailler sur un programme plus vaste, qui a utilisé plusieurs modules. Il fallait des sockets, accéder au disque, parler à une base de données réelle. Quand il l'a compilé et fait tourner correctement, le petit printf a été émerveillé. Mais le programme n'a pas encore assez.\r\n\t
\r\n\tIl fallait refactoriser, de meilleurs tests, de la documentation, de la vérification et de l'analyse. Le programme marchait pendant un certain temps, et un matin, il crasha.\r\n\t
\r\n\tEt il est crasha encore et encore.
\r\n\r\n\tLes configurations étaient mauvaises, les journaux ne se recyclaient pas, le disque avait une vitesse imprévisible, le réseau avait le hoquet, les bugs défilaient, les encodages étaient confondus, la base de données avait besoin de nettoyage, les transactions se suspendaient, les certificats expiraient, les vulnérabilités continuaient à venir, et les mesures restaient silencieuses.\r\n\t
\r\n\t
\r\n\tça n'arrêtait pas de faire des spaghetti.
\r\n\tIl m'a dit : le fait est que je ne sais rien ! J'aurai du concevoir selon mes besoins. J'ai eu la prétention de vouloir écrire un système perfectionné, et j'ai passé tellement de temps à le réparer, ça a annulé le temps qu'il était censé me faire gagner. J'aurais dû savoir que c'était trop beau pour marcher vraiment.\r\n\t
\r\n\tUn matin, il décide de quitter son bureau. \"Au revoir\" dit-il à une faible lueur qui semblait s'être éteinte. Il est parti pour voir ce que le monde du logiciel avait à offrir en dehors de son petit serveur salissant.\r\n\t
\r\n\tLes journaux continuaient à s'accumuler, jusqu'à ce que le disque dur ne puisse plus en ajouter.\r\n\r\n

\r\n

Chapitre 4

\r\n

\r\n\t
\r\n\tIl vint à un espace de travail, à la recherche de développeurs expérimentés de qui obtenir des conseils et de l'aide.\r\n\tLe premier qu'il a rencontré était un ingénieur senior très fier qui semblait se sentir plutôt supérieur.\r\n\t
\r\n\r\n\t
\r\n\r\n\t\"Ah, voici un apprenant ! Bienvenue dans mon domaine, dont je suis l'expert\" at-il dit.\r\n\t\"Un expert?\" Demanda le petit printf. Est- ce que cela signifie que vous pouvez programmer quoi que ce soit avec tous les langages ?\"\r\n\t\"Oui!\" répondit l'expert. Il a ajouté \"Enfin presque ; Je programme uniquement les programmes qui valent le coup de les programmer. Je ne perds pas mon temps sur des futilités. Il est de nombreux programmes que je n'ai jamais écrit, mais je pourrais le faire avec toute la facilité dans le monde.\"\r\n\r\n\t\"Ah, pourriez-vous m' aider avec mon système?\" Dit le petit printf qui commença à présenter son entreprise, l' expert du domaine l'interrompit :\r\n\t\"Je suis désolé, mais je ne vois vraiment pas l'intérêt de le faire.\"\r\n\t\"Pourquoi pas?\"\r\n\t\"L'expérience. Je suis bon à la programmation des choses que je programme, et je programme des choses pour lesquelles je suis bon. En améliorant cet ensemble assez restreint de choses pour lesquelles je suis déjà bon, je fais en sorte d'être plus précieux que jamais dans ce domaine. Appelez ça la sécurité d'emploi, la survie du plus fort, mais voilà comment je marche.\"\r\n\t
\r\n\t\"Et pourquoi vous ne pouvez pas m'aider?\"
\r\n\r\n\t\"Eh bien, vous voyez, en prenant mon temps avec vous, signifie que je me détourne de mon auto-investissement important pour faire avancer les progrès réalisés par d'autres - ce qui est une stratégie perdante pour moi. La meilleure façon d'apprendre pour toi est la façon dont je m'y suis pris: lutter très dur et comprendre par soi-même. Ca te forgera le caractère.\"\r\n\t
\r\n\t\"Cela ne semble pas très efficace...\"
\r\n\t\"Eh bien, tu peux aller à l'école et apprendre, ou tu peux apprendre par toi même. Vraiment ce qu'il faut pour distinguer les des mauvaises herbes des autres c'est de virer les paresseux qui veulent juste que ça soit facile, tout ce qu'il faut c'est faire en sorte que ceux qui restent ici sont ceux qui le méritent vraiment. Le moment où nous laissons les glandeurs entrer, la valeur même du travail que je produis s'amoindrit.\"\r\n\t
\r\n\t\"Ne pensez-vous pas la coopération ou collègues pourrait vous aider?\"
\r\n\t\"Pas vraiment. Je travaille mieux lorsqu'on me laisse seul loin des distractions. Chaque fois que je suis forcé de travailler avec les autres, il est presque impossible de faire marcher le tout ensemble.\r\n\tJe finis, exaspéré, par prendre leur travail et le réécrire en grande partie d'une façon plus saine; puis il fonctionne bien.\"\r\n\t
\r\n\tLe petit printf a été surpris de rencontrer un expert qui semblait si désintéressée d'aider les autres, tout en étant si contrarié par leur manque apparent de compétence. Il était un peu triste que cet homme dont l'étroite vision de lui-même le réduisait au seul domaine qu'il connaissait, au point où il ne fait rien d'autre que créer des problèmes qu'il devrait lui-même réparer!\r\n\t
\r\n\t\"Je vois... eh bien je suppose que je suis heureux que vous ne me donnerez pas votre aide\", dit mon petit ami
\r\n\t\"Que voulez-vous dire?\" demanda l'homme méritocratique, dont la valeur semblait soudainement déclassé. Vous ne pensez pas le travail que je fais est intéressant ?
\r\n\t\"Oh si. Il semble juste comme vous me voyez comme un obstacle et une gêne plus que toute autre chose, et ce que je cherche de l'aide, et non pas l'affliction.\"
\r\n\tEt le petit printf sortit rapidement, laissant l'expert se rendre compte qu'il avait fait de lui-même un intouchable à plus d'un titre que concernant uniquement sa sécurité d'emploi.
\r\n\r\n\r\n

\r\n\r\n

Chapitre 5

\r\n

\r\n\r\n\t
\r\n\tSur son chemin, le petit printf est allé en face de la porte d'un bureau occupé par un homme entouré de livres à la couverture rigide et épaisse, avec des images géniales sur la couverture comme des sorciers et des dragons et des fractales et des modèles mathématiques.\r\n\t
\r\n\t\"-Jolis livres, monsieur,\" dit printf
\r\n\t\"-Merci. Je pense qu'ils sont un matériau essentiel pour les programmeurs. Si vous ne les avez pas, vous n'êtes pas vraiment un pro\"
\r\n\t\"-Je suppose que je ne suis pas un pro alors\", dit le petit printf.
\r\n\t\"-Lequel est votre préféré?\"
\r\n\t\"-Oh, eh bien je n'ai pas lu la plupart d'entre eux.\"
\r\n\t\"-N'êtes-vous pas un bon programmeur alors?\"
\r\n\t\"-Non, je ne suis pas.\" Le développeur ajouta fièrement: \"En fait, je suis un programmeur affreusement mauvais.\"
\r\n\t\"C'est une honte, dit le petit printf, qui a continué: Personnellement je m'améliore.
\r\n\t-Avez-vous entendu parler de l'effet Dunning-Kruger ?, demanda l'homme.
\r\n\t-Non c'est quoi?
\r\n\t-C'est une question de biais cognitif. Cet effet dit essentiellement que les gens qui sont moins compétents ont tendance à surestimer leurs qualifications, et les gens qui sont compétents ont tendance à sous-estimer systématiquement les leurs.
\r\n\t-Donc, si je pense que je suis bon, je ne suis probablement pas bon.
\r\n\t-Oui exactement. Vous êtes probablement mauvais. D'autre part, je dis ouvertement que je suis un programmeur horrible. Mais selon Dunning-Kruger, je vais probablement me sous-estimer, et cela fait de moi un bon développeur, ne voyez-vous pas?
\r\n\t-J'imagine?
\r\n\t-En effet, l'auto-dévalorisation est un outil essentiel du développeur. Le moment où vous sentez que vous êtes bon, vous allez vous détendre et arrêter l'amélioration.
\r\n\t-Est-ce que cela signifie pas que le moment vous vous sentez être bon vous-même, vous êtes en route vers l'échec et alors vous devriez vous sentir mal?
\r\n\t-Oui. Mais le chemin à parcourir à ce sujet est de dire que tout est terrible, même si vous avez pas de solutions à offrir. De cette façon, vous avez l'air intelligent, même si vous n'avez pas grand chose à apporter.
\r\n\t-Que voulez-vous dire?
\r\n\r\n\r\n\t-Disons que je me ballade sur le net que que je tombe sur un projet que je n'aime pas. L'astuce est de souligner tout ce qui ne va pas, sans donner plus d'informations que cela. Vous pouvez aussi faire subtilement remarquer que les façons dont la personne qui a fait la chose est un idiot sans problème.
\r\n\t-Et comment s'améliore-t-on avec cela?
\r\n\t-Eh bien, j'aime à penser qu'ils sont meilleurs en sachant qu'ils sont sur la mauvaise voie, et je suis un bienfaiteur pour eux de le leur montrer. C'est un peu de fumée et des miroirs. Personne ne sait ce qu'il fait, mais cette façon, il semble que moi je sais ce que je fais.
\r\n\t-Et qu'est ce qui se passe quand on vous demande de l'aide et que vous ne pouvez rien faire à ce sujet?
\r\n\r\n\t-Voilà où vous pouvez revenir à dire tout est pourri; que vous auriez plein de coupes franches à faire, qu'il faudrait améliorer d'autres choses, tout en étant bien pessimiste. Ils sont livrés à eux-mêmes.
\r\n\r\n\t-Donc, c'est juste une posture? Vous jouez un personnage pour faire votre chemin et esquiver ? Vous êtes la personne qui prétend être incompétent sur des choses qu'ils savent, ce qui rend les gens qui ne savent vraiment rien à se sentir encore pire, et vous êtes la personne qui prétend être compétent à des choses que vous ne savez pas, de sorte que les gens qui essaient de s'y améliorer aussi se sentent mal.
\r\n\r\n\t-Dans tous les cas, la compétence a très peu à voir avec tout cela. La réputation est très important cependant. Les gens embauchent des amis, et les personnes qui ne sont pas aimé et get non essentiels se font virer en premier; essayez de changer le système et vous devenez détesté. Tout est un jeu très social. C'est comme ça que ça fonctionne dans l'industrie, et probablement dans le milieu universitaire aussi, bien que je ne sais pas?\r\n\tTout est une question de qui vous connaissez, il faut savoir vous vendre, et faire connaître votre marque personnelle vous savez? Voilà comment vous obtenez des emplois dans ce buisness.
\r\n\r\n\t-Si cela est la façon dont les choses sont et que vous devez vous sentir mal et de faire en sorte que d'autres se sentent mal lorsqu'ils font bien les choses, peut-être que je ne veux pas un emploi dans ce buisness, dit le petit printf, avant de sortir.
\r\n\r\n\r\n

\r\n

Chapitre 6

\r\n\"\"
\r\nPendant le temps qui aurait été la pause déjeuner, Printf interrompu une personne qui avait apparemment oublié de manger, regardant un sandwich devenir de plus en plus froid à côté d'elle, assis à son bureau et en regardant leur écran.\r\nCela semblait être une personne très occupée qui savait ce qu'elle faisait.
\r\nPrintf demande:\r\n\"Si une base de données primaire peut crasher, la suivante peut elle échouer aussi?\r\n-Tout ce que vous avez, dit la personne, peut et va échouer tôt ou tard.\r\n-Même les choses qui vous disent des choses ont échoué?\r\n-Oui, même ceux-ci. Tous les grands systèmes sont dans un état d'échec partiel à un moment donné.\r\n-Mais, à quoi bon essayer de faire des systèmes fiables alors?\r\n-La personne ne savait pas, à ce moment là, qu'elle essayait de répondre à une page (pour éviter que le ciel ne lui tombe sur la tête en raison d'un cloud brisé) qui lui demandait la même chose.\r\n\r\n-Donc, rendre les systèmes fiables, pour quoi faire? appuya à nouveau le petit printf.\r\n\r\nénervé, car la personne avait affaire à un problème de production, avec ce gamin qui ne voulait pas le lâcher et un sandwich qui allait se perdre, la personne avec impatience balança:\r\n-C'est complètmeent inutile. Toute programmation est de la merde de toute façons.\r\n-oh !\", s'étonna-t-il.
\r\nPuis il y eut un moment de silence complet.\r\n\"\"\r\n\r\nLe petit gars a répondu, avec un soupçon de ressentiment:\r\n\"Je ne vous crois pas. Les programmes sont fragiles, mais les programmeurs peuvent faire de bons efforts et améliorer les choses, et les rendre utiles.\"\r\n\r\nAucune réponse est revenue. À ce stade, la personne avait ouvert le document expliquant comment démarrer une nouvelle copie de l'ensemble du cluster à partir de zéro, et les choses semblaient aller de mal en pis.\r\n\"Et vous croyez vraiment que les bons progr-\"\r\n-Oh non!\" s'écria la personne. \"Non non Non! Je ne crois pas à de bons programmes ou fiables! Plus maintenant! Ils sont tous dégueulasses! Je viens de vous dire la première chose qui vient à ma tête parce que je fais face à un de ces systèmes de merde en ce moment. Ne voyez-vous pas que je suis en train de tenter de garder en vie ce genre de choses? Cette merde est en fait de la conséquence.\r\nPrintf regarda ailleurs, avec une expression choquée.\r\n\"En fait, des conséquences? Vous parlez comme un «vrai programmeur».\"\r\nIl a ajouté:\r\n\"Vous mélangez tout, vous confondez tout. Il y a eu des millions de programmes, et pour les années qu'ils ont été en cours d'exécution ils meurent tous de la même manière. Et les gens les ont utilisés et en ont eu besoin. Et je connais certains programmes qui fonctionnent nulle part, sauf sur un seul ordinateur portable, et en une seule erreur pourrait détruire des communautés entières, sans même que personne ne le remarque. Et vous pensez que cela n'a pas d'importance?\"\r\nLa personne resta silencieuse.\r\n\r\n

Chapitre 7

\r\n\"\"\r\nLe quatrième espace de travail de mon ami visita avait un homme dont l'ordinateur a été couvert de tant d'autocollants que personne ne pouvait dire quelle marque il était.\r\n\"moteur-mvc, quadrangulaire JS, GoQuery, cometeor, quelque chose sonnant japonais,...\"\r\n\"-Salut, l'interrompit printf. Qu'est-ce que tu fais?\"\r\n\"Alchimiste, bongodb, mochascript, walktime.js, portasql,...,\" l'homme poursuivit.\r\n\"Que fais-tu ?,\" demanda-t-il à nouveau, plus fort cette fois.\r\n\"Oh, je suis en train d'essayer de nouveaux frameworks, des outils, des bases de données, les langues.
\r\n-Whoa, vous semblez aller vite, peut-être aussi vite que 10 programmeurs mis ensemble!\r\n-Oui! Enfin, l'industrie se déplace aussi très vite !\"
\r\nil regarda son téléphone pour une seconde, et il a ajouté \" Voilà! le framework de cardboard.io a sorti sa version 3.5 qui a brisé la compatibilité avec la 3.4 et cela a abouti à 4 fourchettes dans la communauté! Je dois les essayer tous de savoir lequel choisir!
\r\n-et que faites-vous à apprendre tout cela?
\r\n-Je suis un des premiers. Si vous ne restez pas à jour, vous restez coincé à écrire du COBOL ou du MUMPS pour vivre. Vous voulez trouver la prochaine grande chose, et surfer sur la vague vers le haut!
\r\n-ça a déjà fonctionné?
\r\n-Oh oui! J'ai appris Rails avant qu'il ne soit grand, et j'ai compris node.js avant qu'il soit connu, et j'étais sur les premières bêta de Redis, MongoDB et Riak! J'étais le premier à utiliser Vagrant et je nous ai fait passer à Docker mais bien sûr, maintenant le truc ce sont les Unikernels..
\r\n-Cool, et toutes ces choses où vous étiez à l'avant-garde, ça a payé?
\r\n-oh non; Le temps que Rails devienne énorme j'étais passé à la prochaine grande chose, donc je ne me suis pas retrouvé hors du coup. De même, pour les autres. Il me reste de l'espoir pour les unikernels cependant
\r\n-Je vois, ajouta le petit printf, pensif. Quels problèmes avez-vous résolu avec tous ces frameworks alors?
\r\nOh, je fais en sorte que nous n'utilisons pas quelque chose qui ne va pas être grand, de sorte que cette société n'aille pas de miser sur des technologies qui n'ont aucun avenir. C'est un travail très important, parce que si vous ne faites pas cela, vous ne pouvez pas trouver quelqu'un à embaucher en dehors de vieilles barbes grises du fond des âges passés, et que vous voulez fonceurs auto-motivés, qui sont aussi les premiers à adopter les nouvelles technos, dit l'homme.\r\n-C'est drôle, renchérit notre ami.
\r\n-C'est très dur! dans le monde des startups, si vous voulez des joueurs alphas, vous avez besoin d'une bonne technologie pour les mettre en appétit! Sinon, vous êtes coincé avec les retardataires inflexibles. Personne ne veut être un retardataire inflexible.
\r\n-Le petit printf intervint: Non, ce n'est pas ce que je veux dire.\"\r\net il ajoute ensuite \"ce que je veux dire, il est drôle que les outils sont destinés à résoudre des problèmes pour nous, mais pour vous, les outils eux-mêmes sont devenus un problème.\"
\r\nEt tandis que l'homme se tenait là en silence (sur son nouveau bureau à roulettes trop cool), le petit printf se dirigea hors de la salle.
\r\n\r\n

Chapitre 8

\r\n\"\"
\r\nDans le bureau d'à côté se trouvait un employé fatigué, avec des dizaines de tasses à café vides, recroquevillée sur ton clavier, à taper avec énervement.
\r\n\"Salut, dit le petit printf.\"
\r\nLa femme n'a pas arrêté ce qu'elle faisait. Elle a continué à taper furieusement.
\r\n\"Bonjour?\" demanda-t-il à nouveau.
\r\nLa femme s'arrêta d'un coup, pris un flacon d'un tiroir dans son bureau, et a pris une gorgée.
\r\n\"J'ai un travail terrible, dit-elle. Je fais DevOps. ça avait bien commencé, la plupart du temps je développais et puis parfois je debuguais des choses, mais plus le temps passait, plus à a a empiré. J'ai commencé à lutter contre les incendies dans notre pile, puis plus d'incendies ont commencé à se produire. Je me suis débarrassé de la plupart d'entre eux, tirant de petits miracles ici et là pour ensuite respecter les délais de dev sur des choses que je devais aussi faire en plus.
\r\n-Et ont-ils embauché quelqu'un pour aider?
\r\n-Non, c'est ça le truc. Les petits feux continuent de se produire ici et là, et en raison du temps que je prends pour les combattre, je ne peux pas être aussi prudente qu' avant avec le dev, donc je crée plus de feux tout le temps. Maintenant, je lutte contre les incendies toute la journée et toute la nuit et je déteste mon travail.\r\n-Pourquoi votre employeur ne fait pas quelque chose?
\r\n-Je suis douée à faire mon travail, et je suis parvenu à garder les choses sous contrôle assez longtemps que tout le monde s'y soit habitué. Lorsque vous prenez l'habitude de petits miracles, les gens sont habitués. Ensuite, vous êtes coincé à faire des miracles tout le temps ou ils vont penser que vous ne faites pas votre travail du tout.
\r\n-Cela semble très triste
\r\n-ça l'est; et parce que vous êtes la personne la plus familière avec ces feux, vous obtenez seulement de travailler sur eux de plus en plus, jusqu'à ce que votre employeur embauche quelqu'un d'autre pour couvrir votre ancien emploi, celui que vous aimiez. Si vous vous souciez assez dur sur votre travail pour être celui qui fait les choses que tout le monde déteste, on vous remerciera en vous donnant de plus en plus de ce travail qui ne vous plaît pas, jusqu'à ce que ce soit tout ce que vous faites. Et puis il n'y a plus rien pour vous plaire dans votre job.
\r\n-Alors, vous êtes malchanceuse,\" dit le petit printf.
\r\nEt son pager sonna encore.
\r\n\"Cette femme,\" dit le petit printf à lui-même, en continuant plus loin son voyage, \"cette femme serait méprisée par tous les autres: par l'expert spécialisé, par le développeur de rockstar, par l'adoptant premier. Néanmoins, elle est la seule d'entre eux tous à sembler utile. Peut-être est parce qu'elle pense à autre chose qu'à elle-même.\r\n\r\n

Chapitre 9

\r\n\r\n

\r\n\t\"\"\r\n\tA l'angle du bâtiment, printf trouvé un grand bureau avec de grandes fenêtres donnant une vue imprenable sur la région. Dedans, est assis un vieux monsieur avec des rames de documentation sur son bureau.\r\n\t
\r\n\t\"Ah, voici un développeur!\" s'écria l'homme, alors que printf se tenait à la porte. \"Entrez!\"\r\n\tEn regardant à travers les fenêtres, le petit printf a remarqué qu'ils étaient pleins d'écriture. Avec l'aide d'un stylo effaçable à sec, la vue sur le monde extérieur a été masqué par des tonnes de cercles, des flèches, des cylindres, et les nuages. Alors qu'il était curieux les nuages \u200B\u200Bde l'homme nécessaire tirées où les vrais pouvaient être vus à l'extérieur, tout l'ensemble était plus intrigant.
\r\n\t\"Qu'est-ce que c'est ?,\" demanda notre ami, en montrant les fenêtres.
\r\n\t\"Oh ça? Ceci est notre système de production!\" Dit l'homme, en pensant non pas une seule fois que la question portait sur le monde extérieur.\r\n\t\"Je suis un architecte logiciel.
\r\n\t-Qu'est-ce qu'un architecte logiciel?
\r\n\t-La plupart du temps, il est quelqu'un qui sait comment structurer au mieux et coordonne les composants d'un grand système pour que tout aille bien ensemble. Il est quelqu'un qui doit connaître les bases de données, des langages, des framewords, des éditeurs de code, des formats de sérialisation, des protocoles et des concepts tels que l'encapsulation et la séparation des préoccupations.
\r\n\t-Très intéressant! dit le petit printf, voici quelqu'un qui peut répondre à toutes mes questions! Il regarda les diagrammes d'architecture. Votre système est très impressionnant. Est-il très rapide à fonctionner?
\r\n\t-Je ne pouvais pas vous dire, dit l'architecte. ça doit être le cas, je pense.\r\n\t-Comment est le code alors, est-il bon?
\r\n\t-Je ne pouvais pas vous dire
\r\n\t-les utilisateurs sont-ils heureux?
\r\n\t-Je ne pouvais pas vous dire non plus, je crains
\r\n\t-Mais vous êtes un architecte logiciel!
\r\n\t-Exactement! Mais je ne suis pas un développeur. Ce n'est pas l'architecte qui va et écrit les modules et les classes, combine les bibliothèques.\r\n\tL'architecte logiciel est beaucoup trop important pour aller toucher au code. Mais il parle avec les programmeurs et les développeurs, leur pose des questions, leur donne des conseils. Et si le problème se trouve être assez intéressant, l'architecte prend en charge la planification.
\r\n\t-Et pourquoi ça?
\r\n\t-Parce que nous sommes plus expérimentés. Nous en savons plus sur les systèmes et ce qui fonctionne ou non. Les développeurs peuvent alors être une extension de nos connaissances pour produire de grands systèmes!
\r\n\t-Mais comment savez-vous si les choses vont bien sans s'impliquer avec le code?
\r\n\t-Nous faisons confiance aux développeurs
\r\n\t-Donc, vous leur faites confiance pour mettre en œuvre vos idées correctement, mais pas assez pour venir avec leurs propres idées?\"
\r\n\tL'architecte logiciel était visiblement ébranlé par ce commentaire. \"Je suppose que je pourrais avoir été un peu déconnecté,\" il a finalement admis. \"Le problème est que, après un certain temps, vous êtes invité à travailler avec des idées tellement vous ne disposez pas d'un bon moyen de les faire tester ou vérifier...\" Il baissa les yeux, pensif. \"Parfois, un architecte logiciel ne fait ni logiciel, ni architecture, on dirait.\"
\r\n\tLe petit printf a quitté la salle, ayant terminé de sa visite, il quitta le bâtiment.
\r\n

\r\n

Chapitre 10

\r\n\"\"\r\n

\r\n\tle petit printf, une fois à l'extérieur, a rencontré un homme collectant de l'argent pour la charité.
\r\n\t\"Salut, dit l'homme. Que diriez vous d'aider quelqu'un aujourd'hui?
\r\n\t-ça m'aiderait sans doute à me faire sentir mieux, répondit printf. Je suis allé dans ce bureau toute la journée, et maintenant je suis plus confus que jamais.
\r\n\t-Ah, je vois. Ces personnes sont tous les développeurs. Ils ne sont pas vraiment utiles, n'est-ce pas? Ce qu'ils aiment à dire est qu'ils changent le monde, et ils ont pas mal réussir à à le faire, en fait.
\r\n\t-Pourquoi est ce que je me sens si gêné, alors? questionna le petit printf.
\r\n\t-Eh bien, le meilleur qu'ils font est souvent d'aider à convertir les emplois de certaines personnes dans des programmes, ou de rendre les loisirs de tout le monde plus tranquilles.
\r\n\tLe logiciel est en train de manger le monde et de lui faire changer de visage, c'est certain... mais au fond, c'est le même vieux monde, avec un visage mutilé. La raison pour laquelle on se sent gêné est que le changement de cette façon ne veut pas dire les choses deviennent mieux. Nous avons les mêmes défauts et les problèmes que nous avons toujours eu, les mêmes trous à combler à l'intérieur.
\r\n\t-Alors, comment puis-je me sentir mieux?\"\r\n\tle petit printf était visiblement anxieux.
\r\n\tL'homme a pensé pendant un certain temps, et a offert printf à venir l'aider à aider les autres, car c'était la façon que cet homme avait de se sentir mieux. Au cours de l'après-midi, printf raconta à l'homme ses problèmes et son aventure. Après un long silence, l'homme dit:
\r\n\t\"Les jeux que les gens jouent, les rôles et les réputations qu'ils poursuivent et entretiennent, le plaisir éphémère qu'ils tirent de la résolution de problèmes complexes, c'est amusant pendant un certain temps. En fin de compte, si vous ne résolvez pas quelque chose de valable, si vous oubliez les personnes impliquées, ça ne va jamais être vraiment satisfaisant.
\r\n\tEt cela peut être très bien, ou ça pourrait ne pas l'être, et vous pouvez ou ne pouvez pas obtenir cela par ailleurs que sur votre lieu de travail quand vous grandissez. Le travail peut être un travail; il peut être pour l'argent, il peut être pour le plaisir. C'est bon. Tant que vous parvenez à obtenir de l'accomplissement quelque part dans votre vie.\r\n\tÀ la fin cependant, il est seulement quand vous résoudre les problèmes avec un visage humain que vous pouvez vraiment sentir bien; Ce qui est essentiel est invisible pour l'ordinateur.
\r\n\tC' est le temps que vous avez passé sur votre système qui le rend si important », l'homme a ajouté,\" et quand vous avez perdu de vue pourquoi il était logique de passer du temps là-dessus, quand il est devenu un jeu d'orgueil, alors il a causé plus de douleur que de soulagement.
\r\n\tLes développeurs ont souvent oublié cette vérité; Si vous perdez de vue des choses, travailler sur votre système devient son propre problème, et la solution la plus efficace est de se débarrasser du système, étant donné qu'il est le problème.\"
\r\n\t\"C'est seulement quand vous résolvez les problèmes avec un visage humain que vous pouvez sentir vraiment bien\", répéta le petit printf à lui-même, de sorte qu'il s'en souvienne.\r\n

\r\n

Chapitre 11

\r\n\"\"\r\n

\r\n\t
\r\n\tPrintf, qui est maintenant assis juste en face de moi, est sur le chemin du retour. Parler avec lui m'a fait réaliser à quel point ce que je fais m'éloigne ce que je voulais, ce pour quoi j'ai commencé à programmer. Chacune des personnes que le petit Printf a rencontré sont les rôles que je me vois prendre moi-même un jour ou l'autre au fil du temps. J'ai été encouragé par eux pour devenir comme eux, et j'ai probablement encouragé des gens à faire la même chose.\r\n\t
\r\n\tLorsque je me suis lancé dans le jeu d'essayer de devenir un véritable programmeur, Printf ne l'a pas fait. Il a dit qu'il était correct de ne pas être un vrai programmeur, qu'il préférait être un programmeur avec un visage humain.
\r\n\tAujourd'hui, je suis coincé dans la situation où je regarde en arrière, je dois comprendre si je peux, aussi, devenir un programmeur avec un visage humain ; ou si tout ce que je fais est juste un emploi. Il ne semble pas y avoir tellement de choses qui vaille la peine entre-deux.
\r\n\tEn tous les cas, là où printf a estimé qu'il n'a pas besoin d'être un vrai programmeur, je pense que je ressens la même chose maintenant.
\r\n

", + "post_title": "Le petit Printf", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "le-petit-printf", + "to_ping": "", + "pinged": "", + "post_modified": "2016-05-12 14:30:14", + "post_modified_gmt": "2016-05-12 12:30:14", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 194, + "post_author": 1, + "post_date": "2016-03-29 17:19:40", + "post_date_gmt": "2016-03-29 15:19:40", + "post_content": "

Vous êtes dev front end et aimeriez avoir du livereload quand vous bossez sur un thème prestashop?\nGulpifiez votre prestashop! &nbsp;(ou en fait non, fuyez tant qu'il en est encore temps)

\n

dans votre terminal favori, dans la racine de votre projet prestashop faites ceci:\nInstallons localement gulp et browser-sync avec node package manager:

\n

&nbsp;npm i --save-dev gulp browser-sync

\n

ça mouline quelques temps, ensuite créez un fichier Gulpfile.js toujours à la racine de votre projet\net remplissez le de ceci:

\n
/**

\n\n
gulpify script of tykayn\nhttps://github.com/tykayn/blog.artlemoine.com\nhttp://artlemoine.com\nto run this you need bash to install dependencies:\nnpm i -D gulp browser-sync --save-dev;\ngulp\n**/
\n\n

var serverName = 'latrotteuse.lan'; // you NEED to have a vhost of this name setup\nvar gulp = require('gulp');\nvar browserSync = require('browser-sync');

\n\n\n\n

// Static server.\ngulp.task('browser-sync', function () {

\n\n
   // init server\n   browserSync.init({\n       proxy: serverName + \"/\"\n   });\n   // the server will automatically reload on change\n   var filesToWatch = [\"themes/**/*.tpl\",\n       \"themes/**/*.js\",\n       \"themes/**/*.css\",\n       \"themes/**/*.html\",\n       \"src/**/*.php\"];\n   gulp.watch(filesToWatch)\n     .on('change', browserSync.reload);
\n\n

});

\n\n\n

gulp.task('default', 'browser-sync');\n

\nil vous faudra définir un virtual host pour que ça fonctionne.\non a donc un fichier minimal, avec une tâche par défaut qui lance un serveur web local sur le port 3000 et qui recharge le browser à la modification d'un fichier dans le répertoire de thèmes.\nwouala, enjoyez!&lt;/span&gt;\n&lt;/pre&gt;

", + "post_title": "gulpifie ton prestashop", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "gulpifie-ton-prestashop", + "to_ping": "", + "pinged": "", + "post_modified": "2016-05-11 11:03:46", + "post_modified_gmt": "2016-05-11 09:03:46", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 195, + "post_author": 1, + "post_date": "2016-03-04 16:50:40", + "post_date_gmt": "2016-03-04 15:50:40", + "post_content": "


\n\n

Une équipe qui gagne ça ne tombe pas du ciel.

\n\n


\nAvez vous déjà essayé l'amélioration continue dans votre équipe?
\n
\nCar vous aurez beau vous investir dans les méthodes les plus récentes, les outils les plus révolutionnaires,
\n
\ncela ne donnera pas plus de résultat si vous avez une équipe qui ne cherche pas à s'améliorer à tous les niveaux. Vous faites probablement des erreurs dans votre façon de gérer un projet et ce n'est pas sale, ton corps change.
\n

\n\n

Faites de la veille

\n\n


\nNe restez pas la tête dans le guidon. Prenez le temps de réfléchir à ce qu'il faut faire et ne réfléchissez pas tout le temps tout seul. Soyez curieux de la façon dont d'autres personnes procèdent. Déplacez vous, posez des questions, apprenez à écouter et à ne rien dire. Il nous faut quelques années pour apprendre à parler, et toute une vie pour savoir nous taire.
\n
\nTant au niveau des personnes qui dirigent les opérations qu'au niveau de celles qui mettent les mains dans le cambouis. Cela semble évident, et pourant de nombreux chouettes projets se retrouvent à traîner et à dégouter ses participants pour cause de ce que l'on pourrait appeler un management pourri.
\n

\n\n

Soyez un meilleur humain

\n\n


\nC'est le cas lorsque les opérants se démotivent rapidement, se sentent pris pour du bétail et quittent les projets sans laisser de trace. C'est aussi le cas lorsque l'on ne fait que de gueuler pour se faire entendre et que toutes les choses à faire sont super urgentes sans que l'on sache dire de quoi il faudrait s'occuper en premier.
\n
\nTravailler dans une ambiance pourrie, avec des collègues pénibles, sans jamais s'y retrouver dans qui fait quoi sous une pression énorme de petits chefs qui se croient plus importants que le reste du monde est un calvaire. Personne ne veut travailler dans ces conditions.
\n
\nAussi, il est vital, et je dis bien vital, de mettre en place un moyen d'avoir un regard éloigné sur ce que l'on a fait en équipe, et de pouvoir échanger librement de façon constructive. Ne travaillez jamais avec des gens qui ne reconnaissent pas leurs erreurs ou qui ne souhaitent pas sincèrement faire mieux. On ne fait de la qualité à hauteur de la souffrance que l'on met dans son travail.
\n
\nIl vous suffit de vous demander \"est ce que je fais mieux mon boulot maintenant que l'an dernier?\".
\n
\n\"bah j'ai toujours été trop bon, et puis je me suis jamais trompé de ma vie, c'est bien simple, ce sont toujours les autres qui ont tort, cette bande d'incompétents!\" Si la réponse ressemble à ça, je plains sincèrement vos collègues. Mais ce n'est pas forcément de votre faute, et tout n'est pas perdu! :)
\n
\nDans certains environnements de travail on met en place une procédure vachement efficace: les retours d'expérience (REX). Des réunions mensuelles où toute l'équipe est conviée à se regrouper autour d'une table (en face à face) et à écrire sur un post-it (ou autre chose) un point positif, et un point négatif axe d'amélioration sur ce qui a été fait depuis le dernier REX. Une fois que tout le monde a écrit, on va demander à chaque personne de nous parler une ou deux minutes maximum sur les sujets de ce qu'elle a écrit. Il convient de laisser s'exprimer chaque personne sans lui couper la parole, et en ne faisant aucune remarque, même si vous êtes en désaccord avec celle ci ou que le sujet vous parait évident.
\n
\nLa prise de parole n'est pas réservée qu'aux dieux du projet
\n
\nça n'a l'air de rien, mais cela représente un défi insurmontable pour certains. Vous aurez sans doute remarqué que dans toutes les équipes où vous avez participé à un projet, tout le monde n'a pas la même aisance à s'exprimer. Certains présentent des difficultés à formuler des phrases simples et claires pour donner leur avis, ou tout simplement pour dire ce qu'ils ont fait.
\n

\n\n

Rien n'est évident

\n\n


\nBeaucoup ne se sentent pas légitimes dans leur prise de parole. Il est essentiel que tout le monde dans votre équipe sache qu'il est invité à s'exprimer aussi bien sur ce qu'il trouve bien que sur ce qu'il trouve mauvais et qui mériterait amélioration.
\n
\nCette méthode simple à mettre en place permet plusieurs choses extrêmement bénéfiques:
\n
\nOn peut distinguer les choses qui déplaisent à plusieurs personnes.
\nOn peut réfléchir à plusieurs à comment améliorer les choses, se partager des astuces.
\nOn est tous au courant de ce qui pose problème, comme ça il y a moins de chances que l'on soit indéfiniement redirigé vers un responsable qui sera toujours quelqu'un d'autre.
\nLa courte (et à peu près égale) durée de parole nous oblige à synthétiser pour éviter de faire perdre du temps à tout le monde.
\nOn est pas tout seul dans son coin si on a besoin de savoir quelque chose.
\nOn facilite la spontanéité des échanges. On s'engage activement à s'améliorer.
\n
\nIl suffit d'essayer.

", + "post_title": "Amélioration continue de l'équipe", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "amlioration-continue-de-l-quipe", + "to_ping": "", + "pinged": "", + "post_modified": "2016-07-31 11:42:00", + "post_modified_gmt": "2016-07-31 09:42:00", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 1 + }, + { + "ID": 196, + "post_author": 1, + "post_date": "2016-01-02 11:07:25", + "post_date_gmt": "2016-01-02 10:07:25", + "post_content": "

(image de chez Hteumeuleu)\nVous avez sans doute réalisé quelques projets et réalisé la déconvenue qu'entraîne une gestion de projet inexistante quand la bise fut venue. Voici donc une série de posts sur mon expérience de la gestion de projets web de plusieurs mois en petites équipes jusqu’a une quinzaine de personnes, applicable également à d’autres domaines que le web comme par example la publication de livres collectifs auto édités auquel j'ai pu contribuer dans une équipe entre ving et trente contributeurs.

\n\n

Causes générales de retard dans un projet

\n

Un projet s’étire dans le temps bien souvent pour ces raisons:

\n\n\n

Nous allons voir plus en détail comment résoudre ces problèmes courants dans les posts suivants.

\nEt bonne nanée 2016!", + "post_title": "Gestion de projet", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "gestion-de-projet", + "to_ping": "", + "pinged": "", + "post_modified": "2018-08-22 15:09:59", + "post_modified_gmt": "2018-08-22 13:09:59", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 197, + "post_author": 1, + "post_date": "2015-12-08 09:12:42", + "post_date_gmt": "2015-12-08 08:12:42", + "post_content": "

twig utilise des marquerus en double accolade, angular aussi dans ses templates.\r\nSI on veut éviter de se marcher sur les pieds et de voir ses instructions de template angular mangées par celles de twig (car évaluées avant que le js n'y ait accès), il existe deux méthodes courantes:\r\nentourer les instructions angular de balise twig \"verbatim\" afin qu'elles ne soient pas interprêtées, ce qui rallonge considérablement le code des templates en plus d'être assez laid. 

\r\n
{% verbatim %}\r\n    {{ monExpressionAngular }}\r\n{% verbatim %}\r\n
\r\n\r\n\r\n\r\n\r\n

ou bien on peut changer les marqueurs d'expressions angular dans la config de notre app. Par example, utiliser des double parenthèses. mon clavier azerty préfère, car cela évite de faire deux boutons pour un caractère. Pour cela, dans l'instanciation de votre app angular, dans la config, mettez le service $interpolateProvider et définissez lui ses symboles de début et de fin comme ceci:

\r\n\r\n\r\n\r\n
(function () {\r\n\r\n    window.tykaynApp = angular.module('tykaynApp', [])\r\n        .config(['$interpolateProvider', function ($interpolateProvider) {\r\n            $interpolateProvider.startSymbol('((');\r\n            $interpolateProvider.endSymbol('))');\r\n        }])\r\n    ;\r\n\r\n})();
\r\n\r\n\r\n

Ainsi vous aurez la possibilité de faire vos expressions angular dans twig avec des double parenthèses. (Sans oublier de définir ng-app et ng-controller dans votre template)

\r\n\r\n\r\n\r\n
    (( monExpressionAngular ))\r\n
", + "post_title": "twig et angular", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "twig-et-angular", + "to_ping": "", + "pinged": "", + "post_modified": "2016-05-11 07:17:10", + "post_modified_gmt": "2016-05-11 05:17:10", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 198, + "post_author": 1, + "post_date": "2015-11-22 15:21:43", + "post_date_gmt": "2015-11-22 14:21:43", + "post_content": "

un site bien sympa nommé __Symfony2 Service Config Converter__ permet de convertir du code au format .yml en .php , en .ini, en .xml
\nRosstuck le donne aussi en bundle sur github afin de l'intégrer à vos commandes perso symfony2.

\n\n\n

https://github.com/rosstuck/TuckConverterBundle\nEssayez, c'est marvellous pour faire correspondre une config de tuto à vos besoins!

", + "post_title": "convertir les fichiers de config de symfony2 facilement", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "convertir-les-fichiers-de-config-de-symfony2-facilement", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-22 15:22:15", + "post_modified_gmt": "2015-11-22 14:22:15", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 199, + "post_author": 1, + "post_date": "2015-11-22 09:48:03", + "post_date_gmt": "2015-11-22 08:48:03", + "post_content": "", + "post_title": "2 degrés avant la fin du monde", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "2-degrs-avant-la-fin-du-monde", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-22 09:48:35", + "post_modified_gmt": "2015-11-22 08:48:35", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 200, + "post_author": 1, + "post_date": "2015-11-18 16:56:42", + "post_date_gmt": "2015-11-18 15:56:42", + "post_content": "

\"ilsufi.jpg\"\nC'est le roi d'Hayroule qui le dit, il suffit!\n(pour les 99% de gens normaux qui lisent ce blog, Kimsufi est une filiale d'OVH)

", + "post_title": "il suffit", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "il-suffit", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-18 16:57:13", + "post_modified_gmt": "2015-11-18 15:57:13", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 201, + "post_author": 1, + "post_date": "2015-11-18 10:21:52", + "post_date_gmt": "2015-11-18 09:21:52", + "post_content": "

\"commerce_localhost.jpg\"

", + "post_title": "développez le commerce localhost", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "dveloppez-le-commerce-localhost", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-18 10:22:23", + "post_modified_gmt": "2015-11-18 09:22:23", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 202, + "post_author": 1, + "post_date": "2015-11-16 11:38:34", + "post_date_gmt": "2015-11-16 10:38:34", + "post_content": "Debbie Sterling, dans sa conférence TED souhaite expliquer au femmes les enjeux dans les métiers de l'ingénierie et raconte pourquoi les femmes sont encore bien trop mises à l'écart des corps de métier.\r\n\r\n\r\n\r\nFermez les yeux quelques secondes, et imaginez un ingénieur. à quoi ça ressemble ?\r\n\r\nVous n'étiez probablement pas en train de visualiser une personne comme Debbie Sterling. Elle est une jeune entrepreneuse, ingénieur, et fondatrice de GoldieBox, une compagnie de jouets pour inspirer la génération prochaine de femmes ingénieurs. Elle a fait sa grande quête au quotidien que de réduire l'écart des genres dans les sciences, la technologie, l'ingénierie et les maths. là ou le commerce traditionnel conserve une fracture nette entre les jouets pour garçons et pour filles, Debbie propose une alternative pour développer la curiosité des petites et des grandes femmes envers des occupations plus variées que celles que l'on connaît. Les jouets de son entreprise rencontrent un franc succès et de nombreuses petites filles ont maintenant le choix de jouer à autre chose qu'à maternet un bébé en plastique, se préparer à faire le ménage ou à la dinette.\r\nTrès tôt on décourage les femmes à s'approprier des postes aux enjeux les plus cruciaux dans notre société, on nous ressasse sans cesse que résoudre des problèmes est un truc de mec, et qu'il est normal que les femmes soient mauvaises à des tâches rigoureuses, demandant de la logique. Rien n'est plus faux, et se passer de la moitié de la population à de tels postes n'améliore en rien le conditionnement d'infériorisation des femmes. Cette prise de pouvoir il faut l'initier à travers l'éducation et dire aux femmes qu'elles peuvent faire bien d'autres choses que des tutos maquillage sur youtube, même si c'est très plaisant, bien sûr vous avez le droit d'être la parfaite femme au foyer. Mais demandez vous si ce n'est pas étouffant de se restreindre à être uniquement ce qu'on attend de vous.\r\n\r\n\r\n\r\nGirls who code, fait des meetups en france et dans le monde dans le même but. Si vous shouaitez en savoir plus sur les métiers de l'ingénierie de façon gratuite (avec apéro et boustifaille offerte) c'est un bon endroit pour débuter.\r\n\r\nla force soit avec vous!", + "post_title": "inspirer les femmes à prendre les postes qui façonnent le monde", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "inspirer-les-femmes-prendre-les-postes-qui-faconnent-le-monde", + "to_ping": "", + "pinged": "", + "post_modified": "2016-09-25 22:18:39", + "post_modified_gmt": "2016-09-25 20:18:39", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 1 + }, + { + "ID": 203, + "post_author": 1, + "post_date": "2015-11-11 12:31:41", + "post_date_gmt": "2015-11-11 11:31:41", + "post_content": "

\"\"

\r\n

en ce moment je prépare une petite série de billets sur la gestion de projet. Je rassemble un bon paquet d'avis et de méthodes et je pourrai commencer.

\r\n

En attendant je viens de créer un dépot github pour que vous puissiez trouver tous les bouts de codes réutilisables facilement, vous pouvez les utiliser comme vous voulez et surtout les améliorer ;)

\r\n

https://github.com/tykayn/blog.artlemoine.com

\r\n

n'hésitez pas à ouvrir des issues sur github ou à en discuter ici dans les commentaires.

\r\n

Oh d'ailleurs je serai au meetup github de la société géniale demain Jeudi 12 Novembre, passez donc me faire un coucou.

\r\n

mon github: https://github.com/tykayn

", + "post_title": "les resources du blog sur github", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "les-resources-du-blog-sur-github", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-11 12:38:02", + "post_modified_gmt": "2015-11-11 11:38:02", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 204, + "post_author": 1, + "post_date": "2015-11-08 15:22:27", + "post_date_gmt": "2015-11-08 14:22:27", + "post_content": "

https://docs.google.com/document/d/1VgP-JaPUeg2sj_lLxFAP18CUNRNDT0RVcwNbwtWVGU4/edit#\nCréez un mode d’emploi pour les nouvelles recrues\nRépéter les instructions de mise en place à chaque nouvelle recrue vous prendra un temps fou.\nVous avez des accès, des outils pour communiquer, rédiger des spécifications, partager des fichiers sur un serveur, gérer du code sur un serveur commun, des gens à qui s’adresser pour telle ou telle problématique, tout ceci pourrait être rassemblé dans un document en ligne facile à modifier à partager avec vos collaborateurs.

\n\n\n

Framapad est une plateforme qui permet de modifier des documents texte et multimédias en ligne à plusieurs si on le souhaite et est parfait pour ce genre de choses. Inscrivez vous dessus, créez un document et partagez le à vos collaborateurs.\nhttps://framapad.org/

\n\n\n

Voici un plan de document que vous pouvez personnaliser à loisir selon les spécificités de votre projet et de la taille de votre équipe.\n{{\nBienvenue dans l'équipe, voici tout ce dont vous aurez besoin pour vous intégrer au projet.

\n\n\n\n\n

}}\nenjoyez!\nCe billet fait partie d'une série en plusieurs étapes sur la gestion de projet IT.

", + "post_title": "Débuter sa gestion de projet", + "post_excerpt": "", + "post_status": "draft", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "dbuter-sa-gestion-de-projet", + "to_ping": "", + "pinged": "", + "post_modified": "2016-07-31 11:43:56", + "post_modified_gmt": "2016-07-31 09:43:56", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 205, + "post_author": 1, + "post_date": "2015-11-08 11:57:33", + "post_date_gmt": "2015-11-08 10:57:33", + "post_content": "assez souvent je croise des blogs contenant des portions de code malheureusement non mises en couleur selon le langage.

C'est pourtant pas si compliqué à mettre en place.
de nombreux plugins de blogs wordpress, drupal, dotclear le proposent, si vous écrivez sur un blog.
\r\n
\r\nOu bien il suffit d'inclure une lib JS (en fin de corps de page) qui se chargera de détecter vos balises ou
, de deviner de quel langage il s'agit et de le colorer en conséquence. Sauf que le langage n'est pas toujours bien détecté car plusieurs langages utilisent des structures et des mots clés similaires,
il faut souvent utiliser un marquage pour éviter les colorations qui n'ont rien à voir.
\r\n
pour dotclear, sur lequel fonctionne ce blog j'utilise YASH.
il faut mettre son code dans une balise de préformatage
 et lui mettre une classe brush:js par example. Ce qui est un peu relou.
ce qui donne ceci dans le code HTML
\r\n

\r\n\r\n là on est dans du html moche mais coloré
\r\n
\r\n
Mais syntaxeHL fait aussi très bien l'affaire:
\r\n
http://plugins.dotaddict.org/dc2/details/syntaxehl
\r\n
// wow ce code est trop mieux en couleur\r\nvar bonjour = 'Hello Monde!';\r\n
\r\n
Mais si vous voulez un joli thème de coloration y'a le projet HighLightJS qui non seulement met en forme plus de 50 lagages, mais dispose aussi d'un bon paquet de thèmes dans leur démos.
Le site propose aussi de créer un pack de la lib pour ne mettre en forme que certains langages choisis. Vu qu'en général on ne parle pas de quinze mille langages différents sur le même site c'est une option fort chouette.
J'ai donc uploadé le pack.js dans mon dossier public de dotclear ainsi que le thème css qui va bien.
j'ai ajouté l'appel au script dans le footer tpl/_footer.html de mon thème dotclear, 
<script src=\"/public/highlightjs/highlight.pack.js\">script>
<script>hljs.initHighlightingOnLoad();script>
<link rel=\"stylesheet\" href=\"/public/highlightjs/agate.css\">
le code d'exécution dans une autre balise script, chargé le css dans l'entête du fichier tpl/_head.html
\r\n
Comme sur ce blog j'utilise la balise de code pour montrer du code, et que la mise en forme d'highlightjs s'applique à une balise
 (le bonheur est dedans) contenant la balise code, j'ai rajouté une ligne de jquery pour enlevopper mes balises codes d'un préformatage. 
$('.post-content code').wrap('pre')
ainsi je peux spécifier la classe du nom du langage sur ma balise code et elle est conservée.
c'est facile à mettre en place, et zoup! ça améliore l'expérience de lecture donc pourquoi s'en priver ? ;)
enjoy!
", + "post_title": "Mise en forme de code coloré sur votre site", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "mise-en-forme-de-code-color-sur-votre-site", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-17 15:21:46", + "post_modified_gmt": "2015-11-17 14:21:46", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 206, + "post_author": 1, + "post_date": "2015-09-25 13:36:19", + "post_date_gmt": "2015-09-25 11:36:19", + "post_content": "

\"\"\"\"\r\nQuelle déconvenue après avoir installé ubuntu 14.04 sur mon nouveau laptop (Acer v nitro) ayant windows 10 préinstallé, déjà, je n'ai pas réussi a le faire à partir d'une clé live usb faite avec unetbootin, quelle que soit la boot config dans le bios. Ensuite, impossible de voir le menu grub. Windows démarre juste après le slpash screen d'Acer sans proposer de choix ni montrer une seule seconde le menu grub.\r\nPour arriver a faire démarrer sur grub il fallait faire trois choses:\r\n1/ dans le bios. (touche f2 lors du démarrage)\r\nassurez vous que le boot est en mode UEFI.\r\ndésactiver le secure boot dans la partie sécurité. sauver et redémarrer,\r\n2/ dans windows 10\r\ndésactiver fast boot dans les options d'alimentation > (bouton pour autoriser les modifications) décocher le \"démarrage rapide\", sauvegarder. (une nouveauté depuis windows 8 qui devait faire une vraie différence quand on avait pas de SSD à l'époque)\r\n3 / toujours dans windows,\r\nlancer la commande suivante dans une invite de commande (lancée en tant qu'administrateur) afin que le boot prenne en charge la config de grub.

\r\nbcdedit /set {bootmgr} path \\EFI\\ubuntu\\grubx64.efi\r\n

faites entrée, et ça devrait vous dire que ça a réussi.\r\n(astuce prise de cet article http://itsfoss.com/no-grub-windows-... )

\r\n

redémarrez et priez pour voir le menu grub. et vouala!

", + "post_title": "dual boot windows 10 et linux", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "dual-boot-windows-10-et-linux", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-08 14:39:52", + "post_modified_gmt": "2015-11-08 13:39:52", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 207, + "post_author": 1, + "post_date": "2015-09-09 15:00:13", + "post_date_gmt": "2015-09-09 13:00:13", + "post_content": "

\"every_it_job.png\"

", + "post_title": "le triangle du projet", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "le-triangle-du-projet", + "to_ping": "", + "pinged": "", + "post_modified": "2015-09-09 15:00:13", + "post_modified_gmt": "2015-09-09 13:00:13", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 208, + "post_author": 1, + "post_date": "2015-09-08 12:12:46", + "post_date_gmt": "2015-09-08 10:12:46", + "post_content": "\r\n
une petite vidéo de la quadrature du net, expliquant en deux minutes pourquoi il est essentiel d'avoir une vie privée, et qu'avoir des choses à cacher de quelqu'un ce n'est pas suspect, c'est juste privé.
Pas convaincu? Alors donnez moi plein accès à vos comptes email, les clés de chez vous et à vos comptes en banques. Vous ne voulez pas? c'est pour votre bien, pour lutter contre le terrorisme, pour votre sécurité. Ah, vous voyez, vous commencerez à douter. Profitez en, on risque de ne plus y être autorisé sous peu.\r\n
\r\nCe n'est pas si ironique de poster cette vidéo sur youtube, un site qui fait open bar de vos données à la NSA. c'est justement un bon endroit pour se faire entendre.\r\n
", + "post_title": "avoir une vie privée", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "avoir-une-vie-prive", + "to_ping": "", + "pinged": "", + "post_modified": "2015-09-08 12:16:07", + "post_modified_gmt": "2015-09-08 10:16:07", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 209, + "post_author": 1, + "post_date": "2015-07-22 13:56:38", + "post_date_gmt": "2015-07-22 11:56:38", + "post_content": "si vous avez dans l'idée de faire un petit projet web incluant les couleurs des lignes de métro / RER / Tram parisien, voici les codes couleurs choppées à coup de pipette (on peut aussi trouver ces codes hexadécimaux sur wikipedia).\r\nVous pouvez les utiliser dans votre css avec ces variables faites pour le language de preprocessing SASS.\r\n\r\nVous pouvez voir ce que donnent les compilations sass en ligne et vous exercer sur sassmeister.com\r\n\r\n \r\n\r\nensuite il vous faudra des classes pour appliquer ces couleurs sur vos lignes.\r\n\r\n/** metros**/\r\n.metro_1 {\r\nbackground: $metro_1 !important;\r\n}\r\n.metro_2 {\r\nbackground: $metro_2;\r\n}\r\n.metro_3 {\r\nbackground: $metro_3;\r\n}\r\n.metro_3BIS {\r\nbackground: $metro_3BIS;\r\n}\r\n.metro_4 {\r\nbackground: $metro_4;\r\n}\r\n.metro_5 {\r\nbackground: $metro_5;\r\n}\r\n.metro_6 {\r\nbackground: $metro_6;\r\n}\r\n.metro_7 {\r\nbackground: $metro_7;\r\n}\r\n.metro_7BIS {\r\nbackground: $metro_7BIS;\r\n}\r\n.metro_8 {\r\nbackground: $metro_8;\r\n}\r\n.metro_9 {\r\nbackground: $metro_9;\r\n}\r\n.metro_10 {\r\nbackground: $metro_10;\r\n}\r\n.metro_11 {\r\nbackground: $metro_11;\r\n}\r\n.metro_12 {\r\nbackground: $metro_12;\r\n}\r\n.metro_13 {\r\nbackground: $metro_13;\r\n}\r\n.metro_13BIS {\r\nbackground: $metro_13;\r\n}\r\n.metro_14 {\r\nbackground: $metro_14;\r\n}\r\n/** trams **/\r\n.tram_1 {\r\ncolor: $tram_1;\r\nborder: solid 3px $tram_1;\r\n}\r\n.tram_2 {\r\ncolor: $tram_2;\r\nborder-color: $tram_2;\r\n}\r\n.tram_3 {\r\ncolor: $tram_3;\r\nborder-color: $tram_3;\r\n}\r\n.tram_4 {\r\ncolor: $tram_4;\r\nborder-color: $tram_4;\r\n}\r\n.tram_5 {\r\ncolor: $tram_5;\r\nborder-color: $tram_5;\r\n}\r\n.tram_6 {\r\ncolor: $tram_6;\r\nborder-color: $tram_6;\r\n}\r\n.tram_7 {\r\ncolor: $tram_7;\r\nborder-color: $tram_7;\r\n}\r\n.tram_8 {\r\ncolor: $tram_8;\r\nborder-color: $tram_8;\r\n}\r\n\r\n\r\nEt si vous voulez personnaliser tout ça dans un mixin pour choisir que colorer avec vos variables, c'i possible!\r\n
\r\n\r\nAdmettons que, comme ci dessus l'on veuille une classe pour chaque ligne afin de colorer une bordure.\r\n
Pour ça on va utiliser des tableaux associatifs(clé: valeur), sta dire des maps,
\r\n
et des tableaux non associatifs, des listes (élément1, élément2).
\r\n
On définit une map de famille de transport (métro, tram, rer), puis une couleur pour chaque ligne.
\r\n
Puis on définit notre @mixin qui fait une classe avec bordure correspondante.
\r\n
grâce à l'interpolation de variable on peut faire des noms de classe css (et d'autres choses) dynamiques.
\r\n
exemple:
\r\n
$name: foo;\r\n$attr: border;\r\np.#{$name} {\r\n#{$attr}-color: blue;\r\n}
\r\n
Allez donc voir les quelques fonctions existantes sur les maps. Ici on se servira uniquement de celle qui retourne la valeur pour une clé donnée.
\r\n
Avec @each on va parcourir notre map et créer des classes en conséquence avec notre mixin, appelé par la directive @include.
\r\n
Ensuite si on veut que nos classes soient différentes pour les métros et les trams on a plus qu'a faire un autre mixin, et voilà!
\r\n\r\n// variables de couleurs\r\n$metro_1: #fdce00;\r\n$metro_2: #0267af;\r\n$metro_3: #a1971b;\r\n$metro_3BIS: #96d7dd;\r\n$metro_4: #b74288;\r\n$metro_5: #de8b53;\r\n$metro_6: #79bb92;\r\n$metro_7: #e8a8b8;\r\n$metro_7BIS: #7cc485;\r\n$metro_8: #cfa9d0;\r\n$metro_9: #cec92b;\r\n$metro_10: #dfb039;\r\n$metro_11: #8e6538;\r\n$metro_12: #328e5b;\r\n$metro_13: #a0cccb;\r\n$metro_14: #612684;\r\n$tram_1: #0564b1;\r\n$tram_2: #c74896;\r\n$tram_3: #90613b;\r\n$tram_3a: #90613b;\r\n$tram_3b: #ec8a42;\r\n$tram_4: #fcc11b;\r\n$tram_5: #0564b1;\r\n$tram_6: #ec5738;\r\n$tram_7: #90613b;\r\n$tram_8: #999738;\r\n$rer_a: #cf532e;\r\n$rer_b: #5191cd;\r\n// maps de couleurs\r\n$metro_colors: (\r\n'1' : $metro_1,\r\n'2': $metro_2,\r\n'3':$metro_3,\r\n// etc\r\n);\r\n$tram_colors: (\r\n'1' : $tram_1,\r\n'2': $tram_2,\r\n// etc\r\n);\r\n$rer_colors: ('a' : $rer_a,\r\n'b': $rer_b);\r\n// map de famille\r\n$sisi_la_famille: (\r\n'metro' : $metro_colors,\r\n'tram' : $tram_colors,\r\n'rer' : $rer_colors,\r\n);\r\n// mettre une bordure à gauche selon la famille et le numéro de ligne\r\n@mixin lineBorder($famille,$nom) {\r\n$famille_map: map-get($sisi_la_famille, $famille);\r\n.#{$famille}_#{$nom} {\r\nborder-left: 3px solid map-get($famille_map, $nom);\r\n}\r\n}\r\n// faire un style différent pour les trams\r\n@mixin tram($nom,$color) {\r\n.tram_#{$nom} {\r\ncolor: $color;\r\nborder-color: $color;\r\n}\r\n}\r\n@warn \"yeah\";\r\n// boucle-ception\r\n@each $famille, $list in $sisi_la_famille {\r\n@each $key, $val in $list {\r\n// traitement différent pour les trams\r\n@if ($famille == 'tram') {\r\n@include tram($key, $val);\r\n} @else {\r\n@include lineBorder($famille, $key);\r\n}\r\n}\r\n}\r\n
Enjoy!
\r\n
", + "post_title": "les couleurs de la RATP dans SASS", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "les-couleurs-de-la-ratp-dans-sass", + "to_ping": "", + "pinged": "", + "post_modified": "2021-09-16 10:38:30", + "post_modified_gmt": "2021-09-16 08:38:30", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 210, + "post_author": 1, + "post_date": "2015-07-06 14:00:18", + "post_date_gmt": "2015-07-06 12:00:18", + "post_content": "

\"\"\n(ceci est un live template)
\nj'utilise PHPstorm pour faire des projets avec du angular dedans (entre autres), et pour gagner en performance et en confort, heureusement qu'il y a les live templates.
\néditables dans les settings, ils permettent de créer des fichiers xml dans le dossier de templates, ( dans le dossier: ~/.WebIde80/config/templates , avec un nom qui ressemble à .WebIde80 selon la version de votre IDE)
\net de vous faire des raccourcis paramétrables.
\n
\ndes projets sur github permettent de rajouter des suites de code template pour vous faciliter la vie.\naujourd'hui je vais vous vanter les mérites d'un dépot fort sympa pour faire des tests jasmine et divers trucs de routine dans angular: angularjs-webstorm-livetpls

\n\n\n

clonez le dépot, copiez ses fichiers .xml dans votre dossier de templates, redémarrez votre IDE, et hop, magie vous avez des code templates trop bien. zieutez de quoi ils ont l'air dans les settings, vous pourrez les renommer à votre convenance tant que deux templates n'ont pas la même abbréviation.\net si vous voulez en savoir plus sur les live/code templates pour faire les vôtres, zieutez la doc officielle.

", + "post_title": "des live templates pour angular dans intelliJ", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "des-live-templates-pour-angular-dans-intellij", + "to_ping": "", + "pinged": "", + "post_modified": "2015-07-06 14:03:42", + "post_modified_gmt": "2015-07-06 12:03:42", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 211, + "post_author": 1, + "post_date": "2015-07-02 15:04:33", + "post_date_gmt": "2015-07-02 13:04:33", + "post_content": "

on peut personnaliser son bash ultrafacilement grâce a ce merveilleux site, bashrcgenerator:\r\nhttp://bashrcgenerator.com/

\r\n

glissez déposez les éléments, cliquez sur un élément pour choisir sa couleur, et hop vous avez le code a rajouter dans votre .bashrc pour mettre de la couleur dans votre console.

\r\n

Essayez donc de mettre cette commande d'export à la fin de votre .bashrc, et de relancer bash.

\r\n$ nano ~/.bashrc\r\n# titre du terminal personnalisé\r\nPROMPT_COMMAND='echo -ne \"\\033]0;${USER}@${HOSTNAME}: ${PWD}\\007\"'\r\n# prompt personnalisé\r\nexport PS1=\"\\[\\033[38;5;214m\\]\\T\\[$(tput sgr0)\\]\\[\\033[38;5;15m\\] \\[$(tput sgr0)\\]\\[\\033[38;5;192m\\]\\u\\[$(tput sgr0)\\]\\[\\033[38;5;42m\\]@\\[$(tput sgr0)\\]\\[\\033[38;5;84m\\]\\h\\[$(tput sgr0)\\]\\[\\033[38;5;70m\\]:\\[$(tput sgr0)\\]\\[\\033[38;5;6m\\]\\w\\[$(tput sgr0)\\]\\[\\033[38;5;15m\\] \\[$(tput sgr0)\\]\"\r\n\r\n

on enregistre avec ctrl +o, on sort avec ctrl + x. et hop!

\r\n$ bash\r\n

et vouala:

\r\n
02:23:52tykay@mycomputer:/usr/local/src
\r\nArpès, si vous êtes des fifous, vous pouvez aussi blinder votre prompt en lui rajoutant des infos du dépôt git dans lequel vous vous trouvez.", + "post_title": "le bash de vos rêves", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "le-bash-de-vos-rves", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-08 15:13:04", + "post_modified_gmt": "2015-11-08 14:13:04", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 212, + "post_author": 1, + "post_date": "2015-07-02 14:29:39", + "post_date_gmt": "2015-07-02 12:29:39", + "post_content": "

Certaines commandes sont nécessaires à la maitrise d'un environnement unix, et puis il y a celles absolument pas indispensable.\r\nPar example, celles qui vous permettent de mettre un ASCII art au login sur votre serveur avec le message du jour (message of the day, motd).

\r\n

changer le nom de votre machine (hostname).

\r\n

il faut aussi changer le nom de l'hôte dans /etc/hosts

\r\n

$ sudo nano /etc/hosts

\r\n

redémarrez le service hostname.

\r\n

$ sudo service hostname restart

\r\n

et voilà votre nom d'hôte changé \\O/

\r\n

mettre un message du jour à la connexion.

\r\n

le message du jour est généré grâce aux scripts dans /etc/update-motd.d/\r\nvous pouvez donc ajouter un script perso.

\r\n

$ nano /etc/update-motd.d/99-tktrucs

\r\n

et mettre dedans des trucs trop importants. 

\r\n

#!bin/bash\r\necho \"un grand pouvoir entraine de grandes responsabilités\"

\r\n

et il faudra lui donner les droits de s'exécuter.

\r\n

$ sudo chmod +x /etc/update-motd.d/99-tktrucs

\r\n

ce fichier permet de rajouter du contenu à la fin du message du jour

\r\n

$ sudo nano /etc/motd.tail

\r\n

utilisez le générateur d'ASCII art pour faire des trucs trop impressionants.

\r\n

http://www.network-science.de/ascii/

\r\n

astuce bonus pour se loguer de façon plus sécurisée.

\r\n

copier sa clé publique sur un serveur distant

\r\n\r\n

$ ssh-copy-id -i ~/.ssh/id_dsa.pub titi@toto.host.org

\r\n

Password:

\r\n
\r\n
\r\n

sources:\r\nhttp://doc.ubuntu-fr.org/motd\r\nhttps://askubuntu.com/questions/87665/how-do-i-change-the-hostname-without-a-restart

\r\n

http://www.generation-linux.fr/index.php?post/2008/06/07/117-changer-le-message-d-accueil-sur-ssh

\r\n

http://www.network-science.de/ascii/

\r\n
", + "post_title": "customiser son serveur", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "customiser-son-serveur", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-16 14:52:44", + "post_modified_gmt": "2015-11-16 13:52:44", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 213, + "post_author": 1, + "post_date": "2015-07-01 12:00:14", + "post_date_gmt": "2015-07-01 10:00:14", + "post_content": "

\"\"\r\nJasmine, framework de test en javascipt dispose de quatre fonctions intéressantes pour rendre l'exécution de vos nommmmmmbreux tests JS. Parce que bien sûr, vous testez votre javascript, nesspa?

\r\n\r\n\r\n

Bien, donc,\r\non développe des blocs de test avec describe() et it()

\r\n\r\n\r\n

vous pouvez demander à jasmine de ne pas exécuter de bloc en utilisant xdescribe() et xit().\r\net vous pouvez lui demander de n'exécuter que certains blocs et assertions avec fdescribe() et fit()

\r\n\r\n\r\n

ce qui devrait faire tourner le tout plus vite, notamment si vous avez dans les 500 assertions et que vous bossez seulement sur une certaine partie.

\r\n\r\n\r\n

une astuce pour ensuite ne pas faire de push avec ces blocs spéciaux, c'est de se créer un hook sur git.\r\nparce que vous utilisez git, nesspa?\r\nBien, donc, avec un terminal ouvert dans votre projet, dans le dossier .git.

\r\n
touch .git/hooks/pre-commit\r\nchmod +x .git/hooks/pre-commit\r\n
\r\n\r\n\r\n

et mettez y de quoi vérifier que vous n'avez pas de fdescribe( , de fit( dans vos fichiers de tests.

\r\n
\r\n#!/bin/sh\r\n# A git pre-commit hook that verifies that the change does not introduce\r\n# the use of a Jasmine exclusive test , which would\r\n# prevent most other tests from being run without any clear indication thereof\r\n\r\n FILES_PATTERN='\\.(js|coffee)(\\..+)?$'\r\nFORBIDDEN='fit('\r\ngit diff --cached --name-only | \\\r\n    grep -E $FILES_PATTERN | \\\r\n    GREP_COLOR='4;5;37;41' xargs grep --color --with-filename -n $FORBIDDEN && echo 'COMMIT REJECTED Found \"$FORBIDDEN\" references. Please remove them before commiting' && exit 1\r\n
", + "post_title": "des tests plus rapides avec jasmine", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "des-tests-plus-rapides-avec-jasmine", + "to_ping": "", + "pinged": "", + "post_modified": "2015-07-03 08:31:00", + "post_modified_gmt": "2015-07-03 06:31:00", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 214, + "post_author": 1, + "post_date": "2015-06-30 15:18:30", + "post_date_gmt": "2015-06-30 13:18:30", + "post_content": "

F12. dans la console javascript écrivez:
\n999999999999999
\nfaites entrée. la console vous répond:
\n999999999999999
\n
\nmais écrivez un 9 de plus
\n9999999999999999
\nfaites entrée. la console vous répond:
\n10000000000000000
\n
\nnarmol.

", + "post_title": "paye ton arrondi en js", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "paye-ton-arrondi-en-js", + "to_ping": "", + "pinged": "", + "post_modified": "2015-06-30 15:19:01", + "post_modified_gmt": "2015-06-30 13:19:01", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 215, + "post_author": 1, + "post_date": "2015-06-26 21:05:50", + "post_date_gmt": "2015-06-26 19:05:50", + "post_content": "

un cloud perso facile à étendre avec des plugins/modules en javascript?\r\nC'est possible avec Cozy Cloud, découvert lors de l'ubuntu party de paris (enfin, grâce au site qui diffuse les médias enregistrés, plein de chouettes conférences)

\r\n

voici la version rapide du script d'install à exécuter en tant que root sur votre serveur ubuntu 14.04, en bash:

\r\n
apt-get install ca-certificates apt-transport-https\r\nwget -O - https://ubuntu.cozycloud.cc/cozy.gpg.key 2>/dev/null | apt-key add -
echo 'deb https://ubuntu.cozycloud.cc/debian trusty main' \\ > /etc/apt/sources.list.d/cozy.list
apt-get update && apt-get install couchdb cozy
", + "post_title": "installer cozy cloud sur son serveur ubuntu 14.04", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "installer-cozy-cloud-sur-son-serveur-ubuntu-14-04", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-16 12:06:25", + "post_modified_gmt": "2015-11-16 11:06:25", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 216, + "post_author": 1, + "post_date": "2015-06-17 08:54:10", + "post_date_gmt": "2015-06-17 06:54:10", + "post_content": "

\"\"

\r\n

le jS ça fait aussi le café.\r\nSi vous voulez reprendre d'anciens projets en javascript pour envoyer promener toutes ces accolades et autres points virgules, réjouissez vous, car voici de quoi convertir un dossier et ses sous dossiers en fichiers coffeescript.

\r\n

il faut donc copier votre dossier de scripts js dans un dossier nommé coffee, obtenir la liste des fichiers à convertir et exécuter la conversion sur chacun d'eux.

\r\n

basé sur le convertisseur js2coffee (voir ce projet sur github), voici mon script bash adapté de ce merveilleux script bash trouvé sur stack overflow:\r\npour plus de clarté je lui ai rajouté un côté explicite des actions menées et quelques couleurs.

\r\n
#!/bin/bash\r\n#text formatting\r\nneutre='\\e[0;m'\r\nbleuclair='\\e[1;34m'\r\nbold=$(tput bold)\r\nnormal=$(tput sgr0)\r\n# get the name of the js scripts folder\r\necho -e \"${bleuclair} ${bold} conversion de projet ${normal} vers coffeescript \"\r\nread -p \"nommez le dossier où se trouvent vos scripts .js [js]: \" -e -i \"js\" name\r\n# if the coffee folder doesnt exist, create it\r\nif [ ! -e coffee ]; then\r\necho \"pas de dossier coffee, on le crée\"\r\nmkdir coffee\r\nfi\r\necho -e \" copie du dossier ${bleuclair}${bold}${name}${normal} vers le dossier ${bold}coffee${normal} ${neutre}\"\r\ncp -R ${name}/* coffee\r\necho \"lire les fichiers du dossier coffee\"\r\n# list files and exclude node modules\r\nCOUNTER=0\r\nfor FILE in `find coffee -name \"*.js\" -type f -o -path './node_modules' -prune -o -path './components' -prune`\r\ndo\r\nif [ -e $FILE ] ; then\r\nCOFFEE=${FILE//\\.js/\\.coffee}\r\necho -e \"    converting ${FILE} to ${bleuclair}${COFFEE}${neutre}${normal}\"\r\njs2coffee \"$FILE\" > \"$COFFEE\"\r\nrm $FILE\r\nCOUNTER=$((COUNTER+1))\r\nelse\r\necho \"File: $1 does not exist!\"\r\nfi\r\ndone\r\necho -e \"${bleuclair}${bold} $COUNTER ${normal}${neutre} fichiers convertis\"\r\ncd ../\r\n
\r\n

vous pouvez enregistrer ce script bash sous le nom de alljs2coffee.sh\r\nle copier dans votre répertoire d'exécutables,

\r\n
cp alljs2coffee.sh /usr/local/bin

lui donner les droits pour être exécuté par tout le monde 

\r\n
chmod +x alljs2coffee.sh

et voilà vous pourrez l'exécuter dans n'importe quel dossier contenant un de vos projets avec la commande alljs2coffee

\r\n

go go gadgetto modernisation du JS!

\r\n

voir l'issue sur github. comme toujours, si vous avez des amélioratoins à proposez faites donc!

", + "post_title": "convertir un projet javascript en coffeescript", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "convertir-un-projet-javascript-en-coffeescript", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-16 14:58:04", + "post_modified_gmt": "2015-11-16 13:58:04", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 217, + "post_author": 1, + "post_date": "2015-06-04 19:08:42", + "post_date_gmt": "2015-06-04 17:08:42", + "post_content": "

\"\" mise à jour: j'ai fait un projet sur github nommé git all

\r\n

Vous avez un projet et vous aimeriez savoir comment il a évolué à travers les commits que vous avez écrits avec assiduité durant de nombreux mois, voire de nombreuses années. Vous pourriez le compiler sous forme de log complet dans un fichier texte.

\r\n

Par example pour voir sur quoi vous galérez le plus et comment améliorer vos projets, ou pourquoi pas en avoir ensuite une représentation graphique, l'enregistrer dans votre appli de calendrier favorite, ou bien pour remplir une fiche de suivi dans un logiciel spécialisé comme Works, Redmine, Pivotal tracker, ou ProjeQtOr.

\r\n\r\n\r\n

Il suffit de lire un peu la doc de la commande git log et particulièrement la partie sur les pretty formats pour se bidouiller un log clair et concis.\r\navec la date, l'auteur, le sha1, et le message du commit à chaque ligne.

\r\n\r\n
git log --pretty=format:\"%cd , %cn, %h, %s\" --full-history > git-history.txt\r\n
\r\n\r\n

Vous pouvez aussi filtrer par auteur du commit en rajoutant l'option

\r\n
--author=\"tykayn\"\r\n
\r\n\r\n

et donc:

\r\n
git log --author=\"tykayn\" --pretty=format:\"%cd , %cn, %h, %s\" --full-history > git-history.txt\r\n
\r\n\r\n

ce qui donnerait plein de lignes comme ceci: 

\r\n\r\n

Sat May 30 11:30:11 2015 +0200 , tykayn-ubuntu, 463e52c, accessoires produits

\r\n

Sat May 30 11:20:45 2015 +0200 , tykayn-ubuntu, 9efab6c, footer grille 

\r\n

Sat May 30 10:29:26 2015 +0200 , tykayn-ubuntu, 96f25f6, insertion de grille bootstrap dans le tpl

\r\n\r\n
\r\n\r\n\r\n\r\n

et si vous avez comme moi la flemme de retaper tout, créez vous un alias dans votre fichier de .bash_aliases

\r\n
gedit ~/.bash_aliases\r\n
\r\n\r\n

rajoutez cette ligne pour créer la commande \"gitall\":

\r\n
alias gitall='git log --pretty=format:\"%cd , %cn, %h, %s\" --full-history > git-history.txt';\r\n
\r\n\r\n

sauvegardez, fermez le fichier, rechargez le fichier d'alias

\r\n
gedit ~/.bash_aliases\r\n
\r\n\r\n

et magie, vous pourrez vous servir de la commande gitall pour créer un fichier git-history.txt\r\nattention tout de même, si un fichier git-history.txt existait avant, il sera remplacé.

\r\n\r\n\r\n

vous pourrez ensuite lui appliquer des traitements plus complexes pour conquérir le monde, changer l'affichage, ranger par journée,\r\nou tout du moins comprendre comment vous améliorer. Enjoy!

\r\n

Voir mon projet sur github nommé git all contribuez zy!

", + "post_title": "se créer un historique complet de git log", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "se-crer-un-historique-complet-de-git-log", + "to_ping": "", + "pinged": "", + "post_modified": "2015-06-23 09:23:49", + "post_modified_gmt": "2015-06-23 07:23:49", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 218, + "post_author": 1, + "post_date": "2015-05-14 19:53:27", + "post_date_gmt": "2015-05-14 17:53:27", + "post_content": "

\"\"\r\ntrop biennn, j'ai profité de ce jour férié pour publier mon premier package NPM, un générateur yeoman utilisant mes outils favoris.\r\nLe tout avec du readme.md, des infos et un dépot sur github (génétareur-tk).\r\nhttps://www.npmjs.com/package/generator-angular-jeej\r\nVoilà ce que cela comprend:

\r\n

Gulp, Angular, coffeescript, jquery, bootstrap, font awesome, commitement to open source.\r\nbrowser sync, karma, jasmine, jslint, uglify, coverall and more.

\r\n
\r\n

\"\"\r\n\"\"\r\n\"\"

\r\n

comment utiliser le générateur angular jeej

\r\n
\"\"
\r\n

il vous faut avoir installé yeoman de chez NPM. dans un terminal, exécutez cette commande:

\r\n
\r\n
$ npm i -g yo

pour lancer le générateur, placez vous dans le dossier où vous voulez avoir votre webapp, et utilisez yo.

\r\n
$ yo angular-jeej

Il vous sera demandé quelques infos a inclure dans votre webapp.

\r\n

Chaque fois que vous modifierez un fichier source (dans le dossier src), que ce soit un fichier .scss, .coffee, .js, ou html, ils seront recompilés dans le dossier dist, et réinjectés dans le navigateur grâce à browser sync.

\r\n
$ gulp

\r\naprès install, vous pouvez voir que tout a merveilleusement fonctionné, lancez gulp.\r\nrendez vous sur http://localhost:3000 et voyez le mirâaaaacle s'accomplir.\r\ndans votre console de commande vous pourrez voir aussi que j'ai déjà mis en place quelques tests chargés de vérifier qu'angular fonctionne bien avec le module et son controlleur basiques.

\r\n

notez que j'ai inclus des dépendances qui ne donnent encore aucune action au niveau de gulp mais que je compte bien mettre en place, par exemple coverall. Je n'ai pas encore clairement défini si je vire la partie js dans le dossier src pour laisser la place aux fichiers coffee. je vais sans doute proposer une option lors de l'exécution du générateur. Enfin c'était un chouette défi!

\r\n

Vous aussi pouvez créer votre générateur yeoman perso.

\r\n

Pourquoi jeej comme nom de générateur? Parce que j'ai trop regardé de youtube poop, et que mon générateur contient du SASS. Si ça ne vous dit rien, considérez que vous avez un esprit sein dans un corset.\r\nAllez donc le tester et n'hésitez pas à me donner des conseils sur comment l'améliorer.

", + "post_title": "générateur angular jeej", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "gnrateur-angular-jeej", + "to_ping": "", + "pinged": "", + "post_modified": "2015-06-17 12:37:18", + "post_modified_gmt": "2015-06-17 10:37:18", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 219, + "post_author": 1, + "post_date": "2015-04-22 10:40:16", + "post_date_gmt": "2015-04-22 08:40:16", + "post_content": "

Si dans un terminal unix vous écrivez whatis love, vous saurez ce qu'est l'amour. 

\r\n
whatis love\r\nbaby don't hurt me, don't hurt me, no more.\r\n

Bizarrement, quand je rentre la commande dans un shell, j'ai comme retour:

\r\n

love : rien d'adéquat

\r\n

Joyeux poissons d'avril.

", + "post_title": "whatis love", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "whatis-love", + "to_ping": "", + "pinged": "", + "post_modified": "2015-04-22 11:24:28", + "post_modified_gmt": "2015-04-22 09:24:28", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 220, + "post_author": 1, + "post_date": "2015-04-21 09:27:07", + "post_date_gmt": "2015-04-21 07:27:07", + "post_content": "

\"\"\nif this then that, abrégé IF, c'est un service fort aimable qui vous propose des tas de recette pour relier plusieurs canaux de service entre eux.\nPar example, vous voulez que lorsqu'un de vos clients vous appelle, vous gardiez une trace dans votre agenda de boulot de cet appel.
\nSi vous voulez avoir un dossier en commun entre dropbox et google drive, c'i possible.
\nSi lorsque vous vous approchez de votre maison votre téléphone allume le wifi et éteigne les données internet pour vous faire économiser du forfait, c'i possible.
\nSi vous voulez un arrière plan qui change tous les jours selon la méga photo de la NASA, c'i possible.
\nOu bien, vous voulez que lorsque vous appellez le 112, un message soit envoyé à votre femme, il y a une recette pour ça.
\nVous pouvez construire vos recettes comme ça.
\nIls ont aussi lancé un service nommé DO. comme le verbe faire, pas la note de musique.
\ncela vous permet d'avoir une recette qui s'active sur demande, lorsque vous appuyez sur une icone dans votre mobile.
\n\"\"\nPar example, \"dire à ma femme que je viens de partir du boulot\" , ou bien \"proposer à mes potes d'aller boire un coup\" :D ou encore \"ouvrir ma porte de garage\" si vous donnez dans la domotique. c'est personnalisable à souhait comme les autres recettes\n
\nInstallez IFTTT sur votre téléphone, inscrivez vous sur le site, et commencez à jouer avec les recettes.
\nPour mettre en place les recettes il faut activer les canaux correspondants.\nDropbox, gmail, github et bien d'autres sont des canaux à activer en se loguant.
\n
\n\"Oh noez, me dites vous, s'inscrire encore sur un service, mondieu mais jamais je ne me souviendrai de mon mot de passe, ou alors je vais en utiliser un seul pareil pour tous et si on le trouve je suis dans la caguade.\"\nOu sinon vous pouvez utiliser un gestionnaire de mots de passe comme lastpass, ou 1password. vous ne passerez plus la moitié de votre temps sur internet à rechercher quel était ce foutu mot de passe.\nFaites travailler internet pour vous!

\n\n\n

https://ifttt.com/recipes

", + "post_title": "faites bosser internet pour vous avec \"if this then that\"", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "faites-bosser-internet-pour-vous-avec-if-this-then-that", + "to_ping": "", + "pinged": "", + "post_modified": "2015-04-21 09:31:33", + "post_modified_gmt": "2015-04-21 07:31:33", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 221, + "post_author": 1, + "post_date": "2015-04-21 09:09:48", + "post_date_gmt": "2015-04-21 07:09:48", + "post_content": "

Quelle misère que de mettre en place du wifi direct me direz vous.\nY'a bien Dropbox ou google drive qui existent pour avoir des partages entre sont tel et son ordi, mais si comme moi, votre téléphone a un débit vingt fois meilleur que votre abonnement internet fixe qui est à 4.5 km du raccord au monde et que votre fournisseur n'a pas envie de faire de travaux, ça risque d'être lent du côté de l'ordi.
\n
\nMais si vous voulez du vraiment pratique pour transférer toutes vos photos de vacances ou des gros fichiers en un zip depuis votre tel à votre ordi, Wifi file transfert est super sympa.\n\"\"\nVous installez l'appli sur votre téléphone, vous allumez le wifi, vous appuyez sur start dans l'appli et vous avez une adresse IP locale qui vous permet d'accéder aux fichiers de votre téléphone, en la recopiant dans la barre d'adresse de votre navigateur sur votre ordi.\n(vous pouvez mettre un accès par mot de passe dans les paramètres)
\nCe qui est encore plus cool que le pôle nord c'est qu(une fois dans la page web vous pouvez sélectionner plusieurs fichiers/ dossiers et les exporter dans un zip.
\nvous pouvez bien sûr également envoyer des fichiers sur votre téléphone. Le tout se fera avec un débit énorme, vu que c'est du wifi.
\n
\nEt si vous voulez un lien encore plus pratique entre votre ou vos ordis et votre téléphone, votre tablette, votre chat au collier bluetooth ?
\nJ'appréciais déjà que le play store permette de lancer l'installation et la désinstallation d'applis via mon ordi, mais on peut aller encore plus loin dans la connectivité.
\n\"\"
\nPushBullet vous permet de relier votre téléphone (une fois l'appli installée) a votre navigateur web via une extension Chrome ou Firefox.
\nVous pouvez répondre à des sms avec votre ordi, en écrire, partager une page web sur votre tel pour la lire hors ligne quand vous aurez le temps, choisir quelles notifications vous voulez voir apparaître, transférer un MMS reçu vers votre ordi, et aussi des fichiers dans les deux sens, sur plusieurs machines (où vous aurez installé pushbullet, évidemment). c'est fort bien.
\nEnjoyez!

", + "post_title": "transférer des fichiers en wifi direct entre son ordi et son tel android", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "transfrer-des-fichiers-en-wifi-direct-entre-son-ordi-et-son-tel-android", + "to_ping": "", + "pinged": "", + "post_modified": "2015-04-21 09:11:27", + "post_modified_gmt": "2015-04-21 07:11:27", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 222, + "post_author": 1, + "post_date": "2015-04-17 11:27:47", + "post_date_gmt": "2015-04-17 09:27:47", + "post_content": "

Vous vivez une vie fort dangereuse (par exemple vous avez des lacets à vos chaussures qui vous font vous casser la gueule et hop hop aux urgences, dédicace à Kelly ;D )\r\nvous êtes mal réveillés et vous tombez sur les rails du métro,\r\nou alors vous mettez vos clés dans vos poches tout en faisant de la moto avec un sac à dos et bam pouf paf pastèque vous vous prenez une carapace bleue.

\r\n

Qui héritera de vos biens, quel message auriez vous aimé faire passer à vos proches, de quels mots de passe auraient ils besoin, voudriez vous rockroller musicalement vos proches à votre enterrement ?\r\nHébien y'a pas une application pour ça mais un site web.

\r\n

Vous pouvez maintenant créer un ou deux message à envoyer à vos proches grâce au Dead Man Switch.\r\nCe site, après inscription vous demandera à intervalle via votre boite email de cliquer sur un lien pour signalez que votre heure n'est pas venu, comme le font les missionnaires.\r\nL'intervalle peut être de 45 jours ou davantage, si vous partez en vacances.\r\nle site propose une version payante à 20 dollars pour toute la viiiie.\r\nLe site vous permet aussi de faire un envoi d'essai. Enjoyez!\r\nhttps://www.deadmansswitch.net/

\r\n

push the button des frères chimiques en cadeau.

\r\n", + "post_title": "Un testament par e-mail", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "un-testament-par-e-mail", + "to_ping": "", + "pinged": "", + "post_modified": "2015-04-17 11:28:48", + "post_modified_gmt": "2015-04-17 09:28:48", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 223, + "post_author": 1, + "post_date": "2015-04-17 11:03:34", + "post_date_gmt": "2015-04-17 09:03:34", + "post_content": "

\"bonne

\n\n\n

Comme la plupart des êtres humains alignés sur les horloges du monde absurde du travail,\nvous avez des difficultés à dormir assez longtemps pour aussi profiter de vos moments en dehors du travail.
\n
\nVoici un site qui va sauver vos journées: sleepyti.me vous donne un temps optimal de sommeil en vous permettant de deviner à quelle heure vous devriez vous coucher pour vous lever à l'heure voulue.
\nVous pouvez aussi chercher l'heure à laquelle vous lever en fonction de l'heure à laquelle vous vous couchez.
\nLa plupart des humains mettent 14 minutes à s'endormir, (moi j'ai l'impression que c'est bien plus, plutôt 40 minutes) et il semblerait qu'une durée de sommeil optimale dure 5 à 6 cycles de sommeil de 90 minutes.
\nAprès ce nombre de périodes, Il faut idéalement se réveiller entre deux cycles de sommeil pour se sentir frais et alerte.

\n\n\n

Bonne nuit :D

", + "post_title": "calculez votre heure de réveil", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "calculez-votre-heure-de-rveil", + "to_ping": "", + "pinged": "", + "post_modified": "2015-04-17 11:15:09", + "post_modified_gmt": "2015-04-17 09:15:09", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 224, + "post_author": 1, + "post_date": "2015-04-07 14:24:22", + "post_date_gmt": "2015-04-07 12:24:22", + "post_content": "

de base les formulaires symfony fournissent des sélecteurs pour choisir nos dates.\r\npas besoin de jquery ou d'un bundle entier pour avoir des datepicker en HTML5, il suffit de définir les options du champ de formulaire avec un widget de single_text, de mettre le format de date en année-mois-jour, et de définir l'attribut type d'input à \"date\".\r\n

\r\n\r\n// ajouter un usage\r\nuse Symfony\\Component\\Form\\Extension\\Core\\Type\\DateType;\r\n// déclaration de classe FactureType pour l'exemple\r\nclass FactureType extends AbstractType\r\n{\r\n// dans le constructeur de form on ajoute notre champ\r\n/**\r\n * @param FormBuilderInterface $builder\r\n * @param array $options\r\n */\r\n public function buildForm(FormBuilderInterface $builder, array $options)\r\n {\r\n\r\n$builder\r\n// ... dans le builder de votre formulaire\r\n->add('paid_date', DateType::class, ['widget' => 'single_text', 'format' => 'yyyy-MM-dd', 'attr' => [ 'type' => 'datetime']])\r\n

enjoyez!

", + "post_title": "un datepicker dans un formulaire symfony2", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "un-datepicker-dans-un-formulaire-symfony2", + "to_ping": "", + "pinged": "", + "post_modified": "2016-03-16 09:47:53", + "post_modified_gmt": "2016-03-16 08:47:53", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 225, + "post_author": 1, + "post_date": "2015-03-30 08:04:05", + "post_date_gmt": "2015-03-30 06:04:05", + "post_content": "

\"miam\nvous imaginez que votre date de naissance est la seule que vous pourriez retenir?
\nQue nenni, l'expérience JS du jour vous permet d'estimer aussi la date de votre mort selon les chiffres de l'insee, et d'autres choses étonnantes.
\nSaviez vous que vous avez gagné votre premier milliard de secondes en seulement 11 jours?
\nVotre millième semaine débutera avant ou après votre dix millième jour?
\nQuel était le jour de la semaine où vous êtes nés?
\n
\nDéfinissez votre date de naissance et soyez carrément émerveillé par ces quelques dates de votre vie dont vous ne soupçonniez pas l'existence!
\nhttp://artlemoine.com/dates-de-vie

", + "post_title": "les dates importantes de votre vie", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "les-dates-importantes-de-votre-vie", + "to_ping": "", + "pinged": "", + "post_modified": "2015-03-30 08:04:05", + "post_modified_gmt": "2015-03-30 06:04:05", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 226, + "post_author": 1, + "post_date": "2015-03-30 07:51:27", + "post_date_gmt": "2015-03-30 05:51:27", + "post_content": "

\"\"\nl'expérience JS du jour c'est de donner la possibilité aux particpants des 24hBD, des 23hBD, des 12hBD et de tous les plannings similaires de mesurer le temps qu'il leur reste dans leurs projets.\nhttp://artlemoine.com/24hbd\nil suffit de donner le nombre de pages que vous avez fait dans l'encadré vert (on peut changer avec les flèches du clavier) et le planning se met à jour en vous précisant si vous êtes dans les temps ou si vous êtes en retard.\nvous pouvez changer la date et l'heure de début, ou de fin de l'épreuve.\nl'autre date se changera automatiquement en fonction de la durée de l'épreuve spécifiée en jours et en heures entre deux.\nEnjoyez!

", + "post_title": "les 24h de la BD et autres évènements ont leur planning", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "les-24h-de-la-bd-et-autres-vnements-ont-leur-planning", + "to_ping": "", + "pinged": "", + "post_modified": "2015-03-30 07:52:59", + "post_modified_gmt": "2015-03-30 05:52:59", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 227, + "post_author": 1, + "post_date": "2015-03-30 07:47:30", + "post_date_gmt": "2015-03-30 05:47:30", + "post_content": "

à quoi ça peut bien ressembler du code sexiste? C'est possible, j'en ai fait un tuto pour la journée des droits des femmes 2015.\nAllez voir par ici sur le tykayn blog.

", + "post_title": "du PHP sexiste", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "du-php-sexiste", + "to_ping": "", + "pinged": "", + "post_modified": "2015-03-30 07:47:30", + "post_modified_gmt": "2015-03-30 05:47:30", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 228, + "post_author": 1, + "post_date": "2015-03-16 09:24:50", + "post_date_gmt": "2015-03-16 08:24:50", + "post_content": "

Hey, après un Pi Day épique célébrons le digital learning day!\nhttp://www.digitallearningday.org/\nallez zou, plus vite que ça, hop hop!

", + "post_title": "digital learning day 2015", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "digital-learning-day-2015", + "to_ping": "", + "pinged": "", + "post_modified": "2015-03-16 09:24:59", + "post_modified_gmt": "2015-03-16 08:24:59", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 229, + "post_author": 1, + "post_date": "2015-03-04 15:02:12", + "post_date_gmt": "2015-03-04 14:02:12", + "post_content": "

ce qu'il y a de bien quand on veut expliquer des choses plus ou moins complexes c'est qu'on peut toujours les comparer à une voiture, ou à une femme si vous êtes aventureux.\r\nQuand on veut se payer un site web, on trouve un développeur, et on lui demande combien ça coûte.

\r\n

Eh bien comme une voiture, ou comme un appartement: ça dépend de comment vous le voulez et de votre budget.\r\nIl ne suffit pas d'avoir un beau costume et d'aller chez notre concessionnaire pour que celui ci vous fasse essayer une voiture de luxe, il faut justifier d'un certain apport financier et de votre assurance en cas d'accident.

\r\n

Ce n'est pas la peine de faire perdre son temps à un concessionnaire si vous voulez faire du lèche vitrine. Il est des choses qui coûtent de l'argent, beaucoup d'argent. Et ce n'est pas toujours lié à leur complexité. Vous pouvez trouver des voitures coûtant plus d'un million d'euros, et leur seule compétence sera d'avoir un aspect esthétique qui a coûté cher ainsi qu'un nombre incroyable de chevaux sous le capot, elle sera cependant incapable de vous faire écouter de la radio, à moins que vous ne payiez 10 000 € de plus.\r\nça fait un peu cher l'auto radio non?

\r\n

Et bien c'est une question de priorités, c'est pourquoi il est PRIMORDIAL de définir vos besoins et votre budget avant de pouvoir entrer dans les détails de la création d'une charte graphique ou d'un site web.

", + "post_title": "paye ton explication", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "paye-ton-explication", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-08 11:12:54", + "post_modified_gmt": "2015-11-08 10:12:54", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 1 + }, + { + "ID": 230, + "post_author": 1, + "post_date": "2015-02-05 13:47:08", + "post_date_gmt": "2015-02-05 12:47:08", + "post_content": "

Et si vous faisiez votre BA du jour avec votre ordinateur, ou votre téléphone rien qu'en changeant vos mots de passe?\r\n\"\"\r\nBeaucoup de personnes laissent des données sensibles en accès libre au monde entier.

\r\n

Quand on tient une entreprise ou que notre métier nous tient au secret professionel (comme c'est mon cas) il nous parait évident que la sécurité informatique est vitale, mais lorsqu'on est Monsieur et Madame Michu on ne se rend pas compte de pourquoi ça serait tout aussi important.

\r\n

On dit même souvent qu'on a rien à cacher. Cependant, c'est mal comprendre le problème.

\r\nVous pouvez lire sur reflets.info en quoi c'est capital, je vous la fais en condensé:\r\n

Je ne commets aucun crime en allant aux toilettes mais ce n'est pas pour autant que je serais d'accord à ce que des caméras de vidéosurveillance soient installées dans cette pièce, ou dans n'importe laquelle chez moi. Mon intimité, je choisis à qui je veux la faire partager.

\r\n

Personne ne tient à ce que sa vie privée soit accessible au monde entier, les célébritées spammées de paparazzi le savent bien.\r\nIl existe une chose pas mal dans la loi, ça s'appelle la présomption d'innocence.

\r\n

On est innocent et non fiché par la police tant qu'il n'aura pas été démontré le contraire par un personnel compétent opérant dans les règles de la loi.\r\nSouhaiter la surveillance permanente et généralisée des invidus c'est remplacer la présomption d'innocence par la présomption de culpabilité. En encourageant ces surveillances généralisées on va partir du principe que tout un chacun est suspect. C'est vraiment ce que vous voulez?

\r\n

Contrôler n'est pas surveiller, restreindre n'est pas incriminer.

\r\n

Petite parenthèse sur les études sur la vidéosurveillance dans les espaces publiques: c'est une mesure inneficace, liberticide et coûteuse. Et on le sait depuis au moins 2009.

\r\n

ça n'empêche pas plus les agressions de se produire, et dans certain cas ça les augmente pour ceux qui commettent les agressions et qui veulent ainsi se montrer comme pour lancer un défi aux forces de l'ordre.

\r\n

Le droit à la vie privée est vital et pour le comprendre il suffit de vous demander si vous avez envie de laisser toutes les portes ouvertes chez vous, vos codes de carte bleue, les mots de passe de vos boites emails, vos clés de voitures à de parfaits inconnus. Ou encore si vous voulez avoir un agent de police qui vérifie que vous votez pour le \"bon\" candidat, par dessus votre épaule. Votre droit à la vie privée il faut savoir le défendre, ce n'est pas pour rien qu'il existe une loi pour que la poste n'ait pas le droit d'ouvrir votre courrier. ça vous révolterait si vous receviez dans votre boite à lettres un courrier ouvert et modifié, mais ça ne vous choquerait pas si c'était le cas avec vos emails? Réfléchissez une nouvelle fois.

\r\n

La neutralité et l'ouverture d'internet est vitale à son fonctionnement. Comme le dit si bien cette courte vidéo infographique de DataGueule, acheter une route ne nous donne pas le droit de choisir les véhicules qui circulent dessus.

\r\n\r\n

il est aujourd'hui possible d'obtenir des données sensibles à partir de données en apparence anodines.\r\nVos passwords peuvent valoir aussi cher que votre code de carte bleue ou vos clés de voiture.\r\nEt après des dizaines d'années qu'internet est adopté par la populace on continue de croire qu'un mot de passe est accessoire, et on se trompe sur ce qui le rend fort.

\r\n

Faiblesses courantes

\r\n

Beaucoup de personnes mettent en mot de passe le nom de leur animal de compagnie, le nom de leur objet préféré, le nom de leur compagne / compagnon, ou des dates marquantes.\r\nEn enquêtant sur quelqu'un on peut deviner facilement ces mots, et ils ne résistent pas facilement à une attaque à force brute (essayer des milliers de combinaisons par seconde), peu importe d'ailleurs que vous utilisiez des lettres ou des ponctuations, ces caractères seront aussi essayés.\r\nla façon la plus simple de se constituer un mot de passe résistant comme en l'an 40, c'est de mémoriser une simple phrase et de l'écrire avec des espaces, puis d'en personnaliser certaines parties.

\r\n

Selon enquête c'est un moyen d'exprimer sa personnalité, de ressasser un évènement important ou d'exprimer sa rage au boulot \" c'est quoi le mot de passe de ton poste ? - FUCKTHISSHIT\"

\r\n

n'utilisez pas le même mot de passe pour tous les sites que vous visitez.\r\nChangez régulièrement vos mots de passe, ne les écrivez pas dans des emails ou des sms, ou si vous devez le faire envoyez les sans référer dans le même email ce à quoi ils se réfèrent..\r\nPlus vous conservez longtemps un mot de passe, plus il a de chances d'être périmé et inutile.\r\nAbandonnez vos mots de passe datant du lycée, adoptez un gestionnaire de mot de passe pour votre navigateur,\r\nencouragez vos parents et vos congénères les moins à l'aise avec la technologie à modifier leur mots de passe de façon sécurisée comme on vient de le voir.

\r\n

pour en savoir plus: le site du password day https://passwordday.org/fr/

", + "post_title": "la fête des passwords et la neutralité du net", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "la-fte-des-passwords-et-la-neutralit-du-net", + "to_ping": "", + "pinged": "", + "post_modified": "2015-02-05 13:59:31", + "post_modified_gmt": "2015-02-05 12:59:31", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 1 + }, + { + "ID": 231, + "post_author": 1, + "post_date": "2014-12-19 12:28:36", + "post_date_gmt": "2014-12-19 11:28:36", + "post_content": "

J'habite à trois kilomètres du périph Parisien, vous savez la route qui n'a jamais assez de place et qui défie à la fois le code de la route et le bon sens.
\ndans un lieu où les progrès en rapidité du réseau des interwebs s'est arrêté à l'an 2000. C'est un peu fâcheux quand notre métier c'est le ouaibe. Et puis, on ne commitera jamais trop vite comme ils disent chez Commit Strip.
\nAussi, j'ai demandé WTF à la Mairie de ma ville qui m'a gentiment répondu que \"c'est pas à nous qu'il faut demander\" mais à Arcueil.
\n
\n\"deploiement\nL'actualité du déploiement de la fibre est donc signifié clairement sur le site du val de bièvre.
\n\"on marque quoi pour informer les gens? -euuuuuuuh - ok je note ça\"

\n\n\n

C'est un peu la même chose quand on leur dit \"dites donc, vous avez payé l'implantation de Vélib dans la ville mais y'a jamais aucun vélib aux bornes, vous pouvez faire quelque chose? ah non, faut contacter le service client de Vélib\", et donc Vélib de me répondre \" ah mais non, nous on peut rien faire, c'est la mairie qui doit s'arranger pour ça\".
\n
\nBreffe, la fibre c'est bien beau, mais c'est pas gagné et on ne peut rien y faire, nous autres pauvres citoyens polis avec l'administration.
\nReste à savoir si la 4G en tant que modem est une alternative viable.

", + "post_title": "La filbre optique c'est pas gagné", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "la-filbre-optique-c-est-pas-gagn", + "to_ping": "", + "pinged": "", + "post_modified": "2014-12-19 12:31:49", + "post_modified_gmt": "2014-12-19 11:31:49", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 232, + "post_author": 1, + "post_date": "2014-12-19 12:20:38", + "post_date_gmt": "2014-12-19 11:20:38", + "post_content": "

\"neutrealite\nPetit livre dans la collection des essentiels d'Hermès, écrit par du beau monde du CERN, La neutralité du net est à mettre entre toutes les mains des internautes pour mieux comprendre les enjeux et conserver un réseau ouvert.

", + "post_title": "La neutralité du net", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "la-neutralit-du-net", + "to_ping": "", + "pinged": "", + "post_modified": "2014-12-19 12:20:38", + "post_modified_gmt": "2014-12-19 11:20:38", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 233, + "post_author": 1, + "post_date": "2014-10-16 10:58:18", + "post_date_gmt": "2014-10-16 08:58:18", + "post_content": "

\"Superbe_capture_d_ecran___capturer_et_annoter___Chrome_Web_Store.png\"\nChrome est un chouette navigateur qui respecte presque la vie privée, et tout comme firefox il dispose de chouettes extensions.\nAujourdhui je vous présente le très modeste \"superbe capture d'écran\"

\n\n\n

qui permet de capturer tout ou une partie de l'écran, avec ou sans annotations, et de les enregistrer ensuite en tant que fichier png, sur votre ordi ou dans google drive.\nAttention au poids des images, mon écran 1980 * 1600 donne des screenshots de 500 Ko. C'est peut être un détail pour vous, mais pour ma connec ça veut dire beaucoup.\nOn peut aussi les imprimer si on est super fier de son art et qu'on aime gaspiller de l'encre!\nSimple et pratique, parfait pour faire des démonstrations et autres tutos aux clients.

\n\n\n

Et vous, vous avez des supers extensions à conseiller? :)

", + "post_title": "Capturer et annoter facilement", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "capturer-et-annoter-facilement", + "to_ping": "", + "pinged": "", + "post_modified": "2014-10-16 11:01:59", + "post_modified_gmt": "2014-10-16 09:01:59", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 234, + "post_author": 1, + "post_date": "2014-09-10 19:24:38", + "post_date_gmt": "2014-09-10 17:24:38", + "post_content": "ça se passe sur www.battleforthenet.com", + "post_title": "signez pour la neutralité du net", + "post_excerpt": "


", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "signez-pour-la-neutralit-du-net", + "to_ping": "", + "pinged": "", + "post_modified": "2014-09-10 19:27:44", + "post_modified_gmt": "2014-09-10 17:27:44", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 235, + "post_author": 1, + "post_date": "2014-09-04 20:20:28", + "post_date_gmt": "2014-09-04 18:20:28", + "post_content": "((https://nsaunders.files.wordpress.com/2009/01/bio.png?w=300&h=129||C))\r\n\r\nVous voulez visualiser les relations entre vos tables SQL assez facilement?\r\nvous pouvez le faire avec phpmyadmin, ou en ligne de commande avec un dump de votre base (en exportant seulement le schéma, sans données)\r\n\r\n\r\n///\r\n#! /bin/bash\r\nDBNAME = $1;\r\nFILENAME = $2;\r\nmysqldump $DBNAME $(mysql -D DBNAME -Bse \"show tables like 'wp_%'\") > FILENAME.sql\r\n///\r\n\r\nVous pouvez utiliser SQLfairy sur votre dump de base pour en sortir un png.\r\n///\r\nsudo apt-get install sqlfairy\r\n///\r\n///\r\nsqlt-graph -f MySQL -o mydatabase.png -t png FILENAME.sql\r\n///\r\ninspiré de [ce post de nsaunders |http://nsaunders.wordpress.com/2009/01/11/easy-visualisation-of-database-schemas-using-sqlfairy/]", + "post_title": "schema graphique de base de données", + "post_excerpt": "", + "post_status": "draft", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "schema-graphique-de-base-de-donnes", + "to_ping": "", + "pinged": "", + "post_modified": "2016-07-26 08:46:31", + "post_modified_gmt": "2016-07-26 06:46:31", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 236, + "post_author": 1, + "post_date": "2014-09-04 10:03:04", + "post_date_gmt": "2014-09-04 08:03:04", + "post_content": "

\"\"\n
\nLe film fréquence interdite à une version française assez merveilleuse dans le passage où deux gens en costume discutent à la télé de comment fonctionnent les aurores boréales:\n\"C'est ce que nous apprend la théorie des chaînes de caractère\"\nou bien, string theory en VO, ce qui voudrait plutôt dire théorie des cordes.\nLes strings sont un type de variable bien connu pour tout développeur ayant étudié le typage. C'est une variable dans laquelle on ne peut pas stocker de slips ou de caleçons, que des strings. Enfin presque.\nC'est ainsi que Je me suis un peu trop bidonné devant cette traduction innatendue.\nBon, à part ça c'est un chouette film que je vous recommande si vous aimez la SF policière tournée avec peu de moyens.

\n\n\n

image

", + "post_title": "la théorie des chaines de caractère", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "la-thorie-des-chaines-de-caractre", + "to_ping": "", + "pinged": "", + "post_modified": "2014-09-04 10:03:23", + "post_modified_gmt": "2014-09-04 08:03:23", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 237, + "post_author": 1, + "post_date": "2014-08-11 09:56:01", + "post_date_gmt": "2014-08-11 07:56:01", + "post_content": "

\"\"\nSi vous avez un raspberry pi vous n'avez que l'embarras du choix pour y installer des distributions linux.\nTéléchargez donc une ou des distributions linux au format .img sur votre ordi.\nPour installer un fichier .img sur une carte SD, on va se servir de la commande dd.\net pour créer un fichier .img à partir d'une installation, ce sera également la commande dd dont on va se servir.\nsi votre carte SD se trouve dans /dev/sdh (pour le savoir, faites la commande df -h) et votre distribution Pidora-2014-R2-1.img dans votre dossier ~/distribs/ , il faudra faire comme ceci:\nsudo dd if=\"~/distribs/Pidora-2014-R2-1/Pidora-2014-R2-1.img\" of=\"/dev/sdh\"\net patienter quelques minutes que la copie se fasse, selon la vitesse de votre lecteur de carte SD.

\n\n\n

Dans l'autre sens, la commande pour créer une image système compressée à partir de la carte SD se trouvant sur /dev/sdh avec compression gzip dans le dossier courant sera:\nsudo dd if=/dev/sdh |gzip -9 > ./raspberry_backup_20141108.img.gz

\n\n\n

Vouala, enjoyez bien et si vous avez une préférence pour une distribution, dites moi donc pourquoi :)

", + "post_title": "distributions .img et sauvegarde de carte SD", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "distributions-img-et-sauvegarde-de-carte-sd", + "to_ping": "", + "pinged": "", + "post_modified": "2014-08-11 10:08:18", + "post_modified_gmt": "2014-08-11 08:08:18", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 238, + "post_author": 1, + "post_date": "2014-08-07 13:50:49", + "post_date_gmt": "2014-08-07 11:50:49", + "post_content": "

\"\"\nVous avez la joie d'être possesseur d'une carte bleue avec une puce sans contact, ce qui vous permet de régler de petits montants jusqu'a 20€ sans avoir à taper votre code.\nMais saviez vous que cette puce peut se révéler bien bavarde et qu'il est possible avec un smartphone équipé de lecteur NFC de lire ce que cette puce a à raconter?\n\"\"\nHeureusement, rien n'est plus simple pour se prémunir d'une lecture non souhaitée, par exemple dans un métro bondé ou dans un supermarché: utiliser une feuille d'aluminium dans votre porte feuille/ porte carte / poche /etc.\nVous pouvez procéder de même avec votre carte navigo / vélib / votre not-stupid-phone.

\n\n\n

ça vous évitera que quelqu'un d'autre ne paie avec vos identifiants de carte, ça ne coute rien et ce n'est même pas encombrant. Enjoyez!

", + "post_title": "anti hack de NFC", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "anti-hack-de-nfc", + "to_ping": "", + "pinged": "", + "post_modified": "2014-08-07 13:54:43", + "post_modified_gmt": "2014-08-07 11:54:43", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 239, + "post_author": 1, + "post_date": "2014-07-28 09:33:01", + "post_date_gmt": "2014-07-28 07:33:01", + "post_content": "

\"raspberry\"

\n\n\n

Possédant un raspberry Pi je voulais essayer plusieurs distributions linux de poche dessus.\nCe microcontrolleur ne pouvant pas démarrer sans carte SD à l'intérieur je devais donc installer un fichier .img dessus à partir d'un autre ordi.\nvous aurez besoin de:

\n\n\n

Cette opération supprime les données de la carte SD.

\n\n\n

insérez votre carte SD dans le lecteur de votre ordi.\nouvrez un terminal.\nrepérez le nom de la partition de votre carte SD avec la commande df -h qui liste les disques de votre système de fichier\n(vous la trouverez en comparant son nombre de Gigas)

\n\n\n

par exemple, ma carte a deux partitions physiques dessus /dev/sdg1 et /dev/sdg2\nNous choisirons donc /dev/sdg , l'appellation commune à toute la carte SD.\nVous n'avez pas besoin de démonter la carte SD pour pouvoir installer votre distrib, et c'est ce que nous allons faire avec la commande suivante.\nvous aurez besoin de connaitre le chemin de votre fichier .img que vous voulez installer, par exemple /home/tykayn/téléchargements/raspbian.img

\n\n\n

et zou, dd (convertir et copier un fichier) va nous permettre l'install et la création des partitions requises en lui renseignant l'input file (if=\"/home/tykayn/téléchargements/raspbian.img\") et l'output file (of=\"/dev/sdg\"). Sacré dédé!\nsudo dd if=\"/media/ntfsman/ArchLinuxARM-2014.06-rpi.img\" of=\"/dev/sdg\"\n(il faudra entrer le mot de passe sudo)

\n\n\n

Si vous avez bien choisi vos fichiers ça prendra quelques minutes pour une distribution de 200Mo et votre terminal vous dira ce qu'il a fait. Par exemple:

\n\n

3829760+0 enregistrements lus\n3829760+0 enregistrements écrits\n1960837120 octets (2,0 GB) copiés, 513,805 s, 3,8 MB/s

\n\n\n

Et voilà, si votre fichier .img était bon, vous n'avez qu'a mettre votre carte SD dans le raspberry pi, (avec ses autres cables), brancher le courant et hopla magie ça démarre.

", + "post_title": "installer une distribution linux sur une carte SD pour le raspberry pi", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "installer-une-distribution-linux-sur-une-carte-sd-pour-le-raspberry-pi", + "to_ping": "", + "pinged": "", + "post_modified": "2014-07-28 09:38:55", + "post_modified_gmt": "2014-07-28 07:38:55", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 240, + "post_author": 1, + "post_date": "2014-07-17 11:21:16", + "post_date_gmt": "2014-07-17 09:21:16", + "post_content": "

\"ACDC\"\nVous aimez avoir le choix quand un seul logiciel se monte en monopole comme c'est le cas avec photoshop, ou que vos collègues ne jurent que par redmine pour faire du suivi de bugs? AlternativeTo.net est ce qu'il vous faut. C'est une mine d'or où l'on peut choisir des plateformes, partir d'un nom de programme et découvrir de nombreux concurrents. à vous ensuite de faire des essais et de découvrir la perle rare.

\n\n\n

http://alternativeto.net/

", + "post_title": "Des alternatives à plein de softwares", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "des-alternatives-plein-de-softwares", + "to_ping": "", + "pinged": "", + "post_modified": "2014-07-17 11:24:50", + "post_modified_gmt": "2014-07-17 09:24:50", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 241, + "post_author": 1, + "post_date": "2014-06-04 19:48:01", + "post_date_gmt": "2014-06-04 17:48:01", + "post_content": "

\"\"

\r\n

Si lorsque vous tentez de faire un ajout ou suppression de role en ligne de commande pour FOSUserBundle (FOSUB) vous obtenez un message d'erreur de conversion de Doctrine, 

\r\n

could not convert database value to doctrine type array

\r\n
\r\n

c'est parce que dans votre base de données, dans la colonne \"role\" de vos utilisateurs, vous avez des valeurs vides, au lieu d'avoir des sérialisations de tableaux vides.

\r\n

Pour remédier à cela vous pouvez définir par défaut la chaine correspondant à un Array vide, et remplir les vides a coup de commande SQL.

\r\n

UPDATE table SET column=\"a:0:{}\" WHERE column = \"\"; 

\r\n\r\n

(en remplaçant les noms de table (ma_table_des_utilisateurs) et de column (role)\r\nVos commande de promotion de rôles fonctionneront alors comme par magie!

\r\n

php app/console fos:user:promote jojo ROLE_ADMIN 
\r\nRole \"ROLE_ADMIN\" has been added to user \"jojo\".
\r\n

\r\n

sources: Trouvé et traduit depuis stackoverflow , image

", + "post_title": "FOSUserBundle could not convert database value to doctrine type array", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "fosuserbundle-could-not-convert-database-value-to-doctrine-type-array", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-08 15:11:46", + "post_modified_gmt": "2015-11-08 14:11:46", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 242, + "post_author": 1, + "post_date": "2014-05-23 10:28:23", + "post_date_gmt": "2014-05-23 08:28:23", + "post_content": "
\r\n\"Rincewind\"\r\n
imagemagick permet de faire plein de manipulations sur les images, redimension, conversion, assemblage, c'est magique.\r\n

J'ai régulièrement besoin de redimensionner des images pour les présenter sur mes sites. mogrify est très utile pour la redimension de masse.\r\ncette commande permet de faire des copies redimensionnées en 800px de large sur 600 px de haut, de tous les fichiers jpg du dossier courant vers autre_repertoire.

\r\n

mogrify -resize 800x600 -path autre_repertoire *.jpg

\r\n

il faut juste vous assurer que \"autre_repertoire\" est inscriptible par votre script, et que vous avez bien des fichiers jpg à redimensionner dans votre répertoire courant.

\r\n

Vous pouvez aussi choisir de ne faire des sorties d'images dans un seul format précis (jpg, ou png ...), avec l'option format.

\r\n

mogrify -resize 800x600 -path autre_repertoire -format jpg *.jpg

\r\n


\r\n

En bonus, pour ouvrir un terminal à partir de votre explorateur de fichier, si vous êtes sous KDE vous pouvez faire F4, autrement avec nautilus vous pouvez installer nautilus-open-terminal

\r\n

sudo apt-get install nautilus-open-terminal

\r\n
voilà, bon amusement!


\r\n

de la doc pour imagemagick 

\r\n

http://doc.ubuntu-fr.org/imagemagick

\r\n

(en illustration, Rincevent du Disque Monde, de la lecture parodique fantastique qui poutre)

", + "post_title": "Redimension d'image en ligne de commande avec imagemagick", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "redimension-d-image-en-ligne-de-commande-avec-imagemagick", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-08 15:09:41", + "post_modified_gmt": "2015-11-08 14:09:41", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 243, + "post_author": 1, + "post_date": "2014-05-09 11:43:49", + "post_date_gmt": "2014-05-09 09:43:49", + "post_content": "

dans wp-config,\r\nrepérez la ligne

\r\n\r\n\r\nrequire_once(ABSPATH, 'wp_settings.php');\r\n\r\n\r\n

rajoutez ceci:

\r\n\r\ndefine('FS_METHOD','direct');\r\n\r\n\r\n\r\n

sauvegardez, et voilà, quand vous demanderez une mise a jour dans l'interface d'admin, wordpress ne vous demandera pas vos login et mots de passe FTP ou SSH.

", + "post_title": "Wordpress, comment ne plus demander les détails FTP pour mettre à jour", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "wordpress-comment-ne-plus-demander-les-dtails-ftp-pour-mettre-jour", + "to_ping": "", + "pinged": "", + "post_modified": "2015-11-08 15:07:23", + "post_modified_gmt": "2015-11-08 14:07:23", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 244, + "post_author": 1, + "post_date": "2014-04-13 19:08:34", + "post_date_gmt": "2014-04-13 17:08:34", + "post_content": "

\"\"

\n\n\n

APc, formidable truc qui permet la mise en cache de plein de choses résultant de PHP ne vide pas forcément son cache.\nAussi, je ne comprenais pas, même après vérification de la similarité des fichiers entre ma machine et l'environnement de démo, vidage de cache de symfony, régénération des entités, mise a jour de la base de donnée, il subsistait des erreurs résolues en environnement de dev. jusqu'à ce que je tente une opération de vidage du cache de doctrine.

\n\n\n

\"orchestra\nRappel des commandes doctrine par la commande \"php app/console\" abrégée en alias personnel \"sf\".

\n
\r\n(...)\r\ndoctrine\r\n  doctrine:cache:clear-metadata         Clears all metadata cache for an entity manager\r\n  doctrine:cache:clear-query            Clears all query cache for an entity manager\r\n  doctrine:cache:clear-result           Clears result cache for an entity manager\r\n(...)\r\n
\n\n\n

APC, ce petit malin ne voulait pas vider son cache à moins qu'on ne le lui demande poliement par commande php. Voici qui pourrait vous évider bien des échevelages et auto mutilations inutiles:\nen console, faites cette commande:\nphp -r \"apc_clear_cache();\"

\n\n\n

et vouala, tout rentre dans l'ordre!

", + "post_title": "Symfony et APC", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "symfony-et-apc", + "to_ping": "", + "pinged": "", + "post_modified": "2014-04-13 19:08:34", + "post_modified_gmt": "2014-04-13 17:08:34", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 245, + "post_author": 1, + "post_date": "2014-04-11 15:42:09", + "post_date_gmt": "2014-04-11 13:42:09", + "post_content": "\"2.jpg\"\r\n\"2.jpg\"\r\n
je m'aperçois que le côté brillant de mon papier n'était pas dans le bon sens, et le placement du RasPi se révèle impossible.
\r\n
L'impression dégueu qui a bavé sur le côté bristol du papier photo me fait me dire que ça va pas être bien joli tout ça si je le tente dans l'autre sens, on verra les textes bavés.
Je balance mon paper art, et me vengerai donc sur un site de vente en ligne où j'acquière un boitier semi transparent pour la modique somme de 10€ et deux jours d'attente.\r\nheh, y'a des jours où le DIY marche du premier coup, et des jours où on a la flemme :D
", + "post_title": "Raspberry Pi case en papier", + "post_excerpt": "

Le raspberry pi c'est magique, un vrai ordi avec si peu de ressources électriques, et des tas d'idées pour en faire quelque chose. Des sites proposent aussi des pdf à imprimer (sans redimention) afin de se faire des boites a RasPi maison, en papier.

\r\n
\"1.jpg\"

Je me suis donc emparé d'un papier photo pour qu'il soit brillant, résistant et kawaii, et me suis armé de matos. un cutter, une règle et une impression plus tard me voici prêt à découper et plier ce qui va se transformer en magnifique enveloppe à ordi.
après quelques étapes qui m'ont bien pris une dizaine de minutes...
\"2.jpg\"
", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "raspberry-pi-case-en-papier", + "to_ping": "", + "pinged": "", + "post_modified": "2014-04-11 18:21:28", + "post_modified_gmt": "2014-04-11 16:21:28", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 246, + "post_author": 1, + "post_date": "2014-04-05 10:53:16", + "post_date_gmt": "2014-04-05 08:53:16", + "post_content": "

\"Magnifier\"\nça arrive souvent qu'on ait besoin de remplacer des choses dans un texte, mais saviez vous que le retour à la ligne, ou la tabulation sont des caractères recherchables et remplaçables?

\n\n\n

(Oui, le billet du jour est pour monsieur et madame michu.)

\n\n
\r\n\\n pour la nouvelle ligne, parfois \\r\\n avec le retour chariot\r\n\\t pour la tabulation\r\n
\n\n\n

Sur une page web, au lieu de passer quinze plombes à rechercher un mot sans aucune aide, n'oubliez pas le raccourci Ctrl + F, comme Find qui veut dire trouver.

\n\n\n

Par exemple dans le langage wiki de la plateforme dotclear, pour faire des retour à la ligne on ne fait pas entrée mais un pourcentage trois fois %.
\nOn peut bien sûr éditer ses posts en version html qui propose une partie Wiziwig (wouate you zi is ouate you guette) et convertir un texte wiki en html, ou inversement.
Cependant, plus généralement ça peut se révéler très utile dans pas mal de cas.
\n
\nSi vous codez et que vous ne vous appelez pas Michu, ça peut se révéler vital de savoir quelques expressions régulières.
\n
\nVous trouverez un très bon tuto sur le site du zéro (renommé openclassrooms) à ce propos.
\n
\nSi encore vous vous demandez à quoi ça peut bien servir de savoir faire des RegEx, voici un exemple concret dessiné par Randall Munroe, sur XKCD
https://xkcd.com/208/\nEnjoyez!

", + "post_title": "Perdu de recherche", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "perdu-de-recherche", + "to_ping": "", + "pinged": "", + "post_modified": "2014-04-05 10:56:02", + "post_modified_gmt": "2014-04-05 08:56:02", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 247, + "post_author": 1, + "post_date": "2014-03-18 20:46:51", + "post_date_gmt": "2014-03-18 19:46:51", + "post_content": "

\"\"

", + "post_title": "a wizard installing software", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "a-wizard-installing-software", + "to_ping": "", + "pinged": "", + "post_modified": "2014-03-18 20:46:51", + "post_modified_gmt": "2014-03-18 19:46:51", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 248, + "post_author": 1, + "post_date": "2014-03-13 13:09:15", + "post_date_gmt": "2014-03-13 12:09:15", + "post_content": "

\"Capture_du_2014-03-13_13_49_58.png\"\nPour un exercice donné par Nadir Kademe je me suis lancé dans une démo de Javascript / CSS où l'on découpe des cercles de couleur en passant le curseur dessus.\nAu bout d'une heure la démo n'était pas super opérationnelle, mais une heure de plus et voici la démo visible sur mon portfolio et disponible sur github, ainsi chacun peut se l'approprier et la bidouiller à loisir.\npossibilités:\nchoix de mélanger les couleurs ou non avec le cercle parent.\nchoix de couleurs plutôt claires, grises ou foncées comme batman les aime.\nchoix de profondeur de découpe.\ncercles ou carrés.

\n\n\n

Jouez zy donc sur artlemoine.com :\nhttp://artlemoine.com/circles

", + "post_title": "CSS split circles", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "css-split-circles", + "to_ping": "", + "pinged": "", + "post_modified": "2014-03-13 13:12:06", + "post_modified_gmt": "2014-03-13 12:12:06", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 249, + "post_author": 1, + "post_date": "2014-03-13 13:01:03", + "post_date_gmt": "2014-03-13 12:01:03", + "post_content": "

\"Journal\nLes sélecteurs CSS totalisent un certain score pour définir leur priorité d'exécution, comprendre cette façon de compter les points vous évitera bien des soucis dans l'héritage des styles.

\n\n\n

Dans l'ordre du plus prioritaire au moins important:

\n\n\n

Votre navigateur, pour déterminer quel sélecteur doit avoir raison fait un tableau selon cet ordre.

\n\n\n

inline | id | class | element\n0 | 0 | 0 | 0

\n\n\n

Quand il rencontre un sélecteur il examine de quoi il s'agit. Par exemple si j'ai ce CSS:

\n\n\n

#patate .douce.fraiche { color : red; }

\n\n\n

.douce { color : blue;}

\n\n

Le premier sélecteur comporte un ID et une classe. Il a donc ce nombre de points selon le tableau vu ci dessus: 0 | 1 | 2 | 0. C'est à dire 120 points.\nLe deuxième sélecteur aura juste 10 points.\n120 étant supérieur a 10, c'est le premier sélecteur qui aura la priorité pour repeindre.

\n\n\n

Pour plusse de trucs et astuces sur le CSS, je vous conseille le site d'Alsacréations.com et openclassrooms.com.\nEnjoyez.

", + "post_title": "poids des sélecteurs CSS", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "poids-des-slecteurs-css", + "to_ping": "", + "pinged": "", + "post_modified": "2014-03-13 13:03:09", + "post_modified_gmt": "2014-03-13 12:03:09", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 250, + "post_author": 1, + "post_date": "2014-03-04 20:22:59", + "post_date_gmt": "2014-03-04 19:22:59", + "post_content": "

Pendant que le marché des smart watch commence à faire semblant de s'installer, j'ai préféré me monter ma propre smart watch avec un bracelet.\n\"2014-03-04_20-41-58_617.jpg\"\nPour quoi faire ? Ce n'est pas seulement pour se prendre pour un cyborg ou pour zieuter des séries sans se fatiguer le bras dans sa chaise longue ou dans le train, c'est pour faire un GPS quand je prends mon deux roues dans Paris pour aller à des endroits perdus du style Gare Saint Lazare.\nUne smart watch coûte dans les 250€ minimum, ce bracelet trouvé sur amazon et adapté au Galaxy S3 : 3€ + 5€ de frais de port.

\n\n\n

\"On a des smart screen, des smart phones, des smart buildings, mais quand est ce qu'on aura des smart-people?\"

\n\n

En bonus, le textile élastique permet d'insérer une version du GS3 avec une batterie personnalisée si on pousse un peu.\nL'avantage de mettre son tel comme ça c'est de ne pas avoir a recharger un objet de plus au quotidien aussi. Le tel est protégé de la pluie, la surface transparente permet de garder le tactile de l'écran utilisable.\nEt le scratch rend le montage rapide. Marvellouss!

", + "post_title": "Smartwatch faite maison avec l'aide de hong kong", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "smartwatch-faite-maison-avec-l-aide-de-hong-kong", + "to_ping": "", + "pinged": "", + "post_modified": "2014-03-04 20:26:15", + "post_modified_gmt": "2014-03-04 19:26:15", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 251, + "post_author": 1, + "post_date": "2014-02-12 08:28:47", + "post_date_gmt": "2014-02-12 07:28:47", + "post_content": "

\"Bouddha\nô développeur qui cherche à optimiser son temps, si tu aimes faire du HTML mais que son écriture, pour faire de l'intégration par exemple te semble fort fastidieuse et verbeuse, j'ai un truc 'achement bien pour toi nommé Zen coding. ça n'a rien à voir avec coder avez le nez pour des djeunz. Il s'agit d'écrire un sélecteur css, de sélectionner notre sélecteur, puis de l'étendre avec un raccourci clavier.J'utilise Netbeans comme IDE, le plugin zen coding a de base un raccourci ctrl+alt+N.

\n\n\n

Tous les exemples de syntaxe zen coding sont disponibles sur google code.

\n\n\n

Petite astuce si vous utilisez un framework css comme twitter bootstrap (ce qui est fort pratique), vous aurez souvent besoin de div avec des classes. hébien vous n'êtes même pas obligés de marquer div pour faire une div de classe maClasse. Il suffit d'écrire .maClasse et Zen coding assumera qu'il s'agit d'une div. Pareil pour les #id.

\n\n\n

On peut aussi se créer des palettes de code, comme une palette de peinture. Sauf qu'au lieu de piocher des couleurs on piocherait des blocks de code, par exemple des composants de twitter bootstrap comme un panel accordéon dépliable, ou un carroussel.

\n\n\n

Autre petite astuce pour avoir un code bien indenté, le raccourci de formattage: ctrl + maj +F. Les subtilités de reformatage sont disponibles dans les options d'édition de texte de votre IDE.

\n\n\n

Wouala, que le zen soit avec vous!\nimage

", + "post_title": "Zen coding", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "zen-coding", + "to_ping": "", + "pinged": "", + "post_modified": "2014-02-12 08:29:18", + "post_modified_gmt": "2014-02-12 07:29:18", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 252, + "post_author": 1, + "post_date": "2014-02-01 21:48:44", + "post_date_gmt": "2014-02-01 20:48:44", + "post_content": "

\"Computer\nDes astuces pour les débutants en ligne de commande, des raccourcis, des symboles magiques. Tout ce qu'il faut savoir dans ce merveilleux article de lifeHacker.com\nhttp://lifehacker.com/5743814/become-a-command-line-ninja-with-these-time+saving-shortcuts

", + "post_title": "Astuces pour ligne de commande Linux", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "astuces-pour-ligne-de-commande-linux", + "to_ping": "", + "pinged": "", + "post_modified": "2014-02-01 21:48:44", + "post_modified_gmt": "2014-02-01 20:48:44", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 253, + "post_author": 1, + "post_date": "2014-01-30 10:06:46", + "post_date_gmt": "2014-01-30 09:06:46", + "post_content": "

\"Octocat\"\nun tutoriel en anglais vous propose pas à pas de comprendre les principales commandes de git avec le logo de github: l'octocat.\nFacile à comprendre grâce à sa représentation en fichiers et sans besoin d'installer git, il vous permettra de vous plonger dans git sans toucher à vos fichiers.

\n\n\n

http://try.github.io/

\n\n\n

Si vous avez un peu plus d'expérience et que vous aimeriez comprendre (en français) pourquoi la commande git checkout fait des tas de choses différentes, je vous conseille la lecture de ce tutoriel ci:\nhttp://www.miximum.fr/tutos/1546-enfin-comprendre-git

", + "post_title": "S'essayer à git pas à pas", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "s-essayer-git-pas-pas", + "to_ping": "", + "pinged": "", + "post_modified": "2014-01-30 10:08:42", + "post_modified_gmt": "2014-01-30 09:08:42", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 254, + "post_author": 1, + "post_date": "2013-12-07 20:36:55", + "post_date_gmt": "2013-12-07 19:36:55", + "post_content": "

\"pingoins\"

\n\n\n

pour afficher ou masquer des infos dans la barre des tâches d'ubuntu,\ninstallez le paquet dconf-tools

\n\n\n

apt-get install dconf-tools

\n\n\n

puis lancez dconf-editor\nallez dans le menu: com> canonical > indicator > datetime\net cochez show-day\nvous verrez vos modifications agir en temps réel. Et vouala \\o/

", + "post_title": "afficher le jour de la semaine dans la barre d'ubuntu", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "afficher-le-jour-de-la-semaine-dans-la-barre-d-ubuntu", + "to_ping": "", + "pinged": "", + "post_modified": "2013-12-07 20:36:55", + "post_modified_gmt": "2013-12-07 19:36:55", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 255, + "post_author": 1, + "post_date": "2013-12-06 21:07:39", + "post_date_gmt": "2013-12-06 20:07:39", + "post_content": "\"mySQL\r\n\r\nvous avez déjà été contrait de chercher comment contourner la limite d'upload de phpmyadmin?\r\nhébien y'a plus simple que bigdump, c'est l'utilisation de la ligne de commande pour importer un fichier.\r\nça implique de connaitre mot de passe et utilisateur ayant les droits pour importer un fichier.\r\n\r\nFaites un joli export de votre base sur votre wonderfoule serveur avec phpmyadmin.\r\nou a la main, en ligne de commande après une connec en SSH.\r\n
\r\n
mysqldump -u root -p maBase > maBase_backup.sql
\r\n
\r\nchoppez votre fichier .sql\r\nlancez un terminal dans le dossier où se trouve votre export de base sql, et faites la commande:\r\n
\r\n
mysql -u root -p base_ou_importer_sur_localhost < Téléchargements/mon_beau_gros_backup.sql
\r\n
\r\nentrez le mot de passe de l'utilisateur root de mysql (en général c'est vide, il faut juste appuyer sur entrée, ça dépend comment vous avez installé mysql-server.\r\npatientez un peu si vous avez plus de 1 Mo de fichier sql. et vouala \\o/\r\n\r\nFaites gaffe si vous avez assigné des privilèges passepartout au lieu de seulement à l'hote local, ça peut vous empêcher de vous connecter malgré de bons login et mot de passe.\r\nplusse d'infos sur la doc ubuntu, très bien fournie et concise à la fois http://doc.ubuntu-fr.org/mysql\r\nenjoy!", + "post_title": "importer facilement sa base de données", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "importer-facilement-sa-base-de-donnes", + "to_ping": "", + "pinged": "", + "post_modified": "2018-10-31 14:37:56", + "post_modified_gmt": "2018-10-31 13:37:56", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 256, + "post_author": 1, + "post_date": "2013-11-27 22:16:04", + "post_date_gmt": "2013-11-27 21:16:04", + "post_content": "

\"VLC\"\nles raccourcis clavier F,G,H, et J vous permettront de décaler les sous titres, et l'audio a 50 milisecondes près.\nF et G pour les sous titres, H et J pour l'audio.\nC'est ty pas merveilleux?

", + "post_title": "décaler les sous titres dans VLC media player", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "dcaler-les-sous-titres-dans-vlc-media-player", + "to_ping": "", + "pinged": "", + "post_modified": "2013-11-27 22:16:52", + "post_modified_gmt": "2013-11-27 21:16:52", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 257, + "post_author": 1, + "post_date": "2013-11-26 11:29:03", + "post_date_gmt": "2013-11-26 10:29:03", + "post_content": "

Les alias c'est fort pratique quand on bouffe de la ligne de commande quotidiennement.\r\nvoici donc mon fichier .bash_aliases actuel (se trouvant dans mon répertoire d'utilisateur) sur mon ubuntu maison. Enjoyez les commandes raccourcies!

\r\n
\r\n################ git ################ \r\n\talias ci='commit';\r\n\talias co='checkout';\r\n\talias st='status';\r\n\talias br='branch';\r\n\talias gci='git commit';\r\n\talias gco='git checkout';\r\n\talias gst='git status';\r\n\talias gbr='git branch';\r\n\talias gpull='git pull origin master';\r\n\talias gpush='git push origin master';\r\n\talias glg='git log --pretty=oneline';\r\n\talias myglg='git log --pretty=oneline --author=baptiste.lemoine';\r\n\talias gaci='git add . && git commit -m ';\r\n\r\n################ symfony2 ######################\r\n\talias sf='php app/console';\r\n\talias sfdsu='php app/console doctrine:schema:update --dump-sql';\r\n\talias sfdsuf='php app/console doctrine:schema:update --force';\r\n\talias sfcc='rm -rf app/cache/* && rm -rf app/logs/*';\r\n\talias sfdcc='sf doctrine:cache:clear-metadata && sf doctrine:cache:clear-query && sf doctrine:cache:clear-result ';\r\n\talias sfdge='php app/console doctrine:generate:entities Tykayn';\r\n\talias sfdsv='php app/console doctrine:schema:validate';\r\n\talias sfdges='php app/console doctrine:generate:entities Tykayn';\r\n\talias c7='sudo chmod 777 -R';\r\n\talias ptest='phpunit -c app';\r\n\talias composer='/usr/local/bin/composer.phar';\r\n\talias sfad='sf assetic:dump';\r\n\talias sfai='sf assets:install';\r\n\r\n################ system - command line ################\r\n\talias bashare='source ~/.bash_aliases';\r\n\talias basha='nano ~/.bash_aliases';\r\n\talias ainstall='sudo apt-get install';\r\n\talias apacheconf='sudo nano /etc/apache2/apache2.conf';\r\n\talias tfa='tail -f /var/log/apache2/error.log';\r\n\talias aupg='sudo apt-get update && sudo apt-get upgrade';\r\n\talias toshop='wine \"/media/tykayn/567A958C7A956A0F/Program Files (x86)/Adobe/Adobe Photoshop CS5/Photoshop.exe\"';\r\n\talias phpini='sudo nano /etc/php5/apache2/php.ini';\r\n
\r\nafin que les alias fonctionnent, n'oubliez pas de resourcer votre bash avec la commande suivante:\r\n
source ~/.bashrc 
\r\n\r\nenjoyez!", + "post_title": "alias symfony et git pour linux", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "alias-symfony-et-git-pour-linux", + "to_ping": "", + "pinged": "", + "post_modified": "2015-06-23 09:36:38", + "post_modified_gmt": "2015-06-23 07:36:38", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 258, + "post_author": 1, + "post_date": "2013-10-14 08:57:45", + "post_date_gmt": "2013-10-14 06:57:45", + "post_content": "

ingrédients:

\r\n\r\n

à télécharger pour windows:

\r\n

Odin\r\nle recovery mod\r\nla rom CyanogenMod qui va bien.

\r\n

plan d'action:

\r\n

copier les fichiers zip de cyanogen et des google apps dans la carte mémoire externe du téléphone.

\r\n

rooter le téléphone en mode download avec odin et le recovery mod.

\r\n

démarrage en mode bios.\r\nbackup de la rom d'origine et les données utilisateur.\r\nnettoyache de cache.\r\nflasher (installer depuis la carte mémoire externe le zip de cyanogenmod,\r\nflasher les google apps.\r\nnettoyer le cache utilisateur encore une fois.

\r\n

rebooter normalement et attendre un peu que cyanogenmod s'initialise (moins de dix minutes)\r\nenvoyyy

", + "post_title": "rooter galaxy S3 et cyanogenmod 10", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "rooter-galaxy-s3-et-cyanogenmod-10", + "to_ping": "", + "pinged": "", + "post_modified": "2014-05-23 10:23:13", + "post_modified_gmt": "2014-05-23 08:23:13", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 259, + "post_author": 1, + "post_date": "2013-08-14 13:00:55", + "post_date_gmt": "2013-08-14 11:00:55", + "post_content": "\"\"\nUn récit fort intéressant de la part d'un prof d'informatique / ingé réseau Britannique / techno Papa, traduit en Français.\nIl nous y explique quelques cas représentant l'étendue de notre illettrisme, et pourquoi c'est important de savoir se servir des ordinateurs, quel que soit notre âge et notre rang social. Que \"si on n'a rien a se reprocher on a rien à cacher\" est encore omniprésent dans nos têtes, pour le pire de nos libertés. Les décideurs de lois à propos de l'informatiques sont illettrés, comme tout le monde, et ça pose de gros problèmes dans à peu près tout ce qui concerne le fonctionnement du monde actuel, ainsi que la sécurité des entreprises, mais aussi des personnes.\n
L'infrastructure réseau des écoles du Royaume-Uni est tout autant à blâmer. Nous avons imité les réseaux d'entreprises, empêchant les étudiants et les professeurs d'accéder aux paramètres système, à la ligne de commande, et en réclamant des droits d'administration pour faire à peu près n'importe quoi. Ils sont assis devant un \"general purpose computer\" et n'ont pas la possibilité de faire de l' \"informatique générale\".
\nJe propose comme traduction de \"general purpose computer\", un ordinateur à tout faire, ou un ordi normal, basique.\n
C'est fantastique que tout le monde, du plus petit des enfants au plus vieux des grand-parents puissent maintenant utiliser un ordinateur avec absolument aucune connaissance technique, mais c'est aussi une catastrophe.\nCory Doctorow le formule mieux que moi quand il dit :\n\nIl n'y a pas d'avions, juste des ordinateurs qui volent. Il n'y a pas de voitures, juste des ordinateurs dans lesquels on s'assied. Il n'y a pas d'aides auditives, juste des ordinateurs que nous mettons dans nos oreilles.
\nà lire en entier par ici:\nhttp://lunatopia.fr/blog/les-gamins-ne-savent-pas-utiliser-les-ordinateurs", + "post_title": "Les illétrés technologiques que nous sommes", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "les-illtrs-technologiques-que-nous-sommes", + "to_ping": "", + "pinged": "\nhttp://lunatopia.fr/blog/les-gamins-ne-savent-pas-utiliser-les-ordinateurs", + "post_modified": "2018-09-24 17:25:23", + "post_modified_gmt": "2018-09-24 15:25:23", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 1 + }, + { + "ID": 260, + "post_author": 1, + "post_date": "2013-07-29 14:25:57", + "post_date_gmt": "2013-07-29 12:25:57", + "post_content": "

\"Shell\"\nVous voulez éviter de taper des changement de dossier dans votre console? Faite un ctrl + click droit dans le dossier désiré et cliquez sur \"ouvrir un terminal ici\".

\n\n\n

Pour s'éviter de taper plein de fois une commande dans windows 7 il vous faudra créer un fichier autorun.bet dans votre dossier personnel\nPour moi ça donne:

\n\n

C:\\Users\\tykayn

\n\n

et bidouiller le registre.

\n\n\n

Voici le contenu de mon fichier autorun.bat:

\n\n\n

@ECHO OFF\ndoskey ls=dir /b $*\ndoskey ll=dir $*\ndoskey cat=type $*\ndoskey ..=cd..\ndoskey grep=find \"$1\" $2\ndoskey mv=ren $*\ndoskey rm=del $*\ndoskey sf=php app/console $*

\n\n\n

Ces alias reprennent les commandes unix et la dernière concerne symfony2

\n\n\n

(touche windows, écrivez regedit, appuyez sur entrée et vous voilà dans l'éditeur de registre.\nNaviguez dans :\nHKEY_CURRENT_USER > Software > Microsoft > Command Processor\nclick droit, nouveau > valeur chaîne\nAppellez la Autorun\nfaites entrée, click droit dessus, modifiez sa valeur à ceci

\n\n\n

%USERPROFILE%\\autorun.bat

\n\n\n

Et voilà, les prochianes consoles windows que vous ouvrirez contiendront votre fichier autorun.bat avec ses alias.\nVoilou, enjoy!

", + "post_title": "Créer des alias de commande windows 7", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "crer-des-alias-de-commande-windows-7", + "to_ping": "", + "pinged": "", + "post_modified": "2013-07-29 14:25:57", + "post_modified_gmt": "2013-07-29 12:25:57", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 261, + "post_author": 1, + "post_date": "2013-07-25 13:25:46", + "post_date_gmt": "2013-07-25 11:25:46", + "post_content": "

\"Discouragement

\n\n\n

Si comme moi vous avez déménagé un blog Dotclear vers un nouveau serveur et que vous ne souhaitez pas perdre vos anciens liens, lecteurs et autres joies du référencement il convient de faire une redirection permanente de tous les liens envoyés à l'index.php de Dotclear.

\n\n\n

éditez donc ce fichier et rajoutez y ce code avec vos infos perso.

\n
\r\n\r\n
\n\n\n

Et voilou!\nEnjoy

", + "post_title": "Redirection dotclear", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "redirection-dotclear", + "to_ping": "", + "pinged": "", + "post_modified": "2013-07-25 13:28:01", + "post_modified_gmt": "2013-07-25 11:28:01", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 262, + "post_author": 1, + "post_date": "2013-06-06 20:04:12", + "post_date_gmt": "2013-06-06 18:04:12", + "post_content": "\"ratp\r\nsi on veut valider, y'a des fois on est vraiment pas aidés :D", + "post_title": "Navigo c'est pas toujours facile", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "navigo-c-est-pas-toujours-facile", + "to_ping": "", + "pinged": "", + "post_modified": "2021-09-16 11:20:57", + "post_modified_gmt": "2021-09-16 09:20:57", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 263, + "post_author": 1, + "post_date": "2013-06-06 20:02:18", + "post_date_gmt": "2013-06-06 18:02:18", + "post_content": "

\"macbook\nVoilà, c'était la connerie du jour au boulot. Eh ouais, on est des gros dingues.

", + "post_title": "mangez des pommes", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "mangez-des-pommes", + "to_ping": "", + "pinged": "", + "post_modified": "2013-06-06 20:03:14", + "post_modified_gmt": "2013-06-06 18:03:14", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 264, + "post_author": 1, + "post_date": "2013-06-06 19:58:19", + "post_date_gmt": "2013-06-06 17:58:19", + "post_content": "

Jusqu'à présent, ce qui me faisait toujours réaménager mon intérieur c'était le souci d'avoir un bon éclairag, assez puissant pour éclairer mon clavier mais pas trop méchant non plus pour ne pas me ruiner les yeux. Je me suis donc lancé dans le clavier sans fil pas trop cher, (70€) mais lumineux. Logitech a fait de la bonne avec son K800 et c'est un vrai plaisir.\nFaudrait juste qu'un jour ils se décident à faire des emballages autrement qu'avec une présentation qwerty.

\n\n\n

\"clavier\nconfort de frappe nickel.\nLuminosité réglable, détection d'approche de la main. Rechargement par USB, ajout de bluetooth sur un ordi avec le détecteur.\n\"clavier\nBweffe caykioule!

", + "post_title": "Clavier lumineux", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "clavier-lumineux", + "to_ping": "", + "pinged": "", + "post_modified": "2013-06-06 20:01:24", + "post_modified_gmt": "2013-06-06 18:01:24", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 265, + "post_author": 1, + "post_date": "2013-06-05 09:11:07", + "post_date_gmt": "2013-06-05 07:11:07", + "post_content": "

Faire durer plus de 4 jours d'autonomie un Galaxy S3? C'est possible et je l'ai fait.

\n\n
Preuve en image.
\n\n

\"android

\n\n\n

Premièrement: se payer 15 euros une batterie ayant 4500 mAh au lieu de 2200 de base.\nLa batterie en question trouvée sur amazon ne possède pas de puce nfc, mais spa grave. Livrée avec coque elle permet de placer la batterie qui fait gagner en épaisseur et en poids au S3, mais c'est pas plus mal, surtout pour la prise en main qui se retrouve facilitée avec les courbes à l'arrière. Pratique pour manipuler à une seule main, ce qui arrive plus souvent qu'on ne le croit.

\n\n\n\n

Pour arriver à ça je ne me suis pas privé de l'utiliser pourtant. J'ai donc pu:\nregarder des vidéos conférences de TED (téléchargées par wifi) dans les transports en commun, soit près de 2 heures sur les 4 jours,\nécouter de la musique sur écouteur,\nutiliser le GPS + musique en faisant du vélo pendant 25 minutes.\nutiliser le GPS en voiture pendant 20 minutes.\ntéléphoner environ 25 minutes.

\n\n\n

Surtout ça consiste en attendre quelques minutes d'être a son poste au boulot pour checker quelques trucs que l'on regarde habituellement sur son mobile. Et désactiver les données c'est très bien, surtout que dans le métro c'est vraiment un coup de bol si on a du réseau de données.\nEt hop! Autonomie de fifou!

", + "post_title": "Faire durer 4 jours d'autonomie un Galaxy S3", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "faire-durer-4-jours-d-autonomie-un-galaxy-s3", + "to_ping": "", + "pinged": "", + "post_modified": "2013-06-06 19:39:08", + "post_modified_gmt": "2013-06-06 17:39:08", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 267, + "post_author": 1, + "post_date": "2013-05-12 21:30:30", + "post_date_gmt": "2013-05-12 19:30:30", + "post_content": "

Parfois je rangerai bien des tas de choses, du style mes fringues, avec un git stash.\n\"git\nSi ça ne vous parle pas du tout mais que vous vous intéressez a git tout en étant un parfait noob, je vous recommande la lecture de ce superbe livre intégral et en français sur l'utilisation de git, Git pro. Vous pouvez aussi le trouver au format papier.

\n\n\n

Au programme:

\n\n\n

1. Démarrage rapide

\n\n

1.1 À propos de la gestion de version\n1.2 Une rapide histoire de Git\n1.3 Rudiments de Git\n1.4 Installation de Git\n1.5 Paramétrage à la première utilisation de Git\n1.6 Obtenir de l'aide\n1.7 Résumé

\n\n

2. Les bases de Git

\n\n

2.1 Démarrer un dépôt Git\n2.2 Enregistrer des modifications dans le dépôt\n2.3 Visualiser l'historique des validations\n2.4 Annuler des actions\n2.5 Travailler avec des dépôts distants\n2.6 Étiquetage\n2.7 Trucs et astuces\n2.8 Résumé

\n\n

3. Les branches avec Git

\n\n

3.1 Ce qu'est une branche\n3.2 Brancher et fusionner : les bases\n3.3 Gestion de branches\n3.4 Travailler avec les branches\n3.5 Les branches distantes\n3.6 Rebaser\n3.7 Résumé

\n\n

4. Git sur le serveur

\n\n

4.1 Protocoles\n4.2 Installation de Git sur un serveur\n4.3 Génération des clés publiques SSH\n4.4 Mise en place du serveur\n4.5 Accès public\n4.6 GitWeb\n4.7 Gitosis\n4.8 Gitolite\n4.9 Le daemon Git\n4.10 Git hébergé\n4.11 Résumé

\n\n

5. Git distribué

\n\n

5.1 Développements distribués\n5.2 Contribution à un projet\n5.3 Maintenance d'un projet\n5.4 Résumé

\n\n

6. Utilitaires Git

\n\n

6.1 Sélection des versions\n6.2 Indexation interactive\n6.3 Le remisage\n6.4 Réécrire l'historique\n6.5 Deboguer avec Git\n6.6 Sous-modules\n6.7 Fusion de sous-arborescences\n6.8 Résumé

\n\n

7. Personnalisation de Git

\n\n

7.1 Configuration de Git\n7.2 Attributs Git\n7.3 Crochets Git\n7.4 Exemple de politique gérée par Git\n7.5 Résumé

\n\n

8. Git et les autres systèmes

\n\n

8.1 Git et Subversion\n8.2 Migrer sur Git\n8.3 Résumé

\n\n

9. Les tripes de Git

\n\n

9.1 Plomberie et porcelaine\n9.2 Les objets Git\n9.3 Références Git\n9.4 Fichiers groupés\n9.5 Les références spécifiques\n9.6 Protocoles de transfert\n9.7 Maintenance et récupération de données\n9.8 Résumé\nIndex of Commands

\n\n\n

De quoi tout savoir du plus puissant des gestionnaires de version. Have fun!

", + "post_title": "git it, git it, no one wants to be defeated", + "post_excerpt": "", + "post_status": "publish", + "comment_status": "open", + "ping_status": "open", + "post_password": "", + "post_name": "git-it-git-it-no-one-wants-to-be-defeated", + "to_ping": "", + "pinged": "", + "post_modified": "2013-05-13 09:52:37", + "post_modified_gmt": "2013-05-13 07:52:37", + "post_content_filtered": "", + "post_parent": 0, + "guid": "", + "menu_order": 0, + "post_type": "post", + "post_mime_type": "", + "comment_count": 0 + }, + { + "ID": 268, + "post_author": 1, + "post_date": "2013-05-03 13:57:33", + "post_date_gmt": "2013-05-03 11:57:33", + "post_content": "

\"\"

\n\n\n

Peut être vous êtes vous déjà demandé pourquoi votre sélecteur :last-child ne ciblait pas le dernier élément de la classe que vous lui avez passé. Nous avons explication: c'est parce que ce sélecteur se base sur l'élément où s'applique la classe, et qu'il choisit le dernier élément.\nAdmettons que nous ayons ce code HTML

\n\n
\r\n\r\n
\n\n

et ce code CSS pour avoir en fond rouge le derner .panel.

\n
\r\n.panel:last-child{\r\n\tbackground: red;\r\n}\r\n\r\n
\n\n\n

Surprise, aucun élément .panel n'a de fond rouge, et surtout pas le dernier (4e enfant de