1072 lines
58 KiB
XML
1072 lines
58 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||
<id>http://yannesposito.com/</id>
|
||
<title>Yogsototh's last blogs entries</title>
|
||
<updated>2012-02-02T09:53:00Z</updated>
|
||
<link rel="alternate" href="http://yannesposito.com/"/>
|
||
<link rel="self" href="http://feeds.feedburner.com/yannespositocomfr"/>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>http://yannesposito.com</uri>
|
||
</author>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2012-02-02:/Scratch/fr/blog/Typography-and-the-Web/</id>
|
||
<title type="html">La typography et le Web</title>
|
||
<published>2012-02-02T09:53:00Z</published>
|
||
<updated>2012-02-02T09:53:00Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/Typography-and-the-Web/"/>
|
||
<content type="html"><p><img alt="Screenshot of first in small caps with and without ligatures." src="/Scratch/img/blog/Typography-and-the-Web/first_sc_screenshot.png" /></p>
|
||
|
||
|
||
<div class="intro">
|
||
|
||
|
||
<p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> La typography sur le web est pourrie et nous ne somme pas près de voir ce problème réparé.</p>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<p>Je suis tombé sur ce site: <a href="http://opentypography.org/">open typography</a>. Leur message principal est&nbsp;:</p>
|
||
|
||
<blockquote>
|
||
<p>«There is no reason to wait for browser development to catch up.
|
||
We can all create better web typography ourselves, today.»</p>
|
||
</blockquote>
|
||
|
||
<p>ou en français&nbsp;:</p>
|
||
|
||
<blockquote>
|
||
<p>«Nous ne somme pas obligé d’attendre le développement des navigateurs.
|
||
Nous pouvons créer un web av...</p></blockquote></p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2012-01-15:/Scratch/fr/blog/Yesod-tutorial-for-newbies/</id>
|
||
<title type="html">Site en Haskell</title>
|
||
<published>2012-01-15T17:14:40Z</published>
|
||
<updated>2012-01-15T17:14:40Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/Yesod-tutorial-for-newbies/"/>
|
||
<content type="html"><p><img alt="Neo Flying at warp speed" src="/Scratch/img/blog/Yesod-tutorial-for-newbies/flying_neo.jpg" /></p>
|
||
|
||
|
||
<div class="intro">
|
||
|
||
|
||
<p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> Un tutoriel pour yesod, un framework web Haskell.
|
||
Vous ne devriez pas avoir besoin de savoir programmer en Haskell.
|
||
Par contre je suis désolé pour les francophones,
|
||
mais je n’ai pas eu le courage de traduire cet article en Français.</p>
|
||
|
||
<blockquote>
|
||
<center><span class="sc"><b>Table of content</b></span></center>
|
||
|
||
<ul id="markdown-toc">
|
||
<li><a href="#before-the-real-start">Before the real start</a> <ul>
|
||
<li><a href="#install">Install</a></li>
|
||
<li><a href="#initialize">Initialize</a></li>
|
||
<li><a href="#configure-git">Configure git</a></li>
|
||
<li>...</li></ul></li></ul></blockquote></div></p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2011-10-20:/Scratch/fr/blog/SVG-and-m4-fractals/</id>
|
||
<title type="html">Accroître le pouvoir des languages déficients.</title>
|
||
<published>2011-10-20T09:39:36Z</published>
|
||
<updated>2011-10-20T09:39:36Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/SVG-and-m4-fractals/"/>
|
||
<content type="html"><p><img alt="Yesod logo made in SVG and m4" src="/Scratch/img/blog/SVG-and-m4-fractals/main.png" /></p>
|
||
|
||
|
||
<div class="intro">
|
||
|
||
|
||
<p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> Utiliser m4 pour accroître le pouvoir d’<span class="sc">xslt</span> et d’<span class="sc">svg</span>. Example cool, les fractales.</p>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<p>Lorsqu’<span class="sc">xml</span> fût inventé beaucoup pensaient que c’était l’avenir.
|
||
Passer de fichiers plat à des fichiers structurés standardisés fût un grand progrès dans beaucoup de domaines.
|
||
Cerain se mirent à voir du <span class="sc">xml</span> de partout.
|
||
À tel point que les les format compatibles <span class="sc">xml</span> naquirent de toute part.
|
||
Non seulement comme format de fichier, mais aussi comme format pour un langage ...</p></p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2011-10-04:/Scratch/fr/blog/Yesod-excellent-ideas/</id>
|
||
<title type="html">Les idées de yesod</title>
|
||
<published>2011-10-04T08:18:59Z</published>
|
||
<updated>2011-10-04T08:18:59Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/Yesod-excellent-ideas/"/>
|
||
<content type="html"><p><img alt="Title image" src="/Scratch/img/blog/Yesod-excellent-ideas/main.png" /></p>
|
||
|
||
|
||
<div class="intro">
|
||
|
||
|
||
<p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span></p>
|
||
|
||
<p>Cela fait un moment que je suis la progression du <a href="http://www.yesodweb.com">framework yesod</a>.
|
||
À mon humble avis on peut commencer à l’utiliser pour des applications sérieuses (comprendre en prod).
|
||
Avant de vous dire pourquoi vous devriez aussi le considérer, je préfère vous parler de bonnes idées (parmi d’autres) introduites par yesod que je n’avais jamais vu ailleurs.</p>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<h2 id="types-saufs">Types saufs</h2>
|
||
|
||
<p>Commençons par une BD d’<a href="http://xkcd.com">xkcd</a>&nbsp;:</p>
|
||
|
||
<p></p></p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2011-09-28:/Scratch/fr/blog/Higher-order-function-in-zsh/</id>
|
||
<title type="html">Fonctions d'ordre supérieur en zsh</title>
|
||
<published>2011-09-28T13:15:23Z</published>
|
||
<updated>2011-09-28T13:15:23Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/Higher-order-function-in-zsh/"/>
|
||
<content type="html"><p><img alt="Title image" src="/Scratch/img/blog/Higher-order-function-in-zsh/main.jpg" /></p>
|
||
|
||
|
||
<div class="intro">
|
||
|
||
|
||
<p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> des fonctions d’ordres supérieurs en zsh.</p>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<p>Tout d’abord, pourquoi c’est important d’avoir ces fonctions.
|
||
Plus je programmais avec zsh plus j’essayais d’avoir un style fonctionnel.</p>
|
||
|
||
<p>Le minimum pour pouvoir avoir du code plus lisible c’est de posséder les fonctions <code>map</code>, <code>filter</code> et <code>fold</code>.</p>
|
||
|
||
<p>Voici pourquoi avec une comparaison.
|
||
Commençons par un programme qui converti tous les gif en png dans plusieurs répertoires projets contenant tous des répertoires resources.
|
||
Avant&nbsp;:</p>
|
||
|
||
<p>Avant ⇒</p>
|
||
|
||
<pre class="twilight">
|
||
</pre></p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2011-09-28:/Scratch/fr/blog/programming-language-experience/</id>
|
||
<title type="html">Mon expérience avec les languages de programmation</title>
|
||
<published>2011-09-28T10:21:41Z</published>
|
||
<updated>2011-09-28T10:21:41Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/programming-language-experience/"/>
|
||
<content type="html"><p><img alt="Title image" src="/Scratch/img/blog/programming-language-experience/dragon.jpg" /></p>
|
||
|
||
|
||
<div class="intro">
|
||
|
||
<span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> Mon avis court et hautement subjectif concernant les différents languages de programmations que j’ai utilisé.
|
||
|
||
</div>
|
||
|
||
|
||
<h3 id="basic"><code>BASIC</code></h3>
|
||
|
||
<p><img alt="Title image" src="/Scratch/img/blog/programming-language-experience/basic.gif" class="left" /></p>
|
||
|
||
<p>Ah&nbsp;! Le language de mes premiers programmes&nbsp;!
|
||
Je devais avoir 10-11 ans.
|
||
Sous <code>MO5</code>, <code>Amstrad CPC 6128</code> et même <code>Atari STe</code>.
|
||
Le langage des <code>GOTO</code>s.
|
||
Je suis empleint de nostalgie rien que d’y penser.
|
||
C’est à peu prêt le seul intérêt de ce langage.</p>
|
||
|
||
<p>Aujourd’h...</p></p></p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2011-08-25:/Scratch/fr/blog/Learn-Vim-Progressively/</id>
|
||
<title type="html">Apprenez Vim Progressivement</title>
|
||
<published>2011-08-25T17:28:20Z</published>
|
||
<updated>2011-08-25T17:28:20Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/Learn-Vim-Progressively/"/>
|
||
<content type="html"><p><img alt="Über leet use vim!" src="/Scratch/img/blog/Learn-Vim-Progressively/uber_leet_use_vim.jpg" /></p>
|
||
|
||
|
||
<div class="intro">
|
||
|
||
|
||
<p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> Vous désirez apprendre vim (le meilleur editeur de texte connu à ce jour) le plus rapidement possible. Voici mes conseils pour vous aider. Commencez à apprendre le minimum vital, puis apprenez doucement de nouvelles commandes.</p>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<p><a href="http://www.vim.org">Vim</a> ou l’éditeur qui vallait 3 milliards&nbsp;:</p>
|
||
|
||
<blockquote>
|
||
<p>Meilleur, plus fort, plus rapide.</p>
|
||
</blockquote>
|
||
|
||
<p>Apprenez <a href="http://www.vim.org">vim</a> et ce sera votre dernier éditeur.
|
||
Aucun éditeur que je connaisse ne le surpasse.
|
||
Sa prise en mais est difficile, mais payante.</p>
|
||
|
||
</p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2011-08-17:/Scratch/fr/blog/A-more-convenient-diff/</id>
|
||
<title type="html">Un diff plus pratique</title>
|
||
<published>2011-08-17T09:33:30Z</published>
|
||
<updated>2011-08-17T09:33:30Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/A-more-convenient-diff/"/>
|
||
<content type="html"><p><code>diff</code> est un utilitaire très pratique, mais il n’est pas facile à lire pour nous, les Hommes.</p>
|
||
|
||
<p>C’est pourquoi, lorsque vous utilisez <code>git</code>, il vous montre un formatage plus agréable avec des couleurs.</p>
|
||
|
||
<p>Voici le script que j’utilise lorsque je veux avoir un <code>diff</code> à la git.</p>
|
||
|
||
<div class="code"><div class="file"><a href="/Scratch/fr/blog/A-more-convenient-diff/code/ydiff"> &#x27A5; ydiff </a></div><div class="withfile">
|
||
<pre class="twilight">
|
||
<span class="Comment"><span class="Comment">#</span>!/usr/bin/env zsh</span>
|
||
|
||
<span class="Comment"><span class="Comment">#</span> Load colors helpers</span>
|
||
autoload -U colors <span class="Keyword">&amp;&amp;</span> colors
|
||
|
||
function colorize_diff {
|
||
<span class="Keyword">while</span> read line...</pre></div></div></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2011-07-10:/Scratch/fr/blog/Haskell-Mandelbrot/</id>
|
||
<title type="html">Mandelbrot avec haskell</title>
|
||
<published>2011-07-10T10:41:26Z</published>
|
||
<updated>2011-07-10T10:41:26Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/Haskell-Mandelbrot/"/>
|
||
<content type="html"><p>Voici le code “obfusqué”&nbsp;:</p>
|
||
|
||
<div class="code"><div class="file"><a href="/Scratch/fr/blog/Haskell-Mandelbrot/code/animandel.hs"> &#x27A5; animandel.hs </a></div><div class="withfile">
|
||
<pre class="twilight">
|
||
a=27;b=79;c=<span class="Constant">C</span>(-2.0,-1.0);d=<span class="Constant">C</span>(1.0,1.0);e=<span class="Constant">C</span>(-2.501,-1.003)
|
||
<span class="Keyword">newtype</span> <span class="Constant">C</span> = <span class="Constant">C</span> (<span class="Constant">Double</span>,<span class="Constant">Double</span>) <span class="Keyword">deriving</span> (<span class="Constant">Show</span>,<span class="Constant">Eq</span>)
|
||
<span class="Keyword">instance</span> <span class="Constant">Num</span> <span class="Constant">C</span> <span class="Keyword">where</span> </pre></div></div></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2011-05-18:/Scratch/fr/blog/Password-Management/</id>
|
||
<title type="html">Password Management</title>
|
||
<published>2011-05-18T11:14:28Z</published>
|
||
<updated>2011-05-18T11:14:28Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/Password-Management/"/>
|
||
<content type="html"><p><img alt="Title image" src="/Scratch/img/blog/Password-Management/main.png" /></p>
|
||
|
||
|
||
<div class="intro">
|
||
|
||
|
||
<p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> Une méthode de gestion des mots de passes que j’utilise avec succès depuis quelques années.<br />
|
||
<strong><code>sha1( mot_de_passe + nom_de_domaine )</code></strong><br />
|
||
Je ne mémorise qu’un seul mot de passe de très bonne qualité.
|
||
J’utilise des mots de passe différents sur tous les sites.</p>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<p>Avant de commencer, je tiens à préciser qu’il s’agit d’une tentative de vous vendre mon appli iPhone&nbsp;;-).</p>
|
||
|
||
<p>Vous êtes toujours là&nbsp;?
|
||
Bon, d’accord, même si vous ne téléchargez pas mon application vous pouvez quand même utiliser ma méthode.
|
||
Elle est à la fois très sûre et simple à ut...</p></p></div></p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2011-04-20:/Scratch/fr/blog/2011-04-20-Now-hosted-on-github/</id>
|
||
<title type="html">Hébergement github</title>
|
||
<published>2011-04-20T15:22:15Z</published>
|
||
<updated>2011-04-20T15:22:15Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2011-04-20-Now-hosted-on-github/"/>
|
||
<content type="html"><p><img alt="Title image" src="/Scratch/img/blog/2011-04-20-Now-hosted-on-github/main.png" /></p>
|
||
|
||
<p>J’héberge mon site sur github à partir d’aujourd’hui.</p>
|
||
</p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2011-01-03:/Scratch/fr/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/</id>
|
||
<title type="html">Pourquoi je n'utiliserai pas CoffeeScript (malheureusement)</title>
|
||
<published>2011-01-03T08:37:26Z</published>
|
||
<updated>2011-01-03T08:37:26Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/"/>
|
||
<content type="html"><p><img alt="Title image" src="/Scratch/img/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/main.png" /></p>
|
||
|
||
|
||
<div class="encadre">
|
||
|
||
|
||
<p><em>Mise à jour&nbsp;:</em> Je pense que je vais finallement changer d’avis.
|
||
Pourquoi&nbsp;?
|
||
Tout d’abord, je viens de découvrir un convertisseur javascript vers coffeescript, ensuite Denis Knauf m’a laissé un commentaire et m’a appris l’existence d’une fonction <code>CoffeeScript.eval</code>. De plus, il faut voir CoffeeScript comme javascript avec une syntaxe similaire à Ruby et pas comme un langage similaire à Ruby.</p>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="intro">
|
||
|
||
|
||
<p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> Qu’est-ce qui n’allait pas avec Coffeescript? La meta-programmation, il faut le “vendre” aux autres, une nouvelle éta...</p></div></p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2011-01-01:/Scratch/fr/blog/2011-01-03-Happy-New-Year/</id>
|
||
<title type="html">Bonne et heureuse année</title>
|
||
<published>2011-01-01T06:55:54Z</published>
|
||
<updated>2011-01-01T06:55:54Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2011-01-03-Happy-New-Year/"/>
|
||
<content type="html"><p>Bonne et heureuse année&nbsp;!</p>
|
||
|
||
<p>J’étais très occupé ces derniers mois.
|
||
Maintenant il me semble que je vais pouvoir faire revivre ce blog.</p>
|
||
|
||
<p>J’ai fait un outil qui permet d’écrire des livre en utilisant une syntaxe proche de markdown.
|
||
C’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’en ai pas encore terminé avec ça. Mais si je tarde trop, je communiquerai lorsque j’aurai fini le minimum.</p>
|
||
|
||
<p>J’ai écrit un framework MVC pour application javascript simple mais néanmoins très rapide.</p>
|
||
|
||
<p>Meilleurs vœux à tous&nbsp;!</p>
|
||
</content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-10-26:/Scratch/fr/blog/2010-10-26-LaTeX-like-macro-and-markdown/</id>
|
||
<title type="html">Des macros LaTeX pour markdown</title>
|
||
<published>2010-10-26T12:30:58Z</published>
|
||
<updated>2010-10-26T12:30:58Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-10-26-LaTeX-like-macro-and-markdown/"/>
|
||
<content type="html">
|
||
<div class="intro">
|
||
|
||
|
||
<p><span class="sc"><abbr title="Trop long à lire">tlàl</abbr>&nbsp;: </span> J’ai fait un système simple de macros pour mon blog. Par exemple, il me suffit d’é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>J’ai ajouter un système de macro pour mon système de blog.
|
||
Lorsqu’on est habitué à <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</span></p></div></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-10-14:/Scratch/fr/blog/2010-10-14-Fun-with-wav/</id>
|
||
<title type="html">S'amuser avec un .wav</title>
|
||
<published>2010-10-14T09:04:58Z</published>
|
||
<updated>2010-10-14T09:04:58Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-10-14-Fun-with-wav/"/>
|
||
<content type="html">
|
||
<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’ai eu besoin de calculer la somme des valeurs absolue des données d’un fichier <code>wav</code>.
|
||
Pour des raison d’efficacité (et aussi de fun), j’ai fait le programme en <code>C</code>.</p>
|
||
|
||
<p>Celà faisait longtemps que je n’avais pas programmé en <code>C</code>.
|
||
De mémoire il était peu aisé de manipuler des fichiers.
|
||
Mais je dois concéder que j’ai été...</p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-10-10:/Scratch/fr/blog/2010-10-10-Secure-eMail-on-Mac-in-few-steps/</id>
|
||
<title type="html">Sécurisez vos emails</title>
|
||
<published>2010-10-10T16:39:00Z</published>
|
||
<updated>2010-10-10T16:39:00Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-10-10-Secure-eMail-on-Mac-in-few-steps/"/>
|
||
<content type="html"><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’interface web de gmail.</li>
|
||
</ul>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<p>J’ai (re)découvert comment adoptez la norme S/MIME.
|
||
J’ai été surpris de voir à quel point ce fut aisé.
|
||
Il y a seulement quelques années c’était bien plus difficile à accomp...</p></p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-10-06:/Scratch/fr/blog/2010-10-06-New-Blog-Design-Constraints/</id>
|
||
<title type="html">Contraintes du design de ce blog</title>
|
||
<published>2010-10-06T09:33:03Z</published>
|
||
<updated>2010-10-06T09:33:03Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-10-06-New-Blog-Design-Constraints/"/>
|
||
<content type="html"><p>Vous avez pu constater que j’ai modifié le design de mon blog.
|
||
Maintenant il doit être beaucoup plus léger qu’avant.
|
||
Je n’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’être au point.
|
||
J’utilisait des gradient en CSS3, ainsi que des ombres sous le texte. Ça avait un rendu très sympa. Sauf…
|
||
Ce n’était pas compatible ie6, sous Chrome le rendu était d’une lenteur incroyable.
|
||
J’ai donc décidé de faire un site à minima.
|
||
Je voulais qu’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>
|
||
|
||
<ul>
|
||
<li>pas d’élément CSS qui commence par <code>-moz</code> ou <code>-webkit</code></li></ul></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-09-02:/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/</id>
|
||
<title type="html">Utilisation de git pour calculer les mtimes</title>
|
||
<published>2010-09-02T13:54:10Z</published>
|
||
<updated>2010-09-02T13:54:10Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/"/>
|
||
<content type="html"><p>Vous pouvez remarquer qu’à 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’un fichier pour engendrer tout le site de nouveau.
|
||
Donc la date n’est pas nécessairement la <em>vraie</em> de modification du contenue.</p>
|
||
|
||
<p>J’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’un fichier.
|
||
Voici comment je m’y prend avec <a href="http://nanoc.stoneship.org">nanoc</a>&nbsp;:</p>
|
||
|
||
<div class="code"><div class="file"><a href="/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/code/gitmtime.rb"> &#x27A5; gitmtime....</a></div></div></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-09-02:/Scratch/fr/blog/2010-09-02-base64-and-sha1-on-iPhone/</id>
|
||
<title type="html">base64 et sha1 sur iPhone</title>
|
||
<published>2010-09-01T22:02:17Z</published>
|
||
<updated>2010-09-01T22:02:17Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-09-02-base64-and-sha1-on-iPhone/"/>
|
||
<content type="html"><p>Allons directement à l’essentiel&nbsp;:
|
||
voici deux fonctions à intégrer à votre application iPhone pour afficher l’encodage en base64 ou en hexadecimal du hash sha1 d’un string en Objective-C pour iPhone.</p>
|
||
|
||
<p>Pour l’usage c’est très simple, copiez le code dans la classe de votre choix.
|
||
Puis&nbsp;:</p>
|
||
|
||
<pre class="twilight">
|
||
#import &lt;CommonCrypto/CommonDigest.h&gt;
|
||
...
|
||
<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 class="String">@&quot;</span>some NSString to be sha1'ed<span class="String">&quot;</span></span>];
|
||
...
|
||
<span class="Support">NSString</span> *hex_hash = [<span class="Variable">self</span> </pre></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-08-31:/Scratch/fr/blog/2010-08-31-send-mail-from-command-line-with-attached-file/</id>
|
||
<title type="html">Envoyer un mail en ligne de commande avec un fichier attaché</title>
|
||
<published>2010-08-31T08:16:04Z</published>
|
||
<updated>2010-08-31T08:16:04Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-08-31-send-mail-from-command-line-with-attached-file/"/>
|
||
<content type="html"><p>J’ai dû envoyer un mail en ligne de commande récemment.
|
||
Quelle ne fût pas ma surprise lorsque je constatais que ce n’était vraiment pas évident.
|
||
Je n’avais ni <code>pine</code> ni <code>mutt</code>. Seulement <code>mail</code> et <code>mailx</code>.</p>
|
||
|
||
<p>Ce qu’on trouve sur internet pour envoyer un mail avec fichier attaché c’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’ai essayé.
|
||
Et bien, ça marche <em>presque</em> tout le temps.
|
||
Pour mon fichier ça n’a pas marché du tout.
|
||
Je l’ai compressé au format <code>.gz</code>, <code>.bz2</code> et <code>.zip</code>.
|
||
Avec le format <code>.b...</code></p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-08-23:/Scratch/fr/blog/2010-08-23-Now-heberged-on-heroku/</id>
|
||
<title type="html">Maintenant sur Heroku</title>
|
||
<published>2010-08-23T13:05:13Z</published>
|
||
<updated>2010-08-23T13:05:13Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-08-23-Now-heberged-on-heroku/"/>
|
||
<content type="html"><h1 class="first" id="maintenant-sur-herokuhttpherokucom">Maintenant sur <a href="http://heroku.com">Heroku</a></h1>
|
||
|
||
<p>J’ai changé mon hébergeur. Mobileme n’est absolument pas adapté à la diffusion de mon blog. C’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’utilise <a href="http://nanoc.stoneship.org/">nanoc</a> pour l’engendrer.
|
||
Avoir un site statique amène beaucoup d’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 ‘/output’. Vous devez simplement créer deux fichiers. Un fichier <code>config.ru</code><sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup>&...</p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-08-11:/Scratch/fr/blog/2010-07-09-Indecidabilities/</id>
|
||
<title type="html">Indécidabilités (partie 1)</title>
|
||
<published>2010-08-11T08:04:31Z</published>
|
||
<updated>2010-08-11T08:04:31Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-07-09-Indecidabilities/"/>
|
||
<content type="html">
|
||
<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’<em>indécidabilités</em>&nbsp;:</p>
|
||
|
||
<ul>
|
||
<li>indécidabilité due aux erreurs d’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’humour.
|
||
Et le récit que je vais faire va vous en fournir la preuve.
|
||
Je vais me mettre à sa place.
|
||
Je vais créer un monde simplifié....</p></div></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-07-31:/Scratch/fr/blog/2010-07-31-New-style-after-holidays/</id>
|
||
<title type="html">Nouveau style après les vacances</title>
|
||
<published>2010-07-31T21:59:10Z</published>
|
||
<updated>2010-07-31T21:59:10Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-07-31-New-style-after-holidays/"/>
|
||
<content type="html"><p>Avant les vacances beaucoup d’utilisateurs se sont plaints de la lenteur de rendu de mon site.
|
||
Il s’agit notamment de problèmes avec Chrome en particulier.
|
||
Mais pour éviter tout problème.
|
||
J’ai complètement modifié le style de mon site web.
|
||
Il est inspiré du style de l’application iBooks<small>&copy;</small> sur iPhone<small>&copy;</small>.</p>
|
||
|
||
<p>Dites moi ce que vous pensez de ce nouveau design.</p>
|
||
</content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-07-07:/Scratch/fr/blog/2010-07-07-CSS-rendering-problems-by-navigator/</id>
|
||
<title type="html">N'utilisez pas de gradients avec Chrome</title>
|
||
<published>2010-07-07T13:43:43Z</published>
|
||
<updated>2010-07-07T13:43:43Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-07-07-CSS-rendering-problems-by-navigator/"/>
|
||
<content type="html"><p>Beaucoup d’utilisateurs de <a href="http://reddit.com">Reddit</a> m’ont rapporté que mon site était très long à charger et à <em>scroller</em>.
|
||
Ils pensaient qu’il s’agissait d’un problème dû aux ombres que j’applique sur le texte.
|
||
J’étais un peu surpris puisque je fais mes tests sur une machine vraiment très lente et je n’avais jamais détecté ces problèmes.
|
||
En réalité, ce qui ralenti le rendu de ce site est par ordre d’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’y a absolument aucun problème avec les dégradés. Par contre sur Chrome sous Linux le site devient quasiment inutilisable.</p>
|
||
|
||
<p>Safari et Chrome utilisent <em>webkit</em></p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-07-05:/Scratch/fr/blog/2010-07-05-Cappuccino-and-Web-applications/</id>
|
||
<title type="html">Cappuccino ou jQuery ?</title>
|
||
<published>2010-07-05T11:49:04Z</published>
|
||
<updated>2010-07-05T11:49:04Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-07-05-Cappuccino-and-Web-applications/"/>
|
||
<content type="html">
|
||
<div class="intro">
|
||
|
||
|
||
<p><abbr title="Trop long à lire">tlàl</abbr>:</p>
|
||
|
||
<ul>
|
||
<li>J’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’application pèse 1.4Mo et n’est pas compatible avec l’iPhone.</li>
|
||
<li>la version jQuery n’est pas aussi jolie que la version réalisée avec Cappuccino mais elle pèse seulement 106Ko et est compatible avec l’iPhone.</li>
|
||
<li>J’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 C++. L’un est fait pour créer des interfaces util...</p></div></hr></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-06-19:/Scratch/fr/blog/2010-06-19-jQuery-popup-the-easy-way/</id>
|
||
<title type="html">Comment faire des popups en jQuery rapidement</title>
|
||
<published>2010-06-18T22:44:50Z</published>
|
||
<updated>2010-06-18T22:44:50Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-06-19-jQuery-popup-the-easy-way/"/>
|
||
<content type="html"><p>Voici une façon simple et rapide pour faire des popups avec jQuery.</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>
|
||
<span class="Storage">function</span> <span class="Entity">openPopup</span>() {
|
||
<span class="Keyword">$</span>(<span class="Variable">this</span>).clone(<span class="Constant">false</span>).appendTo(<span class="Keyword">$</span>(<span class="String"><span class="String">&quot;</span>#_code<span class="String">&quot;</span></span>));
|
||
<span class="Keyword">$</span>(<span class="String"><span class="String">&quot;</span>#_code</span></pre></div></div></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-06-17:/Scratch/fr/blog/2010-06-17-hide-yourself-to-analytics/</id>
|
||
<title type="html">Se cacher de ses statistiques web</title>
|
||
<published>2010-06-17T14:37:22Z</published>
|
||
<updated>2010-06-17T14:37:22Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-06-17-hide-yourself-to-analytics/"/>
|
||
<content type="html"><p>Voici un moyen très simple de ne plus être comptabilisé dans les visites de son propre site.
|
||
Tout d’abord, vous devriez jeter un coup d’œ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’utilisation de <code>jquery-cookie</code>.</p>
|
||
|
||
<p>Avant de comptabiliser les visites, je vérifie que la clé <code>admin</code> n’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>(<span class="String"><span class="String">'</span>admin...</span></pre></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-06-17:/Scratch/fr/blog/2010-06-17-track-events-with-google-analytics/</id>
|
||
<title type="html">Analyser les clicks sur votre Site</title>
|
||
<published>2010-06-17T12:41:36Z</published>
|
||
<updated>2010-06-17T12:41:36Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-06-17-track-events-with-google-analytics/"/>
|
||
<content type="html"><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’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></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-06-15:/Scratch/fr/blog/2010-06-15-Get-my-blog-engine/</id>
|
||
<title type="html">Récupérez mon système de blog</title>
|
||
<published>2010-06-15T08:56:32Z</published>
|
||
<updated>2010-06-15T08:56:32Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-06-15-Get-my-blog-engine/"/>
|
||
<content type="html"><p>J’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>
|
||
<li>écrivez v...</li></ul></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-06-14:/Scratch/fr/blog/2010-06-14-multi-language-choices/</id>
|
||
<title type="html">choix liés à l'écriture dans plusieurs langues</title>
|
||
<published>2010-06-14T14:14:57Z</published>
|
||
<updated>2010-06-14T14:14:57Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-06-14-multi-language-choices/"/>
|
||
<content type="html"><p>Je traduis la plupart de mes articles pour qu’ils soient disponibles en français et en anglais.
|
||
La façon que l’on m’a conseillé était d’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’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’est que très souvent, les articles ont des parties communes non négligeables. Par exemple, les images, les codes sources, etc…
|
||
Lorsque je m’aperçoit que j’ai fait une erreur dans ces parties communes...</p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-05-24:/Scratch/fr/blog/2010-05-24-Trees--Pragmatism-and-Formalism/</id>
|
||
<title type="html">Arbres ; Pragmatisme et Formalisme</title>
|
||
<published>2010-05-24T18:05:14Z</published>
|
||
<updated>2010-05-24T18:05:14Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-05-24-Trees--Pragmatism-and-Formalism/"/>
|
||
<content type="html">
|
||
<div class="intro">
|
||
|
||
|
||
<p><abbr title="Trop Long À Lire"><span class="sc">tlàl</span></abbr>&nbsp;:</p>
|
||
|
||
<ul>
|
||
<li>J’ai essayé de programmer un simple filtre&nbsp;;</li>
|
||
<li>J’ai été bloqué pendant deux jours&nbsp;;</li>
|
||
<li>J’ai arrêté de penser comme un robot&nbsp;;</li>
|
||
<li>J’ai utilisé un papier et un stylo&nbsp;;</li>
|
||
<li>J’ai fait un peu de maths&nbsp;;</li>
|
||
<li>J’ai résolu le problème en 10 minutes&nbsp;;</li>
|
||
<li>Conclusion: Pragmatisme n’est pas&nbsp;: «n’utilisez jamais la théorie».
|
||
|
||
</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 problème à mon travail. Au début cela
|
||
semblait assez facile. J’ai donc comme...</p></div></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-05-19:/Scratch/fr/blog/2010-05-19-How-to-cut-HTML-and-repair-it/</id>
|
||
<title type="html">Comment réparer un XML coupé ?</title>
|
||
<published>2010-05-19T20:20:34Z</published>
|
||
<updated>2010-05-19T20:20:34Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-05-19-How-to-cut-HTML-and-repair-it/"/>
|
||
<content type="html"><p>Sur ma page d’accueil vous pouvez voir la liste des mes derniers articles avec le début de ceux-ci. Pour arriver à faire ça, j’ai besoin de couper le code XHTML de mes pages en plein milieu. Il m’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>intro</span></span></pre></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-05-17:/Scratch/fr/blog/2010-05-17-at-least-this-blog-revive/</id>
|
||
<title type="html">Je reviens à la vie !</title>
|
||
<published>2010-05-17T11:25:51Z</published>
|
||
<updated>2010-05-17T11:25:51Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-05-17-at-least-this-blog-revive/"/>
|
||
<content type="html"><p>Bonjour à tous&nbsp;!</p>
|
||
|
||
<blockquote cite="http://www.madore.org/~david/weblog/2010-05.html#d.2010-05-12.1752">
|
||
<p>…plus on retarde quelque chose, plus il devient difficile de s’y mettre…</p>
|
||
</blockquote>
|
||
|
||
<p>Je devais écrire d’autres articles pour ce blog. J’ai noté plein d’idées dans mes <em>todolist</em>. Mais j’avais pas mal d’autres choses à faire. Et jusqu’ici, j’ai toujours dit «je le ferai plus tard». Ce qui m’a fait agir, c’est la petite réflexion que j’avais lu une fois.
|
||
&gt; Arrétez d’écrire des <code>TODO</code> dans votre code est faites le maintenant&nbsp;!<br />
|
||
&gt; Vous serez surpris de l’efficacité de cette mesure.</p>
|
||
|
||
<p>En résumé&nbsp;:
|
||
&gt; <strong>Just do it!</strong> ou <strong>Juste fait le</strong> comme auraient dit les nuls.</p>
|
||
|
||
<p>Finallement j’écri...</p></p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-03-23:/Scratch/fr/blog/2010-03-23-Encapsulate-git/</id>
|
||
<title type="html">Encapsuler git</title>
|
||
<published>2010-03-23T20:37:36Z</published>
|
||
<updated>2010-03-23T20:37:36Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-03-23-Encapsulate-git/"/>
|
||
<content type="html"><p><span class="intro">
|
||
Voici une solution pour conserver des branches divergentes avec <code>git</code>.
|
||
Parce qu’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’accentuant.</p>
|
||
|
||
<p>J’utilise aussi certaines branches qui contiennent la partie commune de ces projets.</p>
|
||
|
||
<p>Disons que j’ai les branches&nbsp;:</p>
|
||
|
||
<ul>
|
||
<li>master: commun...</li></ul></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-03-22:/Scratch/fr/blog/2010-03-22-Git-Tips/</id>
|
||
<title type="html">Astuces Git</title>
|
||
<published>2010-03-22T08:42:27Z</published>
|
||
<updated>2010-03-22T08:42:27Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-03-22-Git-Tips/"/>
|
||
<content type="html"><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’avez pas beaucoup de branches, vous pouvez simplement les clone le project et ensuite pour chacune d’entre elle lancer la commande suivante&nbsp;:</p>
|
||
|
||
<div><pre class="twilight">
|
||
git branch --track local_branch remote_branch
|
||
</pre></div>
|
||
|
||
<p>par exemple&nbsp;:</p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-02-23:/Scratch/fr/blog/2010-02-23-When-regexp-is-not-the-best-solution/</id>
|
||
<title type="html">Quand se passer des expressions régulières ?</title>
|
||
<published>2010-02-23T08:09:52Z</published>
|
||
<updated>2010-02-23T08:09:52Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-02-23-When-regexp-is-not-the-best-solution/"/>
|
||
<content type="html"><p>Les expressions régulières sont très utiles. Cependant, elles ne sont pas toujours la meilleure manière d’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’extension d’un nom de fichier. Il y a trois manière naturelle d’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><span class="StringRegexp"></span></pre></div></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-02-18:/Scratch/fr/blog/2010-02-18-split-a-file-by-keyword/</id>
|
||
<title type="html">découper un fichier par mots clés</title>
|
||
<published>2010-02-18T13:29:14Z</published>
|
||
<updated>2010-02-18T13:29:14Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-02-18-split-a-file-by-keyword/"/>
|
||
<content type="html"><p>Assez bizarrement, je n’ai trouvé aucun outil UNIX pour découper un fichier par mot clé.
|
||
Alors j’en ai fait un en <code>awk</code>. Je le met ici principalement pour moi, mais ça peut toujours servir à quelqu’un d’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);
|
||
}
|
||
{<span class="SupportFunction">print</span></pre></div></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-02-16:/Scratch/fr/blog/2010-02-16-All-but-something-regexp--2-/</id>
|
||
<title type="html">Tout sauf quelquechose en expression régulière.</title>
|
||
<published>2010-02-16T08:33:21Z</published>
|
||
<updated>2010-02-16T08:33:21Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-02-16-All-but-something-regexp--2-/"/>
|
||
<content type="html"><p>Dans mon <a href="previouspost">précédent article</a> j’ai donné certaines astuces pour matcher ‘tout sauf quelque chose’. 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 ‘a’ et ‘b’. 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’utilisation du <em>terrible</em> <code>.*</code>. Parce que vous allez matcher la chaîne de...</p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-02-15:/Scratch/fr/blog/2010-02-15-All-but-something-regexp/</id>
|
||
<title type="html">Expression régulière pour tout sauf quelquechose</title>
|
||
<published>2010-02-15T09:16:12Z</published>
|
||
<updated>2010-02-15T09:16:12Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-02-15-All-but-something-regexp/"/>
|
||
<content type="html"><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’est que le complémentaire des régulier n’est pas régulier. Celà peut s’avérer impossible.</p>
|
||
|
||
<p>Cependant, pour certaines expressions ce peut être possible<sup><a href="#note1">†</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>bullshit</code>. Voici une façon sympa...</p></content>
|
||
</entry>
|
||
<entry>
|
||
<id>tag:yannesposito.com,2010-01-12:/Scratch/fr/blog/2010-01-12-antialias-font-in-Firefox-under-Ubuntu/</id>
|
||
<title type="html">Fontes adoucies sous Ubuntu Firefox</title>
|
||
<published>2010-01-12T14:36:40Z</published>
|
||
<updated>2010-01-12T14:36:40Z</updated>
|
||
<author>
|
||
<name>Yann Esposito</name>
|
||
<uri>yannesposito.com</uri>
|
||
</author>
|
||
<link rel="alternate" href="http://yannesposito.com/Scratch/fr/blog/2010-01-12-antialias-font-in-Firefox-under-Ubuntu/"/>
|
||
<content type="html"><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></content>
|
||
</entry>
|
||
</feed>
|