http://yannesposito.com/ Yogsototh's last blogs entries 2011-01-03T08:37:26Z Yann Esposito http://yannesposito.com tag:yannesposito.com,2011-01-03:/Scratch/fr/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/ Pourquoi je n'utiliserai pas CoffeeScript (malheureusement) 2011-01-03T08:37:26Z 2011-01-03T08:37:26Z Yann Esposito yannesposito.com <p><img alt="Title image" src="/Scratch/img/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/main.png" /></p> <div class="intro"> <p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> J&rsquo;ai essayé <a href="http://coffeescript.org">CoffeeScript</a>. Au final j&rsquo;ai trouvé que ses inconvénients étaient supérieurs à ses avantages. </p> </div> <p>Le commentaire le mieux classé de <a href="http://news.ycombinator.com/item?id=2053956">la question suivante</a> posée sur HackerNews mentionnait <a href="http://coffeescript.org">CoffeeScript</a>. Récemment j&rsquo;ai beaucoup programmé en javascript. Après avoir essayé <a href="http://sproutcore.com">Sroutcore</a>, <a href="http://cappuccino.org">Cappuccino</a>, </p></p> tag:yannesposito.com,2011-01-01:/Scratch/fr/blog/2011-01-03-Happy-New-Year/ Bonne et heureuse année 2011-01-01T06:55:54Z 2011-01-01T06:55:54Z Yann Esposito yannesposito.com <p>Bonne et heureuse année&nbsp;!</p> <p>J&rsquo;étais très occupé ces derniers mois. Maintenant il me semble que je vais pouvoir faire revivre ce blog.</p> <p>J&rsquo;ai fait un outil qui permet d&rsquo;écrire des livre en utilisant une syntaxe proche de markdown. C&rsquo;est un markdown avec des macros (essentiel pour les textes longs). De plus le système gère la génération de pages HTML ainsi que du PDF engendré avec du XeLaTeX. Je n&rsquo;en ai pas encore terminé avec ça. Mais si je tarde trop, je communiquerai lorsque j&rsquo;aurai fini le minimum.</p> <p>J&rsquo;ai écrit un framework MVC pour application javascript simple mais néanmoins très rapide.</p> <p>Meilleurs vœux à tous&nbsp;!</p> tag:yannesposito.com,2010-10-26:/Scratch/fr/blog/2010-10-26-LaTeX-like-macro-and-markdown/ Des macros LaTeX pour markdown 2010-10-26T12:30:58Z 2010-10-26T12:30:58Z Yann Esposito yannesposito.com <div class="intro"> <p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> J&rsquo;ai fait un système simple de macros pour mon blog. Par exemple, il me suffit d&rsquo;écrire %<span />latex et ça affiche <span style="text-transform: uppercase">L<sup style="vertical-align: 0.15em; margin-left: -0.36em; margin-right: -0.15em; font-size: .85em">a</sup>T<sub style="vertical-align: -0.5ex; margin-left: -0.1667em; margin-right: -0.125em; font-size: 1em">e</sub>X</span>.</p> </div> <p>Dans l&rsquo;entête de mes fichiers j&rsquo;écris simplement:</p> <pre class="twilight"> <span class="MetaTagAll"><span class="MetaTagInline">macros</span><span class="MetaTagAll">:</span></span> <span class="MetaTagAll"><span class="MetaTagInline">test</span></span></pre></div> tag:yannesposito.com,2010-10-14:/Scratch/fr/blog/2010-10-14-Fun-with-wav/ S'amuser avec un .wav 2010-10-14T09:04:58Z 2010-10-14T09:04:58Z Yann Esposito yannesposito.com <div class="intro"> <p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> Je me suis amusé à lire un fichier <code>wav</code>. Le <code>C</code> fut le langage le mieux adapté à ce traitement. Bien meilleur que Ruby par exemple.</p> <p>edit: Je voulais que ce programme fonctionne sur une machine spécifique. En aucun cas je ne pensais publier ce code pour une utilisation autre que celle-ci.</p> </div> <p>J&rsquo;ai eu besoin de calculer la somme des valeurs absolue des données d&rsquo;un fichier <code>wav</code>. Pour des raison d&rsquo;efficacité (et aussi de fun), j&rsquo;ai fait le programme en <code>C</code>.</p> <p>Celà faisait longtemps que je n&rsquo;avais pas programmé en <code>C</code>. De mémoire il était peu aisé de manipuler des ...</p> tag:yannesposito.com,2010-10-10:/Scratch/fr/blog/2010-10-10-Secure-eMail-on-Mac-in-few-steps/ Sécurisez vos emails 2010-10-10T16:39:00Z 2010-10-10T16:39:00Z Yann Esposito yannesposito.com <p><img alt="Title image" src="/Scratch/img/blog/2010-10-10-Secure-eMail-on-Mac-in-few-steps/main.png" class="clean" /></p> <div class="intro"> <p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> <em>avec un Mac</em> </p> <ul> <li>Récupérez un certificat signé par une AC: <a href="http://www.instantssl.com/ssl-certificate-products/free-email-certificate.html">cliquez ici pour un certificat gratuit</a>&nbsp;;</li> <li>ouvrez le fichier&nbsp;;</li> <li>supprimer le fichier en mode sécurisé&nbsp;;</li> <li>utilisez Mail plutôt que l&rsquo;interface web de gmail.</li> </ul> </div> <p>J&rsquo;ai (re)découvert comment adoptez la norme S/MIME. J&rsquo;ai été surpris de voir à quel point ce fut aisé. Il y a seulement quelques années c&rs...</p></p> tag:yannesposito.com,2010-10-06:/Scratch/fr/blog/2010-10-06-New-Blog-Design-Constraints/ Contraintes du design de ce blog 2010-10-06T09:33:03Z 2010-10-06T09:33:03Z Yann Esposito yannesposito.com <p>Vous avez pu constater que j&rsquo;ai modifié le design de mon blog. Maintenant il doit être beaucoup plus léger qu&rsquo;avant. Je n&rsquo;utilise plus de CSS3 et beaucoup moins de javascript. Bien entendu, même avant, mes pages étaient parfaitement lisibles sans javascript. Mais, je me suis aperçu que les systèmes de CSS3 sont loin d&rsquo;être au point. J&rsquo;utilisait des gradient en CSS3, ainsi que des ombres sous le texte. Ça avait un rendu très sympa. Sauf&hellip; Ce n&rsquo;était pas compatible ie6, sous Chrome le rendu était d&rsquo;une lenteur incroyable. J&rsquo;ai donc décidé de faire un site à minima. Je voulais qu&rsquo;il soit joli <em>et</em> le plus simple possible pour assurer sa compatibilité. Les règles que je me suis fixées sont donc:</p> tag:yannesposito.com,2010-09-02:/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/ Utilisation de git pour calculer les mtimes 2010-09-02T13:54:10Z 2010-09-02T13:54:10Z Yann Esposito yannesposito.com <p>Vous pouvez remarquer qu&rsquo;à la fin de chaque page je donne une date de dernière modification. Précédemment cette date était calculée en utilisant la date du fichier. Mais il arrive fréquemment que je fasse un <code>touch</code> d&rsquo;un fichier pour engendrer tout le site de nouveau. Donc la date n&rsquo;est pas nécessairement la <em>vraie</em> de modification du contenue.</p> <p>J&rsquo;utilise <a href="http://git-scm.org">git</a> pour <em>versionner</em> mon site web. Et cet outil me permet de récupérer la dernière date de <em>vraie</em> modification d&rsquo;un fichier. Voici comment je m&rsquo;y prend avec <a href="http://nanoc.stoneship.org">nanoc</a>&nbsp;:</p> <div class="code"><div class="file"></div></div> tag:yannesposito.com,2010-09-01:/Scratch/fr/blog/2010-09-02-base64-and-sha1-on-iPhone/ base64 et sha1 sur iPhone 2010-09-01T22:02:17Z 2010-09-01T22:02:17Z Yann Esposito yannesposito.com <p>Allons directement à l&rsquo;essentiel&nbsp;: voici deux fonctions à intégrer à votre application iPhone pour afficher l&rsquo;encodage en base64 ou en hexadecimal du hash sha1 d&rsquo;un string en Objective-C pour iPhone.</p> <p>Pour l&rsquo;usage c&rsquo;est très simple, copiez le code dans la classe de votre choix. Puis&nbsp;:</p> <pre class="twilight"> <span class="CCCPreprocessorLine">#<span class="CCCPreprocessorDirective">import</span> <span class="String"><span class="String">&lt;</span>CommonCrypto/CommonDigest.h<span class="String">&gt;</span></span></span> ... <span class="Support">NSString</span> *b64_hash = [<span class="Variable">self</span> <span class="SupportFunction">b64_sha1<span class="SupportFunction">:</span></span><span class="String"></span></pre> tag:yannesposito.com,2010-08-31:/Scratch/fr/blog/2010-08-31-send-mail-from-command-line-with-attached-file/ Envoyer un mail en ligne de commande avec un fichier attaché 2010-08-31T08:16:04Z 2010-08-31T08:16:04Z Yann Esposito yannesposito.com <p>J&rsquo;ai dû envoyer un mail en ligne de commande récemment. Quelle ne fût pas ma surprise lorsque je constatais que ce n&rsquo;était vraiment pas évident. Je n&rsquo;avais ni <code>pine</code> ni <code>mutt</code>. Seulement <code>mail</code> et <code>mailx</code>.</p> <p>Ce qu&rsquo;on trouve sur internet pour envoyer un mail avec fichier attaché c&rsquo;est ça&nbsp;:</p> <pre class="twilight"> uuencode fic.jpg fic.jpg <span class="Keyword">|</span> mail -s <span class="String"><span class="String">'</span>Subject<span class="String">'</span></span> </pre> <p>Bon, alors, bête et discipliné j&rsquo;ai essayé. Et bien, ça marche <em>presque</em> tout le temps. Pour mon fichier ça n&rsquo;a pas marché du tout. Je l&rsquo;ai compressé au format <code>.gz</code>, </p> tag:yannesposito.com,2010-08-23:/Scratch/fr/blog/2010-08-23-Now-heberged-on-heroku/ Maintenant sur Heroku 2010-08-23T13:05:13Z 2010-08-23T13:05:13Z Yann Esposito yannesposito.com <h1 class="first" id="maintenant-sur-herokuhttpherokucom">Maintenant sur <a href="http://heroku.com">Heroku</a></h1> <p>J&rsquo;ai changé mon hébergeur. Mobileme n&rsquo;est absolument pas adapté à la diffusion de mon blog. C&rsquo;est pourquoi je suis passé à <a href="http://heroku.com">Heroku</a>.</p> <p>Mais comme vous devez le savoir mon blog est un site complètement statique. J&rsquo;utilise <a href="http://nanoc.stoneship.org/">nanoc</a> pour l&rsquo;engendrer. Avoir un site statique amène beaucoup d&rsquo;avantages par rapport à un site dynamique. Surtout en terme de sécurité. Voici comment configurer un site statique sur heroku.</p> <p>La racine de mes fichiers est &lsquo;/output&rsquo;. Vous devez simplement créer deux fichiers. Un fichier <code>config.ru</code></p> tag:yannesposito.com,2010-08-11:/Scratch/fr/blog/2010-07-09-Indecidabilities/ Indécidabilités (partie 1) 2010-08-11T08:04:31Z 2010-08-11T08:04:31Z Yann Esposito yannesposito.com <div class="intro"> <p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> Je crée un mode mathématique simple pour parler de différents types d&rsquo;<em>indécidabilités</em>&nbsp;:</p> <ul> <li>indécidabilité due aux erreurs d&rsquo;observation&nbsp;;</li> <li>grandes erreurs résultant de petites erreurs de mesure&nbsp;;</li> <li>indécidabilité fractales&nbsp;;</li> <li>indécidabilité logique.</li> </ul> </div> </div> <div class="corps"> <h1 class="first" id="les-indcidabilits">Les indécidabilités</h1> <div class="intro"> <p>Si le monde a été fabriqué par un démiurge, on peut dire que celui-ci devait avoir le sens de l&rsquo;humour. Et le récit que je vais faire va vous en fournir la preuve. Je vais me mettre à sa p...</p></div> tag:yannesposito.com,2010-07-31:/Scratch/fr/blog/2010-07-31-New-style-after-holidays/ Nouveau style après les vacances 2010-07-31T21:59:10Z 2010-07-31T21:59:10Z Yann Esposito yannesposito.com <p>Avant les vacances beaucoup d&rsquo;utilisateurs se sont plaints de la lenteur de rendu de mon site. Il s&rsquo;agit notamment de problèmes avec Chrome en particulier. Mais pour éviter tout problème. J&rsquo;ai complètement modifié le style de mon site web. Il est inspiré du style de l&rsquo;application iBooks<small>&copy;</small> sur iPhone<small>&copy;</small>.</p> <p>Dites moi ce que vous pensez de ce nouveau design.</p> tag:yannesposito.com,2010-07-07:/Scratch/fr/blog/2010-07-07-CSS-rendering-problems-by-navigator/ N'utilisez pas de gradients avec Chrome 2010-07-07T13:43:43Z 2010-07-07T13:43:43Z Yann Esposito yannesposito.com <p>Beaucoup d&rsquo;utilisateurs de <a href="http://reddit.com">Reddit</a> m&rsquo;ont rapporté que mon site était très long à charger et à <em>scroller</em>. Ils pensaient qu&rsquo;il s&rsquo;agissait d&rsquo;un problème dû aux ombres que j&rsquo;applique sur le texte. J&rsquo;étais un peu surpris puisque je fais mes tests sur une machine vraiment très lente et je n&rsquo;avais jamais détecté ces problèmes. En réalité, ce qui ralenti le rendu de ce site est par ordre d&rsquo;importance&nbsp;:</p> <ol> <li>Les dégradés sur Chrome (pas dans Safari sur Mac)</li> <li>les <em>box shadows</em> sur Firefox</li> </ol> <h2 id="les-dgrads">les dégradés</h2> <p>Sur Safari il n&rsquo;y a absolument aucun problème avec les dégradés. Par contre sur Chrome sous Linux le si...</p> tag:yannesposito.com,2010-07-05:/Scratch/fr/blog/2010-07-05-Cappuccino-and-Web-applications/ Cappuccino ou jQuery ? 2010-07-05T11:49:04Z 2010-07-05T11:49:04Z Yann Esposito yannesposito.com <div class="intro"> <p><abbr title="Trop long à lire">tlàl</abbr>:</p> <ul> <li>J&rsquo;ai essayé de faire une version de <a href="http://yannesposito.com/Softwares/YPassword.html">YPassword</a> en jQuery et avec Cappuccino.</li> <li>Cappuccino est très bien sur les navigateurs non mobile mais l&rsquo;application pèse 1.4Mo et n&rsquo;est pas compatible avec l&rsquo;iPhone.</li> <li>la version jQuery n&rsquo;est pas aussi jolie que la version réalisée avec Cappuccino mais elle pèse seulement 106Ko et est compatible avec l&rsquo;iPhone.</li> <li>J&rsquo;essayerai Dashcode 3</li> </ul> </div> <hr /> <div class="intro"> <p>Avant de commencer, je dois dire que je sais que Cappuccino et jQuery ne sont pas plus comparable que Cocoa et la <em>standard library</em> en...</p></div></hr> tag:yannesposito.com,2010-06-18:/Scratch/fr/blog/2010-06-19-jQuery-popup-the-easy-way/ Comment faire des popups en jQuery rapidement 2010-06-18T22:44:50Z 2010-06-18T22:44:50Z Yann Esposito yannesposito.com <p>Sur ce blog, je donne parfois la possibilité de télécharger certaines sources de code. Dans ce cas, le code est souvent plus large que le <code>div</code> qui le contient. Le texte est alors coupé. C&rsquo;est pourquoi, j&rsquo;utilise une méthode qui permet d&rsquo;afficher ces sources dans de grandes <em>popups</em> en jQuery.</p> <p>Vous pouvez faire un essai en cliquant le code suivant&nbsp;; remarquez qu&rsquo;un bout du code n&rsquo;est pas visible (après <code>z-index</code> normallement)&nbsp;:</p> <div class="code"><div class="file"><a href="/Scratch/fr/blog/2010-06-19-jQuery-popup-the-easy-way/code/essai.js"> &#x27A5; essai.js </a></div><div class="withfile"> <pre class="twilight"> <span class="Comment"><span class="Comment">//</span> --- code popup ---</span> </pre></div></div> tag:yannesposito.com,2010-06-17:/Scratch/fr/blog/2010-06-17-hide-yourself-to-analytics/ Se cacher de ses statistiques web 2010-06-17T14:37:22Z 2010-06-17T14:37:22Z Yann Esposito yannesposito.com <p>Voici un moyen très simple de ne plus être comptabilisé dans les visites de son propre site. Tout d&rsquo;abord, vous devriez jeter un coup d&rsquo;œil sur comment <a href="/Scratch/fr/blog/2010-06-17-track-events-with-google-analytics">je gère les systèmes de récupération de statistiques</a>. Je centralise tout dans un seul fichier javascript ce qui facilite le travail.</p> <p>Cette méthode nécessite l&rsquo;utilisation de <code>jquery-cookie</code>.</p> <p>Avant de comptabiliser les visites, je vérifie que la clé <code>admin</code> n&rsquo;est pas utilisée dans mes cookies.</p> <pre class="twilight"> <span class="Storage">var</span> admin <span class="Keyword">=</span> <span class="Keyword">$</span>.<span class="SupportConstant">cookie</span>(</pre> tag:yannesposito.com,2010-06-17:/Scratch/fr/blog/2010-06-17-track-events-with-google-analytics/ Analyser les clicks sur votre Site 2010-06-17T12:41:36Z 2010-06-17T12:41:36Z Yann Esposito yannesposito.com <p>Voici comment analyser tous les clics que font vos utilisateurs sur votre blog en incluant google analytics de façon asynchrone.</p> <p>Dans le html, il faut utiliser <a href="http://jquery.com">jQuery</a> et un fichier que j&rsquo;ai appelé <code>yga.js</code>&nbsp;:</p> <pre class="twilight"> <span class="EmbeddedSource"> <span class="EmbeddedSource">&lt;</span><span class="MetaTagInline">script</span> <span class="MetaTagInline">type</span>=<span class="String"><span class="String">&quot;</span>text/javascript<span class="String">&quot;</span></span> <span class="MetaTagInline">src</span>=<span class="String"><span class="String">&quot;</span>jquery.js<span class="String">&quot;</span></span><span class="EmbeddedSource">&gt;</span><span class="EmbeddedSource">&lt;/</span></span></pre> tag:yannesposito.com,2010-06-15:/Scratch/fr/blog/2010-06-15-Get-my-blog-engine/ Récupérez mon système de blog 2010-06-15T08:56:32Z 2010-06-15T08:56:32Z Yann Esposito yannesposito.com <p>J&rsquo;ai publié une version <em>light</em> de mon système de blog hier soir. Par <em>light</em> il faut comprendre avec un CSS plus épuré et plus portable (sans les bords ronds). Vous pouvez le récupérer sur <a href="http://github.com/yogsototh/nanoc3_blog">github.com</a>.</p> <p>Que pouvez-vous attendre de ce système de blog&nbsp;?</p> <ul> <li>Tous les avantages liés à <a href="http://nanoc.stoneship.org">nanoc</a>&nbsp;;</li> <li>Facilité de la gestion de plusieurs langues&nbsp;;</li> <li>coloration syntaxique des codes sources pour la plupart des languages&nbsp;;</li> <li>commentaires gérés avec <a href="http://intensedebate.org">intenseDebate</a> de façon asynchrone&nbsp;;</li> <li>très portable avec ou sans javascript, XHTML Strict 1.0 / CSS3&nbsp;;</li></ul> tag:yannesposito.com,2010-06-14:/Scratch/fr/blog/2010-06-14-multi-language-choices/ choix liés à l'écriture dans plusieurs langues 2010-06-14T14:14:57Z 2010-06-14T14:14:57Z Yann Esposito yannesposito.com <p>Je traduis la plupart de mes articles pour qu&rsquo;ils soient disponibles en français et en anglais. La façon que l&rsquo;on m&rsquo;a conseillé était d&rsquo;avoir un fichier par langue. En général ça donne ça.</p> <pre class="twilight"> Bonjour, voici un exemple de texte en français. [image](url) </pre> <pre class="twilight"> Hello, here is an example of english text. [image](url) </pre> <p>Cette façon de traduire vous impose une certaine façon de traduire. D&rsquo;abord écrire entièrement le texte dans une langue, puis copier le fichier et enfin retraduire dans une nouvelle langue.</p> <p>Le problème, c&rsquo;est que très souvent, les articles ont des parties communes non négligeables. Par exemple, les images, les codes sources, etc&hellip; Lorsque je m&...</p> tag:yannesposito.com,2010-05-24:/Scratch/fr/blog/2010-05-24-Trees--Pragmatism-and-Formalism/ Arbres ; Pragmatisme et Formalisme 2010-05-24T18:05:14Z 2010-05-24T18:05:14Z Yann Esposito yannesposito.com <div class="intro"> <p><abbr title="Trop Long À Lire"><span class="sc">tlàl</span></abbr>&nbsp;:</p> <ul> <li>J&rsquo;ai essayé de programmer un simple filtre&nbsp;;</li> <li>J&rsquo;ai été bloqué pendant deux jours&nbsp;;</li> <li>J&rsquo;ai arrêté de penser comme un robot&nbsp;;</li> <li>J&rsquo;ai utilisé un papier et un stylo&nbsp;;</li> <li>J&rsquo;ai fait un peu de maths&nbsp;;</li> <li>J&rsquo;ai résolu le problème en 10 minutes&nbsp;;</li> <li>Conclusion: Pragmatisme n&rsquo;est pas&nbsp;: &laquo;n&rsquo;utilisez jamais la théorie&raquo;. </div> </ul> <h2 id="rsum-plus-long-que-le--abbr-titletrop-long--liresctllscabbr">Résumé (plus long que le <abbr title="Trop Long À Lire"><span class="sc">tlàl</span></abbr>)</h2> <p>Je devais résoudre un...</p></div> tag:yannesposito.com,2010-05-19:/Scratch/fr/blog/2010-05-19-How-to-cut-HTML-and-repair-it/ Comment réparer un XML coupé ? 2010-05-19T20:20:34Z 2010-05-19T20:20:34Z Yann Esposito yannesposito.com <p>Sur ma page d&rsquo;accueil vous pouvez voir la liste des mes derniers articles avec le début de ceux-ci. Pour arriver à faire ça, j&rsquo;ai besoin de couper le code XHTML de mes pages en plein milieu. Il m&rsquo;a donc fallu trouver un moyen de les réparer.</p> <p>Prenons un exemple&nbsp;:</p> <pre class="twilight"> <span class="MetaTagAll"><span class="MetaTagAll">&lt;</span><span class="MetaTagAll">div</span> <span class="MetaTagAll">class</span>=<span class="String"><span class="String">&quot;</span>corps<span class="String">&quot;</span></span><span class="MetaTagAll">&gt;</span></span> <span class="MetaTagAll"><span class="MetaTagAll">&lt;</span><span class="MetaTagAll">div</span> <span class="MetaTagAll">class</span>=<span class="String"><span class="String">&quot;</span></span></span></pre> tag:yannesposito.com,2010-05-17:/Scratch/fr/blog/2010-05-17-at-least-this-blog-revive/ Je reviens à la vie ! 2010-05-17T11:25:51Z 2010-05-17T11:25:51Z Yann Esposito yannesposito.com <p>Bonjour à tous&nbsp;!</p> <blockquote cite="http://www.madore.org/~david/weblog/2010-05.html#d.2010-05-12.1752"> <p>&hellip;plus on retarde quelque chose, plus il devient difficile de s&rsquo;y mettre&hellip;</p> </blockquote> <p>Je devais écrire d&rsquo;autres articles pour ce blog. J&rsquo;ai noté plein d&rsquo;idées dans mes <em>todolist</em>. Mais j&rsquo;avais pas mal d&rsquo;autres choses à faire. Et jusqu&rsquo;ici, j&rsquo;ai toujours dit &laquo;je le ferai plus tard&raquo;. Ce qui m&rsquo;a fait agir, c&rsquo;est la petite réflexion que j&rsquo;avais lu une fois. &gt; Arrétez d&rsquo;écrire des <code>TODO</code> dans votre code est faites le maintenant&nbsp;!<br /> &gt; Vous serez surpris de l&rsquo;efficacité de cette mesure.</p> <p>En résumé&nbsp;: &gt; </p></p> tag:yannesposito.com,2010-03-23:/Scratch/fr/blog/2010-03-23-Encapsulate-git/ Encapsuler git 2010-03-23T20:37:36Z 2010-03-23T20:37:36Z Yann Esposito yannesposito.com <p><span class="intro"> Voici une solution pour conserver des branches divergentes avec <code>git</code>. Parce qu&rsquo;il est facile de <em>merger</em> par erreur, je propose un script qui encapsule le comportement de <code>git</code> pour interdire certains <em>merges</em> dangereux. Mais qui permet aussi de faire des merges en cascades de la racines vers les autres branches. </span></p> <h2 id="se-prmunir-contre-les-erreurs">Se prémunir contre les erreurs</h2> <p>Je travaille sur un projet dans lequel certaines de mes branches <code>git</code> doivent rester divergentes. Et les divergences devraient aller en s&rsquo;accentuant.</p> <p>J&rsquo;utilise aussi certaines branches qui contiennent la partie commune de ces projets.</p> <p>Disons que j&rsquo;ai les branches&nbsp;:</p> ... tag:yannesposito.com,2010-03-22:/Scratch/fr/blog/2010-03-22-Git-Tips/ Astuces Git 2010-03-22T08:42:27Z 2010-03-22T08:42:27Z Yann Esposito yannesposito.com <h2 class="first" id="cloner-de-github--travers-un-pare-feu">Cloner de github à travers un pare-feu</h2> <p>La façon standard:</p> <div><pre class="twilight"> git clone git@github.com:yogsototh/project.git </pre></div> <p>En utilisant le port HTTPS&nbsp;:</p> <div><pre class="twilight"> git clone git+ssh://git@github.com:443/yogsototh/project.git </pre></div> <h2 id="cloner-toutes-les-branches">Cloner toutes les branches</h2> <p><code>git clone</code> peut seulement récuper la branche <code>master</code>.</p> <p>Si vous n&rsquo;avez pas beaucoup de branches, vous pouvez simplement les clone le project et ensuite pour chacune d&rsquo;entre elle lancer la commande suivante&nbsp;:</p> <div><pre class="twilight"> git branch --track local_branch remote_branch </pre></div> <p>par ...</p> tag:yannesposito.com,2010-02-23:/Scratch/fr/blog/2010-02-23-When-regexp-is-not-the-best-solution/ Quand se passer des expressions régulières ? 2010-02-23T08:09:52Z 2010-02-23T08:09:52Z Yann Esposito yannesposito.com <p>Les expressions régulières sont très utiles. Cependant, elles ne sont pas toujours la meilleure manière d&rsquo;aborder certain problème autour des chaines de caractères. Et surtout quand les transformations que vous voulez accomplir sont simples.</p> <p>Je voulais savoir comment récupérer le plus vite possible l&rsquo;extension d&rsquo;un nom de fichier. Il y a trois manière naturelle d&rsquo;accomplir celà&nbsp;:</p> <div><pre class="twilight"> <span class="Comment"><span class="Comment">#</span> regexp</span> str.<span class="Entity">match</span>(<span class="StringRegexp"><span class="StringRegexp">/</span></span><span class="StringRegexp"><span class="StringRegexp"><span class="StringRegexp">[</span>^.<span class="StringRegexp">]</span></span>*$</span></pre></div> tag:yannesposito.com,2010-02-18:/Scratch/fr/blog/2010-02-18-split-a-file-by-keyword/ découper un fichier par mots clés 2010-02-18T13:29:14Z 2010-02-18T13:29:14Z Yann Esposito yannesposito.com <p>Assez bizarrement, je n&rsquo;ai trouvé aucun outil UNIX pour découper un fichier par mot clé. Alors j&rsquo;en ai fait un en <code>awk</code>. Je le met ici principalement pour moi, mais ça peut toujours servir à quelqu&rsquo;un d&rsquo;autre. Le code suivant découpe un fichier pour chacune de ses ligne contenant le mot <code>UTC</code>.</p> <div><pre class="twilight"> <span class="Comment"><span class="Comment">#</span>!/usr/bin/env awk</span> <span class="Entity">BEGIN</span>{i=0;} <span class="StringRegexp"><span class="StringRegexp">/</span>UTC<span class="StringRegexp">/</span></span> { i+=1; FIC=<span class="SupportFunction">sprintf</span>(<span class="String"><span class="String">&quot;</span>fic.%03d<span class="String">&quot;</span></span>,i); } {</pre></div> tag:yannesposito.com,2010-02-16:/Scratch/fr/blog/2010-02-16-All-but-something-regexp--2-/ Tout sauf quelquechose en expression régulière. 2010-02-16T08:33:21Z 2010-02-16T08:33:21Z Yann Esposito yannesposito.com <p>Dans mon <a href="previouspost">précédent article</a> j&rsquo;ai donné certaines astuces pour matcher &lsquo;tout sauf quelque chose&rsquo;. De la même manière, un truc pour matcher la chaine de caractère la plus petite possible. Disons que vous voulez matcher la chaine de caractère entre &lsquo;a&rsquo; et &lsquo;b&rsquo;. Par exemple, vous voulez matcher&nbsp;:</p> <pre class="twilight"> a.....<span class="Constant"><strong>a......b</strong></span>..b..a....<span class="Constant"><strong>a....b</strong></span>... </pre> <p>Voici les deux erreurs communes et une solution&nbsp;:</p> <pre class="twilight"> /a.*b/ <span class="Constant"><strong>a.....a......b..b..a....a....b</strong></span>... </pre> <p>La première erreur vient de l&rsquo;utilisation du <em>terrible</em> </p> tag:yannesposito.com,2010-02-15:/Scratch/fr/blog/2010-02-15-All-but-something-regexp/ Expression régulière pour tout sauf quelquechose 2010-02-15T09:16:12Z 2010-02-15T09:16:12Z Yann Esposito yannesposito.com <p>Parfois vous ne pouvez simplement pas écrire&nbsp;:</p> <div><pre class="twilight"> <span class="Keyword">if</span> str.<span class="Entity">match</span>(regexp) <span class="Keyword">and</span> <span class="Keyword">not</span> str.<span class="Entity">match</span>(other_regexp) do_something </pre></div> <p>et vous devez obtenir le même comportement avec seulement une expression régulière. Le problème c&rsquo;est que le complémentaire des régulier n&rsquo;est pas régulier. Celà peut s&rsquo;avérer impossible.</p> <p>Cependant, pour certaines expressions ce peut être possible<sup><a href="#note1">&dagger;</a></sup>. Disons que vous souhaitez <em>matcher</em> toutes les lignes contenant le mot <code>bull</code>, mais que vous ne souhaitez pas matcher <code>bu...</code></p> tag:yannesposito.com,2010-01-12:/Scratch/fr/blog/2010-01-12-antialias-font-in-Firefox-under-Ubuntu/ Fontes adoucies sous Ubuntu Firefox 2010-01-12T14:36:40Z 2010-01-12T14:36:40Z Yann Esposito yannesposito.com <p>Voici comment faire pour ne plus utiliser les fontes Microsoft© sous Linux Ubuntu pour avoir de belles fontes adoucies (anti aliased) qui ne font pas mal aux yeux sous Firefox.</p> <p>modifiez le fichier <code>/etc/fonts/local.conf</code> en y incluant le contenu suivant&nbsp;: </p> <div> <div class="code"><div class="file"><a href="/Scratch/fr/blog/2010-01-12-antialias-font-in-Firefox-under-Ubuntu/code/local.conf"> &#x27A5; local.conf </a></div><div class="withfile"> <pre class="twilight"> <span class="DoctypeXmlProcessing"><span class="DoctypeXmlProcessing">&lt;?</span><span class="DoctypeXmlProcessing">xml</span><span class="DoctypeXmlProcessing"> version</span>=<span class="DoctypeXmlProcessing"><span class="DoctypeXmlProcessing">&quot;</span>1.0</span></span></pre></div></div></div> tag:yannesposito.com,2010-01-04:/Scratch/fr/blog/2010-01-04-Change-default-shell-on-Mac-OS-X/ Changer le shell par défaut sous Mac OS X 2010-01-04T10:31:47Z 2010-01-04T10:31:47Z Yann Esposito yannesposito.com <p>Je viens de trouver le moyen de changer son shell par défaut sous Mac OS X. Cette note est plus pour moi. Mais elle peut aussi servir à quelqu&rsquo;un d&rsquo;autre. Il suffit de lancer la commande&nbsp;: </p> <div><pre class="twilight"> <span class="Keyword">&gt;</span> chsh </pre></div> tag:yannesposito.com,2009-12-14:/Scratch/fr/blog/2009-12-14-Git-vs--Bzr/ Git ou Bazaar ? 2009-12-14T08:46:36Z 2009-12-14T08:46:36Z Yann Esposito yannesposito.com <div class="intro"> <p>Même si je considère que <code>git</code> a beaucoup de points noirs, je pense qu&rsquo;il reste le meilleur DCVS à ce jour avec lequel travailler. C&rsquo;est pourquoi je commencerai par parler des qualité de bazaar qui manquent à git. Ensuite seulement je donnerai le seul avantage de git qui suffit à le rendre préférable à Bazaar.</p> </div> <h2 id="la-dcouverte-des-dcvs">La découverte des DCVS</h2> <p>À savoir avant de débuter l&rsquo;article. Je suis, comme beaucoup, un ancien utilisateur de <em>subversion</em>. Je trouve subversion très bien, mais j&rsquo;ai été conquis par les capacités supplémentaires apportées par les systèmes de versions concurrentes <em>décentralisés</em>.</p> <p>Il y a deux façon de percevoir les système...</p> tag:yannesposito.com,2009-12-06:/Scratch/fr/blog/2009-12-06-iphone-call-filter/ Filtrage d'appel avec l'iPhone 2009-12-06T09:35:34Z 2009-12-06T09:35:34Z Yann Esposito yannesposito.com <p>Il est vraiment incroyable que le filtrage d&rsquo;appel soit impossible avec un iPhone&nbsp;! Le <em>seul</em> intérêt que j&rsquo;y vois, c&rsquo;est une négociation avec les opérateurs pour interdire aux utilisateurs de passer à travers la publicité. C&rsquo;est tout simplement inacceptable.</p> <p>Je suis un utilisateur λ de l&rsquo;iPhone. Le seul moyen de filtrer ses appels, de faire des blacklists ou autre c&rsquo;est de <em>jailbreaker</em> son iPhone. Et je n&rsquo;en ai aucune envie. Alors si comme moi, vous trouvez ça inacceptable, envoyez un mot à Apple&nbsp;: <a href="http://www.apple.com/feedback/iphone.html">http://www.apple.com/feedback/iphone.html</a></p> tag:yannesposito.com,2009-11-12:/Scratch/fr/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure/ Git pour les nuls 2009-11-12T09:39:54Z 2009-11-12T09:39:54Z Yann Esposito yannesposito.com <h1 class="first" id="et-cest-parti-">Et c&rsquo;est parti&nbsp;!</h1> <p>Voici une parmi de nombreuses autres façon d&rsquo;utiliser <a href="http://git-scm.org" title="Git">Git</a>. Cette méthode est nécessaire et suffisante pour travailler seul ou en collaboration sur un projet commun. Cependant, on peut faire beaucoup mieux avec <a href="http://git-scm.org" title="Git">Git</a> que ce <em>workflow</em> (en langage anglo-saxon).</p> <h2 id="utilisation-basique">Utilisation basique</h2> <p>La façon immédiate de travailler avec <a href="http://git-scm.org" title="Git">Git</a>&nbsp;:</p> <ul> <li>récupérer les modifications des autres <span class="black"><code>git pull</code></span></li> <li>voir les détails de ces modifications <span class="black"><code>git log</code></span></li></ul> tag:yannesposito.com,2009-11-12:/Scratch/fr/blog/2009-11-12-Git-for-n00b/conf-et-install/ Git pour les nuls 2009-11-12T09:39:54Z 2009-11-12T09:39:54Z Yann Esposito yannesposito.com <h1 class="first" id="avant-lutilisation-la-configuration">Avant l&rsquo;utilisation, la configuration</h1> <h2 id="installation">installation</h2> <p>Sous Linux Ubuntu ou Debian&nbsp;:</p> <div><pre class="twilight">$ sudo apt-get install git </pre></div> <p>Sous Mac OS X&nbsp;:</p> <ul> <li>installez <a href="http://macports.org/install.php">MacPorts</a></li> <li>installez <a href="http://git-scm.org" title="Git">Git</a></li> </ul> <div><pre class="twilight"> $ sudo port selfupdate $ sudo port install git-core </pre></div> <h2 id="configuration-globale">Configuration globale</h2> <p>Enregistrez le fichier suivant comme le fichier <code>~/.gitconfig</code>.</p> <div><div class="code"><div class="file"></div></div></div> tag:yannesposito.com,2009-11-12:/Scratch/fr/blog/2009-11-12-Git-for-n00b/comprendre/ Git pour les nuls 2009-11-12T09:39:54Z 2009-11-12T09:39:54Z Yann Esposito yannesposito.com <h1 class="first" id="pourquoi-git-est-cool-">Pourquoi Git est cool&nbsp;?</h1> <p>Parce que grace à <a href="http://git-scm.org" title="Git">Git</a> vous pouvez travailler sur plusieurs partie du projet de façon complètement isolée les unes des autres. Ça c&rsquo;est la partie décentralisée de <a href="http://git-scm.org" title="Git">Git</a>.</p> <p>Toutes les branches locales utilisent le même répertoire. Ainsi on peu changer de branche très aisément et rapidement. On peut aussi changer de branche alors que certains fichier sont en cours de modifications. On peut même pousser le vice jusqu&rsquo;à modifier un fichier, changer de branche, commiter une partie seulement des modifications de ce fichier dans la branche courante. Revenir dans l&rsquo;ancienne branche et commi...</p> tag:yannesposito.com,2009-11-12:/Scratch/fr/blog/2009-11-12-Git-for-n00b/Git-pour-quoi-faire/ Git pour les nuls 2009-11-12T09:39:54Z 2009-11-12T09:39:54Z Yann Esposito yannesposito.com <h1 class="first" id="gitgit-pour-quoi-faire-"><a href="http://git-scm.org" title="Git">Git</a> pour quoi faire&nbsp;?</h1> <div class="intro"> <p>Si tout ce qui vous intéresse c&rsquo;est d&rsquo;utiliser <a href="http://git-scm.org" title="Git">Git</a> <strong>tout de suite</strong>. Lisez simplement les parties sur fond noir. Je vous conseille aussi de revenir relire tout ça un peu plus tard, pour mieux comprendre les fondements des systèmes de versions et ne pas faire de bêtises quand vous les utilisez.</p> </div> <p><a href="http://git-scm.org" title="Git">Git</a> est un <abbr title="Decentralized Concurent Versions System">DCVS</abbr>, c&rsquo;est-à-dire un système de versions concurrentes décentralisé. Analysons chaque partie de cette appellation compliquée.</p> ... tag:yannesposito.com,2009-11-12:/Scratch/fr/blog/2009-11-12-Git-for-n00b/ Git pour les nuls 2009-11-12T09:39:54Z 2009-11-12T09:39:54Z Yann Esposito yannesposito.com <div class="intro"> <p>Voici un tutoriel <a href="http://git-scm.org">Git</a> détaillé pour ceux qui en connaissent très peu sur les systèmes de versions. Vous comprendrez l&rsquo;utilité de tels systèmes et surtout comment on se sert des systèmes de versions modernes, le tout en restant le plus pragmatique possible.</p> </div> </div> <div class="corps"> <h1 class="first" id="pour-commencer-la-conclusion">Pour commencer, la conclusion</h1> <p>Voici la liste des commandes nécessaires et suffisantes pour utiliser <a href="http://git-scm.org" title="Git">Git</a>. Il y en a très peu. Il est normal de ne pas les comprendre tout de suite mais c&rsquo;est pour vous donner une idée. Malgré la longueur de l&rsquo;article, 95% de l&rsquo;utilisation de </p> tag:yannesposito.com,2009-11-12:/Scratch/fr/blog/2009-11-12-Git-for-n00b/commandes-avancees/ Git pour les nuls 2009-11-12T09:39:54Z 2009-11-12T09:39:54Z Yann Esposito yannesposito.com <h1 class="first" id="liste-de-commandes">Liste de commandes</h1> <h2 id="les-commandes-pour-chaque-choses">Les commandes pour chaque choses</h2> <p>Dans la première partie, nous avons vu la liste des problèmes résolus par <a href="http://git-scm.org" title="Git">Git</a>. En résumé Git doit pouvoir&nbsp;:</p> <ul> <li>récupérer les modifications des autres&nbsp;;</li> <li>envoyer ses modifications aux autres&nbsp;;</li> <li>revenir dans le temps&nbsp;;</li> <li>lister les différences entre chaque version&nbsp;;</li> <li>nommer certaines versions pour s&rsquo;y référer facilement&nbsp;;</li> <li>afficher l&rsquo;historique des modifications&nbsp;;</li> <li>savoir qui a fait quoi et quand&nbsp;;</li> <li>gérer des conflits&nbsp;;</li> <li>manipuler facileme...</li></ul> tag:yannesposito.com,2009-10-30:/Scratch/fr/blog/2009-10-30-How-to-handle-evil-IE/ Une CSS pour IE seulement 2009-10-30T20:34:46Z 2009-10-30T20:34:46Z Yann Esposito yannesposito.com <p>Pour les développeur de site web Internet Explorer est un cauchemar. C&rsquo;est pourquoi j&rsquo;utilise un style complètement différent pour ce navigateur. Avec la librairie jQuery.</p> <div><pre class="twilight"> <span class="Keyword">$</span>(<span class="Support">document</span>).ready( <span class="Storage">function</span>() { <span class="Keyword">if</span> (<span class="Keyword">$</span>.browser[<span class="String"><span class="String">&quot;</span>msie<span class="String">&quot;</span></span>]) { <span class="Comment"><span class="Comment">//</span> include the ie.js file</span> <span class="Keyword">$</span>(<span class="String"><span class="String">'</span>head<span class="String">'</span></span>).append(<span class="String"><span class="String">'</span></span></pre></div> tag:yannesposito.com,2009-10-28:/Scratch/fr/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/ Synchronisation avec mobileme (2) 2009-10-28T09:03:30Z 2009-10-28T09:03:30Z Yann Esposito yannesposito.com <p>J&rsquo;ai déjà discuté de la façon dont je <a href="/Scratch/fr/blog/10_Synchronize_Custom_WebSite_with_mobileMe">synchronise mon site web sur mobileme</a>. J&rsquo;ai amélioré mon script pour le rendre incrémental.</p> <p>Voici mon script, il créé tout d&rsquo;abord un fichier qui contient la liste des fichiers avec leur <em>hash</em>. Afin de les comparer avec ceux qui sont en ligne sans avoir à les parcourir. Ensuite pour chaque fichier qui semble différent, je met à jour le contenu.</p> <p>Cependant même avec ce script j&rsquo;ai encore des problèmes. Dû à webdav. En particulier le renommage de répertoire. Par exemple&nbsp;:</p> <div><pre class="twilight"> mv folder folder2 </pre></div> <p>Retourne OK et pourtant&nbsp;: </p> <div><pre class="twilight"> $ ls...</pre></div>