Merge branch 'master' into next

Conflicts:
	Rules
	img_latest_blog_dir
	latest.md
	output/Scratch/en/blog/feed/feed.xml
	output/Scratch/fr/blog/feed/feed.xml
	output/Scratch/sitemap.xml
This commit is contained in:
Yann Esposito (Yogsototh) 2011-09-27 17:04:44 +02:00
commit c2c6ae4493
34 changed files with 517 additions and 388 deletions

60
README.md Normal file
View file

@ -0,0 +1,60 @@
# yannesposito.com
This is the source code of yannesposito.com website.
It is mainly a multi-language blog based on [nanoc](nanoc.stoneship.org).
_Notice, this is not a clean system.
Mainly because I use it for some years now.
I just want it to work, not to be a nice piece of code.
But in the end I know I will make it clean._
What you'll need to use it:
- [nanoc](nanoc.stoneship.org) → `gem install nanoc`
- [zsh](zsh.org) → By default installed on most good system
- A bunch of gems: `gem install ultraviolet krambook sass rainpress`
Optionally
- [graphviz](graphviz.org)
Here is a short explanation of each file role:
config.rb → nanoc central configuration file
config.ru → Rack server configuration
config.yaml → A YAML configuration file (mostly strings)
content/ → The directory where nanoc will search most content
img_latest_blog_dir@ → A link to the latest blog image directory
latest.md@ → A link to the latest blog file
layouts/ → HTML Layouts for your webpages
lib/ → Some ruby files loaded by nanoc before generating
multi/ → Where you should write content
output/ → Where the content is loaded
Rakefile → Ruby actions
README.md → This file
resources/ → Some file I used and wanted to keep
Rules → Generation rules
tasks/ → Where I putted most of my scripts
Here are features I added:
analytics.rb → Functions to add web analytics code
calendar.rb → Function show a date nicely in HTML
gitmtime.rb → Show time using git last change log
graph.rb → Use graphviz to draw graphs
helpers.rb → Some standard nanoc helpers are added
html.rb → Layout block helper
intenseDebate.rb → IntenseDebate integration
macros.rb → Macros system (%latex => LaTeX, etc...)
mail.rb → My uniquely encoded personal email
multiMenu.rb → The machinery for the menu
multi.rb → The machinery for helping to be multi-language
nanoc_item_conf.rb
repair_html.rb
syntaxColorize.rb
tag.rb
ultraviolet.rb
y.rb

1
Rules
View file

@ -9,7 +9,6 @@
# CSS # CSS
compile '/css/*' do compile '/css/*' do
# filter :no_custom_css
filter :sass filter :sass
filter :rainpress filter :rainpress
end end

View file

@ -1,3 +1,5 @@
# This file is needed if you want to host this website
# using ruby rack. In particular on heroku.
require 'rubygems' require 'rubygems'
require 'rack' require 'rack'
require 'rack/contrib' require 'rack/contrib'

View file

@ -10,6 +10,7 @@ $secondRevealColor: #AA5533
$lighterRevealColor: $revealColor + #666 $lighterRevealColor: $revealColor + #666
$imageBackgroundColor: $mainBackgroundColor $imageBackgroundColor: $mainBackgroundColor
$imageBorderColor: #cccccc $imageBorderColor: #cccccc
$borderColor: #cccccc
$mainLinkColor: $mainTextColor $mainLinkColor: $mainTextColor
$textLinkColor: #555555 $textLinkColor: #555555
$highlightColor: #888888 $highlightColor: #888888
@ -61,6 +62,9 @@ $codeBlockBackgroundColor: $behindColor
=secondColor =secondColor
color: $behindColor color: $behindColor
border: $borderColor solid 1px
border-radius: 5px
box-shadow: 0 0 2px $borderColor inset
background: background:
color: $lighterColor color: $lighterColor
a a
@ -396,9 +400,7 @@ $hauteur_menu: 4em
$contentMargin: 0em $contentMargin: 0em
.encadre, .black, .red, .intro, .resume, .shadow .encadre, .black, .red, .intro, .resume, .shadow
padding: padding: 2em
left: 2em
right: 2em
margin: margin:
top: 2em top: 2em
bottom: 2em bottom: 2em

View file

