http://yannesposito.com/ Yogsototh's last blogs entries 2010-09-02T13:54:10Z Yann Esposito http://yannesposito.com 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;.</li> </ul> </div> <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ésoud...</p> 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.</p> <blockquote> <p>Arrétez d&rsquo;écrire des <code>TODO</code> dans votre code est faites le maintenant&nbsp;!<br /> Vous serez surpris de l&rsquo;efficacité de cette mesure.</p> </blockquote> <p>E...</p></blockquote> 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 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/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é.</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> tag:yannesposito.com,2009-10-26:/Scratch/fr/blog/2009-10-Wait-to-hide-a-menu-in-jQuery/ Un menu qui attends avant de se cacher 2009-10-26T19:56:09Z 2009-10-26T19:56:09Z Yann Esposito yannesposito.com <p>J&rsquo;ai déjà dit pourquoi <a href="/Scratch/fr/blog/2009-10-Focus-vs-Minimalism">je préférais que mon menu de navigation soit caché</a>. J&rsquo;ai finalement décidé d&rsquo;attendre un peu avant de cacher le menu. Juste le temps que l&rsquo;utilisateur le voit. Mais voilà. Comment faire pour qu&rsquo;il ne disparaisse que lorsque l&rsquo;on ne s&rsquo;en sert pas pendant un petit moment&nbsp;?</p> <p>Voici la solution que j&rsquo;utilise avec jQuery</p> <p>HTML&nbsp;: </p> <div> <pre class="twilight"> <span class="MetaTagAll"><span class="MetaTagAll">&lt;</span><span class="MetaTagAll">div</span> <span class="MetaTagAll"><span class="MetaTagAll">id</span><span class="MetaTagAll">=</span><span class="String"><span class="String">&quot;</span><span class="String">men...</span></span></span></span></pre></div> tag:yannesposito.com,2009-10-23:/Scratch/fr/blog/2009-10-launch-daemon-from-command-line/ lancer un démon en ligne de commande 2009-10-23T08:53:16Z 2009-10-23T08:53:16Z Yann Esposito yannesposito.com <p>Une petite astuce dont je ne me souvient jamais (je ne sais pas pourquoi).</p> <p>Lorsque que vous souhaitez lancer une commande qui ne soit pas tuée après la fermeture du terminal voici comment s&rsquo;y prendre&nbsp;: </p> <div><pre class="twilight"> nohup cmd <span class="Keyword">&amp;</span> </pre> <small>où <code>cmd</code> est la commande que vous souhaitez lancer.</small> </div> <p>Je laisse cette astuce ici pour moi et dans l&rsquo;espoir que ça pourra aussi être utile à quelqu&rsquo;un d&rsquo;autre.</p> tag:yannesposito.com,2009-10-22:/Scratch/fr/blog/2009-10-Focus-vs-Minimalism/ <em>Focus</em> &gt; Minimalisme 2009-10-22T18:45:18Z 2009-10-22T18:45:18Z Yann Esposito yannesposito.com <p>Je crois que le but du minimalisme est de facilité le <em><strong>Focus</strong></em> c&rsquo;est-à-dire la concentration sur le contenu. Je crois que le minimalisme doit être un moyen et pas une fin. Le <em>Focus</em> devrait être le but, et je pense que le minimalisme n&rsquo;est pas obligatoire pour l&rsquo;atteindre.</p> <p>C&rsquo;est pourquoi mon design n&rsquo;est pas minimaliste. Mais j&rsquo;ai décidé d&rsquo;enlever la majorité des objets servant à la navigation pour améliorer l&rsquo;attention sur l&rsquo;article. Peut-être que plus tard, je préfèrerai laisser le menu dans les pages normales du site pour ne le cacher que dans les articles de blog. Pour l&rsquo;instant je le cache partout.</p> </div> <div class="corps"> tag:yannesposito.com,2009-10-13:/Scratch/fr/blog/2009-10-untaught-git-usage/ Usages non dits de Git 2009-10-13T11:10:09Z 2009-10-13T11:10:09Z Yann Esposito yannesposito.com <p><small> <em>Je décris pourquoi j&rsquo;ai eu tant de mal à me faire à Git. Il y a en effet une partie &ldquo;non dite&rdquo; qui m&rsquo;a bloqué pendant un bon moment. Jusqu&rsquo;à ce que je découvre le bon document. </em></small></p> <p><small> <em> Le fait est que les <em>branches légères</em> ne sont pas destinée à être des branches isolées. Ainsi, il y a un </em>&ldquo;workflow standard&rdquo;<em> qui s&rsquo;il n&rsquo;est pas suivi rend l&rsquo;utilisation de Git inappropriée. </em> </small></p> </div> <div class="corps"> <h1 class="first" id="la-dcentralisation-en-action">La décentralisation en action</h1> <h3 id="de-svn--bazaar">De SVN à Bazaar</h3> <p>J&rsquo;étais un fervent utilisateur de <a href="http://subversion.tigris.org">subversion (svn)</a></p> tag:yannesposito.com,2009-10-03:/Scratch/fr/blog/2009-10-How-to-preload-your-site-with-style/ Charger une page web avec style 2009-10-03T12:34:11Z 2009-10-03T12:34:11Z Yann Esposito yannesposito.com <h2 class="first" id="exemple">Exemple</h2> <p>Voici comment apparaissent mes pages pendant leur chargement.</p> <div id="demo" style="width:45%; position: relative; height: 8em; background-image: url('/Scratch/css/img/red.jpg'); background-position: 50% 50%; color: #fff; text-align: center; padding-top: 1em; margin-left: auto; margin-right: auto; border: solid 10px rgba(255,255,255,0.7); -webkit-border-radius: 1em; -moz-border-radius: 1em; border-radius: 1em; cursor: pointer; "> <p>Voilà&nbsp;! Je suis chargée&nbsp;!</p> <p>Cliquez-moi dessus pour recommencer.</p> <div id="todisapear" style="color: #000; position:absolute;top:0;left:0;text-align: center; padding-top: 1em; width: 100%; background-color: #eee; height: 8em;"> Loading... </div></div> tag:yannesposito.com,2009-09-28:/Scratch/fr/blog/2009-09-Disqus-versus-Intense-Debate--Why-I-switched-/ Disqus contre Intense Debate (pourquois j'ai changé) 2009-09-28T08:58:20Z 2009-09-28T08:58:20Z Yann Esposito yannesposito.com <h1 class="first" id="disqushttpdisquscom-vs-intense-debatehttpintensedebatecom"><a href="http://disqus.com/">Disqus</a> <em>vs.</em> <a href="http://intensedebate.com/">Intense Debate</a></h1> <p>J&rsquo;ai écrit un article sur la façon dont j&rsquo;ai essayé d&rsquo;intégrer <a href="http://disqus.com">Disqus</a>. Mon problème majeur avec <a href="http://disqus.com/">Disqus</a> c&rsquo;était que ma page ne s&rsquo;affichait pas correctement tant que les commentaire n&rsquo;avait pas fini de s&rsquo;afficher. Ça m&rsquo;est arrivé plusieurs fois d&rsquo;avoir ma page complètement bloquée parce que les serveurs de <a href="http://disqus.com/">Disqus</a> ne répondait pas. C&rsquo;est pourquoi j&rsquo;ai essayer de l&rsquo;inclure de manière asynchrone. Cependant j&rsquo;ai e...</p>