+ <%= @item[:title] %> +
+ <% unless @item[:subtitle].nil? %> ++ <%= @item[:subtitle] %> +
+ <% end %> +<%= tradOf(:comment) %>
+ + <%= generateIntenseDebateThread %> ++
+ <%= @item[:content_for_title].nil? ? @item[:title] : @item[:content_for_title] %> +
+ <% unless @item[:subtitle].nil? and @item[:content_for_subtitle].nil? %> ++ <%= @item[:content_for_subtitle].nil? ? @item[:subtitle] : @item[:content_for_subtitle] %> +
+ <% end %> ++ <%= @item[:title] %> +
+ <% unless @item[:subtitle].nil? %> ++ <%= @item[:subtitle] %> +
+<%= @item[:content_for_title].nil? ? @item[:title] : @item[:content_for_title] %>
+ <% unless @item[:subtitle].nil? and @item[:content_for_subtitle].nil? %> ++ <%= @item[:content_for_subtitle].nil? ? @item[:subtitle] : @item[:content_for_subtitle] %> +
+ <% end %> + + +- "+liste.join(" \n
- ")+"
[#{year}]
- }
+ end
+ res<<='
- ' + res<<=calendar_for(p[:created_at],language)+ + link_to_unless_current(p[:title]+ %{»},p) + res<<=' ' + end + res<<=%{
- '+liste.join('
- ')+'
toto
hello ' + depth.to_s + puts 'parents='+parents.join('; ') + end + next + end + if m[0] == "" + parents[depth]=m[1] + depth+=1 + if debug + puts '<'+m[0]+m[1]+'> ' + depth.to_s + puts 'parents='+parents.join('; ') + end + else + depth-=1 + if (not debug) and (depth <0) + puts 'ERROR repair_html: ' + puts 'HTML: ' + html + puts '---' + repair_html(html,true) + puts 'END_ERROR' + end + if debug + puts '<'+m[0]+m[1]+'> ' + depth.to_s + end + end + end + res=html.sub(/<[^>]*$/m,'') + depth -= 1 + if (depth < 0) + parents=[] + depth=0 + html.scan( %r{<(/?)(\w*)[^>]*(/?)>} ).each do |m| + if m[2] == "/" + puts 'IGNORE: <'+m[0]+m[1]+m[2]+'> ' + depth.to_s + next + end + if m[0] == "" + parents[depth]=m[1] + depth+=1 + puts '<'+m[0]+m[1]+'> ' + depth.to_s + puts 'parents='+parents.join('; ') + else + depth-=1 + puts '<'+m[0]+m[1]+'> ' + depth.to_s + end + end + end + depth.downto(0).each { |x| res<<= %{#{parents[x]}>} } + res +end diff --git a/lib/syntaxColorize.rb b/lib/syntaxColorize.rb new file mode 100644 index 0000000..79bcad2 --- /dev/null +++ b/lib/syntaxColorize.rb @@ -0,0 +1,68 @@ +module Nanoc3::Helpers + + module SyntaxColorize + + require 'nanoc3/helpers/capturing' + include Nanoc3::Helpers::Capturing + + def syntax_colorize(lang, type=:ultraviolet, &block) + # Capture block + data = capture(&block) + + # Remove whitespace + lines = data.split("\n") + min_indent = lines.inject(nil) do |memo, line| + next memo if line =~ /^\s*$/ + next memo if line !~ /^(\s*)/ + [ memo, $1.size ].compact.min + end + lines.each do |line| + line[0,min_indent] = '' + end + data = lines.join("\n") + + # Process + case type + when :ultraviolet + begin + require 'uv' + if lang =~ /^(zsh|bash|sh|csh|shell)$/ + lang='shell-unix-generic' + end + filtered_data = Uv.parse(data, 'xhtml', lang, false, 'twilight') + rescue LoadError + unless $_WARNED_ABOUT_ULTRAVIOLET + warn "WARNING: Couldn't load uv; please install the ultraviolet gem. This message will not appear again." + end + $_WARNED_ABOUT_ULTRAVIOLET = true + + filtered_data = '
' + h(data) + '' + end + + # Convert to HTML + filtered_data = filtered_data.strip.sub(%r{/ ?>}, '>') # convert to HTML + + # Add missing
in
+ filtered_data.sub!(/^\s*()\s*/) { |m| "#{m}" }
+ filtered_data.sub!(/\s*(<\/pre>)\s*$/) { |m| "
#{m}" }
+ when :coderay
+ # Find filter
+ klass = Nanoc3::Filter.named(:coderay)
+ filter = klass.new(@item_rep.assigns)
+
+ # Filter captured data
+ filtered_data = filter.run(data, :language => lang).strip
+ else
+ raise ArgumentError, "invalid type: #{type}"
+ end
+
+ # Append filtered data to buffer
+ buffer = eval('_erbout', block.binding)
+ buffer << '' if type == :coderay
+ buffer << filtered_data
+ buffer << '
' if type == :coderay
+ end
+
+ end
+
+end
diff --git a/lib/tag.rb b/lib/tag.rb
new file mode 100644
index 0000000..4b3ac5b
--- /dev/null
+++ b/lib/tag.rb
@@ -0,0 +1,112 @@
+# All files in the 'lib' directory will be loaded
+# before nanoc starts compiling.
+
+# module Tags
+ def tags
+ if @item[:tags].nil?
+ return ''
+ end
+ @item[:tags].join(', ')
+ end
+
+ def alltags
+ language=@item.path
+ language =~ %r{#{@config[:webprefix]}/([^/]*)/}
+ language = $1
+ @items.select {|p| p.path =~ %r{#{@config[:webprefix]}/#{language}/} and p[:kind].to_s == "article" and p.parent[:kind].to_s == 'blog'}
+ end
+
+ def tagNumber
+ tags={}
+ alltags.each do |p|
+ if p[:tags].nil?
+ next
+ end
+ p[:tags].each do |t|
+ if tags[t]
+ tags[t]+=1
+ else
+ tags[t]=1
+ end
+ end
+ end
+ return tags
+ end
+
+ def tagRefs
+ tagLinks={}
+ alltags.each do |p|
+ if p[:tags].nil?
+ next
+ end
+ p[:tags].each do |t|
+ if tagLinks[t].nil?
+ tagLinks[t]=[ p ]
+ else
+ tagLinks[t] <<= p
+ end
+ end
+ end
+ return tagLinks
+ end
+
+ def tagCloud(maxwords=nil)
+ tags=tagNumber
+ if not maxwords.nil?
+ i=1
+ while tags.count > maxwords
+ tags=tags.reject{ |k,v| v
+ $(document).ready( function(){$('.list').hide();$('#tagcloud a').removeAttr("href")} );
+ function tagSelected(id) {
+ $('.list').hide();
+ $('#'+id).fadeIn();
+ $('.tag.selected').removeClass('selected');
+ $('#tag_'+id).addClass('selected');
+ }
+ }
+ tagSize.sort{|a,b| a[0].downcase <=> b[0].downcase}.each do |t,s|
+ protected=t.gsub(/\W/,'_')
+ grouped=t.gsub(/&/,'&').gsub(/ /,' ').gsub(/,'<').gsub(/>/,'>')
+ tagCloud <<= %{#{grouped} }
+ end
+ tagCloud <<= %{ }
+ return tagCloud
+ end
+# end
diff --git a/lib/ultraviolet.rb b/lib/ultraviolet.rb
new file mode 100644
index 0000000..f9412b5
--- /dev/null
+++ b/lib/ultraviolet.rb
@@ -0,0 +1,40 @@
+class UltraVioletFilter < Nanoc3::Filter
+ identifier :ultraviolet
+
+ def run(content, params={})
+ require 'rubygems'
+ require 'uv'
+ code_rule = %r{((.+?)
)}m
+ new_content=content.gsub(code_rule) do |full|
+ @lang, @filename, @code = $2, $4, $5
+ if @lang =~ /^(zsh|bash|sh|csh|shell)$/
+ @lang='shell-unix-generic'
+ end
+ @codeprefix=''
+ @codesuffix=''
+ if not @filename.nil? and @filename != ""
+ create_file_for_code
+ end
+ @codeprefix+
+ Uv.parse(@code, "xhtml", @lang, false, @config[:ultraviolet_theme])+
+ @codesuffix
+ end
+ return new_content
+ end
+
+ private
+ def create_file_for_code
+ # Create a plaintext file version for download.
+ webpath = @item.path
+
+ url = webpath + 'code/' + @filename
+ @codeprefix=%{\n}
+ @codesuffix=%{\n}
+
+ code_path = "output#{webpath}code"
+ puts %{\t\tEcriture de #{code_path}/#{@filename}}
+ FileUtils.mkdir_p code_path
+ File.open(%{#{code_path}/#{@filename}}, 'w'){|f|f.write(@code)}
+ end
+
+end
diff --git a/lib/y.rb b/lib/y.rb
new file mode 100644
index 0000000..b132549
--- /dev/null
+++ b/lib/y.rb
@@ -0,0 +1,166 @@
+# All files in the 'lib' directory will be loaded
+# before nanoc starts compiling.
+
+def allExceptCode( f, content )
+ regexp=/]*>.*?<\/code>/m
+ tmp=""
+ mem=[]
+ content.scan(regexp).each do |c|
+ mem <<= c
+ end
+ i=0
+ content.split(regexp).each do |x|
+ tmp <<= send(f,x)
+ if not mem[i].nil?
+ tmp <<= mem[i]
+ i+=1
+ end
+ end
+ tmp
+end
+
+module Nanoc3::Filters
+ class MathJaxKramdownRepair < Nanoc3::Filter
+ identifiers :math_repair
+
+ def description(content)
+ content.gsub(/(.+?)<\/div>/m) do
+ return %{$$ #{$1} $$}
+ end
+ end
+
+ def run(content, params={})
+ allExceptCode( :description , content )
+ end
+ end
+
+ class Description < Nanoc3::Filter
+ identifiers :description
+
+ def description(content)
+ content.gsub(/^\s*]*)?>(.+?)<\/desc>/m) do
+ n=0
+ if $1 then
+ summary=$1
+ summary.slice!(0)
+ else
+ summary="no description"
+ end
+ ''+$2.gsub(/([^:]+):(.+?)::/m) do
+ n+=1
+ if n % 2 == 0
+ sombre=' class="assombris10"'
+ else
+ sombre=' class="assombris20"'
+ end
+ ''+$1+' '+$2+' '
+ end+'
'
+ end
+ end
+
+ def run(content, params={})
+ allExceptCode( :description , content )
+ end
+ end
+
+ class FrenchSpace < Nanoc3::Filter
+ identifiers :frenchspace
+ def ameliorate(content)
+ content.gsub(/ ([:;!?]|&eq;|≠)/) { " "+$1 }
+ end
+ def run(content, params={})
+ allExceptCode( :ameliorate, content )
+ end
+ end
+
+ class Footnotes < Nanoc3::Filter
+ identifiers :footnotes
+ def hr_before_footnote(content)
+ content.gsub(//) { %{
#{$&}} }
+ end
+ def run(content, params={})
+ allExceptCode( :hr_before_footnote, content )
+ end
+ end
+
+ class FirstHierarchy < Nanoc3::Filter
+ identifiers :firsthi
+ def run(content, params={})
+ content.gsub(/\A(\s|\n)*]*class="corps"[^>]*>(\s)*(.*?)<\/sc>/m) do
+ %{}+$1+%{}
+ end.gsub(/''(.*?)''/m)do
+ %{}+$1+%{
}
+ end.gsub(/\(c\)/) do
+ %{©}
+ end.gsub(/\(r\)/) do
+ %{®}
+ end.gsub(/-(>|>)/) do
+ %{→}
+ end.gsub(/(<|<)-/) do
+ %{←}
+ end
+ end
+ def run(content, params={})
+ allExceptCode( :ytypofunc, content )
+ end
+ end
+
+ class YAbbreviations < Nanoc3::Filter
+ identifiers :yabbreviations
+ def makeabbreviations(text)
+ {
+ 'WebDav' => 'Web-based Distributed Authoring and Versionning',
+ 'cms' => 'Content Management System',
+ 'xml' => 'eXtended Markup Language',
+ }.each do |keyword,abbreviation|
+ text=text.gsub(/\b#{keyword}\b/i) do
+ %{#{keyword}}
+ end
+ end
+ return text
+ end
+
+ def run(content, params={})
+ allExceptCode(:makeabbreviations, content )
+ end
+ end
+
+ class MultiCorps < Nanoc3::Filter
+ identifiers :multicorps
+ def run(content, params={})
+ content.gsub(/^.*newcorps.*$/) do
+ %{\n \n\n\n}
+ end.gsub(/^.*begindiv\((.*)\).*$/) do
+ %{\n\n}
+ end.gsub(/^.*enddiv.*$/) do
+ %{\n\n}
+ end
+ end
+ end
+end
+
+def block(title, url, text, position="left")
+ return %{
+
+ #{title}
+ »
+
+
+
+ #{text}
+
+ }
+end
diff --git a/multi/blog.erb b/multi/blog.erb
new file mode 100644
index 0000000..c056dbf
--- /dev/null
+++ b/multi/blog.erb
@@ -0,0 +1,121 @@
+-----
+kind: blog
+title: Blog
+menupriority: 2
+noSubMenu: true
+-----
+<%
+ number_of_articles=5
+ number_of_char_for_resume=800
+ language=@item_rep.path.sub(/\/Scratch\//,'').sub(/\/.*$/,'')
+ last_articles = @items.select do |a|
+ a.reps[0].path =~ /\/#{language}\// && a[:kind] == 'article'
+ end
+ last_articles=last_articles.sort { |x,y| y[:created_at] <=> x[:created_at] }[0..(number_of_articles-1)]
+
+def dArr
+ return %{⇓}
+end
+%>
+
+
+en: - <%= number_of_articles %> latest articles <%=dArr%>
+fr: - Les <%= number_of_articles %> derniers articles <%=dArr%>
+en: - Tag Cloud <%=dArr%>
+fr: - Nuage de mots clés <%=dArr%>
+- Achives <%=dArr%>
+en: - Two words about the content <%=dArr%>
+fr: - Un petit mot sur le contenu <%=dArr%>
+
+
+
+en: Last <%= number_of_articles %> Articles
+fr: Les <%= number_of_articles %> derniers articles
+
+
+
+
+<% last_articles.each do |a| %>
+
+ <%= calendar_for( a[:created_at], language ) %>
+ <%= link_to(a[:title]+%{ »}, a) %>
+
+
+
+
+ <%
+ puts "%%%"
+ puts excerptize( a.reps[0].compiled_content, {:length => number_of_char_for_resume})
+ puts "%%%"
+ %>
+ <%= repair_html ( excerptize( a.reps[0].compiled_content, {:length => number_of_char_for_resume} ) ) %>
+
+
+
+
+fr: <%= link_to(%{en lire plus »}, a) %>
+en: <%= link_to(%{Read more »}, a) %>
+
+
+
+
+<% end %>
+
+
+
+<%= tagCloud %>
+
+
+
+Archives
+
+<%= generateBlogSubMenu(language) %>
+
+en:
+en: Two words about the content
+fr:
+fr: Un petit mot sur le contenu
+
+
+
+
+
+en:
+en: Here you'll can find mostly technical articles.
+en: Some are just reminder of technical tips.
+en: But some are long and technically detailled articles.
+en:
+en:
+en:
+en: I do my best to traduce each page in french and in english.
+en: It not always easy. English is not my natural language.
+en: I make many errors, orthographic, grammatical, typographical…
+en:
+en:
+en: Thanks not to judge me based on these errors! And don't forget content is more important than presentation!
+en:
+en: The first impression I'll let you if we meet in real life should be different from the one I let you based on my website.
+en:
+en: I wish you to find something useful or interesting on this website.
+en:
+
+fr:
+fr: Vous trouverez ici des articles qui sont pour la plupart
+fr: écrits en anglais et qui sont techniques.
+fr: Certain sont justes là pour me souvenir de petits trucs, que
+fr: d'autres pourraient trouver utiles. Mais il y a aussi de
+fr: long articles techniques qui vont un peu plus dans les détails.
+fr:
+fr:
+fr:
+fr: Je fais de mon mieux pour traduire chaque page en anglais et en français.
+fr: Cependant, ce n'est pas toujours évident.
+fr: Il m'arrive de faire de nombreuses fautes d'orthographes, des erreurs typographiques et autres.
+fr:
+fr:
+fr: Merci de ne pas me juger sur ces erreurs et de ne pas oublier que le fond est plus important que la forme.
+fr:
+fr: L'impression que ce site laisse de moi n'est certainement pas l'impression que je vous laisserais si on se rencontrait.
+fr:
+fr: Je vous souhaite de trouver ce que vous cherchez sur ce site.
+fr:
diff --git a/multi/index.erb b/multi/index.erb
new file mode 100644
index 0000000..79bcea6
--- /dev/null
+++ b/multi/index.erb
@@ -0,0 +1,133 @@
+---
+en: title: YPassword
+fr: title: Bienvenue
+noSubMenu: true
+no_entete: true
+---
+<% content_for :title do %>
+
+ YPassword
+
+<% end %>
+<% content_for :subtitle do %>
+ Yogsototh
+<% end %>
+
+
+en:
+en:
+en:
+en: Blog
+en: »
+en:
+en:
+en:
+en: Computer, Philosophy & Life.
+en:
+en:
+en:
+en:
+en:
+en: Softwares
+en: »
+en:
+en:
+en:
+en: Password Manager,
+en: Screensavers &
+en: Scientific Applications.
+en:
+en:
+en:
+en:
+en: Contact
+en: »
+en:
+en:
+en:
+en: Don't be shy, I'll be happy to talk to you.
+en:
+en:
+en:
+
+fr:
+fr:
+fr:
+fr: Blog
+fr: »
+fr:
+fr:
+fr:
+fr: Ordinateurs, philosophie & des choses de la vie.
+fr:
+fr:
+fr:
+fr:
+fr:
+fr: Logiciels
+fr: »
+fr:
+fr:
+fr:
+fr: Des économiseurs d'écran,
+fr: un gestionnaire de mots de passe &
+fr: des applications scientifiques.
+fr:
+fr:
+fr:
+fr:
+fr:
+fr: Contact
+fr: »
+fr:
+fr:
+fr:
+fr: Au diable la timidité, n'hésitez pas à me contacter, je serai ravi de vous parler.
+fr:
+fr:
+fr:
+fr:
+fr:
+fr:
+fr: Curriculum Vitæ
+fr: »
+fr:
+fr:
+fr:
+fr: Doctorat → Post Doc → Consultant
+fr: Geek → G33K → G33|<
+fr:
+fr:
+fr:
+fr:
+fr:
+fr:
+fr:
+fr: Enseignement
+fr: »
+fr:
+fr:
+fr:
+fr: Informatique:
+fr: TD, TD & solutions
+fr: BAC+1 à BAC+5
+fr: Projet réseau anonyme
+fr: »
+fr:
+fr:
+fr:
+fr:
+fr:
+fr:
+fr: Photos
+fr: »
+fr:
+fr:
+fr:
+fr:
+fr: Cliquez ici pour avoir le mot de passe.
+fr: »
+fr:
+fr:
+fr:
+
diff --git a/site/Scratch/en/blog/feed/feed.xml b/site/Scratch/en/blog/feed/feed.xml
new file mode 100644
index 0000000..e69de29
diff --git a/site/Scratch/en/blog/index.html b/site/Scratch/en/blog/index.html
new file mode 100644
index 0000000..db53ba9
--- /dev/null
+++ b/site/Scratch/en/blog/index.html
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Blog
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Blog
+
+
+
+
+
+
+
+
+
+
+Last 5 Articles
+
+
+
+
+
+
+
+
+
+
+
+
+Archives
+
+
+
+
+Two words about the content
+
+
+
+
+
+
+Here you'll can find mostly technical articles.
+Some are just reminder of technical tips.
+But some are long and technically detailled articles.
+
+
+
+ I do my best to traduce each page in french and in english.
+It not always easy. English is not my natural language.
+I make many errors, orthographic, grammatical, typographical…
+
+
+ Thanks not to judge me based on these errors! And don't forget content is more important than presentation!
+
+The first impression I'll let you if we meet in real life should be different from the one I let you based on my website.
+
+I wish you to find something useful or interesting on this website.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/site/Scratch/en/index.html b/site/Scratch/en/index.html
new file mode 100644
index 0000000..91d2c2e
--- /dev/null
+++ b/site/Scratch/en/index.html
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ YPassword
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ YPassword
+
+
+
+
+
+ Yogsototh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Blog
+ »
+
+
+
+ Computer, Philosophy & Life.
+
+
+
+
+
+ Softwares
+ »
+
+
+
+ Password Manager,
+ Screensavers &
+ Scientific Applications.
+
+
+
+
+ Contact
+ »
+
+
+
+ Don't be shy, I'll be happy to talk to you.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/site/Scratch/fr/blog/feed/feed.xml b/site/Scratch/fr/blog/feed/feed.xml
new file mode 100644
index 0000000..e69de29
diff --git a/site/Scratch/fr/blog/index.html b/site/Scratch/fr/blog/index.html
new file mode 100644
index 0000000..bdd384f
--- /dev/null
+++ b/site/Scratch/fr/blog/index.html
@@ -0,0 +1,198 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Blog
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Blog
+
+
+
+
+
+
+
+
+
+
+Les 5 derniers articles
+
+
+
+
+
+
+
+
+
+
+
+
+Archives
+
+
+
+
+Un petit mot sur le contenu
+
+
+
+
+
+
+
+Vous trouverez ici des articles qui sont pour la plupart
+écrits en anglais et qui sont techniques.
+Certain sont justes là pour me souvenir de petits trucs, que
+d'autres pourraient trouver utiles. Mais il y a aussi de
+long articles techniques qui vont un peu plus dans les détails.
+
+
+
+ Je fais de mon mieux pour traduire chaque page en anglais et en français.
+Cependant, ce n'est pas toujours évident.
+Il m'arrive de faire de nombreuses fautes d'orthographes, des erreurs typographiques et autres.
+
+
+ Merci de ne pas me juger sur ces erreurs et de ne pas oublier que le fond est plus important que la forme.
+
+L'impression que ce site laisse de moi n'est certainement pas l'impression que je vous laisserais si on se rencontrait.
+
+Je vous souhaite de trouver ce que vous cherchez sur ce site.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/site/Scratch/fr/index.html b/site/Scratch/fr/index.html
new file mode 100644
index 0000000..3318b68
--- /dev/null
+++ b/site/Scratch/fr/index.html
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Bienvenue
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ YPassword
+
+
+
+
+
+ Yogsototh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Blog
+ »
+
+
+
+ Ordinateurs, philosophie & des choses de la vie.
+
+
+
+
+
+ Logiciels
+ »
+
+
+
+ Des économiseurs d'écran,
+ un gestionnaire de mots de passe &
+ des applications scientifiques.
+
+
+
+
+
+ Contact
+ »
+
+
+
+ Au diable la timidité, n'hésitez pas à me contacter, je serai ravi de vous parler.
+
+
+
+
+
+
+ Curriculum Vitæ
+ »
+
+
+
+ Doctorat → Post Doc → Consultant
+ Geek → G33K → G33|<
+
+
+
+
+
+
+
+ Enseignement
+ »
+
+
+
+ Informatique:
+ TD, TD & solutions
+ BAC+1 à BAC+5
+ Projet réseau anonyme
+ »
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/site/Scratch/sitemap.xml b/site/Scratch/sitemap.xml
new file mode 100644
index 0000000..208dd2a
--- /dev/null
+++ b/site/Scratch/sitemap.xml
@@ -0,0 +1,12 @@
+
+
+
+ http://yannesposito.com/Scratch/en/blog/feed/feed.xml
+
+
+ http://yannesposito.com/Scratch/sitemap.xml
+
+
+ http://yannesposito.com/Scratch/fr/blog/feed/feed.xml
+
+
diff --git a/site/css/main.css b/site/css/main.css
index d3c76ca..5182671 100644
--- a/site/css/main.css
+++ b/site/css/main.css
@@ -1,16 +1,28 @@
@charset "UTF-8";
-/* line 19, ../src/main.scss */
+/* line 26, ../src/main.scss */
body {
background-color: #f6f6f0;
font-family: 'Kreon', Palatino, Georgia, arial, serif;
}
-/* line 23, ../src/main.scss */
+/* line 31, ../src/main.scss */
+a {
+ color: #7689a6;
+ border: none;
+ text-decoration: none;
+}
+
+/* line 36, ../src/main.scss */
+a:hover {
+ color: #88aadd;
+}
+
+/* line 40, ../src/main.scss */
#metacontainer {
border-bottom: 1px solid #888;
}
-/* line 26, ../src/main.scss */
+/* line 43, ../src/main.scss */
body > header {
margin: 0;
color: #CCC;
@@ -23,7 +35,7 @@ body > header {
box-shadow: #333333 0px 1px 5px 0;
}
-/* line 34, ../src/main.scss */
+/* line 51, ../src/main.scss */
body > footer {
border-top: solid 2px rgba(0, 0, 0, 0.1);
border-bottom: solid 1px rgba(0, 0, 0, 0.1);
@@ -39,17 +51,17 @@ body > footer {
box-shadow: #888888 0px 1px 5px 0;
}
-/* line 45, ../src/main.scss */
+/* line 62, ../src/main.scss */
nav {
border-bottom: solid 1px rgba(0, 0, 0, 0.1);
}
-/* line 48, ../src/main.scss */
+/* line 65, ../src/main.scss */
nav ul {
list-style-type: none;
}
-/* line 51, ../src/main.scss */
+/* line 68, ../src/main.scss */
nav ul li {
display: inline-block;
height: 50px;
@@ -59,11 +71,10 @@ nav ul li {
border-right: solid 1px rgba(0, 0, 0, 0.2);
}
-/* line 59, ../src/main.scss */
+/* line 76, ../src/main.scss */
nav ul li a {
color: rgba(255, 255, 255, 0.8);
display: block;
- text-decoration: none;
margin-right: 0px;
margin-left: 0px;
text-shadow: -1px -1px rgba(0, 0, 0, 0.2), 1px 1px rgba(0, 0, 0, 0.2);
@@ -71,23 +82,23 @@ nav ul li a {
height: 100%;
}
-/* line 68, ../src/main.scss */
+/* line 84, ../src/main.scss */
nav ul li a:hover {
color: rgba(255, 255, 255, 0.8);
background-color: rgba(255, 255, 255, 0.1);
}
-/* line 72, ../src/main.scss */
+/* line 88, ../src/main.scss */
#main {
margin: 0px auto;
}
-/* line 75, ../src/main.scss */
+/* line 91, ../src/main.scss */
#container {
margin: 0px auto;
}
-/* line 79, ../src/main.scss */
+/* line 95, ../src/main.scss */
h1, h2, h3, h4, h5, h6 {
font-family: 'Expletus Sans',Futura,sans-serif;
text-shadow: 0px -1px 0px #2233aa, 0px 1px 0px white;
diff --git a/site/example.html b/site/example.html
deleted file mode 100644
index 7c2143a..0000000
--- a/site/example.html
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/site/humans.txt b/site/humans.txt
index 21a5b67..6ebf77c 100644
--- a/site/humans.txt
+++ b/site/humans.txt
@@ -3,10 +3,10 @@
/* TEAM */
- :
- Site:
- Twitter:
- Location:
+ Creator: Yann Esposito
+ Site: yannesposito.com
+ Twitter: yogsototh
+ Location: France
/* THANKS */
Names (& URL):
diff --git a/site/src/main.scss b/site/src/main.scss
index cbb430a..78331d0 100644
--- a/site/src/main.scss
+++ b/site/src/main.scss
@@ -10,16 +10,33 @@ $default-box-shadow-h-offset : 0px;
// 2C5490 -> dark
// 7689A6 -> grey
+$mainColor: #88AADD;
+$lightGrey: #BCD0EE;
+$light : #A9C5EE;
+$dark : #2C5490;
+$darkGrey : #7689A6;
+
$backgroundColor: #f6f6f0;
$higlightColor: #8AD;
$higlightColorShadow: #23A;
$topColor: #2C5490;
$footerColor: #BCD0EE;
+$linkColor: $darkGrey;
body {
background-color: $backgroundColor;
font-family: 'Kreon', Palatino, Georgia, arial, serif;
}
+
+a {
+ color: $linkColor;
+ border: none;
+ text-decoration: none;
+}
+a:hover {
+ color: $higlightColor;
+}
+
#metacontainer{
border-bottom: 1px solid #888;
}
@@ -58,7 +75,6 @@ nav ul li {
}
nav ul li a { color: rgba(255,255,255,0.8);
display: block;
- text-decoration: none;
margin-right: 0px;
margin-left: 0px;
text-shadow: -1px -1px rgba(0,0,0,0.2), 1px 1px rgba(0,0,0,0.2);
diff --git a/site/stylesheets/less.css b/site/stylesheets/less.css
deleted file mode 100644
index dedf304..0000000
--- a/site/stylesheets/less.css
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Less Framework 4
- * http://lessframework.com
- * by Joni Korpi
- * License: http://creativecommons.org/licenses/MIT/ */
-/* line 7, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_reset.scss */
-html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6,
-p, blockquote, pre, a, abbr, address, cite, code, del, dfn, em,
-img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, hr,
-dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td,
-article, aside, canvas, details, figure, figcaption, hgroup,
-menu, footer, header, nav, section, summary, time, mark, audio, video {
- margin: 0;
- padding: 0;
- border: 0;
-}
-
-/* line 14, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_reset.scss */
-article, aside, canvas, figure, figure img, figcaption, hgroup,
-footer, header, nav, section, audio, video {
- display: block;
-}
-
-/* line 18, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_reset.scss */
-a img {
- border: 0;
-}
-
-/* line 1, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
-.gigantic {
- font-size: 110px;
- line-height: 120px;
- letter-spacing: -2px;
-}
-
-/* line 7, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
-.huge, h1 {
- font-size: 68px;
- line-height: 72px;
- letter-spacing: -1px;
-}
-
-/* line 13, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
-.large, h2 {
- font-size: 42px;
- line-height: 48px;
-}
-
-/* line 18, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
-.bigger, h3 {
- font-size: 26px;
- line-height: 36px;
-}
-
-/* line 23, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
-.big, h4 {
- font-size: 22px;
- line-height: 30px;
-}
-
-/* line 28, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
-body {
- font: 16px/24px Georgia, serif;
-}
-
-/* line 32, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
-.small, small {
- font-size: 13px;
- line-height: 18px;
-}
-
-/* line 18, ../src/partials/_global.scss */
-body {
- background: #e8e8e8;
- color: #3c3c3c;
- -webkit-text-size-adjust: 100%;
-}
-
-/* line 34, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_framework.scss */
-::selection {
- background: rgb(255,255,158);
-}
-
-/* line 35, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_framework.scss */
-::-moz-selection {
- background: rgb(255,255,158);
-}
-
-/* line 36, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_framework.scss */
-img::selection {
- background: transparent;
-}
-
-/* line 37, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_framework.scss */
-img::-moz-selection {
- background: transparent;
-}
-
-/* line 38, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_framework.scss */
-body {
- -webkit-tap-highlight-color: rgb(255,255,158);
-}
-
-/* Default Layout: 992px.
- * Gutters: 24px.
- * Outer margins: 48px.
- * Leftover space for scrollbars @1024px: 32px. */
-/* line 6, ../src/partials/_default.scss */
-#container {
- width: 896px;
- padding: 72px 48px 84px;
-}
-
-/* Tablet Layout: 768px.
- * Gutters: 24px.
- * Outer margins: 28px.
- * Inherits styles from: Default Layout. */
-@media only screen and (min-width: 768px) and (max-width: 991px) {
- /* line 7, ../src/partials/_tablet.scss */
- #container {
- width: 712px;
- padding: 48px 28px 60px;
- }
-}
-
-/* Mobile Layout: 320px.
- * Gutters: 24px.
- * Outer margins: 34px.
- * Inherits styles from: Default Layout. */
-@media only screen and (max-width: 767px) {
- /* line 7, ../src/partials/_mobile.scss */
- #container {
- width: 252px;
- padding: 48px 34px 60px;
- }
-}
-
-/* Wide Mobile Layout: 480px.
- * Gutters: 24px.
- * Outer margins: 22px.
- * Inherits styles from: Default Layout, Mobile Layout. */
-@media only screen and (min-width: 480px) and (max-width: 767px) {
- /* line 7, ../src/partials/_wide-mobile.scss */
- #container {
- width: 436px;
- padding: 36px 22px 48px;
- }
-}
-
-/* Retina media query.
- Overrides styles for devices with a
- device-pixel-ratio of 2+, such as iPhone 4. */
-@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {}
diff --git a/site/stylesheets/main.css b/site/stylesheets/main.css
deleted file mode 100644
index 70bf291..0000000
--- a/site/stylesheets/main.css
+++ /dev/null
@@ -1,4 +0,0 @@
-/* line 1, ../src/main.scss */
-#container {
- margin: 0 auto;
-}
diff --git a/tasks/auto_tags/all_frequencies.rb b/tasks/auto_tags/all_frequencies.rb
new file mode 100755
index 0000000..e6b94a4
--- /dev/null
+++ b/tasks/auto_tags/all_frequencies.rb
@@ -0,0 +1,57 @@
+#!/usr/bin/env ruby
+
+class Frequencies
+
+ def initialize
+ @nbwords=0
+ @tag=Hash.new
+ end
+
+ def nbwords
+ @nbwords
+ end
+
+ def is_bad_word(w)
+ if w.length < 3
+ return true
+ end
+ if w !~ /\A(\w|\d)*\Z/
+ return true
+ end
+ return false
+ end
+
+ def update_density(content)
+ content.split(/\b/).each do |m|
+ if is_bad_word(m)
+ next
+ end
+ @nbwords += 1
+ if @tag.has_key?(m)
+ @tag[m]+=1
+ else
+ @tag[m]=1
+ end
+ end
+ end
+
+ def show_tags
+ @tag.keys.sort_by do |k|
+ @tag[k]
+ end.each do |k|
+ puts %{#{@tag[k]} #{k}}
+ end
+ end
+end
+
+f=Frequencies.new
+
+ARGV.each do |file|
+ puts '['+file+']'
+ fic=File.open(file)
+ fic.each_line do |l|
+ f.update_density(l)
+ end
+ fic.close
+end
+f.show_tags
diff --git a/tasks/auto_tags/density.rb b/tasks/auto_tags/density.rb
new file mode 100755
index 0000000..fa330ff
--- /dev/null
+++ b/tasks/auto_tags/density.rb
@@ -0,0 +1,69 @@
+#!/usr/bin/env ruby
+
+class Density
+ def density(content)
+ tag=Hash.new
+ nbwords=0
+ content.split(/\b/).each do |m|
+ if m.length < 3
+ next
+ end
+ if m !~ /\A(\w|\d)*\Z/
+ next
+ end
+ nbwords += 1
+ if tag.has_key?(m)
+ tag[m]+=1
+ else
+ tag[m]=1
+ end
+ end
+ nbwords=nbwords.to_f
+ res=Hash.new
+ tag.each do |w,v|
+ if v == 1
+ next
+ end
+ res[w]=v/nbwords
+ end
+ return res
+ end
+
+
+ def initialize
+ fic=File.open('frequencies.val')
+ @sum=0
+ @all_freq=Hash.new
+ fic.each_line do |l|
+ l =~ /([^ ]*) (.*)/
+ nb=$1.to_i
+ @all_freq[$2]=nb
+ @sum+=nb
+ end
+ fic.close
+ end
+
+
+ def show_tags(hash)
+ hash.keys.sort_by do |k|
+ -hash[k]/( @all_freq[k] / @sum )
+ end[0..10].each do |k|
+ puts %{#{hash[k]}: #{k}}
+ end
+ end
+
+end
+
+freq_for={}
+d=Density.new
+ARGV.each do |file|
+ puts '['+file+']'
+ fic=File.open(file)
+ content=""
+ fic.each_line do |l|
+ content <<= l
+ end
+ fic.close
+ freq_for[file]=d.density(content)
+ d.show_tags(freq_for[file])
+end
diff --git a/tasks/auto_tags/frequencies.val b/tasks/auto_tags/frequencies.val
new file mode 100644
index 0000000..12e04ee
--- /dev/null
+++ b/tasks/auto_tags/frequencies.val
@@ -0,0 +1,4350 @@
+[content/html/en/about.md]
+[content/html/en/about/old.md]
+[content/html/en/about/technical_details.md]
+[content/html/en/blog/01_nanoc.md]
+[content/html/en/blog/02_ackgrep.md]
+[content/html/en/blog/03_losthighway/03_losthighway_1.md]
+[content/html/en/blog/03_losthighway/03_losthighway_2.md]
+[content/html/en/blog/03_losthighway/03_losthighway_3.md]
+[content/html/en/blog/03_losthighway/03_losthighway_4.md]
+[content/html/en/blog/03_losthighway.md]
+[content/html/en/blog/04_drm.md]
+[content/html/en/blog/05_git_create_remote_branch.md]
+[content/html/en/blog/06_How_I_use_git.md]
+[content/html/en/blog/07_Screensaver_compilation_option_for_Snow_Leopard.md]
+[content/html/en/blog/08_Configure_ssh_to_listen_the_port_443_on_Snow_Leopard.md]
+[content/html/en/blog/09_Why_I_didn't_keep_whosamung.us.md]
+[content/html/en/blog/10_Synchronize_Custom_WebSite_with_mobileMe.md]
+[content/html/en/blog/11_Load_Disqus_Asynchronously.md]
+[content/html/en/blog/2009-09-Disqus-versus-Intense-Debate--Why-I-switched-.md]
+[content/html/en/blog/2009-09-jQuery-Tag-Cloud.md]
+[content/html/en/blog/2009-09-replace-all-except-some-part.md]
+[content/html/en/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-.md]
+[content/html/en/blog/2009-10-30-How-to-handle-evil-IE.md]
+[content/html/en/blog/2009-10-Focus-vs-Minimalism.md]
+[content/html/en/blog/2009-10-How-to-preload-your-site-with-style.md]
+[content/html/en/blog/2009-10-launch-daemon-from-command-line.md]
+[content/html/en/blog/2009-10-untaught-git-usage.md]
+[content/html/en/blog/2009-10-Wait-to-hide-a-menu-in-jQuery.md]
+[content/html/en/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure.md]
+[content/html/en/blog/2009-11-12-Git-for-n00b/commandes-avancees.md]
+[content/html/en/blog/2009-11-12-Git-for-n00b/comprendre.md]
+[content/html/en/blog/2009-11-12-Git-for-n00b/conf-et-install.md]
+[content/html/en/blog/2009-11-12-Git-for-n00b/Git-pour-quoi-faire.md]
+[content/html/en/blog/2009-11-12-Git-for-n00b.md]
+[content/html/en/blog/2009-12-06-iphone-call-filter.md]
+[content/html/en/blog/2009-12-14-Git-vs--Bzr.md]
+[content/html/en/blog/2010-01-04-Change-default-shell-on-Mac-OS-X.md]
+[content/html/en/blog/2010-01-12-antialias-font-in-Firefox-under-Ubuntu.md]
+[content/html/en/blog/2010-02-15-All-but-something-regexp.md]
+[content/html/en/blog/2010-02-16-All-but-something-regexp--2-.md]
+[content/html/en/blog/2010-02-18-split-a-file-by-keyword.md]
+[content/html/en/blog/2010-02-23-When-regexp-is-not-the-best-solution.md]
+[content/html/en/blog/2010-03-22-Git-Tips.md]
+[content/html/en/blog/2010-03-23-Encapsulate-git.md]
+[content/html/en/blog.md]
+[content/html/en/blog/mvc.md]
+[content/html/en/contact.md]
+[content/html/en/error/401-authorization_required.md]
+[content/html/en/error/403-forbidden.md]
+[content/html/en/error/404-not_found.md]
+[content/html/en/error/408-request_timed_out.md]
+[content/html/en/error/500-internal_server_error.md]
+[content/html/en/error/503-service_unavailable.md]
+[content/html/en/rss.md]
+[content/html/en/validation.md]
+[content/html/fr/about.md]
+[content/html/fr/about/old.md]
+[content/html/fr/about/technical_details.md]
+[content/html/fr/blog/01_nanoc.md]
+[content/html/fr/blog/02_ackgrep.md]
+[content/html/fr/blog/03_losthighway/03_losthighway_1.md]
+[content/html/fr/blog/03_losthighway/03_losthighway_2.md]
+[content/html/fr/blog/03_losthighway/03_losthighway_3.md]
+[content/html/fr/blog/03_losthighway/03_losthighway_4.md]
+[content/html/fr/blog/03_losthighway.md]
+[content/html/fr/blog/04_drm.md]
+[content/html/fr/blog/05_git_create_remote_branch.md]
+[content/html/fr/blog/06_How_I_use_git.md]
+[content/html/fr/blog/07_Screensaver_compilation_option_for_Snow_Leopard.md]
+[content/html/fr/blog/08_Configure_ssh_to_listen_the_port_443_on_Snow_Leopard.md]
+[content/html/fr/blog/09_Why_I_didn't_keep_whosamung.us.md]
+[content/html/fr/blog/10_Synchronize_Custom_WebSite_with_mobileMe.md]
+[content/html/fr/blog/11_Load_Disqus_Asynchronously.md]
+[content/html/fr/blog/2009-09-Disqus-versus-Intense-Debate--Why-I-switched-.md]
+[content/html/fr/blog/2009-09-jQuery-Tag-Cloud.md]
+[content/html/fr/blog/2009-09-replace-all-except-some-part.md]
+[content/html/fr/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-.md]
+[content/html/fr/blog/2009-10-30-How-to-handle-evil-IE.md]
+[content/html/fr/blog/2009-10-Focus-vs-Minimalism.md]
+[content/html/fr/blog/2009-10-How-to-preload-your-site-with-style.md]
+[content/html/fr/blog/2009-10-launch-daemon-from-command-line.md]
+[content/html/fr/blog/2009-10-untaught-git-usage.md]
+[content/html/fr/blog/2009-10-Wait-to-hide-a-menu-in-jQuery.md]
+[content/html/fr/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure.md]
+[content/html/fr/blog/2009-11-12-Git-for-n00b/commandes-avancees.md]
+[content/html/fr/blog/2009-11-12-Git-for-n00b/comprendre.md]
+[content/html/fr/blog/2009-11-12-Git-for-n00b/conf-et-install.md]
+[content/html/fr/blog/2009-11-12-Git-for-n00b/Git-pour-quoi-faire.md]
+[content/html/fr/blog/2009-11-12-Git-for-n00b.md]
+[content/html/fr/blog/2009-12-06-iphone-call-filter.md]
+[content/html/fr/blog/2009-12-14-Git-vs--Bzr.md]
+[content/html/fr/blog/2010-01-04-Change-default-shell-on-Mac-OS-X.md]
+[content/html/fr/blog/2010-01-12-antialias-font-in-Firefox-under-Ubuntu.md]
+[content/html/fr/blog/2010-02-15-All-but-something-regexp.md]
+[content/html/fr/blog/2010-02-16-All-but-something-regexp--2-.md]
+[content/html/fr/blog/2010-02-18-split-a-file-by-keyword.md]
+[content/html/fr/blog/2010-02-23-When-regexp-is-not-the-best-solution.md]
+[content/html/fr/blog/2010-03-22-Git-Tips.md]
+[content/html/fr/blog/2010-03-23-Encapsulate-git.md]
+[content/html/fr/blog.md]
+[content/html/fr/blog/mvc.md]
+[content/html/fr/contact.md]
+[content/html/fr/error/401-authorization_required.md]
+[content/html/fr/error/403-forbidden.md]
+[content/html/fr/error/404-not_found.md]
+[content/html/fr/error/408-request_timed_out.md]
+[content/html/fr/error/500-internal_server_error.md]
+[content/html/fr/error/503-service_unavailable.md]
+[content/html/fr/rss.md]
+[content/html/fr/validation.md]
+1 nature
+1 langage
+1 magique
+1 daughter
+1 violences
+1 fancy
+1 buter
+1 recommande
+1 valid
+1 autant
+1 gods
+1 Date
+1 amour
+1 affreuse
+1 Decentralization
+1 Catholique
+1 restent
+1 craser
+1 apparaissent
+1 Not
+1 parcequ
+1 Utilisation
+1 pourtant
+1 launching
+1 sachant
+1 Changing
+1 fastidieuse
+1 sad
+1 abonne
+1 yet
+1 Easily
+1 images
+1 sure
+1 invit
+1 juger
+1 Permet
+1 Ils
+1 exclure
+1 confusing
+1 deletion
+1 third
+1 navigator
+1 camL
+1 European
+1 restantes
+1 service
+1 probable
+1 heavy
+1 ues
+1 remettent
+1 capability
+1 manipulate
+1 Belle
+1 connerie
+1 apparaissant
+1 oublier
+1 learned
+1 Higway
+1 observe
+1 discovery
+1 couter
+1 parl
+1 asynchronous
+1 justified
+1 Des
+1 Lisez
+1 users
+1 representation
+1 Obsol
+1 Galactica
+1 filtre
+1 Personally
+1 CamL
+1 provided
+1 viennent
+1 travaillez
+1 slow
+1 ameliorating
+1 English
+1 rites
+1 appliquer
+1 frequently
+1 Undo
+1 achet
+1 poursuivis
+1 pulled
+1 cembre
+1 basique
+1 Creating
+1 Typically
+1 configured
+1 souhaitait
+1 nant
+1 daily
+1 Reply
+1 refaire
+1 Branching
+1 anybody
+1 pragmatism
+1 grammatical
+1 PHP
+1 fille
+1 coups
+1 recommence
+1 paradigm
+1 Two
+1 safe
+1 recherches
+1 blocking
+1 purpose
+1 mention
+1 Kernel
+1 dieux
+1 administr
+1 pire
+1 principal
+1 Verify
+1 garagist
+1 terminologies
+1 Ind
+1 progr
+1 Distributed
+1 probably
+1 clairement
+1 Livres
+1 hardly
+1 rencontrait
+1 accord
+1 navigateurs
+1 imagin
+1 TREE
+1 inherent
+1 came
+1 configurer
+1 speed
+1 renommer
+1 conceptions
+1 double
+1 coming
+1 alert
+1 Finalement
+1 visions
+1 regardant
+1 aucune
+1 names
+1 resources
+1 court
+1 lasse
+1 codes
+1 Decentralisation
+1 resteront
+1 acts
+1 Books
+1 arriv
+1 ambig
+1 coltiner
+1 alway
+1 Pictures
+1 separate
+1 suppl
+1 abort
+1 favor
+1 skills
+1 Certain
+1 rimentalement
+1 readable
+1 accepter
+1 hosts
+1 efforts
+1 lancez
+1 demment
+1 personally
+1 rentrer
+1 logique
+1 resolution
+1 dessinent
+1 couverte
+1 longueur
+1 risque
+1 questions
+1 historiquement
+1 particularly
+1 named
+1 orient
+1 cheuse
+1 officiel
+1 uncorrelated
+1 fais
+1 sultats
+1 lesquels
+1 ensure
+1 Lovecraftiens
+1 accepted
+1 tudiant
+1 Degree
+1 Naked
+1 cliquez
+1 Explication
+1 Enfin
+1 diaire
+1 souvient
+1 employ
+1 lisant
+1 quatre
+1 swapper
+1 selon
+1 violence
+1 weren
+1 posait
+1 progress
+1 random
+1 pratiques
+1 mien
+1 sourcils
+1 Mostly
+1 premiers
+1 regarder
+1 kernel
+1 actes
+1 puissante
+1 verifier
+1 grav
+1 rediriger
+1 gap
+1 autonomes
+1 quelconque
+1 ressources
+1 valait
+1 Utilisateur
+1 lisible
+1 possibles
+1 limited
+1 filmer
+1 Bouuhh
+1 accept
+1 dark
+1 derri
+1 assez
+1 ubiquit
+1 explanantion
+1 commited
+1 interpration
+1 mourir
+1 matiquement
+1 fervent
+1 argent
+1 compr
+1 langue
+1 biologistes
+1 reverting
+1 pragamatique
+1 creuse
+1 grace
+1 Mise
+1 gestes
+1 langages
+1 obligation
+1 properties
+1 Quelle
+1 hear
+1 trange
+1 took
+1 chapper
+1 married
+1 Finally
+1 oit
+1 appelez
+1 avaient
+1 revoir
+1 trucs
+1 ois
+1 contributor
+1 Speaking
+1 abonnement
+1 revois
+1 Sinc
+1 pousser
+1 understanding
+1 donnerai
+1 entrez
+1 won
+1 tirer
+1 wheel
+1 recovered
+1 Principalement
+1 generating
+1 Recover
+1 meet
+1 frustrant
+1 passed
+1 combler
+1 bouton
+1 concises
+1 penser
+1 Famille
+1 ellement
+1 entres
+1 Malgr
+1 worked
+1 notified
+1 crivant
+1 conceptuels
+1 easiest
+1 represents
+1 tentateur
+1 garde
+1 fauts
+1 respective
+1 caused
+1 occurred
+1 revisions
+1 Cliquez
+1 calling
+1 connecter
+1 theory
+1 states
+1 buts
+1 diaires
+1 implies
+1 Read
+1 casse
+1 Laboratoire
+1 programm
+1 firsts
+1 Others
+1 courant
+1 supposition
+1 principaux
+1 convivial
+1 proof
+1 exp
+1 CGI
+1 ambiguity
+1 gory
+1 inutilement
+1 emerged
+1 filtres
+1 Peut
+1 Naturellement
+1 tudiants
+1 concept
+1 Curien
+1 fantastique
+1 affichait
+1 filtrer
+1 Suivez
+1 personne
+1 fontionne
+1 BIEN
+1 souplesse
+1 laiss
+1 tedious
+1 mentation
+1 soi
+1 autonome
+1 provenant
+1 uploade
+1 resemble
+1 minor
+1 actions
+1 representations
+1 compare
+1 trouvaient
+1 leave
+1 Quasiment
+1 public
+1 False
+1 rateurs
+1 Fuck
+1 visait
+1 disapear
+1 jailbreak
+1 cvs
+1 tiedous
+1 vraisemblable
+1 festin
+1 indif
+1 Temporal
+1 limit
+1 influent
+1 convention
+1 hension
+1 espoir
+1 Faire
+1 corrections
+1 partez
+1 configur
+1 globale
+1 cheated
+1 chait
+1 corner
+1 school
+1 COURSE
+1 alternatives
+1 Discover
+1 synchronisent
+1 due
+1 petites
+1 tells
+1 engendrer
+1 technique
+1 trouverez
+1 revision
+1 analyse
+1 annoying
+1 Clone
+1 gagner
+1 Gallactica
+1 synchronis
+1 teach
+1 functionalities
+1 Company
+1 gens
+1 appellation
+1 correspondant
+1 prompte
+1 valeur
+1 parrait
+1 transformed
+1 blogs
+1 switch
+1 carquill
+1 Lire
+1 commencerai
+1 utilisaient
+1 diter
+1 nothing
+1 observer
+1 signal
+1 joue
+1 survenir
+1 Gestion
+1 serai
+1 quickly
+1 New
+1 clients
+1 Dieu
+1 parle
+1 Firstly
+1 girl
+1 results
+1 appellent
+1 semblait
+1 placer
+1 converted
+1 Upload
+1 experiment
+1 difficilement
+1 imm
+1 Personnellement
+1 answer
+1 courtes
+1 veloppeurs
+1 advertising
+1 linear
+1 possibilit
+1 mondes
+1 signifiait
+1 blaireau
+1 conseillerai
+1 glue
+1 linked
+1 disappear
+1 gatifs
+1 dialog
+1 contraire
+1 fallen
+1 rescousse
+1 Was
+1 compilations
+1 implement
+1 recopier
+1 naturels
+1 Hello
+1 engendrement
+1 Patchs
+1 dirait
+1 fixes
+1 conceptual
+1 faits
+1 telles
+1 Main
+1 modal
+1 effects
+1 fixer
+1 recommencer
+1 Curient
+1 arr
+1 risk
+1 validate
+1 break
+1 becomes
+1 incluant
+1 avouer
+1 Perdu
+1 founded
+1 Parfois
+1 addition
+1 mails
+1 dition
+1 Supposons
+1 Explanation
+1 condamn
+1 menus
+1 dowload
+1 Evil
+1 aid
+1 bunch
+1 Result
+1 cide
+1 shorter
+1 cuter
+1 huge
+1 laides
+1 parler
+1 ches
+1 JAMAIS
+1 Back
+1 moyens
+1 ailleurs
+1 appr
+1 automate
+1 repair
+1 programme
+1 droite
+1 rapport
+1 achetera
+1 soucis
+1 nonc
+1 vent
+1 consisted
+1 fur
+1 critical
+1 suffirait
+1 parallel
+1 Ajourd
+1 meComment
+1 CSV
+1 mentionn
+1 naming
+1 Renvoyer
+1 broke
+1 lightweight
+1 homepage
+1 Obsolete
+1 positive
+1 raison
+1 mystiques
+1 Click
+1 step
+1 outils
+1 approche
+1 Booh
+1 finder
+1 sidant
+1 Tree
+1 arbre
+1 familiaris
+1 approach
+1 tromp
+1 objecter
+1 party
+1 familier
+1 insuffisant
+1 ordre
+1 ajoutait
+1 relire
+1 having
+1 around
+1 visualisation
+1 ancienne
+1 concurrentesen
+1 Heureusement
+1 sumons
+1 droits
+1 Everyday
+1 Argument
+1 interdire
+1 philosophy
+1 choices
+1 solus
+1 deviner
+1 venait
+1 hum
+1 renseignant
+1 Applications
+1 eyecandy
+1 temporelles
+1 season
+1 monde
+1 december
+1 Basic
+1 Movies
+1 ASP
+1 environment
+1 multilangue
+1 students
+1 block
+1 habitude
+1 biais
+1 humiliant
+1 clean
+1 somewhere
+1 putting
+1 Examples
+1 Notre
+1 parti
+1 cod
+1 ugly
+1 decent
+1 noms
+1 frustrating
+1 heureux
+1 apporteraient
+1 alternative
+1 Finder
+1 mettront
+1 installation
+1 ajouts
+1 manner
+1 amours
+1 Lancez
+1 Tous
+1 May
+1 terrible
+1 actress
+1 changements
+1 interdite
+1 cach
+1 buttons
+1 existent
+1 prefered
+1 ameliorated
+1 believes
+1 perfect
+1 cessitant
+1 Fortunately
+1 quitter
+1 BUT
+1 quit
+1 See
+1 intervenir
+1 ments
+1 disparaisse
+1 fixant
+1 trouvez
+1 apprendre
+1 majeur
+1 typographiques
+1 Files
+1 populaire
+1 reviendrai
+1 depend
+1 Launch
+1 cute
+1 negatives
+1 tient
+1 magie
+1 confus
+1 tiens
+1 finitivement
+1 reflect
+1 pondait
+1 crits
+1 Logics
+1 parcourir
+1 parameter
+1 intermediate
+1 operator
+1 fonctionnera
+1 correspondre
+1 attendre
+1 ann
+1 dieu
+1 negotiation
+1 policier
+1 theoretical
+1 NEVER
+1 sugg
+1 doc
+1 dialogue
+1 takes
+1 bizarres
+1 intimidating
+1 obsession
+1 multilingual
+1 Protections
+1 enclin
+1 rapatrie
+1 Pas
+1 savent
+1 justes
+1 quanden
+1 idiot
+1 doomed
+1 okay
+1 Such
+1 appris
+1 dogmatism
+1 courses
+1 pensais
+1 Their
+1 cryptique
+1 ask
+1 cruellement
+1 suit
+1 pointant
+1 crites
+1 functionality
+1 appears
+1 contrairement
+1 environnement
+1 fetcher
+1 money
+1 conclude
+1 regard
+1 identique
+1 badness
+1 finir
+1 voulait
+1 faible
+1 ressent
+1 voulais
+1 accepts
+1 Shows
+1 returns
+1 devriez
+1 cleaner
+1 devez
+1 escape
+1 venant
+1 somehow
+1 nobody
+1 Clearly
+1 subscribed
+1 persons
+1 Cops
+1 pisodes
+1 gamine
+1 effets
+1 overwriting
+1 MAIS
+1 pwd
+1 aggregate
+1 upon
+1 fetched
+1 worst
+1 critique
+1 traduce
+1 Theory
+1 Ici
+1 demanderez
+1 mental
+1 puisqu
+1 Donc
+1 accepte
+1 Student
+1 patched
+1 commen
+1 producer
+1 Global
+1 pattes
+1 cache
+1 execute
+1 modifient
+1 affichent
+1 regroupement
+1 pleurait
+1 comportement
+1 poupe
+1 happens
+1 Super
+1 scenes
+1 Except
+1 liore
+1 saxon
+1 definitively
+1 Avantages
+1 VCS
+1 environ
+1 Retourne
+1 searches
+1 lanc
+1 arise
+1 remarqu
+1 fastidious
+1 analyze
+1 engendr
+1 finira
+1 offline
+1 usable
+1 inventer
+1 croyais
+1 sembler
+1 logic
+1 exemples
+1 rassembl
+1 besoins
+1 ressant
+1 environnements
+1 shared
+1 Everything
+1 year
+1 fondements
+1 secondes
+1 pourrez
+1 sois
+1 milieu
+1 atomiques
+1 pendre
+1 deviendra
+1 lance
+1 attention
+1 servaient
+1 confused
+1 gociation
+1 contradicts
+1 nul
+1 disparaissant
+1 rable
+1 unnatural
+1 Configurez
+1 Films
+1 Devil
+1 faudrait
+1 pliquent
+1 rieusement
+1 enl
+1 discut
+1 naturellement
+1 philosophie
+1 foundations
+1 menter
+1 cocoasamurai
+1 lecture
+1 expliquant
+1 rerai
+1 saison
+1 expliqu
+1 safer
+1 vient
+1 First
+1 oublie
+1 mesure
+1 majeurs
+1 importante
+1 remarquez
+1 typographical
+1 conventions
+1 moriser
+1 minimaliste
+1 principe
+1 parall
+1 uneasy
+1 ciables
+1 noirs
+1 synchronized
+1 differently
+1 proceed
+1 cherche
+1 inclure
+1 tellement
+1 claiming
+1 webpages
+1 blond
+1 Certainement
+1 tat
+1 synchronise
+1 aires
+1 Base
+1 visit
+1 forme
+1 simplest
+1 barre
+1 sees
+1 intimidant
+1 intuitif
+1 consomme
+1 promesses
+1 perceive
+1 blonde
+1 ronge
+1 obviously
+1 Lunch
+1 theese
+1 demand
+1 biggest
+1 voile
+1 synchronization
+1 rendent
+1 tape
+1 updated
+1 hensibles
+1 avait
+1 souhaitent
+1 functionnalities
+1 biologist
+1 mechanism
+1 coin
+1 Diable
+1 montre
+1 boutons
+1 Renommer
+1 heurter
+1 Conceptuellement
+1 claires
+1 Subscribe
+1 couvris
+1 couvrir
+1 safety
+1 vais
+1 regeneration
+1 carr
+1 Conceptually
+1 lever
+1 capable
+1 discussed
+1 Analysons
+1 nommage
+1 compliqu
+1 installed
+1 info
+1 usefull
+1 doute
+1 remorse
+1 ram
+1 falloir
+1 fuite
+1 percevoir
+1 uds
+1 termes
+1 devoir
+1 humiliating
+1 Notamment
+1 goes
+1 mentale
+1 alternate
+1 acheter
+1 Renaming
+1 called
+1 utiles
+1 fautes
+1 quivalentes
+1 visionnage
+1 adore
+1 semblent
+1 arguments
+1 weather
+1 choisi
+1 atteindre
+1 blogspot
+1 badly
+1 understandable
+1 Essaye
+1 technically
+1 rappelez
+1 reiterate
+1 externalized
+1 comparer
+1 branched
+1 ponse
+1 titles
+1 deviennent
+1 workflows
+1 connaitre
+1 recoupements
+1 Configuration
+1 mrs
+1 detailled
+1 devrais
+1 Copyrighter
+1 neuf
+1 Sur
+1 ter
+1 Saint
+1 pendante
+1 perception
+1 appels
+1 brouille
+1 tel
+1 maison
+1 explications
+1 GRAND
+1 faveur
+1 induit
+1 gle
+1 officielle
+1 veuille
+1 Today
+1 orthographes
+1 efficiency
+1 Grand
+1 quelque
+1 mainly
+1 rattraper
+1 CocoaSamurai
+1 vocation
+1 wide
+1 Juste
+1 qualit
+1 Conflict
+1 cents
+1 enferm
+1 Lovecraft
+1 disk
+1 perspective
+1 MUCH
+1 temporaire
+1 las
+1 fill
+1 browsers
+1 today
+1 Quoi
+1 consistait
+1 soucier
+1 ARBORESCENCE
+1 Some
+1 catholic
+1 manipulated
+1 avantage
+1 gourmand
+1 reconna
+1 single
+1 justifi
+1 Enregistrez
+1 University
+1 Practically
+1 descriptions
+1 Our
+1 sait
+1 interior
+1 lourds
+1 ancien
+1 Parce
+1 realize
+1 particular
+1 programmer
+1 armes
+1 grande
+1 annule
+1 parmi
+1 loign
+1 sion
+1 dispatch
+1 univ
+1 Quang
+1 since
+1 perdue
+1 orique
+1 filtrage
+1 Typical
+1 ALL
+1 Sincerely
+1 judge
+1 Another
+1 indiquer
+1 principalement
+1 imprisonned
+1 route
+1 dogmatique
+1 peint
+1 alis
+1 recent
+1 realities
+1 obligatoire
+1 UNE
+1 consequence
+1 sout
+1 nes
+1 minimalist
+1 Hors
+1 accessible
+1 enseign
+1 preferable
+1 repositoy
+1 triste
+1 hensible
+1 inclined
+1 diate
+1 told
+1 dentes
+1 However
+1 tools
+1 prendre
+1 EASY
+1 Ensuit
+1 separable
+1 diversifi
+1 Laboratory
+1 Opinion
+1 allons
+1 talked
+1 bandwith
+1 pondez
+1 travaill
+1 Merci
+1 graphe
+1 lieu
+1 reminder
+1 jailbreaker
+1 adapt
+1 partisant
+1 administrator
+1 hiding
+1 Ventant
+1 orthographic
+1 collaboration
+1 servers
+1 consid
+1 backward
+1 leak
+1 quivalent
+1 changing
+1 redo
+1 Histoire
+1 Anyway
+1 rie
+1 majorit
+1 Help
+1 oriques
+1 rencie
+1 auraient
+1 ralement
+1 hardest
+1 weaker
+1 Abstract
+1 Europe
+1 Afin
+1 pis
+1 trouble
+1 commenc
+1 forces
+1 aimerai
+1 finement
+1 tises
+1 blacklists
+1 entier
+1 handling
+1 role
+1 Commands
+1 eyes
+1 remind
+1 mine
+1 mergez
+1 vident
+1 valent
+1 Celle
+1 automatique
+1 parer
+1 servi
+1 TOUTE
+1 signaler
+1 aujourd
+1 properities
+1 nihilo
+1 vice
+1 cherchez
+1 fallait
+1 copiez
+1 obscur
+1 vois
+1 business
+1 laisserais
+1 fantastic
+1 publicit
+1 suffisante
+1 Hence
+1 objets
+1 lesquelles
+1 devait
+1 commits
+1 Wrong
+1 servant
+1 soient
+1 inqui
+1 Family
+1 utilisent
+1 crying
+1 correction
+1 positifs
+1 anglophobe
+1 invited
+1 vertices
+1 concentrate
+1 reported
+1 rement
+1 mont
+1 bar
+1 mons
+1 aspect
+1 aient
+1 niablement
+1 aper
+1 merged
+1 NON
+1 interest
+1 anglo
+1 lin
+1 communaut
+1 record
+1 unbelievable
+1 obscure
+1 personnelle
+1 modales
+1 Either
+1 mounted
+1 laisser
+1 lif
+1 bloque
+1 Pete
+1 retard
+1 canismes
+1 proposait
+1 discard
+1 suffisantes
+1 decentralised
+1 pique
+1 ros
+1 Humble
+1 mentaires
+1 adaptation
+1 colored
+1 Work
+1 fera
+1 compliquer
+1 retrouver
+1 vingtaine
+1 effect
+1 cision
+1 Commen
+1 Eyes
+1 Aller
+1 tips
+1 Advantages
+1 titres
+1 barrasser
+1 serious
+1 managed
+1 ons
+1 fonctionnalit
+1 replacerai
+1 travers
+1 Aujourd
+1 days
+1 concerns
+1 accomplis
+1 essentielle
+1 comblait
+1 Since
+1 responsable
+1 manquait
+1 devaient
+1 souhaiterai
+2 travaillent
+2 commentaires
+2 ads
+2 parerai
+2 egrep
+2 unes
+2 minutes
+2 MAL
+2 Dynamic
+2 Dec
+2 strength
+2 bullsh
+2 souvenir
+2 Patches
+2 5000
+2 050000
+2 perd
+2 URAN00B
+2 complicated
+2 travaille
+2 Autres
+2 technologies
+2 Error
+2 partially
+2 sons
+2 recompilation
+2 parties
+2 rations
+2 messageID
+2 recompile
+2 Add
+2 selenic
+2 cryptic
+2 947432
+2 built
+2 User
+2 Remark
+2 concernant
+2 sychronize
+2 Nom
+2 enfuir
+2 interm
+2 artefact
+2 Hubert
+2 wrapper
+2 suppression
+2 laptop
+2 solo
+2 search
+2 guys
+2 Reader
+2 nettement
+2 erasing
+2 organize
+2 SYNTAX
+2 primary
+2 abc
+2 OpenSource
+2 scr
+2 issue
+2 needs
+2 person
+2 computers
+2 motivation
+2 scp
+2 became
+2 Sockets
+2 multilang
+2 on_yellow
+2 maintain
+2 warn
+2 rendu
+2 conclure
+2 vrai
+2 copie
+2 terme
+2 poque
+2 Emplois
+2 DTDs
+2 aucun
+2 visible
+2 Secondly
+2 connect
+2 Timed
+2 urgent
+2 SVC
+2 directe
+2 conflictTest
+2 18T15
+2 ANSIColor
+2 Chaque
+2 permettre
+2 cessaire
+2 timer
+2 18T14
+2 git_for_designers
+2 deserve
+2 Changer
+2 820000
+2 subscribe
+2 typeset
+2 forgot
+2 Battlestar
+2 points
+2 tigris
+2 derive
+2 retrouve
+2 Xcode
+2 Copie
+2 mauvaise
+2 Old
+2 408
+2 toggleMenu
+2 12T16
+2 continu
+2 sentations
+2 official
+2 xcodeConfig
+2 disque
+2 petits
+2 lib
+2 gler
+2 simpler
+2 Version
+2 dernier
+2 simples
+2 Internal
+2 fuller
+2 Filtrage
+2 404
+2 Drive
+2 403
+2 seq
+2 instant
+2 hates
+2 discover
+2 msfonts
+2 401
+2 Interpr
+2 10T16
+2 souhaitais
+2 DISPONIBLE
+2 gimp
+2 voyons
+2 970000
+2 ressants
+2 seeing
+2 nuisent
+2 influence
+2 adh
+2 capacit
+2 incr
+2 acte
+2 revertbeforemerge
+2 prepend
+2 pacte
+2 remonter
+2 sumer
+2 prudence
+2 other_regexp
+2 elegant
+2 sort
+2 guli
+2 whosamung
+2 library
+2 Bakcup
+2 dits
+2 indices
+2 fit
+2 deuxi
+2 Will
+2 Merge
+2 sed
+2 oneline
+2 central_architecture
+2 sec
+2 Job
+2 oridinateurs
+2 chargement
+2 recherchez
+2 correpond
+2 UTF
+2 SEDiL
+2 Smarter
+2 020000
+2 eXistenZ
+2 coloring
+2 16T10
+2 nor
+2 lis
+2 solutions
+2 Surf
+2 suivante
+2 mystery
+2 Content
+2 Python
+2 060000
+2 avatar
+2 play
+2 msie
+2 professionnel
+2 fear
+2 sbin
+2 items
+2 incompr
+2 ikog
+2 trompe
+2 Program
+2 chance
+2 side
+2 commentaire
+2 access
+2 area
+2 ending
+2 hour
+2 Exemple
+2 contained
+2 forbidden
+2 Opensource
+2 versioning
+2 propose
+2 veuillez
+2 Service
+2 22T20
+2 senti
+2 interesting
+2 Life
+2 pretending
+2 copier
+2 messages
+2 divs
+2 22T22
+2 640000
+2 parameters
+2 remote_branch
+2 space
+2 divergences
+2 astuce
+2 NOW
+2 Games
+2 Informaticien
+2 popular
+2 copies
+2 Calculate
+2 information
+2 online
+2 ciser
+2 cherry
+2 securely
+2 Metapost
+2 queryLoader
+2 envoyez
+2 PATH
+2 000
+2 posted
+2 Brsync
+2 associ
+2 police
+2 pourront
+2 screen
+2 vaine
+2 terror
+2 Efficiency
+2 permier
+2 17T23
+2 personnality
+2 protect
+2 End
+2 explique
+2 arriver
+2 incarn
+2 psychanalytique
+2 Other
+2 utf
+2 secure
+2 666
+2 waiting
+2 icon
+2 vos
+2 comprend
+2 tourner
+2 blame
+2 Schoolbook
+2 Miscellaneous
+2 openssh
+2 DOES
+2 cliquer
+2 Est
+2 grow
+2 daemons
+2 Research
+2 Remove
+2 atomic
+2 Conway
+2 conquis
+2 bout
+2 tomb
+2 Receive
+2 general
+2 either
+2 PropertyList
+2 cemment
+2 uns
+2 syntaxique
+2 Index
+2 invent
+2 personnage
+2 note
+2 Concurrentes
+2 miscellanious
+2 impact
+2 unstage
+2 complementary
+2 Passionate
+2 Baudolino
+2 190408
+2 passes
+2 generally
+2 Further
+2 actrice
+2 devoted
+2 avons
+2 sale
+2 URL
+2 logout
+2 tool
+2 elements
+2 connected
+2 tagcloud
+2 smallest
+2 Pendant
+2 rorschach
+2 Automatic
+2 Disponible
+2 Simply
+2 paye
+2 22T16
+2 Tiger
+2 kill
+2 concentrer
+2 Publish
+2 firstname
+2 Certainly
+2 annoncer
+2 b01
+2 apportent
+2 noyau
+2 documents
+2 Encapsuler
+2 velopper
+2 envoi
+2 travail
+2 Avatar
+2 b02
+2 execution
+2 model
+2 570000
+2 entp
+2 tourn
+2 diy
+2 Tahoma
+2 Exclude
+2 ORIG_HEAD
+2 modem
+2 22T10
+2 Numbers
+2 often
+2 references
+2 CONFLICT
+2 Photos
+2 testes
+2 modifie
+2 genre
+2 Apr
+2 contiendra
+2 passwords
+2 recevoir
+2 compiled
+2 130000
+2 cat
+2 efficient
+2 transmit
+2 mani
+2 2dc7ffb0f186a407a1814d1a62684342cd54e7d6
+2 coup
+2 car
+2 entr
+2 settings
+2 rubycode
+2 sonne
+2 launchd
+2 dynamic_branching
+2 cran
+2 mis
+2 geek
+2 atomique
+2 Systems
+2 liorations
+2 trousses
+2 Auto
+2 Request
+2 REALLY
+2 constatation
+2 Define
+2 Site_improvements_
+2 aurai
+2 Regarder
+2 exception
+2 obtained
+2 BSync
+2 860000
+2 entendu
+2 Branches
+2 depth
+2 gen
+2 Passion
+2 flush
+2 dis
+2 fails
+2 conna
+2 therefore
+2 Programming
+2 LIF
+2 bought
+2 devenu
+2 collector
+2 assets
+2 BWEBSITE
+2 implie
+2 occur
+2 principle
+2 670000
+2 off
+2 blank
+2 authorized_keys
+2 Send
+2 Unaviable
+2 incremental
+2 connaissance
+2 words
+2 become
+2 Recherche
+2 meilleures
+2 maximum
+2 Suppose
+2 Real
+2 original_disqus
+2 applications
+2 classe
+2 resse
+2 construction
+2 6c0000
+2 Working
+2 inconscient
+2 Toutes
+2 peine
+2 BSITE
+2 Listeners
+2 remoteSiteMapRef
+2 Pragmatic
+2 mystique
+2 Example
+2 appelle
+2 enabled
+2 Encore
+2 10141032
+2 act
+2 BAK
+2 amoureux
+2 precise
+2 solid
+2 fff
+2 describe
+2 signifie
+2 Sans
+2 236
+2 node
+2 Projets
+2 precisely
+2 THIS
+2 account
+2 panic
+2 local_branch
+2 forbid
+2 manip
+2 straight
+2 They
+2 END
+2 convenient
+2 conception
+2 greediness
+2 product
+2 acc
+2 convaincant
+2 Garbage
+2 multicorps
+2 requests
+2 MacPorts
+2 128
+2 081398
+2 param
+2 generator
+2 conquered
+2 filtered
+2 undomerge
+2 creating
+2 went
+2 lien
+2 couldn
+2 contenus
+2 shi
+2 Etienne
+2 Author
+2 paraissait
+2 programmed
+2 Scientist
+2 wrong
+2 said
+2 Objective
+2 comprised
+2 Initialisation
+2 rais
+2 totalement
+2 trymv
+2 proved
+2 Chacun
+2 Plusieurs
+2 scientifiques
+2 God
+2 JSP
+2 ProgramArguments
+2 utilisateurs
+2 buy
+2 dangerous
+2 rgba
+2 episodes
+2 getScript
+2 servir
+2 Authorization
+2 040000
+2 03T14
+2 f03
+2 manquent
+2 discovered
+2 SHOULD
+2 Cacher
+2 whom
+2 suppose
+2 REGEXP
+2 pourquois
+2 Theorem
+2 pornographique
+2 Quand
+2 ElectricSheep
+2 321
+2 absolutely
+2 selfupdate
+2 Education
+2 Rashomon
+2 upgraded
+2 instar
+2 vid
+2 Oui
+2 rsa
+2 intuitive
+2 mod
+2 ago
+2 recompiling
+2 SYSTEM
+2 pornographic
+2 rieur
+2 autoload
+2 testmode
+2 searching
+2 scientists
+2 impliquer
+2 mysteryman
+2 well
+2 Security
+2 enlever
+2 sum
+2 transfer
+2 erreur
+2 blocked
+2 software
+2 fenseurs
+2 agent
+2 transitions
+2 minus
+2 sais
+2 enregistrer
+2 hoth
+2 reused
+2 achieved
+2 ayant
+2 inkscape
+2 chaine
+2 Marseille
+2 professional
+2 Astek
+2 acronym
+2 Dipl
+2 beau
+2 pendantes
+2 endroit
+2 Counting
+2 cid
+2 Lucida
+2 terminated
+2 Mail
+2 dirais
+2 installez
+2 gitk
+2 DS_Store
+2 Shakespeare
+2 Out
+2 Escher
+2 autosetupmerge
+2 red
+2 13T13
+2 incrementale
+2 safest
+2 father
+2 Strangely
+2 _Iago_
+2 espace
+2 Vim
+2 bullshi
+2 flexion
+2 Management
+2 electricsheep
+2 visits
+2 signification
+2 shown
+2 Ability
+2 lesson
+2 identifier
+2 School
+2 out
+2 remark
+2 Conflicts
+2 14T10
+2 Code
+2 22em
+2 contenir
+2 our
+2 serait
+2 demande
+2 pick
+2 regex_benchmark_ext
+2 confess
+2 centralized
+2 Satan
+2 oui
+2 mount
+2 misc
+2 apps
+2 emb
+2 jalousy
+2 Bach
+2 Possibilit
+2 choisir
+2 display
+2 Hypothesis
+2 usages
+2 local_command
+2 cycle
+2 30T22
+2 warning
+2 longer
+2 efficace
+2 propri
+2 fut
+2 Netvibes
+2 Perso
+2 lazy
+2 GUI
+2 fatiguer
+2 passage
+2 e640846
+2 56k
+2 HTTPS
+2 lior
+2 Password
+2 compter
+2 page2
+2 allais
+2 Save
+2 ytypo
+2 page1
+2 absolument
+2 methods
+2 efficacement
+2 Trephine
+2 Contain
+2 Debian
+2 sight
+2 Beware
+2 prove
+2 sniffed
+2 oblige
+2 watching
+2 run
+2 inacceptable
+2 Nonetheless
+2 helpfull
+2 setTimeout
+2 installer
+2 nanoc3
+2 lastname
+2 elif
+2 2dc7ffb
+2 green
+2 garagiste
+2 Century
+2 regex_benchmark_strip
+2 quipe
+2 cole
+2 remains
+2 DTD
+2 d3ea395
+2 trivial
+2 raisons
+2 fran
+2 Verdana
+2 based
+2 Append
+2 23T13
+2 Amung
+2 conimiseurs
+2 english
+2 Tell
+2 passionate
+2 entendez
+2 apt
+2 4XpnKHJAok8
+2 dltj
+2 fond
+2 racine
+2 loose
+2 concurrent
+2 renvoie
+2 503
+2 diverged
+2 choice
+2 open
+2 independance
+2 naturelle
+2 logiques
+2 Concurentes
+2 bypass
+2 aurait
+2 LaTeX
+2 Without
+2 Where
+2 disponible
+2 Great
+2 550000
+2 incarnated
+2 rappeler
+2 23T22
+2 recup
+2 Transmit
+2 clien
+2 Set
+2 reduce
+2 Name
+2 shortest
+2 tunnel
+2 10px
+2 relative
+2 git_command
+2 Rappeler
+2 benefits
+2 Lester
+2 07T20
+2 meta
+2 instances
+2 Unpacking
+2 pact
+2 vite
+2 pris
+2 troisi
+2 unstable
+2 ones
+2 mission
+2 markdown
+2 drm
+2 soon
+2 attends
+2 taper
+2 coding
+2 Rashomon_effect
+2 cc0000
+2 rales
+2 GREAT
+2 notions
+2 transformations
+2 personnalit
+2 mvc1
+2 fastidieux
+2 partout
+2 Hofstadter
+2 thanks
+2 card
+2 company
+2 yann1
+2 liens
+2 apport
+2 support
+2 Ssh
+2 finissent
+2 years
+2 Usages
+2 693407
+2 expand_path
+2 magic
+2 10_Synchronize_Custom_WebSite_with_mobileMe
+2 occurences
+2 Eraserhead
+2 Voyant
+2 080000
+2 tunneling
+2 older
+2 similaire
+2 Inkscape
+2 cassette
+2 localhost
+2 concilier
+2 charg
+2 BSite
+2 Programmation
+2 sorte
+2 Fonts
+2 theoretically
+2 suivantes
+2 psychanalytics
+2 basename
+2 dodge
+2 management
+2 branch_hierarchy
+2 mvc
+2 syntaxe
+2 queryloader
+2 job
+2 eagain
+2 venir
+2 doivent
+2 associating
+2 listen
+2 dumb
+2 importance
+2 lent
+2 unsafe
+2 conditional
+2 filters_post
+2 mises
+2 Winner
+2 correct
+2 ipt
+2 Having
+2 ans
+2 During
+2 macports
+2 videmment
+2 04T12
+2 null
+2 ant
+2 Usage
+2 12112009
+2 surprise
+2 box
+2 mercurial
+2 Menu
+2 concepteurs
+2 core
+2 entire
+2 discussion
+2 approximativement
+2 Mullholland
+2 arborescence
+2 Term
+2 Initial
+2 expect
+2 libexec
+2 searched
+2 2000
+2 AirFrance
+2 motel
+2 717748
+2 reader
+2 couch
+2 dashboard
+2 hiddenDivs
+2 cooperation
+2 issues
+2 enter
+2 StandardErrorPath
+2 26T21
+2 06T17
+2 Disabled
+2 chop
+2 automatiser
+2 gayadesign
+2 06T16
+2 marvelous
+2 Loading
+2 clearer
+2 validit
+2 Rules
+2 Avez
+2 argument
+2 Total
+2 06T11
+2 2004
+2 merg
+2 contact
+2 yeah
+2 Distributed_Concurrent_Versions_System
+2 dot
+2 Comprendre
+2 Minimalisme
+2 unacceptable
+2 cherch
+2 theworkinggeek
+2 Hide
+2 normales
+2 cens
+2 fonctionnement
+2 2007
+2 photo
+2 recently
+2 encod
+2 stat
+2 While
+2 Watch
+2 associtated
+2 loop
+2 valide
+2 Untaught
+2 Gimp
+2 poser
+2 28T10
+2 wish
+2 closer
+2 meilleurs
+2 rapide
+2 pourraient
+2 importe
+2 randomly
+2 28T11
+2 maintenance
+2 17T14
+2 rifier
+2 worse
+2 faisant
+2 Hypothese
+2 house
+2 savers
+2 proche
+2 reasoning
+2 Cet
+2 network
+2 beware
+2 diable
+2 M45T3R
+2 iemessage
+2 caract
+2 PLIST
+2 straightforward
+2 generated
+2 restricted
+2 Designers
+2 Nous
+2 _fighting_with_Disqus
+2 folks
+2 Finaly
+2 rewrite
+2 enought
+2 yours
+2 Can
+2 adopt
+2 format
+2 share
+2 whatisrss
+2 Try
+2 examples
+2 bulls
+2 formation
+2 range
+2 conseille
+2 automatic
+2 inetdCompatibility
+2 inconsciente
+2 accompagnant
+2 Eco
+2 obey
+2 Remember
+2 autour
+2 intended
+2 firsthi
+2 9001
+2 Discussions
+2 Generator
+2 finite
+2 netvibes
+2 starting
+2 mystic
+2 SHAuthorizationRight
+2 03_losthighway_1
+2 trephine
+2 0klgLsSxGsU
+2 PAS
+2 fou
+2 PUBLIC
+2 french
+2 criture
+2 finalement
+2 jspa
+2 BThe
+2 raise
+2 Fontes
+2 chsh
+2 ordinateurs
+2 dessus
+2 added
+2 viens
+2 choose
+2 larr
+2 chang
+2 vitesse
+2 Everybody
+2 Notice
+2 var
+2 unknown
+2 currently
+3 films
+3 Well
+3 written
+3 jolie
+3 problems
+3 Fix
+3 fermeture
+3 memory
+3 saw
+3 Synchroniser
+3 science
+3 grer
+3 efficiently
+3 mort
+3 Non
+3 Create
+3 protocole
+3 blah
+3 incroyable
+3 THE
+3 celle
+3 Begin
+3 appel
+3 commis
+3 fameux
+3 presentation
+3 charger
+3 away
+3 moire
+3 personnel
+3 restant
+3 killed
+3 nommer
+3 earlier
+3 tels
+3 safely
+3 stop
+3 suffisant
+3 chacun
+3 team
+3 enable
+3 marche
+3 certains
+3 Post
+3 clair
+3 prepare
+3 happy
+3 scripts
+3 bash
+3 dant
+3 contains
+3 meurtre
+3 certaine
+3 talking
+3 cauchemar
+3 force
+3 Under
+3 nightmare
+3 certain
+3 toute
+3 reading
+3 community
+3 liorer
+3 arrive
+3 history
+3 meilleure
+3 avis
+3 quel
+3 resolved
+3 ries
+3 mean
+3 Like
+3 filme
+3 reverted
+3 aren
+3 pens
+3 convaincu
+3 met
+3 sens
+3 slight
+3 faites
+3 himself
+3 talk
+3 librairie
+3 essentiel
+3 depuis
+3 ils
+3 comprendrez
+3 centralisation
+3 present
+3 cider
+3 ClearCase
+3 Each
+3 preferences
+3 doctorat
+3 separately
+3 ici
+3 List
+3 choue
+3 realized
+3 ignorer
+3 documentation
+3 Movie
+3 tutoriel
+3 Car
+3 nombreuses
+3 veloppe
+3 porno
+3 remain
+3 Furthermore
+3 advantage
+3 dcvs
+3 languages
+3 entrer
+3 impl
+3 sentation
+3 nouveaux
+3 operation
+3 cessairement
+3 immediately
+3 imagine
+3 Interface
+3 commun
+3 bonne
+3 lot
+3 Workflow
+3 ger
+3 corresponding
+3 appear
+3 pragmatic
+3 loin
+3 Mes
+3 tutorial
+3 coloration
+3 lequel
+3 entreprise
+3 Make
+3 inappropri
+3 visage
+3 associate
+3 conflit
+3 ability
+3 correspondent
+3 develop
+3 decide
+3 juste
+3 worry
+3 friendly
+3 utility
+3 facile
+3 jours
+3 cet
+3 conclusion
+3 lead
+3 obtain
+3 cessaires
+3 event
+3 Grande
+3 she
+3 permettent
+3 Liste
+3 terminologie
+3 pouvoir
+3 contenant
+3 Server
+3 looking
+3 dirai
+3 Framework
+3 fini
+3 kills
+3 Thanks
+3 cause
+3 She
+3 nouvelles
+3 abonner
+3 writing
+3 phone
+3 locales
+3 compte
+3 telle
+3 Particularly
+3 clefs
+3 contacter
+3 scientific
+3 historic
+3 vcs
+3 Update
+3 sinon
+3 origine
+3 crit
+3 Lorsque
+3 rifiez
+3 REPOSITORY
+3 modernes
+3 every
+3 vie
+3 ensemble
+3 rapelle
+3 decentralisation
+3 pragmatique
+3 vivre
+3 Elle
+3 principale
+3 fonctionner
+3 Cloned
+3 provide
+3 chosen
+3 ment
+3 temporary
+3 strange
+3 prennent
+3 ais
+3 did
+3 poste
+3 makes
+3 fully
+3 detailed
+3 username
+3 certainly
+3 jamais
+3 emp
+3 sultat
+3 independently
+3 prend
+3 commencer
+3 velopp
+3 explanations
+3 seem
+3 comments
+3 hellip
+3 mise
+3 central
+3 rest
+3 couvre
+3 rather
+3 propos
+3 disable
+3 webdavfs
+3 story
+3 sufficient
+3 seconds
+3 poss
+3 obtenir
+3 veloppeur
+3 modifi
+3 operations
+3 hui
+3 proc
+3 cot
+3 helps
+3 start
+3 world
+3 possibilities
+3 clear
+3 incoh
+3 organiser
+3 programmation
+3 modifiez
+3 devient
+3 lors
+3 reason
+3 inh
+3 devrait
+3 essayer
+3 repr
+3 multiple
+3 Explorer
+3 blacklist
+3 lire
+3 guy
+3 DVD
+3 making
+3 ind
+3 clearly
+3 prot
+3 integrate
+3 libert
+3 modifier
+3 Repository
+3 Soit
+3 More
+3 normal
+3 enfin
+3 developed
+3 eux
+3 focus
+3 tations
+3 laisse
+3 connaissent
+3 traduire
+3 Worlds
+3 wait
+3 orie
+3 plein
+3 Master
+3 bookmarks
+3 launched
+3 ussi
+3 essayant
+3 future
+3 Java
+3 belles
+4 enseignement
+4 aggregator
+4 Use
+4 fadeIn
+4 laquelle
+4 Script
+4 charge
+4 destin
+4 given
+4 zargs
+4 doesn
+4 Using
+4 occurence
+4 localement
+4 leftblogimage
+4 notre
+4 particulier
+4 delta
+4 devraient
+4 Mieux
+4 trymkdir
+4 frenchspace
+4 during
+4 Warning
+4 fine
+4 lister
+4 within
+4 daemon
+4 histoire
+4 Label
+4 widget
+4 meilleur
+4 utilisant
+4 filename
+4 wifi
+4 tard
+4 message
+4 statiques
+4 john
+4 moz
+4 doe
+4 rarr
+4 serveurs
+4 essential
+4 Simple
+4 SockServiceName
+4 objects
+4 gif
+4 Jusqu
+4 Style
+4 Pourquoi
+4 do_all_merges
+4 Listen
+4 devil
+4 dtd
+4 behaviour
+4 resume
+4 DOCTYPE
+4 rez0
+4 somebody
+4 researched
+4 WTF
+4 Hope
+4 sychronise
+4 vont
+4 Concurent
+4 bloqu
+4 demo
+4 threads
+4 bottom
+4 cloud
+4 jasonsweb
+4 aidant
+4 correspond
+4 rules
+4 rents
+4 versus
+4 removeClass
+4 Generally
+4 shadows
+4 where
+4 XHTML
+4 Sous
+4 listening
+4 YClock
+4 invitation
+4 LaunchDaemons
+4 getElementsByTagName
+4 youtube
+4 essaye
+4 firefox
+4 Welcome
+4 Sometimes
+4 compatible
+4 dois
+4 plugin
+4 YOUR_DISQUS_ID
+4 NOT
+4 imagination
+4 thread
+4 pourrait
+4 join
+4 XCode
+4 olddate
+4 filesystem
+4 _was_x_
+4 trop
+4 Revenir
+4 11T14
+4 tagRealSize
+4 darkimpact
+4 expliquer
+4 LostHighway
+4 folder2
+4 mentionned
+4 exist
+4 absolute
+4 proposent
+4 mots
+4 Entries
+4 dont
+4 11_Load_Disqus_Asynchronously
+4 important
+4 TOR
+4 developer
+4 stylesheet
+4 adapted
+4 manipuler
+4 logfull
+4 scan
+4 sente
+4 twitter
+4 rsyncPublish
+4 append
+4 agr
+4 explanation
+4 versionner
+4 Disons
+4 come
+4 crire
+4 tree
+4 fastest
+4 ainsi
+4 bas
+4 interface
+4 convinced
+4 coder
+4 YPassword
+4 completely
+4 keygen
+4 peux
+4 transform
+4 addClass
+4 Grep
+4 berger
+4 Wait
+4 80000
+4 x271E
+4 lnkto
+4 cours
+4 pose
+4 normalement
+4 Dagger
+4 values
+4 Antipolis
+4 Linus
+4 utilisez
+4 cris
+4 webdesign
+4 previous
+4 Many
+4 failed
+4 security
+4 reach
+4 Nanoc
+4 opacity
+4 difference
+4 dite
+4 qual
+4 Volumes
+4 Depending
+4 habitu
+4 John
+4 curis
+4 giannii
+4 navigateur
+4 esac
+4 Adventure
+4 gitx
+4 fetch
+4 Sync
+4 Cronenberg
+4 against
+4 those
+4 item
+4 synchronisant
+4 pense
+4 trick
+4 Library
+4 please
+4 petite
+4 verrez
+4 HOME
+4 15T11
+4 9000
+4 intern
+4 functions
+4 passer
+4 websites
+4 derni
+4 Once
+4 rule
+4 rence
+4 mac
+4 hope
+4 cible
+4 protections
+4 Utiliser
+4 degree
+4 Cette
+4 Doctorat
+4 Expression
+4 encapsulate
+4 begining
+4 jasonweb
+4 Ruby
+4 trying
+4 num
+4 erreurs
+4 per
+4 merging
+4 Rabbit
+4 Sophia
+4 quasiment
+4 Analytics
+4 yourself
+4 safari
+4 htm
+4 incrementalPublish
+4 Sheet
+4 Perl
+4 03d
+4 data
+4 image
+4 antialias
+4 hypoth
+4 divergent
+4 Regular
+4 Lorsqu
+4 030000
+4 der
+4 Georgia
+4 life
+4 arrow
+4 commentScript
+4 algorithm
+4 locahost
+4 fail
+4 aime
+4 etc
+4 passion
+4 jalousie
+4 remoteMissingBranches
+4 23T10
+4 eee
+4 required
+4 logo
+4 logiciels
+4 later
+4 window
+4 utilis
+4 feedback
+4 discussions
+4 displayed
+4 yeux
+4 listeFic
+4 Directory
+4 Versioning
+4 asynchrone
+4 tries
+4 fic
+4 pouvons
+4 difficile
+4 webkit
+4 swp
+4 face
+4 affiche
+4 utilit
+4 Torvald
+4 blue
+4 Understanding
+4 their
+4 peuvent
+4 refer
+4 firewall
+4 term
+4 bits
+4 profile
+4 About
+4 visual
+4 existing
+4 array
+4 sauf
+4 Soggoth
+4 localbranches
+4 30_Easy
+4 SWAP
+4 normalized
+4 externe
+4 3000
+4 isolated
+4 seconde
+4 maxSize
+4 click
+4 onClick
+4 afficher
+4 matching
+4 encoding
+4 everywhere
+4 multiples
+4 Technical
+4 cool
+4 internal
+4 WORK
+4 pretty
+4 contient
+4 module
+4 swappe
+4 development
+4 rapidement
+4 renommages
+4 downcase
+4 sprintf
+4 Dagon
+4 protection
+4 chez
+4 tais
+4 nicer
+4 Cascading
+4 axbxc
+4 premier
+4 avais
+4 Forbidden
+4 assign
+4 less
+4 differents
+4 translate
+4 impossible
+4 allow
+4 BEchec
+4 necessarily
+4 Bzr
+4 Avant
+4 rechercher
+4 garder
+4 ordinateur
+4 Doe
+4 tagNumber
+4 ubuntu
+4 note3
+4 Validation
+4 MERGE_HEAD
+4 similar
+4 structure
+4 Yes
+4 finish
+4 note2
+4 impression
+4 rebase
+4 scratch
+4 appendChild
+4 Comme
+4 closed
+4 research
+4 disqus_no_style
+4 do_something
+4 Provence
+4 guide
+4 Next
+4 VersionHash
+4 Begins
+4 short
+4 LINK
+4 France
+4 decentralized
+4 LOSE
+4 tagRefs
+4 entry
+4 _secure_and_portable_password_management_system
+4 Mercurial
+4 full
+4 _was_y_
+4 donn
+4 Andy
+4 retransform
+4 mnt
+4 300
+4 Command
+4 upload
+4 murder
+4 Encapsulate
+4 local_directory
+5 Universit
+5 merger
+5 equivalent
+5 haut
+5 self
+5 suivant
+5 iWeb
+5 train
+5 variable
+5 tip
+5 changed
+5 mettre
+5 fonctionne
+5 little
+5 explaining
+5 Renee
+5 take
+5 stay
+5 achieve
+5 Most
+5 able
+5 behind
+5 tuer
+5 accomplish
+5 suite
+5 Mondes
+5 ral
+5 Even
+5 asynchronously
+5 sera
+5 locaux
+5 understood
+5 rel
+5 shouldn
+5 browser
+5 Which
+5 indisponible
+5 compris
+5 modern
+5 graph
+5 exists
+5 total
+5 suggest
+5 Ces
+5 backups
+5 hypothesis
+5 faster
+5 concentration
+5 features
+5 renaming
+5 rendre
+5 taill
+5 petit
+5 seront
+5 already
+5 beginning
+5 accomplir
+5 language
+5 gitignore
+5 souhaite
+5 sources
+5 adoucies
+5 outil
+5 look
+5 suivre
+5 directories
+5 learn
+5 remplacer
+5 explained
+5 versionned
+5 che
+5 least
+5 maintenant
+5 mysterious
+5 big
+5 esp
+5 followed
+5 think
+5 cela
+5 exactement
+5 camera
+5 besoin
+5 lack
+5 donner
+5 Better
+5 curit
+5 choix
+5 fact
+5 Bon
+5 voulez
+5 happened
+5 quelqu
+5 terminology
+5 still
+5 horrible
+5 over
+5 utile
+5 veux
+5 isol
+5 con
+5 Que
+5 soudre
+5 leur
+5 sub
+5 Informatique
+5 protagonist
+5 rend
+5 undo
+5 correctement
+5 ensuite
+5 Before
+5 cam
+5 World
+5 souhaitez
+5 uses
+5 termin
+5 scientifique
+5 UNIX
+5 occuper
+5 Parall
+5 decided
+6 place
+6 ajouter
+6 do_merge
+6 padding
+6 rss
+6 watched
+6 sometimes
+6 localRef
+6 great
+6 myself
+6 action
+6 nom
+6 watch
+6 synchroniser
+6 created
+6 down
+6 betterthangrep
+6 untaught
+6 versionn
+6 Standard
+6 flagname
+6 wikipedia
+6 pourra
+6 alt
+6 uncommit
+6 naturally
+6 Web
+6 verify
+6 wiki
+6 Tips
+6 framework
+6 rec_merge
+6 finally
+6 BEGIN
+6 sandard
+6 Beatrice
+6 id_rsa
+6 jquery
+6 Synchronisation
+6 gives
+6 stoneship
+6 allmerges
+6 Swap
+6 analytics
+6 program
+6 changes
+6 vim
+6 matched
+6 publish
+6 locally
+6 todisapear
+6 bare
+6 0em
+6 chomp
+6 Failed
+6 255
+6 everybody
+6 screensaver
+6 aliased
+6 Site
+6 patches
+6 sites
+6 plupart
+6 Syst
+6 fadeOut
+6 modified
+6 bullshit
+6 Seul
+6 Screensaver
+6 hash
+6 webroot
+6 aider
+6 atrice
+6 nohup
+6 day
+6 dit
+6 essay
+6 dedicated
+6 reussi
+6 Mysterious
+6 exclude
+6 crois
+6 anything
+6 lorsque
+6 terminal
+6 EVIL
+6 has_key
+6 versionning
+6 8em
+6 Configure
+6 sudo
+6 lang
+6 init
+6 protected
+6 iTunes
+6 love
+6 Comment
+6 links
+6 Minimalism
+6 allExceptCode
+6 locale
+6 Esposito
+6 custom
+6 Safari
+6 errors
+6 del
+6 iphone
+6 Indisponible
+6 diigo
+6 separator
+6 9050
+6 tue
+6 speak
+6 Yann
+6 pure
+6 Man
+6 configure
+6 preload
+6 FILE
+6 fontconfig
+6 embed
+6 her
+6 never
+6 envie
+6 nombreux
+6 surf
+6 default
+6 naturel
+6 remotely
+6 fin
+6 static
+6 pub
+6 base
+6 letter
+6 three
+6 previouspost
+6 tryrm
+6 move
+6 maximal
+6 body
+6 technical
+6 puis
+6 disparu
+6 perdu
+6 instead
+6 patch
+6 certaines
+6 may
+6 Javascript
+6 getAttribute
+6 debate
+6 Sauf
+6 seule
+6 Dest
+6 him
+6 application
+6 courante
+6 ignore_missing
+6 moyen
+6 stuff
+6 personnal
+6 noir
+6 another
+6 intense
+6 humble
+6 2008
+6 again
+6 voil
+6 Benchmark
+6 suivi
+6 concurrentes
+7 cheap
+7 Patch
+7 question
+7 arri
+7 commiter
+7 https
+7 associated
+7 Load
+7 nouvelle
+7 protagoniste
+7 programming
+7 conflits
+7 Bien
+7 advantages
+7 complete
+7 wanted
+7 voici
+7 With
+7 fontes
+7 set
+7 cas
+7 Synchronize
+7 home
+7 download
+7 esprit
+7 sert
+7 thode
+7 aide
+7 continue
+7 got
+7 live
+7 minimalisme
+7 comprendre
+7 Blog
+7 facilit
+7 resolve
+7 personnes
+7 correctly
+7 Softwares
+7 lines
+7 seulement
+7 close
+7 Until
+7 forget
+7 personnels
+7 fonts
+7 liste
+7 jusqu
+7 lost
+7 Asynchronously
+7 call
+7 conflicts
+7 trois
+7 avantages
+7 partir
+7 Dans
+7 global
+7 lignes
+7 taient
+7 design
+7 souvent
+7 helped
+7 track
+7 view
+7 historique
+7 parce
+7 require
+7 syntax
+7 svn
+7 pendant
+7 techniques
+7 elles
+8 desc
+8 net
+8 Parallel
+8 hierarchy
+8 perdre
+8 presque
+8 gestion
+8 load
+8 femme
+8 to_s
+8 knowing
+8 autoHideMenu
+8 anglais
+8 mkdir
+8 benchmark
+8 Alors
+8 betterexplained
+8 Ensuite
+8 tagSelected
+8 minSize
+8 pointer
+8 switched
+8 intro
+8 get_current_branch
+8 rien
+8 yes
+8 Sites
+8 Conclusion
+8 mouse
+8 Cthulhu
+8 CMS
+8 mieux
+8 contenu
+8 Unfortunately
+8 hover
+8 Mon
+8 quoi
+8 Yogsototh
+8 ont
+8 flux
+8 StringConstant
+8 Microsoft
+8 ARGV
+8 flag
+8 eng
+8 reste
+8 surtout
+8 veut
+8 were
+8 everything
+8 patelt
+8 tes
+8 accounts
+8 common
+8 control
+8 begin
+8 Cloud
+8 titi
+8 cursor
+8 tryrename
+8 18em
+8 acceptfont
+8 toutes
+8 needed
+8 character
+8 mode
+8 selectfont
+8 n00b
+8 Change
+8 options
+8 opinion
+8 believed
+8 FIC
+8 showMenu
+8 too
+8 bak
+8 remoteRef
+8 Tag
+8 That
+8 prefer
+8 hideMenu
+8 working
+8 Shubniggurath
+8 savoir
+8 navigation
+8 man
+8 cmd
+8 max
+8 protocol
+8 finished
+8 radius
+8 Creation
+8 abord
+8 differences
+8 chose
+8 none
+8 Science
+8 jpg
+8 mediacircus
+8 disabled
+8 HTML
+8 creation
+8 fixed
+8 Google
+8 WebSite
+8 table
+8 celui
+8 seems
+8 Let
+8 Root
+8 Qui
+8 mdash
+8 mem
+8 host
+8 hostname
+8 arv
+8 tag_
+8 thing
+8 json
+8 experimental
+9 file1
+9 agit
+9 compilation
+9 nous
+9 certainement
+9 informatique
+9 donc
+9 mail
+9 nouveau
+9 DRM
+9 One
+9 ceux
+9 state
+9 password
+9 gitconfig
+9 branching
+9 doit
+9 being
+9 anti
+9 commands
+9 tapes
+9 keys
+9 useful
+9 mobileMe
+9 modify
+9 file2
+9 link
+9 seul
+9 validation
+9 avant
+9 systems
+9 reference
+9 100
+9 mostly
+9 long
+9 nbsp
+9 Who
+9 coh
+9 someone
+9 does
+9 plut
+9 pertoires
+9 Concurrent
+9 res
+9 wife
+9 Cependant
+9 almost
+9 aller
+9 semble
+9 rent
+9 Ren
+9 From
+9 ration
+9 exactly
+9 isn
+9 passe
+10 04T19
+10 choosen
+10 remotes
+10 sleep
+10 blogimage
+10 avez
+10 fix
+10 Say
+10 encadre
+10 mystifi
+10 publication
+10 vue
+10 head
+10 mistake
+10 webdav
+10 donne
+10 vision
+10 cacher
+10 moment
+10 demystify
+10 trycp
+10 Therefore
+10 remember
+10 apr
+10 proxy
+10 tails
+10 2em
+10 rand
+10 multiSubTitle
+10 update
+10 propre
+10 extension
+10 coherent
+10 loading
+10 socks
+10 Rorschach
+10 tag_in_id
+10 blackpage
+10 src
+10 toto
+10 heads
+10 ation
+10 mobileMeUser
+10 forums
+10 envoyer
+10 Voil
+10 distant
+10 trouve
+10 demystified
+10 Get
+10 evil
+10 effet
+10 whos
+10 known_branches
+10 read
+10 number
+10 TAG
+10 clientB
+10 Alex
+10 projets
+10 log
+10 5em
+10 github
+10 UTC
+10 status
+10 amung
+10 Contact
+10 rente
+10 ligne
+10 doing
+10 google
+10 quelques
+10 branch_name
+10 foo
+10 next
+10 idea
+10 Une
+10 permet
+10 suffix
+10 synchronize
+10 tried
+10 David
+11 cassettes
+11 backup
+11 say
+11 Avec
+11 second
+11 Because
+11 designed
+11 lui
+11 course
+11 moins
+11 encore
+11 contain
+11 fix2
+11 report
+11 fix1
+11 keyword
+11 Puis
+11 nice
+11 projects
+11 tation
+11 output
+11 enough
+11 recherche
+11 difficulties
+11 current
+11 others
+11 value
+11 install
+11 Branch
+11 Decentralized
+11 trouver
+11 pass
+11 changer
+11 pratique
+11 cannot
+11 few
+11 let
+12 synchronisation
+12 much
+12 nil
+12 entre
+12 length
+12 Just
+12 WebDav
+12 rentes
+12 before
+12 rename
+12 animate
+12 success
+12 background
+12 email
+12 remove
+12 is_hidden
+12 explain
+12 news
+12 via
+12 Versions
+12 they
+12 keep
+12 plist
+12 hack
+12 ydestRep
+12 align
+12 even
+12 difficult
+12 enddiv
+12 ack
+12 png
+12 contre
+12 works
+12 begindiv
+12 ces
+12 word
+12 feature
+12 border
+12 conf
+12 always
+12 12T11
+12 myst
+12 note1
+12 CVS
+12 conflict
+12 unique
+12 rieux
+12 bad
+12 interpr
+12 dagger
+12 error_number
+12 understand
+12 x27A8
+12 iPhone
+12 clientA
+12 refs
+12 tant
+12 error_message
+12 extname
+12 sshd
+12 srcRep
+12 minimalism
+12 int
+12 rences
+12 such
+13 autre
+13 choses
+13 standard
+13 voit
+13 very
+13 goal
+13 existe
+13 tait
+13 after
+13 under
+13 travailler
+13 launch
+13 simply
+13 After
+13 easy
+13 handle
+13 explication
+13 When
+13 mot
+13 RSS
+13 son
+13 bazaar
+13 into
+13 url
+13 mal
+13 homme
+14 awk
+14 tab
+14 lancer
+14 informations
+14 utilisation
+14 has
+14 necessary
+14 Dick
+14 jour
+14 amp
+14 apple
+14 Laurent
+14 500
+14 yogsototh
+14 Cheap
+14 menuButton
+14 yrf
+14 because
+14 utilisateur
+14 1em
+14 current_branch
+14 Lynch
+14 put
+14 intensedebate
+14 layout
+14 Maintenant
+14 source
+14 toujours
+14 mobileme
+14 bon
+14 facilement
+14 bzr
+14 tagLinks
+14 height
+14 Debate
+14 min
+14 Intense
+14 Tout
+14 gsub
+14 means
+14 noSubMenu
+14 repertoire
+15 option
+15 Vous
+15 post
+15 Internet
+15 case
+15 return
+15 folder
+15 subversion
+15 articles
+15 MVC
+15 details
+15 would
+15 write
+15 reality
+15 replace
+15 until
+15 trouv
+15 things
+15 plusieurs
+16 tagSize
+16 alias
+16 port
+16 siteName
+16 moi
+16 YBlog
+16 Par
+16 date
+16 voir
+16 manage
+16 443
+16 Ainsi
+16 between
+16 family
+16 img
+16 aux
+16 type
+16 times
+16 different
+16 commandes
+16 dict
+16 send
+16 follow
+16 pattern
+16 shell
+16 xml
+16 Linux
+16 SVN
+16 elle
+16 ext
+16 grep
+16 tell
+16 Zoot
+16 revenir
+17 most
+17 workflow
+17 generate
+17 premi
+17 simplement
+17 System
+17 ready
+17 notion
+17 exemple
+17 position
+17 easily
+17 help
+17 people
+17 soit
+17 totally
+17 his
+17 edit
+17 map
+17 selected
+17 natural
+18 centralis
+18 video
+18 sous
+18 partie
+18 Echec
+18 bug
+18 filesToUpdate
+18 them
+18 could
+18 fichier_important
+18 computer
+18 these
+18 made
+18 test
+18 Firefox
+18 Computer
+18 configuration
+18 give
+18 2010
+18 suffit
+18 sans
+18 probl
+19 show
+19 pouvez
+19 find
+19 puts
+19 tous
+19 must
+19 perl
+19 ses
+19 except
+19 filter
+19 push
+19 beaucoup
+19 free
+19 alit
+19 hard
+20 chaque
+20 bull
+20 ndash
+20 What
+20 used
+20 Snow
+20 back
+20 dev
+20 dire
+20 src_branch
+20 gmail
+20 maxessais
+20 php
+20 votre
+20 suis
+20 quand
+20 other
+20 Les
+20 now
+20 samelineprint
+20 Focus
+20 tement
+21 bien
+21 method
+21 interpretation
+21 without
+21 real
+21 cup
+21 far
+21 include
+21 Now
+21 here
+21 problem
+22 pipo
+22 cette
+22 multi
+22 pull
+22 Ubuntu
+22 path
+22 own
+22 Leopard
+22 tagCloud
+22 serveur
+22 better
+22 iDisk
+22 change
+22 entete
+22 10em
+22 reset
+23 order
+23 alors
+23 who
+23 Voici
+23 There
+23 error
+23 fois
+23 black
+23 Built
+23 last
+23 need
+23 All
+24 its
+24 File
+24 Why
+24 any
+24 comment
+24 something
+24 Mais
+24 Constant
+24 swap
+24 modification
+24 def
+24 point
+24 rsync
+24 renommage
+24 pourquoi
+24 compl
+25 pertoire
+25 good
+25 scm
+25 font
+25 Apple
+25 commande
+25 erb
+25 vers
+26 vraiment
+26 How
+26 faut
+26 size
+26 best
+26 env
+26 line
+26 list
+26 config
+26 following
+26 didn
+26 repository
+26 copy
+26 sup
+26 architecture
+27 root
+27 Disqus
+27 two
+27 deux
+27 filters_pre
+27 files
+28 regular
+28 nanoc
+28 center
+28 fait
+28 text
+28 twilight
+28 utilise
+28 using
+28 bin
+28 part
+29 DCVS
+29 bluecloth
+29 avoir
+29 right
+29 really
+29 directory
+30 remote
+30 containing
+30 pages
+30 hide
+30 Mac
+30 width
+30 main
+30 usr
+30 content
+30 For
+30 bit
+30 add
+30 Then
+30 clone
+30 top
+31 like
+31 peut
+31 just
+31 document
+31 same
+31 Pour
+32 rer
+32 index
+32 color
+32 split
+32 usage
+32 autres
+32 origin
+32 HEAD
+32 result
+32 also
+32 there
+33 believe
+33 projet
+33 create
+33 new
+33 mon
+33 You
+33 aussi
+33 solution
+33 utiliser
+33 non
+33 see
+33 disqus
+33 revert
+33 expression
+34 comme
+34 sont
+34 than
+34 temps
+35 possible
+35 example
+36 name
+36 fichiers
+36 CSS
+37 web
+37 tout
+37 mais
+38 Page
+38 element
+38 client
+38 Scratch
+38 abbr
+39 Highway
+39 simple
+40 know
+40 str
+40 movie
+40 Lost
+40 exit
+40 yann
+40 esposito
+40 tre
+41 commit
+41 what
+41 found
+41 page
+41 get
+41 www
+42 had
+42 film
+42 css
+42 auto
+42 peu
+42 blog
+43 command
+43 user
+43 system
+44 diff
+44 else
+44 server
+44 faire
+44 javascript
+45 website
+45 style
+45 which
+45 don
+46 newcorps
+46 key
+46 try
+46 why
+46 while
+47 first
+47 work
+47 will
+47 when
+47 checkout
+47 how
+48 Fred
+48 jQuery
+48 ssh
+48 margin
+49 old
+49 ruby
+50 more
+50 target
+51 menu
+52 site
+52 way
+53 left
+54 org
+54 regexp
+54 one
+55 are
+55 And
+55 about
+55 time
+55 was
+55 only
+56 make
+56 pre
+56 many
+56 match
+56 syst
+56 tag
+57 Here
+58 branche
+58 html
+58 Bazaar
+58 mes
+58 href
+58 master
+60 local
+61 small
+62 par
+62 but
+62 your
+63 versions
+63 true
+64 The
+64 script
+65 project
+65 This
+65 merge
+66 modifications
+66 false
+67 each
+67 multiDescription
+68 that
+68 want
+69 plus
+71 should
+72 fichier
+73 description
+74 function
+76 from
+76 But
+77 done
+77 have
+78 tmp
+79 dans
+81 avec
+82 2009
+83 all
+84 isHidden
+84 can
+84 created_at
+86 then
+87 version
+87 branches
+88 string
+90 some
+91 kind
+96 menupriority
+97 vous
+98 tags
+102 strong
+102 une
+107 end
+107 multiTitle
+108 qui
+111 use
+114 Custom
+114 sur
+117 article
+118 destRep
+128 with
+128 file
+131 des
+132 span
+135 com
+136 title
+139 this
+147 for
+157 pas
+161 pour
+163 essai
+166 not
+168 branch
+176 http
+192 print
+200 que
+210 zsh
+215 Git
+222 and
+235 les
+237 you
+242 est
+390 class
+464 git
+643 code
+680 div
+774 the
diff --git a/tasks/auto_tags/tf.rb b/tasks/auto_tags/tf.rb
new file mode 100755
index 0000000..5cab81e
--- /dev/null
+++ b/tasks/auto_tags/tf.rb
@@ -0,0 +1,72 @@
+#!/usr/bin/env ruby
+
+def tf(content)
+ tag=Hash.new
+ nbwords=0
+ content.split(/\b/).each do |m|
+ if m.length<3
+ next
+ end
+ if m !~ /\A(\w|\d)*\Z/
+ next
+ end
+ nbwords += 1
+ if tag.has_key?(m)
+ tag[m]+=1
+ else
+ tag[m]=1
+ end
+ end
+ nbwords=nbwords.to_f
+ res=Hash.new
+ tag.each do |w,v|
+ if v == 1
+ next
+ end
+ res[w]=v/nbwords
+ end
+ return res
+end
+
+def show_tags(hash)
+ hash.keys.sort_by do |k|
+ -hash[k]
+ end[0..10].each do |k|
+ puts %{#{hash[k]}: #{k}}
+ end
+end
+
+freq_for={}
+allcontent=""
+ARGV.each do |file|
+ puts '['+file+']'
+ fic=File.open(file)
+ content=""
+ fic.each_line do |l|
+ content <<= l
+ end
+ fic.close
+ freq_for[file]=tf(content)
+ # show_tags(freq_for[file])
+ # puts '==============='
+ allcontent <<= content
+end
+
+# puts 'ALL FREQ'
+all_freq=tf(allcontent)
+# show_tags(all_freq)
+# puts '==============='
+
+res_for={}
+freq_for.each do |file,hash|
+ puts %{==== Frequencie for #{file} =====}
+ res_for[file]=Hash.new
+ hash.each do |k,v|
+ if all_freq[k] == 0
+ next
+ end
+ res_for[file][k] = v/all_freq[k]
+ # puts %{#{v} / #{all_freq[k]} : #{k}}
+ end
+ show_tags(res_for[file])
+end
diff --git a/tasks/autopublish b/tasks/autopublish
new file mode 100755
index 0000000..8683a25
--- /dev/null
+++ b/tasks/autopublish
@@ -0,0 +1,22 @@
+#!/usr/bin/env zsh
+
+source ~/.zshrc
+
+publishdir="$HOME/Sites/blog"
+publisherhost="YiMac.local"
+
+if [[ $HOST != "YiMac.local" ]]; then
+ print -- "You're Not on '$publisherhost' host"
+ exit 1
+fi
+if [[ ! -d $publishdir ]]; then
+ print -- "Directory '$publishdir' not found"
+ exit 1
+fi
+
+# actions are:
+# go to the directory containing the webroot project
+# pull updates from webroot
+# regen all website
+# publish to mobile me
+cd $publishdir && git pull && touch layouts/default.html && ./tasks/recompile && ./tasks/publish
diff --git a/tasks/config b/tasks/config
new file mode 100644
index 0000000..a0562a7
--- /dev/null
+++ b/tasks/config
@@ -0,0 +1,29 @@
+#!/usr/bin/env zsh
+
+# Configuration
+mobileMeUser="yann.esposito"
+webroot=$HOME/Sites/blog/output
+siteName="Scratch"
+
+export PATH="$PATH:$HOME/Sites/blog/tasks"
+
+# Récupération des fichiers
+if [[ $(hostname) == 'ubuntu' ]]; then
+ iDisk='/mnt/iDisk'
+else
+ iDisk="/Volumes/$mobileMeUser"
+fi
+
+srcRep="$webroot/$siteName"
+destRep="$iDisk/Web/Sites/$siteName"
+
+[[ ! -d $webroot ]] && {
+ print -- "$webroot n'existe pas ; vérifiez la conf" >&2;
+ exit 1
+}
+
+[[ ! -d $destRep ]] && {
+ print -- "$destRep n'existe pas, veuillez remonter le FS" >&2;
+ exit 1
+}
+
diff --git a/tasks/create-reference-file.sh b/tasks/create-reference-file.sh
new file mode 100755
index 0000000..2317273
--- /dev/null
+++ b/tasks/create-reference-file.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env zsh
+
+source $0:h/config
+
+if (($#<1)); then
+ baseRep="$srcRep"
+else
+ baseRep="$1"
+fi
+
+for fic in $baseRep/**/*(.); do
+ print -n -- "${fic#${baseRep}} "
+ extension="$fic:e"
+ if [[ $extension = "html" || $extension = "xml" ]]; then
+ perl -pe 's%/dev/null 2>&1; then
+else
+ git add .
+ git commit -m "regeneration"
+fi
+
+# update & push gh-pages
+log "Update and push gh-pages"
+debug git co gh-pages
+(( $? == 0 )) || { exit 1 }
+debug git pull
+(( $? == 0 )) || { exit 1 }
+debug \rm -rf *(N)
+(( $? == 0 )) || { exit 1 }
+debug git co master output
+(( $? == 0 )) || { exit 1 }
+debug git unstage output
+debug mv output/index.html .
+(( $? == 0 )) || { exit 1 }
+debug mv output/Scratch/* .
+(( $? == 0 )) || { exit 1 }
+debug \rm -rf output
+(( $? == 0 )) || { exit 1 }
+debug cp site/404.html 404.html
+(( $? == 0 )) || { exit 1 }
+debug echo "yannesposito.com" > CNAME
+(( $? == 0 )) || { exit 1 }
+debug git add .
+(( $? == 0 )) || { exit 1 }
+debug git commit -m '"updated website"'
+(( $? == 0 )) || { exit 1 }
+debug git push origin gh-pages:gh-pages
+(( $? == 0 )) || { exit 1 }
+debug git co $current_branch
diff --git a/tasks/hpublish b/tasks/hpublish
new file mode 100755
index 0000000..b26b63e
--- /dev/null
+++ b/tasks/hpublish
@@ -0,0 +1,20 @@
+#!/usr/bin/env zsh
+
+if [[ $HOST = "YiMac.local" ]]; then
+ cd $HOME/Sites/webroot
+ git co master
+ (( $? == 0 )) || { exit 1 }
+ git pull
+ (( $? == 0 )) || { exit 1 }
+ # empty regen depencies cache because of a bug
+ # \rm -f ./tmp/*
+ ./tasks/recompile
+ if git status | grep 'nothing to commit'>/dev/null 2>&1; then
+ else
+ git add .
+ git commit -m "regeneration"
+ fi
+ git push heroku master
+else
+ ssh yimac ./Sites/webroot/tasks/hpublish
+fi
diff --git a/tasks/incPublish b/tasks/incPublish
new file mode 100755
index 0000000..64ae9fe
--- /dev/null
+++ b/tasks/incPublish
@@ -0,0 +1,96 @@
+#!/usr/bin/env zsh
+
+# Script synchronisant le site sur me.com
+# normalement, le site est indisponible le moins de temps possible
+# le temps de deux renommages de répertoire
+
+# configuration
+mobileMeUser="yann.esposito"
+webroot=$HOME/Sites/webroot/output
+siteName="Scratch"
+
+# Get Environment
+if [[ $(hostname) == 'ubuntu' ]]; then
+ iDisk='/mnt/iDisk'
+else
+ iDisk="/Volumes/$mobileMeUser"
+fi
+
+srcRep="$webroot/$siteName"
+destRep="$iDisk/Web/Sites/$siteName"
+
+# print error and exit
+function err { print -P -- "$*" >&2; exit 1 ; }
+
+[[ ! -d $webroot ]] && err "$webroot n'existe pas ; vérifiez la conf"
+[[ ! -d $destRep ]] && err "$destRep n'existe pas, veuillez remonter le FS"
+
+if [[ $1 == '-h' ]]; then
+ print -- "usage : $0:h [-h|-a|-s|-t]"
+ print -- " -h affiche l'aide"
+ exit 0
+fi
+
+function trymkdir {
+ target="$1"
+ print -- mkdir $target
+ local essai=1
+ if ((!testmode)); then
+ while mkdir $target; do
+ print -- "Echec: essai n°$essai"
+ ((essai++))
+ done
+ fi
+}
+
+function trycp {
+ element="$1"
+ target="$2"
+ if [[ ! -d ${target:h} ]]; then
+ trymkdir ${target:h}
+ fi
+ local essai=1
+ print -- cp $element $target
+ if ((!testmode)); then
+ while cp $element $target; do
+ print -- "Echec: essai n°$essai"
+ ((essai++))
+ done
+ fi
+}
+
+function createReferenceFile {
+ for element in $srcRep/**/*(.); do
+ print -n "${element#${srcRep}} "
+ perl -pe 's% $localRefFile
+ # -- use the diff between them to update
+
+ # get the list of files to update
+ set -a filesToUpdate
+ filesToUpdate=( $( diff -y $localRefFile $remoteRefFile | perl -ne 'if (m/([^ ]*) ([0-9a-f])*[ ]*\|/) { print "$1\n"; }elsif (m/([^ ]*) ([0-9a-f]*)[ ]*) { print "$1\n"; }elsif(m/>\s*([^\s]*) /) { print "$1\n"; }' ) )
+
+ # get
+ for fic in $filesToUpdate; do
+ print trycp $srcRep/$fic $destRep/$fic
+ done
+}
+
+print -- "Root = $webroot"
+print -- "Dest = $destRep"
+
+incrementalPublish
diff --git a/tasks/multi.vim b/tasks/multi.vim
new file mode 100644
index 0000000..8f2fb6f
--- /dev/null
+++ b/tasks/multi.vim
@@ -0,0 +1,60 @@
+" clear all preceeding definition
+syntax clear
+" case sensitive language
+syntax case match
+
+" Begining
+syntax region multiInline start=/^..: / end=/$/ contains=ALL oneline
+
+highlight link multiInline Type
+
+" To add in your Vimrc
+"
+" multilanguage folders
+autocmd BufEnter *.md setlocal foldmethod=expr
+" se lance avec execute FrenchView()
+fun! FrenchView()
+ %g/^en: .*$\n^en: /foldclose
+ %g/^fr: .*$\n^fr: /foldopen
+ " setlocal foldexpr=getline(v:lnum)=~'^en:\ '?1:0
+endfun
+" se lance avec execute EnglishView()
+fun! EnglishView()
+ %g/^fr: .*$\n^fr: /foldclose
+ %g/^en: .*$\n^en: /foldopen
+ " setlocal foldexpr=getline(v:lnum)=~'^fr:\ '?1:0
+endfun
+
+fun! MyFoldLevel(lnum)
+ if getline(a:lnum)=~'^fr:\ '
+ if getline(a:lnum+1)=~'^fr:\ '
+ return '1'
+ else
+ return '<1'
+ endif
+ else
+ if getline(a:lnum)=~'^en:\ '
+ if getline(a:lnum+1)=~'^en:\ '
+ return '1'
+ else
+ return '<1'
+ endif
+ else
+ return 0
+ endif
+ endif
+endfun
+
+" se lance avec execute MultiView()
+fun! MultiView()
+ setlocal foldexpr=MyFoldLevel(v:lnum)
+endfun
+:command FR execute FrenchView()
+:command EN execute EnglishView()
+:command MM execute MultiView()
+autocmd BufEnter *.md execute MultiView()
+
+autocmd BufEnter latest.md set scrollbind
+autocmd BufEnter latest.md execute FrenchView()
+autocmd BufEnter latest.md vsplit
+autocmd BufEnter latest.md execute EnglishView()
diff --git a/tasks/new_blog_entry b/tasks/new_blog_entry
new file mode 100755
index 0000000..ae76cca
--- /dev/null
+++ b/tasks/new_blog_entry
@@ -0,0 +1,65 @@
+#!/usr/bin/env zsh
+
+# print usage if no title is given
+if (($#<1)); then
+ print -- "Create a new blog entry setting default parameters such as the date."
+ print -P -- "%BUsage:%b\t$0:t post_title"
+ exit 1
+fi
+
+cd $0:t/..
+root="$PWD"
+
+title="$*"
+
+# basefilename is the filename where all spaces
+# were replaced by '-'
+# and all accentued letter by corresponding ASCII one
+basefilename="$( print $title | perl -pe 'chomp(); s#ç#c#g; s#àâ#a#g; s#éèê#e#g; s#ô#o#g; s#û#u#g; s#\W#-#g')"
+
+# construct the final filename
+yearmonthday=$( date "+%Y-%m-%d" )
+linkname="$root/latest.md"
+filename="$root/multi/blog/${yearmonthday}-$basefilename.md"
+[[ ! -d ${filename:h} ]] && mkdir -p ${filename:h}
+dirname="$root/output/Scratch/img/blog/${yearmonthday}-${basefilename}"
+
+[[ -e $filename ]] && {
+ print -P -- "%BAttention%b : $filename existe déjà."
+ print -P -- "%BError try with a new name%b"
+ exit 3
+}
+
+# now title and filename are well defined
+print " title = $title"
+print "filename = $filename"
+
+now=$( date "+%Y-%m-%dT%H:%M:%S+02:00" )
+
+> $filename cat << ENDFORMAT
+-----
+isHidden: false
+menupriority: 1
+kind: article
+created_at: $now
+fr: title: $title
+en: title: $title
+author_name: Yann Esposito
+author_uri: yannesposito.com
+# tags:
+-----
+<%= blogimage("main.png","Title image") %>
+
+begindiv(intro)
+
+en: <%= tldr %>
+
+fr: <%= tlal %>
+
+enddiv
+ENDFORMAT
+
+print "imagedir = $dirname"
+mkdir $dirname
+ln -sf ./multi/${filename#*/multi/} $linkname
+vim $linkname
diff --git a/tasks/publish b/tasks/publish
new file mode 100755
index 0000000..917eb1d
--- /dev/null
+++ b/tasks/publish
@@ -0,0 +1,128 @@
+#!/usr/bin/env zsh
+
+# Script synchronisant le site sur me.com
+# normalement, le site est indisponible le moins de temps possible
+# le temps de deux renommages de répertoire
+
+# get configuration
+# mostly directories
+source $0:h/config
+
+# get trycp function (copy until success)
+source $0:h/webdav-framework
+
+if [[ $1 == '-h' ]]; then
+ print -- "usage : $0:h [-h|-s|-d]"
+ print -- " -h affiche l'aide"
+ print -- " -d modification directe (pas de swap)"
+ print -- " -s swappe simplement les répertoires"
+fi
+
+# publication incrementale
+function incrementalPublish {
+ local ydestRep=$destRep$suffix
+ localRef="$srcRep/map.yrf"
+ print -- "Creation du fichier de references"
+ create-reference-file.sh > $localRef
+ remoteRef="/tmp/remoteSiteMapRef.$$.yrf"
+ if [[ ! -e "$ydestRep/map.yrf" ]]; then
+ # pas de fichier de reference sur la cible
+ print -- "pas de fichier de reference sur la cible, passage en mode rsync"
+ rsyncPublish
+ swap
+ else
+ trycp "$ydestRep/map.yrf" "$remoteRef"
+ typeset -U filesToUpdate
+ filesToUpdate=( $(diff $localRef $remoteRef | awk '/^[<>]/ {print $2}' ) )
+ if ((${#filesToUpdate} == 1)); then
+ print -- "Seul le fichier ${filesToUpdate} sera téléversé"
+ elif ((${#filesToUpdate}<10)); then
+ print -- "${#filesToUpdate} fichiers seront téléversés :"
+ print -- "${filesToUpdate}"
+ else
+ print -- "${#filesToUpdate} fichiers seront téléversés"
+ fi
+ # copy all file with some differences
+ # except the map in case of error
+ for element in $filesToUpdate; do
+ if [[ $element == "/map.yrf" ]]; then
+ continue
+ fi
+ if [[ -e $srcRep$element ]]; then
+ trycp $srcRep$element $ydestRep$element
+ else
+ tryrm $ydestRep$element
+ fi
+ done
+ # if all went fine, copy the map file
+ trycp $srcRep/map.yrf $ydestRep/map.yrf
+ # remove the temporary file
+ \rm $remoteRef
+ # if we have used the tmp directory we swap
+ if [[ "$suffix" != "" ]]; then
+ swap
+ fi
+ fi
+}
+
+# publication via rsync
+function rsyncPublish {
+ result=1
+ essai=1
+ while (( $result > 0 )); do
+ print -- rsync -arv $srcRep/ $destRep.tmp
+ if ((!testmode)); then
+ rsync -arv $srcRep/ $destRep.tmp
+ fi
+ result=$?
+ if (( $result > 0 )); then
+ print -P -- "%BEchec du rsync%b (essai n°$essai)" >&2
+ fi
+ ((essai++))
+ done
+}
+
+# swap
+function swap {
+ print -P -- "%B[Directory Swap (tmp <=> target)]%b"
+ [[ -e $destRep.old ]] && tryrm $destRep.old
+
+ print -- " renommage du repertoire sandard vers le .old"
+ tryrename $destRep $destRep.old
+
+ print -- " renommage du repertoire tmp (nouveau) vers le standard"
+ print -P -- "%B[Site Indisponible]%b $(date)"
+ tryrename $destRep.tmp $destRep
+ print -P -- "%B[Site Disponible]%b $(date)"
+
+ print -- " renommage du repertoire old vers le tmp"
+ tryrename $destRep.old $destRep.tmp
+
+ print -P -- " publication terminée"
+}
+
+print -- "Root = $webroot"
+print -- "Dest = $destRep"
+
+if [[ "$1" = "-s" ]]; then
+ swap
+else
+ if [[ "$1" = "-a" ]]; then
+ print -Pn "Copie de l'init "
+ \cp -f ${webroot:t}/index.html ${destRep:h}/index.html
+ if [[ $? -eq 0 ]]; then
+ print -P "[%Bdone%b]"
+ else
+ print -P "[%BFailed%b]"
+ exit 1
+ fi
+ fi
+
+ if [[ "$1" = "-d" ]]; then
+ suffix=""
+ else
+ suffix=".tmp"
+ fi
+ print -P -- "%BSync%b[${Root:t} => ${destRep:t}$suffix]"
+ incrementalPublish
+fi
diff --git a/tasks/recompile b/tasks/recompile
new file mode 100755
index 0000000..3b79dae
--- /dev/null
+++ b/tasks/recompile
@@ -0,0 +1,42 @@
+#!/usr/bin/env zsh
+
+source ~/.zshrc
+
+languages=( fr en )
+typeset -a exclu
+
+function join {
+ char=$1
+ shift
+ res=$1
+ shift
+ for arg in $@; do
+ res=$res$char$arg
+ done
+ print $res
+}
+
+typeset -a priority_list
+for fic in multi/**/*(.); do
+ for language in $languages; do
+ dest=content/html/$language/${fic#multi/}
+ exclu=()
+ if [[ ! -e $dest || $fic -nt $dest ]]; then
+ print $dest
+ [[ ! -d ${dest:h} ]] && mkdir ${dest:h}
+ for l in $languages; do
+ case $l in
+ $language) continue ;;
+ esac
+ exclu=( $exclu $l )
+ done
+ awk '! /^('$exclu'): / { sub(/^'$language': /,""); print $0 }' < $fic > $dest
+ priority_list=( $priority_list ${${dest#content/}:r} )
+ fi
+ done
+done
+
+cmd="nanoc co $priority_list"
+print -- '==='
+print -- $cmd
+eval $cmd
diff --git a/tasks/reinitWebsite.sh b/tasks/reinitWebsite.sh
new file mode 100755
index 0000000..d4f5236
--- /dev/null
+++ b/tasks/reinitWebsite.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env zsh
+
+for rep in output/Scratch/{en,fr,assets}(/N) output/Scratch/sitemap.xml(.N); do
+ print -- "Suppression de $rep"
+ git co $rep
+done
+print -- "Website reinit from HEAD"
diff --git a/tasks/resetWebSite.sh b/tasks/resetWebSite.sh
new file mode 100755
index 0000000..8b7d3dc
--- /dev/null
+++ b/tasks/resetWebSite.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env zsh
+
+for rep in output/Scratch/{en,fr,assets}(/N); do
+ print -- "Suppression de $rep"
+ \rm -rf $rep
+done
+print -- "Le site est complètement nettoyé"
diff --git a/tasks/serve.py b/tasks/serve.py
new file mode 100755
index 0000000..bfe9970
--- /dev/null
+++ b/tasks/serve.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+import os # pour le chdir
+import SimpleHTTPServer
+import SocketServer
+# minimal web server.
+os.chdir(os.environ['HOME']+'/Sites/webroot/output')
+PORT = 8000
+Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
+httpd = SocketServer.TCPServer(("", PORT), Handler)
+print "serving at port", PORT
+httpd.serve_forever()
diff --git a/tasks/webdav-framework b/tasks/webdav-framework
new file mode 100644
index 0000000..4ec7888
--- /dev/null
+++ b/tasks/webdav-framework
@@ -0,0 +1,108 @@
+#!/usr/bin/env zsh
+
+function samelineprint {
+ print -n -P -- "\r$*"
+}
+
+# avec 1 essai par seconde: 300 = 5 minutes
+maxessais=300
+
+# try to create a directory until success
+function trymkdir {
+ target="$1"
+ print -- mkdir -p $target
+ local essai=1
+ while ! mkdir -p $target; do
+ samelineprint "Echec: essai n°$essai"
+ ((essai++))
+ ((essai>maxessais)) && exit 5
+ done
+ print
+}
+
+# try to copy until success
+function trycp {
+ element="$1"
+ target="$2"
+ if [[ ! -d ${target:h} ]]; then
+ trymkdir ${target:h}
+ fi
+ local essai=1
+ print -- cp $element $target
+ while ! \cp $element $target; do
+ samelineprint "Echec: essai n°$essai"
+ ((essai++))
+ ((essai>maxessais)) && exit 5
+ done
+ print
+}
+
+# try to remove until success
+function tryrm {
+ target="$1"
+ local essai=1
+ local options=''
+ [[ -d $target ]] && options='-rf'
+ print -- rm $options $target
+ while ! rm $options $target; do
+ samelineprint "Echec: essai n°$essai"
+ ((essai++))
+ ((essai>maxessais)) && exit 5
+ done
+ essai=1
+ while [[ -e $element ]]; do
+ samelineprint "rm reussi mais fichier source non disparu n°$essai"
+ sleep 1
+ ((essai++))
+ ((essai>maxessais)) && exit 5
+ done
+ print
+}
+
+# try to rename until success
+function tryrename {
+ element="$1"
+ target="$2"
+ local essai=1
+ while [[ -e $target ]]; do
+ samelineprint "Echec n°$essai le fichier $target existe déjà"
+ ((essai++))
+ ((essai>maxessais)) && exit 5
+ sleep 1
+ done
+ print -- mv $element $target
+ while ! mv $element $target; do
+ samelineprint "Echec: essai n°$essai"
+ ((essai++))
+ ((essai>maxessais)) && exit 4
+ done
+ essai=1
+ while [[ -e $element ]]; do
+ samelineprint "mv reussi mais fichier source non disparu n°$essai"
+ sleep 1
+ ((essai++))
+ ((essai>maxessais)) && exit 5
+ done
+ print
+}
+
+# try to move until success
+function trymv {
+ element="$1"
+ target="$2"
+ local essai=1
+ print -- mv $element $target
+ while ! mv $element $target; do
+ samelineprint "Echec: essai n°$essai"
+ ((essai++))
+ ((essai>maxessais)) && exit 5
+ done
+ essai=1
+ while [[ -e $element ]]; do
+ samelineprint "mv reussi mais fichier source non disparu n°$essai"
+ sleep 1
+ ((essai++))
+ ((essai>maxessais)) && exit 5
+ done
+ print
+}