@ -27,7 +27,7 @@ def gitmtime
ext=%{.#{@item[:extension]}} ext=%{.#{@item[:extension]}}
filepath<<=ext filepath<<=ext
if not FileTest.exists?(filepath) if not FileTest.exists?(filepath)
filepath.sub!(ext,%{/index#{ext}}) filepath.sub!(ext,%{#{@item.raw_filename}#{ext}})
end end
str=`git log -1 --format='%ci' -- #{filepath}` str=`git log -1 --format='%ci' -- #{filepath}`
if str.nil? or str.empty? if str.nil? or str.empty?
@ -43,4 +43,5 @@ But it works as expected.
Now the date you see at the bottom is exactly the date I modified the _content_ of the page. Now the date you see at the bottom is exactly the date I modified the _content_ of the page.
Thanks to Eric Sunshine to provide me some hints at cleaning my code. _Edit_:
Thanks to Eric Sunshine and Kris to provide me some hints at cleaning my code.

View file

@ -213,11 +213,12 @@ With all preceding commands you should be comfortable to use vim.
But now, here are the killer features. But now, here are the killer features.
Some of these features were the reason I started to use vim. Some of these features were the reason I started to use vim.
### Move on current line: `0` `^` `$` `f` `F` `t` `T` `,` `;` ### Move on current line: `0` `^` `$` `g_` `f` `F` `t` `T` `,` `;`
> - `0` → go to column 0 > - `0` → go to column 0
> - `^` → go to first character on the line > - `^` → go to first character on the line
> - `$` → go to the last character on the line > - `$` → go to the last column
> - `g_` → go to the last character on the line
> - `fa` → go to next occurrence of the letter `a` on the line. `,` (resp. `;`) will seek for the next (resp. previous) occurrence. > - `fa` → go to next occurrence of the letter `a` on the line. `,` (resp. `;`) will seek for the next (resp. previous) occurrence.
> - `t,` → go just before the character `,`. > - `t,` → go just before the character `,`.
> - `3fa` → search the 3rd occurrence of `a` on this line. > - `3fa` → search the 3rd occurrence of `a` on this line.
@ -260,7 +261,7 @@ Typically: `0<C-v><C-d>I-- [ESC]`
<%= blogimage("rectangular-blocks.gif","Rectangular blocks") %> <%= blogimage("rectangular-blocks.gif","Rectangular blocks") %>
Not on windows you might have to use `<C-q>` instead of `<C-v>` if your clipboard is not empty. Note on windows you might have to use `<C-q>` instead of `<C-v>` if your clipboard is not empty.
### Completion: `<C-n>` and `<C-p>`. ### Completion: `<C-n>` and `<C-p>`.

View file

@ -27,7 +27,7 @@ def gitmtime
ext=%{.#{@item[:extension]}} ext=%{.#{@item[:extension]}}
filepath<<=ext filepath<<=ext
if not FileTest.exists?(filepath) if not FileTest.exists?(filepath)
filepath.sub!(ext,%{/index#{ext}}) filepath.sub!(ext,%{#{@item.raw_filename}#{ext}})
end end
str=`git log -1 --format='%ci' -- #{filepath}` str=`git log -1 --format='%ci' -- #{filepath}`
if str.nil? or str.empty? if str.nil? or str.empty?
@ -43,4 +43,5 @@ Bien entendu je sais que c'est très lent et absolument pas optimisé.
Mais ça fonctionne comme prévu. Mais ça fonctionne comme prévu.
Maintenant la date que vous voyez en bas de la page correspond exactement à la dernière date de modification de son contenu. Maintenant la date que vous voyez en bas de la page correspond exactement à la dernière date de modification de son contenu.
Je tiens à remercier Eric Sunshine pour ses conseils sur ce problème. _Mise à jour_:
Je tiens à remercier Eric Sunshine et Kris pour leurs conseils sur ce problème.

View file

@ -219,11 +219,12 @@ Jusqu'ici vous avez appris les commandes les plus courantes.
Mais voici les killer features de vim. Mais voici les killer features de vim.
Celles que je n'ai retrouvé que dans vim (ou presque). Celles que je n'ai retrouvé que dans vim (ou presque).
### Déplacement sur la ligne : `0` `^` `$` `f` `F` `t` `T` `,` `;` ### Déplacement sur la ligne : `0` `^` `$` `g_` `f` `F` `t` `T` `,` `;`
> - `0` → aller à la colonne 0, > - `0` → aller à la colonne 0,
> - `^` → aller au premier caractère de la ligne > - `^` → aller au premier caractère de la ligne
> - `$` → aller au dernier caractère de la ligne > - `$` → aller à la dernière colonne de la ligne
> - `g_` → aller au dernier caractère de la ligne
> - `fa` → vous amène à la prochaine occurrence de a sur la ligne courante. `,` (resp. `;`) recherche l'occurrence suivante (resp. précédente). > - `fa` → vous amène à la prochaine occurrence de a sur la ligne courante. `,` (resp. `;`) recherche l'occurrence suivante (resp. précédente).
> - `t,` → vous amène juste avant le `,`. > - `t,` → vous amène juste avant le `,`.
> - `3fa` → recherche la 3ième occurrence de `a`. > - `3fa` → recherche la 3ième occurrence de `a`.

View file

@ -1 +1 @@
./output/Scratch/img/blog/programming-language-experience /home/e640846/Sites/webroot/output/Scratch/img/blog/Higher-order-function-in-zsh

View file

@ -1 +1 @@
./multi/blog/programming-language-experience.md ./multi/blog/Higher-order-function-in-zsh.md

19
lib/blog.rb Normal file
View file

@ -0,0 +1,19 @@
# Helper to find an image corresponding to the current
# article
def blogimage(val,title="no name", divclass=nil)
if depthOf( @item ) == 4
imgpath=@item.parent.path
else
imgpath=@item.path
end
imgpath=imgpath.sub(%r{#{@config[:webprefix]}/../},@config[:webprefix]+'/img/')+val
if not divclass.nil?
cls=%{ class="#{divclass}"}
end
return %{<img alt="#{title}" src="#{imgpath}"#{cls}/>}
end
# Return a blog image with class left added
def leftblogimage(val,title="no name")
return blogimage(val, title, "left")
end

View file

@ -1,32 +0,0 @@
class NoCustomCSS < Nanoc3::Filter
identifier :no_custom_css
def run(content, params={})
res=""
content.each do |line|
res <<= line if not res=~/^\s*-(moz|webkit)/
end
return res
end
end
class MozillaCSS < Nanoc3::Filter
identifier :mozilla
def run(content, params={})
res=""
content.each do |line|
res <<= line if not res=~/-webkit/
end
return res
end
end
class WebkitCSS < Nanoc3::Filter
identifier :webkit
def run(content, params={})
res=""
content.each do |line|
res <<= line if not res=~/-moz/
end
return res
end
end

View file

@ -3,7 +3,7 @@ def gitmtime
ext=%{.#{@item[:extension]}} ext=%{.#{@item[:extension]}}
filepath<<=ext filepath<<=ext
if not FileTest.exists?(filepath) if not FileTest.exists?(filepath)
filepath.sub!(ext,%{/index#{ext}}) filepath.sub!(ext,%{#{@item.raw_filename}#{ext}})
end end
str=`git log -1 --format='%ci' -- #{filepath}` str=`git log -1 --format='%ci' -- #{filepath}`
if str.nil? or str.empty? if str.nil? or str.empty?

View file

@ -7,7 +7,6 @@
# <% content_for :summary do %> # <% content_for :summary do %>
# Sommaire que je veux ecrire # Sommaire que je veux ecrire
# <% end %> # <% end %>
#
# Pour remplir à la fois le texte et le sommaire # Pour remplir à la fois le texte et le sommaire
include Nanoc3::Helpers::Capturing include Nanoc3::Helpers::Capturing

View file

@ -1,14 +1,17 @@
# give item corresponding to the homepage of the current language
def homepage def homepage
@items.find do |i| @items.find do |i|
i.reps[0].path == %{#{@config[:webprefix]}/#{@conf.language}/} i.reps[0].path == %{#{@config[:webprefix]}/#{@conf.language}/}
end end
end end
# Explicit, give the children of a node in the menu, sorted by menu priority
def sortedChildrenByMenuPriority(item) def sortedChildrenByMenuPriority(item)
item.children.reject{|p| p[:isHidden]}. item.children.reject{|p| p[:isHidden]}.
sort!{|x,y| x[:menupriority] <=> y[:menupriority]} sort!{|x,y| x[:menupriority] <=> y[:menupriority]}
end end
# Generate the menu for the current item
def generateMenu def generateMenu
home=homepage home=homepage
if home.nil? if home.nil?
@ -22,6 +25,7 @@ def generateMenu
"<ul><li>"+liste.join("</li>\n<li>")+"</li></ul>" "<ul><li>"+liste.join("</li>\n<li>")+"</li></ul>"
end end
# get the depth of an item in the menu
def depthOf(item) def depthOf(item)
res=0 res=0
while item.parent != nil while item.parent != nil
@ -31,6 +35,8 @@ def depthOf(item)
return res return res
end end
# get the list of item children of a node sorted
# by menupriority or date depending of the kind fo page
def getSortedChildren(parent) def getSortedChildren(parent)
if parent[:kind] == "blog" if parent[:kind] == "blog"
return parent.children.reject{|p| p[:isHidden]}.sort!{|x,y| x[:created_at] <=> y[:created_at] } return parent.children.reject{|p| p[:isHidden]}.sort!{|x,y| x[:created_at] <=> y[:created_at] }
@ -39,6 +45,7 @@ def getSortedChildren(parent)
end end
end end
# For the page blog, the submenu is very specific
def generateBlogSubMenu(language) def generateBlogSubMenu(language)
year=0 year=0
res="" res=""
@ -63,6 +70,7 @@ def generateBlogSubMenu(language)
end end
end end
# Generate a submenu, not always needed
def generateSubMenu() def generateSubMenu()
if @item[:noSubMenu] if @item[:noSubMenu]
return return
@ -102,23 +110,6 @@ def generateSubMenu()
end end
# ======================= # =======================
def blogimage(val,title="no name", divclass=nil)
if depthOf( @item ) == 4
imgpath=@item.parent.path
else
imgpath=@item.path
end
imgpath=imgpath.sub(%r{#{@config[:webprefix]}/../},@config[:webprefix]+'/img/')+val
if not divclass.nil?
cls=%{ class="#{divclass}"}
end
return %{<img alt="#{title}" src="#{imgpath}"#{cls}/>}
end
def leftblogimage(val,title="no name")
return blogimage(val, title, "left")
end
def lnkto(title,item) def lnkto(title,item)
language=@item_rep.path.sub(/#{@config[:webprefix]}\//,'').sub(/\/.*$/,'') language=@item_rep.path.sub(/#{@config[:webprefix]}\//,'').sub(/\/.*$/,'')
link_to(title, "#{@config[:webprefix]}/#{language}"+item) link_to(title, "#{@config[:webprefix]}/#{language}"+item)

View file

@ -11,36 +11,23 @@ def repair_html( html, debug=false )
depth=0 depth=0
html.scan( %r{<(/?)(\w*)([^>]*)>} ).each do |m| html.scan( %r{<(/?)(\w*)([^>]*)>} ).each do |m|
if m[-1] == "/" if m[-1] == "/"
if debug
puts 'IGNORE: <'+m[0]+m[1]+'/>' + depth.to_s
puts 'parents='+parents.join('; ')
end
next next
end end
if m[0] == "" if m[0] == ""
parents[depth]=m[1] parents[depth]=m[1]
depth+=1 depth+=1
if debug
puts '<'+m[0]+m[1]+'> ' + depth.to_s
puts 'parents='+parents.join('; ')
end
else else
depth-=1 depth-=1
if (not debug) and (depth <0) # -1 is normal for my layout
puts 'ERROR repair_html !' if (depth <= -2)
# puts 'HTML: ' + html puts "WARNING: Intermiedate Depth <= -2"
# puts '---'
# repair_html(html,true)
# puts 'END_ERROR'
end
if debug
puts '<'+m[0]+m[1]+'> ' + depth.to_s
end end
end end
end end
res=html.sub(/<[^>]*$/m,'') res=html.sub(/<[^>]*$/m,'')
depth -= 1 depth -= 1
if (depth < 0) if (depth < -1)
puts "ERROR: Final Depth < 0"
parents=[] parents=[]
depth=0 depth=0
html.scan( %r{<(/?)(\w*)[^>]*(/?)>} ).each do |m| html.scan( %r{<(/?)(\w*)[^>]*(/?)>} ).each do |m|

View file

@ -35,7 +35,7 @@ def gitmtime
ext=%{.#{@item[:extension]}} ext=%{.#{@item[:extension]}}
filepath<<=ext filepath<<=ext
if not FileTest.exists?(filepath) if not FileTest.exists?(filepath)
filepath.sub!(ext,%{/index#{ext}}) filepath.sub!(ext,%{#{@item.raw_filename}#{ext}})
end end
str=`git log -1 --format='%ci' -- #{filepath}` str=`git log -1 --format='%ci' -- #{filepath}`
if str.nil? or str.empty? if str.nil? or str.empty?
@ -54,5 +54,7 @@ fr: Bien entendu je sais que c'est très lent et absolument pas optimisé.
fr: Mais ça fonctionne comme prévu. fr: Mais ça fonctionne comme prévu.
fr: Maintenant la date que vous voyez en bas de la page correspond exactement à la dernière date de modification de son contenu. fr: Maintenant la date que vous voyez en bas de la page correspond exactement à la dernière date de modification de son contenu.
en: Thanks to Eric Sunshine to provide me some hints at cleaning my code. en: _Edit_:
fr: Je tiens à remercier Eric Sunshine pour ses conseils sur ce problème. en: Thanks to Eric Sunshine and Kris to provide me some hints at cleaning my code.
fr: _Mise à jour_:
fr: Je tiens à remercier Eric Sunshine et Kris pour leurs conseils sur ce problème.

View file

@ -0,0 +1,90 @@
-----
isHidden: false
menupriority: 1
kind: article
created_at: 2011-09-27T15:15:23+02:00
en: title: Higher order function in zsh
fr: title: Higher order function in zsh
author_name: Yann Esposito
author_uri: yannesposito.com
# tags:
-----
<%= blogimage("main.png","Title image") %>
begindiv(intro)
en: <%= tldr %> some simple implementation of higher order function for zsh.
fr: <%= tlal %> des fonctions d'ordres supérieurs en zsh.
enddiv
fr: Tout d'abord, pourquoi c'est important d'avoir ces fonctions.
fr: Plus je programmais avec zsh plus j'essayais d'avoir un style fonctionnel.
fr: Le minimum pour pouvoir avoir du code plus lisible c'est de posséder les fonctions `map`, `filter` et `fold`.
fr: Voici pourquoi avec une comparaison.
fr: Commençons par un programme qui converti tous les gif en png dans plusieurs répertoires projets contenant tous des répertoires resources.
fr: Avant :
<code class="zsh">
# for each directory in projects dir
for toProject in /path/to/projects/*(/N); do
# toProject is /path/to/projects/foo
# project become foo (:t for tail)
project=${toProject:t}
for toResource in $toProject/resources/*.gif(.N); do
convert $toResource ${toResource:r}.png
\rm -f $toResource
done
done
</code>
fr: Après
<code class="zsh">
gif_to_png() { convert $1 ${1:r}.png && \rm -f $1 }
handle_resources() { map gif_to_png $1/resources/*.gif(.N) }
map handle_resources /path/to/projects/*(/N)
</code>
fr: Plus de bloc !
fr: Oui, c'est un poil plus difficile à lire pour les non initiés.
fr: Mais c'est à la fois plus concis et plus robuste.
fr: Et encore ce code ne possède pas de test.
fr: Recommençons sur le même principe.
fr: Trouver les fichiers des projets qui ne contiennent pas de s dans leur nom qui ont le même nom que leur projet.
<code class="zsh">
for toProject in Projects/*; do
project=$toProject:t
if print -- project | grep -v s >/dev/null
then
print $project
for toResource in $toProject/*(.N); do
if print -- ${toResource:t} | grep $project >/dev/null; then
print -- "X $toResource"
fi
done
fi
done
</code>
After =>
<code class="zsh">
contain_no_s() { print $1 | grep -v s }
function verify_file_name {
local project=$1:t
contains_project_name() { print $1:t | grep $project }
map "print -- X" $(filter contains_project_name $1/*(.N))
}
map show_project_matchin_file $( filter contain_no_s Projects/* )
</code>
Also, the first verstion is a bit easier to read.
But the second one is clearly far superior in architecture.
Why?

View file

@ -362,19 +362,21 @@ fr: Jusqu'ici vous avez appris les commandes les plus courantes.
fr: Mais voici les killer features de vim. fr: Mais voici les killer features de vim.
fr: Celles que je n'ai retrouvé que dans vim (ou presque). fr: Celles que je n'ai retrouvé que dans vim (ou presque).
en: ### Move on current line: `0` `^` `$` `f` `F` `t` `T` `,` `;` en: ### Move on current line: `0` `^` `$` `g_` `f` `F` `t` `T` `,` `;`
fr: ### Déplacement sur la ligne : `0` `^` `$` `f` `F` `t` `T` `,` `;` fr: ### Déplacement sur la ligne : `0` `^` `$` `g_` `f` `F` `t` `T` `,` `;`
en: > - `0` → go to column 0 en: > - `0` → go to column 0
en: > - `^` → go to first character on the line en: > - `^` → go to first character on the line
en: > - `$` → go to the last character on the line en: > - `$` → go to the last column
en: > - `g_` → go to the last character on the line
en: > - `fa` → go to next occurrence of the letter `a` on the line. `,` (resp. `;`) will seek for the next (resp. previous) occurrence. en: > - `fa` → go to next occurrence of the letter `a` on the line. `,` (resp. `;`) will seek for the next (resp. previous) occurrence.
en: > - `t,` → go just before the character `,`. en: > - `t,` → go just before the character `,`.
en: > - `3fa` → search the 3rd occurrence of `a` on this line. en: > - `3fa` → search the 3rd occurrence of `a` on this line.
en: > - `F` and `T` → like `f` and `t` but backward. en: > - `F` and `T` → like `f` and `t` but backward.
fr: > - `0` → aller à la colonne 0, fr: > - `0` → aller à la colonne 0,
fr: > - `^` → aller au premier caractère de la ligne fr: > - `^` → aller au premier caractère de la ligne
fr: > - `$` → aller au dernier caractère de la ligne fr: > - `$` → aller à la dernière colonne de la ligne
fr: > - `g_` → aller au dernier caractère de la ligne
fr: > - `fa` → vous amène à la prochaine occurrence de a sur la ligne courante. `,` (resp. `;`) recherche l'occurrence suivante (resp. précédente). fr: > - `fa` → vous amène à la prochaine occurrence de a sur la ligne courante. `,` (resp. `;`) recherche l'occurrence suivante (resp. précédente).
fr: > - `t,` → vous amène juste avant le `,`. fr: > - `t,` → vous amène juste avant le `,`.
fr: > - `3fa` → recherche la 3ième occurrence de `a`. fr: > - `3fa` → recherche la 3ième occurrence de `a`.
@ -439,7 +441,7 @@ fr: - `I-- [ESC]` → écrit `-- ` pour commenter le reste de la ligne.
<%= blogimage("rectangular-blocks.gif","Rectangular blocks") %> <%= blogimage("rectangular-blocks.gif","Rectangular blocks") %>
en: Not on windows you might have to use `<C-q>` instead of `<C-v>` if your clipboard is not empty. en: Note on windows you might have to use `<C-q>` instead of `<C-v>` if your clipboard is not empty.
fr: Remarquez que sous windows, vous devez utiliser `<C-q>` plutôt que `<C-v>` si votre "presse papier" n'est pas vide. fr: Remarquez que sous windows, vous devez utiliser `<C-q>` plutôt que `<C-v>` si votre "presse papier" n'est pas vide.
en: ### Completion: `<C-n>` and `<C-p>`. en: ### Completion: `<C-n>` and `<C-p>`.

View file

@ -4,7 +4,7 @@ def gitmtime
ext=%{.#{@item[:extension]}} ext=%{.#{@item[:extension]}}
filepath<<=ext filepath<<=ext
if not FileTest.exists?(filepath) if not FileTest.exists?(filepath)
filepath.sub!(ext,%{/index#{ext}}) filepath.sub!(ext,%{#{@item.raw_filename}#{ext}})
end end
str=`git log -1 --format='%ci' -- #{filepath}` str=`git log -1 --format='%ci' -- #{filepath}`
if str.nil? or str.empty? if str.nil? or str.empty?

View file

@ -74,7 +74,7 @@ This is how I do this with <a href="http://nanoc.stoneship.org">nanoc</a>:</p>
ext<span class="Keyword">=</span><span class="String"><span class="String">%{</span>.<span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span><span class="StringVariable"><span class="StringVariable">@</span>item</span><span class="StringEmbeddedSource">[</span><span class="StringConstant"><span class="StringConstant">:</span>extension</span><span class="StringEmbeddedSource">]</span><span class="StringEmbeddedSource">}</span></span><span class="String">}</span></span> ext<span class="Keyword">=</span><span class="String"><span class="String">%{</span>.<span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span><span class="StringVariable"><span class="StringVariable">@</span>item</span><span class="StringEmbeddedSource">[</span><span class="StringConstant"><span class="StringConstant">:</span>extension</span><span class="StringEmbeddedSource">]</span><span class="StringEmbeddedSource">}</span></span><span class="String">}</span></span>
filepath<span class="Keyword">&lt;&lt;=</span>ext filepath<span class="Keyword">&lt;&lt;=</span>ext
<span class="Keyword">if</span> <span class="Keyword">not</span> <span class="Support">FileTest</span>.<span class="Entity">exists?</span>(filepath) <span class="Keyword">if</span> <span class="Keyword">not</span> <span class="Support">FileTest</span>.<span class="Entity">exists?</span>(filepath)
filepath.<span class="Entity">sub!</span>(ext,<span class="String"><span class="String">%{</span>/index<span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span>ext<span class="StringEmbeddedSource">}</span></span><span class="String">}</span></span>) filepath.<span class="Entity">sub!</span>(ext,<span class="String"><span class="String">%{</span><span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span><span class="StringVariable"><span class="StringVariable">@</span>item</span><span class="StringEmbeddedSource"><span class="StringEmbeddedSource">.</span><span class="Entity">raw_filename</span></span><span class="StringEmbeddedSource">}</span></span><span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span>ext<span class="StringEmbeddedSource">}</span></span><span class="String">}</span></span>)
<span class="Keyword">end</span> <span class="Keyword">end</span>
str<span class="Keyword">=</span><span class="String"><span class="String">`</span>git log -1 --format='%ci' -- <span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span>filepath<span class="StringEmbeddedSource">}</span></span><span class="String">`</span></span> str<span class="Keyword">=</span><span class="String"><span class="String">`</span>git log -1 --format='%ci' -- <span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span>filepath<span class="StringEmbeddedSource">}</span></span><span class="String">`</span></span>
<span class="Keyword">if</span> str.<span class="Entity">nil?</span> <span class="Keyword">or</span> str.<span class="Entity">empty?</span> <span class="Keyword">if</span> str.<span class="Entity">nil?</span> <span class="Keyword">or</span> str.<span class="Entity">empty?</span>
@ -90,7 +90,8 @@ This is how I do this with <a href="http://nanoc.stoneship.org">nanoc</a>:</p>
But it works as expected. But it works as expected.
Now the date you see at the bottom is exactly the date I modified the <em>content</em> of the page.</p> Now the date you see at the bottom is exactly the date I modified the <em>content</em> of the page.</p>
<p>Thanks to Eric Sunshine to provide me some hints at cleaning my code.</p> <p><em>Edit</em>:
Thanks to Eric Sunshine and Kris to provide me some hints at cleaning my code.</p>
</div> </div>
@ -188,7 +189,7 @@ Now the date you see at the bottom is exactly the date I modified the <em>conten
</div> </div>
<div id="lastmod"> <div id="lastmod">
Created: 09/02/2010 Created: 09/02/2010
Modified: 04/20/2011 Modified: 09/14/2011
</div> </div>
<div> <div>
Entirely done with Entirely done with

View file

@ -321,13 +321,14 @@ is also true for <code>d</code> (delete), <code>v</code> (visual select), <code>
But now, here are the killer features. But now, here are the killer features.
Some of these features were the reason I started to use vim.</p> Some of these features were the reason I started to use vim.</p>
<h3 id="move-on-current-line-0---f-f-t-t--">Move on current line: <code>0</code> <code>^</code> <code>$</code> <code>f</code> <code>F</code> <code>t</code> <code>T</code> <code>,</code> <code>;</code></h3> <h3 id="move-on-current-line-0---g-f-f-t-t--">Move on current line: <code>0</code> <code>^</code> <code>$</code> <code>g_</code> <code>f</code> <code>F</code> <code>t</code> <code>T</code> <code>,</code> <code>;</code></h3>
<blockquote> <blockquote>
<ul> <ul>
<li><code>0</code> → go to column 0</li> <li><code>0</code> → go to column 0</li>
<li><code>^</code> → go to first character on the line</li> <li><code>^</code> → go to first character on the line</li>
<li><code>$</code> → go to the last character on the line</li> <li><code>$</code> → go to the last column</li>
<li><code>g_</code> → go to the last character on the line</li>
<li><code>fa</code> → go to next occurrence of the letter <code>a</code> on the line. <code>,</code> (resp. <code>;</code>) will seek for the next (resp. previous) occurrence.</li> <li><code>fa</code> → go to next occurrence of the letter <code>a</code> on the line. <code>,</code> (resp. <code>;</code>) will seek for the next (resp. previous) occurrence.</li>
<li><code>t,</code> → go just before the character <code>,</code>.</li> <li><code>t,</code> → go just before the character <code>,</code>.</li>
<li><code>3fa</code> → search the 3<sup>rd</sup> occurrence of <code>a</code> on this line.</li> <li><code>3fa</code> → search the 3<sup>rd</sup> occurrence of <code>a</code> on this line.</li>
@ -377,7 +378,7 @@ Typically: <code>0&lt;C-v&gt;&lt;C-d&gt;I-- [ESC]</code></p>
<p><img alt="Rectangular blocks" src="/Scratch/img/blog/Learn-Vim-Progressively/rectangular-blocks.gif" /></p> <p><img alt="Rectangular blocks" src="/Scratch/img/blog/Learn-Vim-Progressively/rectangular-blocks.gif" /></p>
<p>Not on windows you might have to use <code>&lt;C-q&gt;</code> instead of <code>&lt;C-v&gt;</code> if your clipboard is not empty.</p> <p>Note on windows you might have to use <code>&lt;C-q&gt;</code> instead of <code>&lt;C-v&gt;</code> if your clipboard is not empty.</p>
<h3 id="completion-c-n-and-c-p">Completion: <code>&lt;C-n&gt;</code> and <code>&lt;C-p&gt;</code>.</h3> <h3 id="completion-c-n-and-c-p">Completion: <code>&lt;C-n&gt;</code> and <code>&lt;C-p&gt;</code>.</h3>
@ -564,7 +565,7 @@ $(document).ready(function() {
</div> </div>
<div id="lastmod"> <div id="lastmod">
Created: 08/25/2011 Created: 08/25/2011
Modified: 08/31/2011 Modified: 09/08/2011
</div> </div>
<div> <div>
Entirely done with Entirely done with

View file

@ -2,46 +2,13 @@
<feed xmlns="http://www.w3.org/2005/Atom"> <feed xmlns="http://www.w3.org/2005/Atom">
<id>http://yannesposito.com/</id> <id>http://yannesposito.com/</id>
<title>Yogsototh's last blogs entries</title> <title>Yogsototh's last blogs entries</title>
<updated>2011-09-05T10:21:41Z</updated> <updated>2011-08-25T17:28:20Z</updated>
<link href="http://yannesposito.com/" rel="alternate"/> <link href="http://yannesposito.com/" rel="alternate"/>
<link href="http://feeds.feedburner.com/yannespositocomen" rel="self"/> <link href="http://feeds.feedburner.com/yannespositocomen" rel="self"/>
<author> <author>
<name>Yann Esposito</name> <name>Yann Esposito</name>
<uri>http://yannesposito.com</uri> <uri>http://yannesposito.com</uri>
</author> </author>
<entry>
<id>tag:yannesposito.com,2011-09-05:/Scratch/en/blog/programming-language-experience/</id>
<title type="html">programming language experience</title>
<published>2011-09-05T10:21:41Z</published>
<updated>2011-09-05T10:21:41Z</updated>
<link href="http://yannesposito.com/Scratch/en/blog/programming-language-experience/" rel="alternate"/>
<content type="html">&lt;p&gt;&lt;img alt="Title image" src="/Scratch/img/blog/programming-language-experience/main.png" /&gt;&lt;/p&gt;
&lt;div class="intro"&gt;
&lt;span class="sc"&gt;&lt;abbr title="Too long; didn't read"&gt;tl;dr&lt;/abbr&gt;: &lt;/span&gt; My feelings about programming languages I used.
&lt;/div&gt;
&lt;h3 id="basic"&gt;BASIC&lt;/h3&gt;
&lt;p&gt;The language of my firsts programs!
I was about 10, with an &lt;code&gt;MO5&lt;/code&gt; and &lt;code&gt;Amstrad CPC 6128&lt;/code&gt; and even with my &lt;code&gt;Atari STe&lt;/code&gt;.
This is the language of &lt;code&gt;GOTO&lt;/code&gt;s.
&#212; nostalgia.
Unfortunately this might be the only interesting part of this language.&lt;/p&gt;
&lt;p&gt;Today this language is obsolescent.
It not even a good language to learn programming.
I know there exist some compiler now.
But this is not enough to try to learn it.&lt;/p&gt;
&lt;pre class="twilight"&gt;
READY
10 PRINT &lt;/pre&gt;&lt;/p&gt;</content>
</entry>
<entry> <entry>
<id>tag:yannesposito.com,2011-08-25:/Scratch/en/blog/Learn-Vim-Progressively/</id> <id>tag:yannesposito.com,2011-08-25:/Scratch/en/blog/Learn-Vim-Progressively/</id>
<title type="html">Learn Vim Progressively</title> <title type="html">Learn Vim Progressively</title>
@ -200,7 +167,7 @@ But I will revive a bit this blog.&lt;/p&gt;
&lt;p&gt;I had written an efficient &lt;em&gt;&amp;amp;&lt;/em&gt; simplistic MVC javascript framework.&lt;/p&gt; &lt;p&gt;I had written an efficient &lt;em&gt;&amp;amp;&lt;/em&gt; simplistic MVC javascript framework.&lt;/p&gt;
&lt;p&gt;Best wishes for &lt;em&gt;2011&lt;/em&gt;!&lt;/p&gt; &lt;p&gt;Best wishes for &lt;em&gt;2011&lt;/em&gt;!&lt;/p&gt;
&lt;/p&gt;</content> </content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2010-10-26:/Scratch/en/blog/2010-10-26-LaTeX-like-macro-and-markdown/</id> <id>tag:yannesposito.com,2010-10-26:/Scratch/en/blog/2010-10-26-LaTeX-like-macro-and-markdown/</id>
@ -304,7 +271,7 @@ Then my new design obey to the following rules:&lt;/p&gt;
&lt;/ul&gt; &lt;/ul&gt;
&lt;p&gt;I hope the new design please you.&lt;/p&gt; &lt;p&gt;I hope the new design please you.&lt;/p&gt;
&lt;/p&gt;</content> </content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2010-09-02:/Scratch/en/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/</id> <id>tag:yannesposito.com,2010-09-02:/Scratch/en/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/</id>
@ -445,7 +412,7 @@ Now all should scroll smoothly on all platforms.
I was inspired by Readability and iBooks&lt;small&gt;&amp;copy;&lt;/small&gt; (the iPhone&lt;small&gt;&amp;copy;&lt;/small&gt; application).&lt;/p&gt; I was inspired by Readability and iBooks&lt;small&gt;&amp;copy;&lt;/small&gt; (the iPhone&lt;small&gt;&amp;copy;&lt;/small&gt; application).&lt;/p&gt;
&lt;p&gt;Tell me what you think of this new design.&lt;/p&gt; &lt;p&gt;Tell me what you think of this new design.&lt;/p&gt;
&lt;/p&gt;</content> </content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2010-07-07:/Scratch/en/blog/2010-07-07-CSS-rendering-problems-by-navigator/</id> <id>tag:yannesposito.com,2010-07-07:/Scratch/en/blog/2010-07-07-CSS-rendering-problems-by-navigator/</id>
@ -805,7 +772,7 @@ a.....&lt;span class="Constant"&gt;&lt;strong&gt;a......b&lt;/strong&gt;&lt;/spa
&lt;p&gt;and you have to make this behaviour with only one regular expression. The problem is the complementary of regular languages is not regular. Then, for some expression it is absolutely not impossible.&lt;/p&gt; &lt;p&gt;and you have to make this behaviour with only one regular expression. The problem is the complementary of regular languages is not regular. Then, for some expression it is absolutely not impossible.&lt;/p&gt;
&lt;p&gt;But sometimes with some simple regular expression it should be possible&lt;sup&gt;&lt;a href="#note1"&gt;&amp;dagger;&lt;/a&gt;&lt;/sup&gt;. Say you want to match everything containing the some word say &lt;code&gt;bull&lt;/code&gt; but don&amp;rsquo;t want to match &lt;code&gt;bullshit&lt;/code&gt;. Here is a nice way to do that:&lt;/p&gt;...&lt;/p&gt;</content> &lt;p&gt;But sometimes with some simple regular expression it should be possible&lt;sup&gt;&lt;a href="#note1"&gt;&amp;dagger;&lt;/a&gt;&lt;/sup&gt;. Say you want to match everything containing the some word say &lt;code&gt;bull&lt;/code&gt; but don&amp;rsquo;t want to match &lt;code&gt;bullshit&lt;/code&gt;. Here is a nice way to do that:&lt;/p&gt;...</content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2010-01-12:/Scratch/en/blog/2010-01-12-antialias-font-in-Firefox-under-Ubuntu/</id> <id>tag:yannesposito.com,2010-01-12:/Scratch/en/blog/2010-01-12-antialias-font-in-Firefox-under-Ubuntu/</id>
@ -835,7 +802,7 @@ a.....&lt;span class="Constant"&gt;&lt;strong&gt;a......b&lt;/strong&gt;&lt;/spa
&lt;div&gt;&lt;pre class="twilight"&gt; &lt;div&gt;&lt;pre class="twilight"&gt;
&lt;span class="Keyword"&gt;&amp;gt;&lt;/span&gt; chsh &lt;span class="Keyword"&gt;&amp;gt;&lt;/span&gt; chsh
&lt;/pre&gt;&lt;/div&gt; &lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</content> </content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2009-12-14:/Scratch/en/blog/2009-12-14-Git-vs--Bzr/</id> <id>tag:yannesposito.com,2009-12-14:/Scratch/en/blog/2009-12-14-Git-vs--Bzr/</id>
@ -868,23 +835,36 @@ a.....&lt;span class="Constant"&gt;&lt;strong&gt;a......b&lt;/strong&gt;&lt;/spa
<content type="html">&lt;p&gt;It is unbelievable you cannot filter your call with an iPhone! The only reason I see for that is a negotiation with phone operator to force users to get phone advertising. It is simple unacceptable.&lt;/p&gt; <content type="html">&lt;p&gt;It is unbelievable you cannot filter your call with an iPhone! The only reason I see for that is a negotiation with phone operator to force users to get phone advertising. It is simple unacceptable.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m a &#955; iPhone&amp;rsquo;s user. The only way to filter your call and to manage blacklist is to &lt;em&gt;jailbreak&lt;/em&gt; your iPhone. And I don&amp;rsquo;t want to do that. Then, if like me you find it unacceptable, just write a line to Apple: &lt;a href="http://www.apple.com/feedback/iphone.html"&gt;http://www.apple.com/feedback/iphone.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I&amp;rsquo;m a &#955; iPhone&amp;rsquo;s user. The only way to filter your call and to manage blacklist is to &lt;em&gt;jailbreak&lt;/em&gt; your iPhone. And I don&amp;rsquo;t want to do that. Then, if like me you find it unacceptable, just write a line to Apple: &lt;a href="http://www.apple.com/feedback/iphone.html"&gt;http://www.apple.com/feedback/iphone.html&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;</content> </content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2009-11-12:/Scratch/en/blog/2009-11-12-Git-for-n00b/comprendre/</id> <id>tag:yannesposito.com,2009-11-12:/Scratch/en/blog/2009-11-12-Git-for-n00b/commandes-avancees/</id>
<title type="html">Git for n00b</title> <title type="html">Git for n00b</title>
<published>2009-11-12T09:39:54Z</published> <published>2009-11-12T09:39:54Z</published>
<updated>2009-11-12T09:39:54Z</updated> <updated>2009-11-12T09:39:54Z</updated>
<link href="http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/comprendre/" rel="alternate"/> <link href="http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/commandes-avancees/" rel="alternate"/>
<content type="html">&lt;h1 class="first" id="why-git-is-cool"&gt;Why Git is cool?&lt;/h1&gt; <content type="html">&lt;h1 class="first" id="command-list"&gt;Command List&lt;/h1&gt;
&lt;p&gt;Because with &lt;a href="http://git-scm.org" title="Git"&gt;Git&lt;/a&gt; you can work on many part of some project totally independently. This is the true efficiency of decentralisation.&lt;/p&gt; &lt;h2 id="command-for-each-functionality"&gt;Command for each functionality&lt;/h2&gt;
&lt;p&gt;Each branch use the same directory. Then you can easily change your branch. You can also change branch when some files are modified. You can then dispatch your work on many different branches and merge them on one master branch at will.&lt;/p&gt; &lt;p&gt;In the first part, we saw the list of resolved problem by &lt;a href="http://git-scm.org" title="Git"&gt;Git&lt;/a&gt;. To resume &lt;a href="http://git-scm.org" title="Git"&gt;Git&lt;/a&gt; should do:&lt;/p&gt;
&lt;p&gt;Using the &lt;code&gt;git rebase&lt;/code&gt; you can decide which modifications should be forget or merged into only one modification.&lt;/p&gt; &lt;ul&gt;
&lt;li&gt;get others modifications,&lt;/li&gt;
&lt;li&gt;send modifications to others,&lt;/li&gt;
&lt;li&gt;get back in time,&lt;/li&gt;
&lt;li&gt;list differences between each version,&lt;/li&gt;
&lt;li&gt;name some versions in order to refer easily to them,&lt;/li&gt;
&lt;li&gt;write an historic of modifications,&lt;/li&gt;
&lt;li&gt;know who did what and when,&lt;/li&gt;
&lt;li&gt;manage conflicts,&lt;/li&gt;
&lt;li&gt;easily manage branches.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What does it mean for real usage? You can focus on coding. For example, you can code, a fix for bug b01 and for bug b02 and code a feature f03. Once finished you can creat...&lt;/p&gt;</content> &lt;h3 id="get-others-modifications"&gt;get others modifications&lt;/h3&gt;
&lt;div&gt;&lt;pre class="twilight"&gt;
$ g...&lt;/pre&gt;&lt;/div&gt;</content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2009-11-12:/Scratch/en/blog/2009-11-12-Git-for-n00b/</id> <id>tag:yannesposito.com,2009-11-12:/Scratch/en/blog/2009-11-12-Git-for-n00b/</id>
@ -917,4 +897,27 @@ a.....&lt;span class="Constant"&gt;&lt;strong&gt;a......b&lt;/strong&gt;&lt;/spa
&lt;div&gt;&lt;pre class="twilight"&gt; &lt;div&gt;&lt;pre class="twilight"&gt;
git clone ssh...&lt;/pre&gt;&lt;/div&gt;</content> git clone ssh...&lt;/pre&gt;&lt;/div&gt;</content>
</entry> </entry>
<entry>
<id>tag:yannesposito.com,2009-11-12:/Scratch/en/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure/</id>
<title type="html">Git for n00b</title>
<published>2009-11-12T09:39:54Z</published>
<updated>2009-11-12T09:39:54Z</updated>
<link href="http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure/" rel="alternate"/>
<content type="html">&lt;h1 class="first" id="here-we-go"&gt;Here we go!&lt;/h1&gt;
&lt;p&gt;Here is one from many way to use &lt;a href="http://git-scm.org" title="Git"&gt;Git&lt;/a&gt;. This method is sufficient to work on a project. Not there is many other &lt;em&gt;workflows&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id="basic-usage"&gt;Basic usage&lt;/h2&gt;
&lt;p&gt;Work with &lt;a href="http://git-scm.org" title="Git"&gt;Git&lt;/a&gt; immediately:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Get modification done by others &lt;span class="black"&gt;&lt;code&gt;git pull&lt;/code&gt;&lt;/span&gt;,&lt;/li&gt;
&lt;li&gt;See details of these modifications &lt;span class="black"&gt;&lt;code&gt;git log&lt;/code&gt;&lt;/span&gt;,&lt;/li&gt;
&lt;li&gt;Many times:
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Make an atomic modification&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Verify details of this modification: &lt;span class="black"&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/span&gt; and &lt;span class="black"&gt;&lt;code&gt;git diff&lt;/code&gt;&lt;/span&gt;,&lt;/li&gt;
&lt;li&gt;Add ...&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</content>
</entry>
</feed> </feed>

View file

@ -103,7 +103,7 @@
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Copyright ©, Yann Esposito</a> <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Copyright ©, Yann Esposito</a>
</div> </div>
<div id="lastmod"> <div id="lastmod">
Modified: 04/20/2011 Modified: 09/14/2011
</div> </div>
<div> <div>
Entirely done with Entirely done with

View file

@ -4,7 +4,7 @@ def gitmtime
ext=%{.#{@item[:extension]}} ext=%{.#{@item[:extension]}}
filepath<<=ext filepath<<=ext
if not FileTest.exists?(filepath) if not FileTest.exists?(filepath)
filepath.sub!(ext,%{/index#{ext}}) filepath.sub!(ext,%{#{@item.raw_filename}#{ext}})
end end
str=`git log -1 --format='%ci' -- #{filepath}` str=`git log -1 --format='%ci' -- #{filepath}`
if str.nil? or str.empty? if str.nil? or str.empty?

View file

@ -74,7 +74,7 @@ Voici comment je m&rsquo;y prend avec <a href="http://nanoc.stoneship.org">nanoc
ext<span class="Keyword">=</span><span class="String"><span class="String">%{</span>.<span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span><span class="StringVariable"><span class="StringVariable">@</span>item</span><span class="StringEmbeddedSource">[</span><span class="StringConstant"><span class="StringConstant">:</span>extension</span><span class="StringEmbeddedSource">]</span><span class="StringEmbeddedSource">}</span></span><span class="String">}</span></span> ext<span class="Keyword">=</span><span class="String"><span class="String">%{</span>.<span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span><span class="StringVariable"><span class="StringVariable">@</span>item</span><span class="StringEmbeddedSource">[</span><span class="StringConstant"><span class="StringConstant">:</span>extension</span><span class="StringEmbeddedSource">]</span><span class="StringEmbeddedSource">}</span></span><span class="String">}</span></span>
filepath<span class="Keyword">&lt;&lt;=</span>ext filepath<span class="Keyword">&lt;&lt;=</span>ext
<span class="Keyword">if</span> <span class="Keyword">not</span> <span class="Support">FileTest</span>.<span class="Entity">exists?</span>(filepath) <span class="Keyword">if</span> <span class="Keyword">not</span> <span class="Support">FileTest</span>.<span class="Entity">exists?</span>(filepath)
filepath.<span class="Entity">sub!</span>(ext,<span class="String"><span class="String">%{</span>/index<span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span>ext<span class="StringEmbeddedSource">}</span></span><span class="String">}</span></span>) filepath.<span class="Entity">sub!</span>(ext,<span class="String"><span class="String">%{</span><span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span><span class="StringVariable"><span class="StringVariable">@</span>item</span><span class="StringEmbeddedSource"><span class="StringEmbeddedSource">.</span><span class="Entity">raw_filename</span></span><span class="StringEmbeddedSource">}</span></span><span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span>ext<span class="StringEmbeddedSource">}</span></span><span class="String">}</span></span>)
<span class="Keyword">end</span> <span class="Keyword">end</span>
str<span class="Keyword">=</span><span class="String"><span class="String">`</span>git log -1 --format='%ci' -- <span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span>filepath<span class="StringEmbeddedSource">}</span></span><span class="String">`</span></span> str<span class="Keyword">=</span><span class="String"><span class="String">`</span>git log -1 --format='%ci' -- <span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span>filepath<span class="StringEmbeddedSource">}</span></span><span class="String">`</span></span>
<span class="Keyword">if</span> str.<span class="Entity">nil?</span> <span class="Keyword">or</span> str.<span class="Entity">empty?</span> <span class="Keyword">if</span> str.<span class="Entity">nil?</span> <span class="Keyword">or</span> str.<span class="Entity">empty?</span>
@ -90,7 +90,8 @@ Voici comment je m&rsquo;y prend avec <a href="http://nanoc.stoneship.org">nanoc
Mais ça fonctionne comme prévu. Mais ça fonctionne comme prévu.
Maintenant la date que vous voyez en bas de la page correspond exactement à la dernière date de modification de son contenu.</p> Maintenant la date que vous voyez en bas de la page correspond exactement à la dernière date de modification de son contenu.</p>
<p>Je tiens à remercier Eric Sunshine pour ses conseils sur ce problème.</p> <p><em>Mise à jour</em>:
Je tiens à remercier Eric Sunshine et Kris pour leurs conseils sur ce problème.</p>
</div> </div>
@ -188,7 +189,7 @@ Maintenant la date que vous voyez en bas de la page correspond exactement à la
</div> </div>
<div id="lastmod"> <div id="lastmod">
Écrit le : 02/09/2010 Écrit le : 02/09/2010
modifié le : 20/04/2011 modifié le : 14/09/2011
</div> </div>
<div> <div>
Site entièrement réalisé avec Site entièrement réalisé avec

View file

@ -327,13 +327,14 @@ est aussi vrai pour <code>d</code> (delete → supprimer), <code>v</code> (séle
Mais voici les killer features de vim. Mais voici les killer features de vim.
Celles que je n&rsquo;ai retrouvé que dans vim (ou presque).</p> Celles que je n&rsquo;ai retrouvé que dans vim (ou presque).</p>
<h3 id="dplacement-sur-la-ligne--0---f-f-t-t--">Déplacement sur la ligne&nbsp;: <code>0</code> <code>^</code> <code>$</code> <code>f</code> <code>F</code> <code>t</code> <code>T</code> <code>,</code> <code>;</code></h3> <h3 id="dplacement-sur-la-ligne--0---g-f-f-t-t--">Déplacement sur la ligne&nbsp;: <code>0</code> <code>^</code> <code>$</code> <code>g_</code> <code>f</code> <code>F</code> <code>t</code> <code>T</code> <code>,</code> <code>;</code></h3>
<blockquote> <blockquote>
<ul> <ul>
<li><code>0</code> → aller à la colonne 0,</li> <li><code>0</code> → aller à la colonne 0,</li>
<li><code>^</code> → aller au premier caractère de la ligne</li> <li><code>^</code> → aller au premier caractère de la ligne</li>
<li><code>$</code> → aller au dernier caractère de la ligne</li> <li><code>$</code> → aller à la dernière colonne de la ligne</li>
<li><code>g_</code> → aller au dernier caractère de la ligne</li>
<li><code>fa</code> → vous amène à la prochaine occurrence de a sur la ligne courante. <code>,</code> (resp. <code>;</code>) recherche l&rsquo;occurrence suivante (resp. précédente).</li> <li><code>fa</code> → vous amène à la prochaine occurrence de a sur la ligne courante. <code>,</code> (resp. <code>;</code>) recherche l&rsquo;occurrence suivante (resp. précédente).</li>
<li><code>t,</code> → vous amène juste avant le <code>,</code>.</li> <li><code>t,</code> → vous amène juste avant le <code>,</code>.</li>
<li><code>3fa</code> → recherche la 3ième occurrence de <code>a</code>.</li> <li><code>3fa</code> → recherche la 3ième occurrence de <code>a</code>.</li>
@ -571,7 +572,7 @@ $(document).ready(function() {
</div> </div>
<div id="lastmod"> <div id="lastmod">
Écrit le : 25/08/2011 Écrit le : 25/08/2011
modifié le : 31/08/2011 modifié le : 08/09/2011
</div> </div>
<div> <div>
Site entièrement réalisé avec Site entièrement réalisé avec

View file

@ -2,41 +2,13 @@
<feed xmlns="http://www.w3.org/2005/Atom"> <feed xmlns="http://www.w3.org/2005/Atom">
<id>http://yannesposito.com/</id> <id>http://yannesposito.com/</id>
<title>Yogsototh's last blogs entries</title> <title>Yogsototh's last blogs entries</title>
<updated>2011-09-05T10:21:41Z</updated> <updated>2011-08-25T17:28:20Z</updated>
<link href="http://yannesposito.com/" rel="alternate"/> <link href="http://yannesposito.com/" rel="alternate"/>
<link href="http://feeds.feedburner.com/yannespositocomfr" rel="self"/> <link href="http://feeds.feedburner.com/yannespositocomfr" rel="self"/>
<author> <author>
<name>Yann Esposito</name> <name>Yann Esposito</name>
<uri>http://yannesposito.com</uri> <uri>http://yannesposito.com</uri>
</author> </author>
<entry>
<id>tag:yannesposito.com,2011-09-05:/Scratch/fr/blog/programming-language-experience/</id>
<title type="html">programming language experience</title>
<published>2011-09-05T10:21:41Z</published>
<updated>2011-09-05T10:21:41Z</updated>
<link href="http://yannesposito.com/Scratch/fr/blog/programming-language-experience/" rel="alternate"/>
<content type="html">&lt;p&gt;&lt;img alt="Title image" src="/Scratch/img/blog/programming-language-experience/main.png" /&gt;&lt;/p&gt;
&lt;div class="intro"&gt;
&lt;span class="sc"&gt;&lt;abbr title="Trop long &#224; lire"&gt;tl&#224;l&lt;/abbr&gt;&amp;nbsp;: &lt;/span&gt; Mon avis sur les diff&#233;rents languages de programmations que j&amp;rsquo;ai utilis&#233;.
&lt;/div&gt;
&lt;h3 id="basic"&gt;BASIC&lt;/h3&gt;
&lt;p&gt;Ah&amp;nbsp;! Le language de mes premiers programmes&amp;nbsp;!
Je devais avoir 10-11 ans.
Sous &lt;code&gt;MO5&lt;/code&gt;, &lt;code&gt;Amstrad CPC 6128&lt;/code&gt; et m&#234;me &lt;code&gt;Atari STe&lt;/code&gt;.
Le langage des &lt;code&gt;GOTO&lt;/code&gt;s.
Je suis empleint de nostalgie rien que d&amp;rsquo;y penser.
C&amp;rsquo;est &#224; peu pr&#234;t le seul int&#233;r&#234;t de ce langage.&lt;/p&gt;
&lt;p&gt;Aujourd&amp;rsquo;hui ce langage est tomb&#233; en d&#233;su&#233;tude.
Ce n&amp;rsquo;est ni un bon langage pour apprendre, ni un bon langage pour faire de vrai prog...&lt;/p&gt;&lt;/p&gt;</content>
</entry>
<entry> <entry>
<id>tag:yannesposito.com,2011-08-25:/Scratch/fr/blog/Learn-Vim-Progressively/</id> <id>tag:yannesposito.com,2011-08-25:/Scratch/fr/blog/Learn-Vim-Progressively/</id>
<title type="html">Apprenez Vim Progressivement</title> <title type="html">Apprenez Vim Progressivement</title>
@ -183,7 +155,7 @@ Je n&amp;rsquo;en ai pas encore termin&#233; avec &#231;a. Mais si je tarde trop
&lt;p&gt;J&amp;rsquo;ai &#233;crit un framework MVC pour application javascript simple mais n&#233;anmoins tr&#232;s rapide.&lt;/p&gt; &lt;p&gt;J&amp;rsquo;ai &#233;crit un framework MVC pour application javascript simple mais n&#233;anmoins tr&#232;s rapide.&lt;/p&gt;
&lt;p&gt;Meilleurs v&#339;ux &#224; tous&amp;nbsp;!&lt;/p&gt; &lt;p&gt;Meilleurs v&#339;ux &#224; tous&amp;nbsp;!&lt;/p&gt;
&lt;/p&gt;</content> </content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2010-10-26:/Scratch/fr/blog/2010-10-26-LaTeX-like-macro-and-markdown/</id> <id>tag:yannesposito.com,2010-10-26:/Scratch/fr/blog/2010-10-26-LaTeX-like-macro-and-markdown/</id>
@ -274,7 +246,7 @@ J&amp;rsquo;ai donc d&#233;cid&#233; de faire un site &#224; minima.
Je voulais qu&amp;rsquo;il soit joli &lt;em&gt;et&lt;/em&gt; le plus simple possible pour assurer sa compatibilit&#233;. Je voulais qu&amp;rsquo;il soit joli &lt;em&gt;et&lt;/em&gt; le plus simple possible pour assurer sa compatibilit&#233;.
Les r&#232;gles que je me suis fix&#233;es sont donc:&lt;/p&gt; Les r&#232;gles que je me suis fix&#233;es sont donc:&lt;/p&gt;
&lt;/p&gt;</content> </content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2010-09-02:/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/</id> <id>tag:yannesposito.com,2010-09-02:/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/</id>
@ -400,7 +372,7 @@ J&amp;rsquo;ai compl&#232;tement modifi&#233; le style de mon site web.
Il est inspir&#233; du style de l&amp;rsquo;application iBooks&lt;small&gt;&amp;copy;&lt;/small&gt; sur iPhone&lt;small&gt;&amp;copy;&lt;/small&gt;.&lt;/p&gt; Il est inspir&#233; du style de l&amp;rsquo;application iBooks&lt;small&gt;&amp;copy;&lt;/small&gt; sur iPhone&lt;small&gt;&amp;copy;&lt;/small&gt;.&lt;/p&gt;
&lt;p&gt;Dites moi ce que vous pensez de ce nouveau design.&lt;/p&gt; &lt;p&gt;Dites moi ce que vous pensez de ce nouveau design.&lt;/p&gt;
&lt;/p&gt;</content> </content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2010-07-07:/Scratch/fr/blog/2010-07-07-CSS-rendering-problems-by-navigator/</id> <id>tag:yannesposito.com,2010-07-07:/Scratch/fr/blog/2010-07-07-CSS-rendering-problems-by-navigator/</id>
@ -629,7 +601,7 @@ Parce qu&amp;rsquo;il est facile de &lt;em&gt;merger&lt;/em&gt; par erreur, je p
&lt;p&gt;Disons que j&amp;rsquo;ai les branches&amp;nbsp;:&lt;/p&gt; &lt;p&gt;Disons que j&amp;rsquo;ai les branches&amp;nbsp;:&lt;/p&gt;
...&lt;/p&gt;</content> ...</content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2010-03-22:/Scratch/fr/blog/2010-03-22-Git-Tips/</id> <id>tag:yannesposito.com,2010-03-22:/Scratch/fr/blog/2010-03-22-Git-Tips/</id>
@ -764,7 +736,7 @@ a.....&lt;span class="Constant"&gt;&lt;strong&gt;a......b&lt;/strong&gt;&lt;/spa
&lt;div&gt;&lt;pre class="twilight"&gt; &lt;div&gt;&lt;pre class="twilight"&gt;
&lt;span class="Keyword"&gt;&amp;gt;&lt;/span&gt; chsh &lt;span class="Keyword"&gt;&amp;gt;&lt;/span&gt; chsh
&lt;/pre&gt;&lt;/div&gt; &lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</content> </content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2009-12-14:/Scratch/fr/blog/2009-12-14-Git-vs--Bzr/</id> <id>tag:yannesposito.com,2009-12-14:/Scratch/fr/blog/2009-12-14-Git-vs--Bzr/</id>
@ -797,7 +769,7 @@ a.....&lt;span class="Constant"&gt;&lt;strong&gt;a......b&lt;/strong&gt;&lt;/spa
<content type="html">&lt;p&gt;Il est vraiment incroyable que le filtrage d&amp;rsquo;appel soit impossible avec un iPhone&amp;nbsp;! Le &lt;em&gt;seul&lt;/em&gt; int&#233;r&#234;t que j&amp;rsquo;y vois, c&amp;rsquo;est une n&#233;gociation avec les op&#233;rateurs pour interdire aux utilisateurs de passer &#224; travers la publicit&#233;. C&amp;rsquo;est tout simplement inacceptable.&lt;/p&gt; <content type="html">&lt;p&gt;Il est vraiment incroyable que le filtrage d&amp;rsquo;appel soit impossible avec un iPhone&amp;nbsp;! Le &lt;em&gt;seul&lt;/em&gt; int&#233;r&#234;t que j&amp;rsquo;y vois, c&amp;rsquo;est une n&#233;gociation avec les op&#233;rateurs pour interdire aux utilisateurs de passer &#224; travers la publicit&#233;. C&amp;rsquo;est tout simplement inacceptable.&lt;/p&gt;
&lt;p&gt;Je suis un utilisateur &#955; de l&amp;rsquo;iPhone. Le seul moyen de filtrer ses appels, de faire des blacklists ou autre c&amp;rsquo;est de &lt;em&gt;jailbreaker&lt;/em&gt; son iPhone. Et je n&amp;rsquo;en ai aucune envie. Alors si comme moi, vous trouvez &#231;a inacceptable, envoyez un mot &#224; Apple&amp;nbsp;: &lt;a href="http://www.apple.com/feedback/iphone.html"&gt;http://www.apple.com/feedback/iphone.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Je suis un utilisateur &#955; de l&amp;rsquo;iPhone. Le seul moyen de filtrer ses appels, de faire des blacklists ou autre c&amp;rsquo;est de &lt;em&gt;jailbreaker&lt;/em&gt; son iPhone. Et je n&amp;rsquo;en ai aucune envie. Alors si comme moi, vous trouvez &#231;a inacceptable, envoyez un mot &#224; Apple&amp;nbsp;: &lt;a href="http://www.apple.com/feedback/iphone.html"&gt;http://www.apple.com/feedback/iphone.html&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;</content> </content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2009-11-12:/Scratch/fr/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure/</id> <id>tag:yannesposito.com,2009-11-12:/Scratch/fr/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure/</id>
@ -818,26 +790,41 @@ a.....&lt;span class="Constant"&gt;&lt;strong&gt;a......b&lt;/strong&gt;&lt;/spa
&lt;li&gt;voir les d&#233;tails de ces modifications &lt;span class="black"&gt;&lt;code&gt;git log&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</content> &lt;li&gt;voir les d&#233;tails de ces modifications &lt;span class="black"&gt;&lt;code&gt;git log&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</content>
</entry> </entry>
<entry> <entry>
<id>tag:yannesposito.com,2009-11-12:/Scratch/fr/blog/2009-11-12-Git-for-n00b/commandes-avancees/</id> <id>tag:yannesposito.com,2009-11-12:/Scratch/fr/blog/2009-11-12-Git-for-n00b/</id>
<title type="html">Git pour les nuls</title> <title type="html">Git pour les nuls</title>
<published>2009-11-12T09:39:54Z</published> <published>2009-11-12T09:39:54Z</published>
<updated>2009-11-12T09:39:54Z</updated> <updated>2009-11-12T09:39:54Z</updated>
<link href="http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/commandes-avancees/" rel="alternate"/> <link href="http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/" rel="alternate"/>
<content type="html">&lt;h1 class="first" id="liste-de-commandes"&gt;Liste de commandes&lt;/h1&gt; <content type="html">
&lt;div class="intro"&gt;
&lt;h2 id="les-commandes-pour-chaque-choses"&gt;Les commandes pour chaque choses&lt;/h2&gt;
&lt;p&gt;Dans la premi&#232;re partie, nous avons vu la liste des probl&#232;mes r&#233;solus par &lt;a href="http://git-scm.org" title="Git"&gt;Git&lt;/a&gt;. En r&#233;sum&#233; Git doit pouvoir&amp;nbsp;:&lt;/p&gt; &lt;p&gt;Voici un tutoriel &lt;a href="http://git-scm.org"&gt;Git&lt;/a&gt; d&#233;taill&#233; pour ceux qui en connaissent tr&#232;s peu sur les syst&#232;mes de versions. Vous comprendrez l&amp;rsquo;utilit&#233; de tels syst&#232;mes et surtout comment on se sert des syst&#232;mes de versions modernes, le tout en restant le plus pragmatique possible.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;r&#233;cup&#233;rer les modifications des autres&amp;nbsp;;&lt;/li&gt; &lt;/div&gt;
&lt;li&gt;envoyer ses modifications aux autres&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;revenir dans le temps&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;lister les diff&#233;rences entre chaque version&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;nommer certaines versions pour s&amp;rsquo;y r&#233;f&#233;rer facilement&amp;nbsp;;&lt;/li&gt; &lt;/div&gt;
&lt;li&gt;afficher l&amp;rsquo;historique des modifications&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;savoir qui a fait quoi et quand&amp;nbsp;;&lt;/li&gt; &lt;div class="corps"&gt;
&lt;li&gt;g&#233;rer des conflits&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;manipuler facileme...&lt;/li&gt;&lt;/ul&gt;</content>
&lt;h1 class="first" id="pour-commencer-la-conclusion"&gt;Pour commencer, la conclusion&lt;/h1&gt;
&lt;p&gt;Voici la liste des commandes n&#233;cessaires et suffisantes pour utiliser &lt;a href="http://git-scm.org" title="Git"&gt;Git&lt;/a&gt;. Il y en a tr&#232;s peu. Il est normal de ne pas les comprendre tout de suite mais c&amp;rsquo;est pour vous donner une id&#233;e. Malgr&#233; la longueur de l&amp;rsquo;article, 95% de l&amp;rsquo;utilisation de &lt;/p&gt;</content>
</entry>
<entry>
<id>tag:yannesposito.com,2009-11-12:/Scratch/fr/blog/2009-11-12-Git-for-n00b/comprendre/</id>
<title type="html">Git pour les nuls</title>
<published>2009-11-12T09:39:54Z</published>
<updated>2009-11-12T09:39:54Z</updated>
<link href="http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/comprendre/" rel="alternate"/>
<content type="html">&lt;h1 class="first" id="pourquoi-git-est-cool-"&gt;Pourquoi Git est cool&amp;nbsp;?&lt;/h1&gt;
&lt;p&gt;Parce que grace &#224; &lt;a href="http://git-scm.org" title="Git"&gt;Git&lt;/a&gt; vous pouvez travailler sur plusieurs partie du projet de fa&#231;on compl&#232;tement isol&#233;e les unes des autres. &#199;a c&amp;rsquo;est la partie d&#233;centralis&#233;e de &lt;a href="http://git-scm.org" title="Git"&gt;Git&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Toutes les branches locales utilisent le m&#234;me r&#233;pertoire. Ainsi on peu changer de branche tr&#232;s ais&#233;ment et rapidement. On peut aussi changer de branche alors que certains fichier sont en cours de modifications. On peut m&#234;me pousser le vice jusqu&amp;rsquo;&#224; modifier un fichier, changer de branche, commiter une partie seulement des modifications de ce fichier dans la branche courante. Revenir dans l&amp;rsquo;ancienne branche et commi...&lt;/p&gt;</content>
</entry> </entry>
</feed> </feed>

View file

@ -148,7 +148,7 @@
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.fr">Droits de reproduction ©, Yann Esposito</a> <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.fr">Droits de reproduction ©, Yann Esposito</a>
</div> </div>
<div id="lastmod"> <div id="lastmod">
modifié le : 20/04/2011 modifié le : 14/09/2011
</div> </div>
<div> <div>
Site entièrement réalisé avec Site entièrement réalisé avec

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View file

@ -0,0 +1,6 @@
0 ^ fi t) 4fi g_ $
│ │ │ │ │ │ │
x = (name_1,vision_3); #this is a comment.

View file

@ -2,702 +2,694 @@
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url> <url>
<loc>http://yannesposito.com/</loc> <loc>http://yannesposito.com/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/about/contact/</loc> <loc>http://yannesposito.com/Scratch/en/about/contact/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-06-17-track-events-with-google-analytics/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-06-17-track-events-with-google-analytics/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-01-04-Change-default-shell-on-Mac-OS-X/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-01-04-Change-default-shell-on-Mac-OS-X/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-06-19-jQuery-popup-the-easy-way/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-06-19-jQuery-popup-the-easy-way/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/softwares/ypassword/</loc> <loc>http://yannesposito.com/Scratch/en/softwares/ypassword/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/about/</loc> <loc>http://yannesposito.com/Scratch/fr/about/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-09-jQuery-Tag-Cloud/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-09-jQuery-Tag-Cloud/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/Password-Management/</loc> <loc>http://yannesposito.com/Scratch/en/blog/Password-Management/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-05-19-How-to-cut-HTML-and-repair-it/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-05-19-How-to-cut-HTML-and-repair-it/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-05-24-Trees--Pragmatism-and-Formalism/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-05-24-Trees--Pragmatism-and-Formalism/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-01-12-antialias-font-in-Firefox-under-Ubuntu/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-01-12-antialias-font-in-Firefox-under-Ubuntu/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-10-26-LaTeX-like-macro-and-markdown/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-10-26-LaTeX-like-macro-and-markdown/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-09-02-base64-and-sha1-on-iPhone/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-09-02-base64-and-sha1-on-iPhone/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/softwares/ypassword/iphoneweb/</loc> <loc>http://yannesposito.com/Scratch/en/softwares/ypassword/iphoneweb/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-10-06-New-Blog-Design-Constraints/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-10-06-New-Blog-Design-Constraints/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-02-18-split-a-file-by-keyword/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-02-18-split-a-file-by-keyword/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-06-17-hide-yourself-to-analytics/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-06-17-hide-yourself-to-analytics/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/commandes-avancees/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/commandes-avancees/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/03_losthighway/03_losthighway_1/</loc> <loc>http://yannesposito.com/Scratch/en/blog/03_losthighway/03_losthighway_1/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/mvc/</loc> <loc>http://yannesposito.com/Scratch/en/blog/mvc/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-09-replace-all-except-some-part/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-09-replace-all-except-some-part/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/09_Why_I_didn-t_keep_whosamung-us/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/09_Why_I_didn-t_keep_whosamung-us/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-02-18-split-a-file-by-keyword/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-02-18-split-a-file-by-keyword/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/03_losthighway/03_losthighway_2/</loc> <loc>http://yannesposito.com/Scratch/en/blog/03_losthighway/03_losthighway_2/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/softwares/yaquabubbles/</loc> <loc>http://yannesposito.com/Scratch/en/softwares/yaquabubbles/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/commandes-avancees/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/commandes-avancees/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-10-Focus-vs-Minimalism/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-10-Focus-vs-Minimalism/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/03_losthighway/03_losthighway_3/</loc> <loc>http://yannesposito.com/Scratch/en/blog/03_losthighway/03_losthighway_3/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-10-10-Secure-eMail-on-Mac-in-few-steps/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-10-10-Secure-eMail-on-Mac-in-few-steps/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-03-22-Git-Tips/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-03-22-Git-Tips/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-06-19-jQuery-popup-the-easy-way/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-06-19-jQuery-popup-the-easy-way/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-07-09-Indecidabilities/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-07-09-Indecidabilities/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/03_losthighway/03_losthighway_4/</loc> <loc>http://yannesposito.com/Scratch/en/blog/03_losthighway/03_losthighway_4/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/</loc> <loc>http://yannesposito.com/Scratch/en/blog/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/01_nanoc/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/01_nanoc/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-07-05-Cappuccino-and-Web-applications/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-07-05-Cappuccino-and-Web-applications/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-12-06-iphone-call-filter/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-12-06-iphone-call-filter/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/03_losthighway/03_losthighway_1/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/03_losthighway/03_losthighway_1/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/11_Load_Disqus_Asynchronously/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/11_Load_Disqus_Asynchronously/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-02-15-All-but-something-regexp/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-02-15-All-but-something-regexp/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-07-05-Cappuccino-and-Web-applications/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-07-05-Cappuccino-and-Web-applications/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/softwares/ypassword/web/</loc> <loc>http://yannesposito.com/Scratch/en/softwares/ypassword/web/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/05_git_create_remote_branch/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/05_git_create_remote_branch/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-10-untaught-git-usage/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-10-untaught-git-usage/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/11_Load_Disqus_Asynchronously/</loc> <loc>http://yannesposito.com/Scratch/en/blog/11_Load_Disqus_Asynchronously/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-10-26-LaTeX-like-macro-and-markdown/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-10-26-LaTeX-like-macro-and-markdown/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/about/cv/</loc> <loc>http://yannesposito.com/Scratch/fr/about/cv/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/about/technical_details/</loc> <loc>http://yannesposito.com/Scratch/fr/about/technical_details/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/03_losthighway/03_losthighway_2/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/03_losthighway/03_losthighway_2/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-14</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-07-07-CSS-rendering-problems-by-navigator/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-07-07-CSS-rendering-problems-by-navigator/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-06-15-Get-my-blog-engine/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-06-15-Get-my-blog-engine/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/Haskell-Mandelbrot/</loc> <loc>http://yannesposito.com/Scratch/en/blog/Haskell-Mandelbrot/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/mvc/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/mvc/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/03_losthighway/03_losthighway_3/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/03_losthighway/03_losthighway_3/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url>
<url>
<loc>http://yannesposito.com/Scratch/en/blog/programming-language-experience/</loc>
<lastmod>2011-09-05</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/validation/</loc> <loc>http://yannesposito.com/Scratch/en/validation/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/03_losthighway/03_losthighway_4/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/03_losthighway/03_losthighway_4/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-10-untaught-git-usage/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-10-untaught-git-usage/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/08_Configure_ssh_to_listen_the_port_443_on_Snow_Leopard/</loc> <loc>http://yannesposito.com/Scratch/en/blog/08_Configure_ssh_to_listen_the_port_443_on_Snow_Leopard/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/softwares/yclock/</loc> <loc>http://yannesposito.com/Scratch/en/softwares/yclock/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-10-How-to-preload-your-site-with-style/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-10-How-to-preload-your-site-with-style/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2011-01-03-Happy-New-Year/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2011-01-03-Happy-New-Year/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/about/old/</loc> <loc>http://yannesposito.com/Scratch/fr/about/old/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-05-17-at-least-this-blog-revive/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-05-17-at-least-this-blog-revive/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/02_ackgrep/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/02_ackgrep/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-14</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/03_losthighway/</loc> <loc>http://yannesposito.com/Scratch/en/blog/03_losthighway/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-08-31-send-mail-from-command-line-with-attached-file/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-08-31-send-mail-from-command-line-with-attached-file/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-09-Disqus-versus-Intense-Debate--Why-I-switched-/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-09-Disqus-versus-Intense-Debate--Why-I-switched-/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/about/contact/</loc> <loc>http://yannesposito.com/Scratch/fr/about/contact/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-10-How-to-preload-your-site-with-style/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-10-How-to-preload-your-site-with-style/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-10-Focus-vs-Minimalism/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-10-Focus-vs-Minimalism/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url>
<url>
<loc>http://yannesposito.com/Scratch/fr/blog/programming-language-experience/</loc>
<lastmod>2011-09-05</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-07-07-CSS-rendering-problems-by-navigator/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-07-07-CSS-rendering-problems-by-navigator/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/07_Screensaver_compilation_option_for_Snow_Leopard/</loc> <loc>http://yannesposito.com/Scratch/en/blog/07_Screensaver_compilation_option_for_Snow_Leopard/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-07-31-New-style-after-holidays/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-07-31-New-style-after-holidays/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-12-06-iphone-call-filter/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-12-06-iphone-call-filter/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-02-23-When-regexp-is-not-the-best-solution/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-02-23-When-regexp-is-not-the-best-solution/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-10-30-How-to-handle-evil-IE/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-10-30-How-to-handle-evil-IE/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-09-02-base64-and-sha1-on-iPhone/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-09-02-base64-and-sha1-on-iPhone/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-10-Wait-to-hide-a-menu-in-jQuery/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-10-Wait-to-hide-a-menu-in-jQuery/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/07_Screensaver_compilation_option_for_Snow_Leopard/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/07_Screensaver_compilation_option_for_Snow_Leopard/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-10-14-Fun-with-wav/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-10-14-Fun-with-wav/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/softwares/</loc> <loc>http://yannesposito.com/Scratch/fr/softwares/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/02_ackgrep/</loc> <loc>http://yannesposito.com/Scratch/en/blog/02_ackgrep/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/08_Configure_ssh_to_listen_the_port_443_on_Snow_Leopard/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/08_Configure_ssh_to_listen_the_port_443_on_Snow_Leopard/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/06_How_I_use_git/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/06_How_I_use_git/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-09-replace-all-except-some-part/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-09-replace-all-except-some-part/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/10_Synchronize_Custom_WebSite_with_mobileMe/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/10_Synchronize_Custom_WebSite_with_mobileMe/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-02-15-All-but-something-regexp/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-02-15-All-but-something-regexp/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/about/old/</loc> <loc>http://yannesposito.com/Scratch/en/about/old/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/about/cv/</loc> <loc>http://yannesposito.com/Scratch/en/about/cv/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2011-04-20-Now-hosted-on-github/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2011-04-20-Now-hosted-on-github/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/Password-Management/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/Password-Management/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/softwares/ypassword/</loc> <loc>http://yannesposito.com/Scratch/fr/softwares/ypassword/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/A-more-convenient-diff/</loc> <loc>http://yannesposito.com/Scratch/en/blog/A-more-convenient-diff/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/09_Why_I_didn-t_keep_whosamung-us/</loc> <loc>http://yannesposito.com/Scratch/en/blog/09_Why_I_didn-t_keep_whosamung-us/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/feed/feed.xml</loc> <loc>http://yannesposito.com/Scratch/fr/blog/feed/feed.xml</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/validation/</loc> <loc>http://yannesposito.com/Scratch/fr/validation/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-08-23-Now-heberged-on-heroku/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-08-23-Now-heberged-on-heroku/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-10-14-Fun-with-wav/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-10-14-Fun-with-wav/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-06-14-multi-language-choices/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-06-14-multi-language-choices/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-09-Disqus-versus-Intense-Debate--Why-I-switched-/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-09-Disqus-versus-Intense-Debate--Why-I-switched-/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/Git-pour-quoi-faire/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/Git-pour-quoi-faire/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/A-more-convenient-diff/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/A-more-convenient-diff/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2011-01-03-Happy-New-Year/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2011-01-03-Happy-New-Year/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-08-31-send-mail-from-command-line-with-attached-file/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-08-31-send-mail-from-command-line-with-attached-file/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/10_Synchronize_Custom_WebSite_with_mobileMe/</loc> <loc>http://yannesposito.com/Scratch/en/blog/10_Synchronize_Custom_WebSite_with_mobileMe/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-02-16-All-but-something-regexp--2-/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-02-16-All-but-something-regexp--2-/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-07-31-New-style-after-holidays/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-07-31-New-style-after-holidays/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/softwares/yaquabubbles/</loc> <loc>http://yannesposito.com/Scratch/fr/softwares/yaquabubbles/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-12-14-Git-vs--Bzr/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-12-14-Git-vs--Bzr/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/06_How_I_use_git/</loc> <loc>http://yannesposito.com/Scratch/en/blog/06_How_I_use_git/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/03_losthighway/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/03_losthighway/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/comprendre/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/comprendre/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/rss/</loc> <loc>http://yannesposito.com/Scratch/en/rss/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-09-jQuery-Tag-Cloud/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-09-jQuery-Tag-Cloud/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/conf-et-install/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/conf-et-install/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-10-launch-daemon-from-command-line/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-10-launch-daemon-from-command-line/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-06-15-Get-my-blog-engine/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-06-15-Get-my-blog-engine/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-03-23-Encapsulate-git/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-03-23-Encapsulate-git/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-03-22-Git-Tips/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-03-22-Git-Tips/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/Haskell-Mandelbrot/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/Haskell-Mandelbrot/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-02-16-All-but-something-regexp--2-/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-02-16-All-but-something-regexp--2-/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/Git-pour-quoi-faire/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/Git-pour-quoi-faire/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-05-24-Trees--Pragmatism-and-Formalism/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-05-24-Trees--Pragmatism-and-Formalism/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-02-23-When-regexp-is-not-the-best-solution/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-02-23-When-regexp-is-not-the-best-solution/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/</loc> <loc>http://yannesposito.com/Scratch/en/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-10-06-New-Blog-Design-Constraints/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-10-06-New-Blog-Design-Constraints/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-05-17-at-least-this-blog-revive/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-05-17-at-least-this-blog-revive/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-08-23-Now-heberged-on-heroku/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-08-23-Now-heberged-on-heroku/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-10-launch-daemon-from-command-line/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-10-launch-daemon-from-command-line/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/conf-et-install/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/conf-et-install/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-03-23-Encapsulate-git/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-03-23-Encapsulate-git/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/softwares/ypassword/web/</loc> <loc>http://yannesposito.com/Scratch/fr/softwares/ypassword/web/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/Learn-Vim-Progressively/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/Learn-Vim-Progressively/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-06-17-track-events-with-google-analytics/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-06-17-track-events-with-google-analytics/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/assets/css/main.css</loc> <loc>http://yannesposito.com/Scratch/assets/css/main.css</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/rss/</loc> <loc>http://yannesposito.com/Scratch/fr/rss/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2011-04-20-Now-hosted-on-github/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2011-04-20-Now-hosted-on-github/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/04_drm/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/04_drm/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/about/technical_details/</loc> <loc>http://yannesposito.com/Scratch/en/about/technical_details/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-06-17-hide-yourself-to-analytics/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-06-17-hide-yourself-to-analytics/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/</loc> <loc>http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-10-Wait-to-hide-a-menu-in-jQuery/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-10-Wait-to-hide-a-menu-in-jQuery/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-10-30-How-to-handle-evil-IE/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-10-30-How-to-handle-evil-IE/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-10-10-Secure-eMail-on-Mac-in-few-steps/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-10-10-Secure-eMail-on-Mac-in-few-steps/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-07-09-Indecidabilities/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-07-09-Indecidabilities/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/01_nanoc/</loc> <loc>http://yannesposito.com/Scratch/en/blog/01_nanoc/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/about/</loc> <loc>http://yannesposito.com/Scratch/en/about/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/</loc> <loc>http://yannesposito.com/Scratch/fr/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-01-04-Change-default-shell-on-Mac-OS-X/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-01-04-Change-default-shell-on-Mac-OS-X/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-05-19-How-to-cut-HTML-and-repair-it/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-05-19-How-to-cut-HTML-and-repair-it/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/softwares/ypassword/iphoneweb/</loc> <loc>http://yannesposito.com/Scratch/fr/softwares/ypassword/iphoneweb/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/softwares/</loc> <loc>http://yannesposito.com/Scratch/en/softwares/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/comprendre/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/comprendre/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2010-06-14-multi-language-choices/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2010-06-14-multi-language-choices/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-11-12-Git-for-n00b/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/05_git_create_remote_branch/</loc> <loc>http://yannesposito.com/Scratch/en/blog/05_git_create_remote_branch/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2010-01-12-antialias-font-in-Firefox-under-Ubuntu/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2010-01-12-antialias-font-in-Firefox-under-Ubuntu/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/feed/feed.xml</loc> <loc>http://yannesposito.com/Scratch/en/blog/feed/feed.xml</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure/</loc> <loc>http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/sitemap.xml</loc> <loc>http://yannesposito.com/Scratch/sitemap.xml</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/fr/softwares/yclock/</loc> <loc>http://yannesposito.com/Scratch/fr/softwares/yclock/</loc>
<lastmod>2011-09-05</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/04_drm/</loc> <loc>http://yannesposito.com/Scratch/en/blog/04_drm/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
<url> <url>
<loc>http://yannesposito.com/Scratch/en/blog/2009-12-14-Git-vs--Bzr/</loc> <loc>http://yannesposito.com/Scratch/en/blog/2009-12-14-Git-vs--Bzr/</loc>
<lastmod>2011-08-29</lastmod> <lastmod>2011-09-12</lastmod>
</url> </url>
</urlset> </urlset>

View file

@ -188,7 +188,7 @@
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Copyright ©, Yann Esposito</a> <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Copyright ©, Yann Esposito</a>
</div> </div>
<div id="lastmod"> <div id="lastmod">
Modified: 09/02/2011 Modified: 09/14/2011
</div> </div>
<div> <div>
Entirely done with Entirely done with

12
resources/.vimrc Normal file
View file

@ -0,0 +1,12 @@
" Add this to your vimrc file to use my two split view with multiple language
autocmd BufRead *latest.md set foldenable
autocmd BufRead *latest.md set foldlevel=0
autocmd BufRead *latest.md set foldminlines=0
autocmd BufRead *latest.md set foldmethod=expr
autocmd BufRead *latest.md set foldtext=''
autocmd BufRead *latest.md set scrollbind
autocmd BufRead *latest.md set foldexpr=getline(v:lnum)=~'^en:\ .*$'
autocmd BufRead *latest.md vsplit
autocmd BufRead *latest.md set foldexpr=getline(v:lnum)=~'^fr:\ .*$'
autocmd BufRead *latest.md set spell