From 05a0c14d2151b9256ea4cf10e11e3d590e347091 Mon Sep 17 00:00:00 2001 From: "Yann Esposito (Yogsototh)" Date: Sun, 10 Jul 2011 13:06:37 +0200 Subject: [PATCH] New blog entry (mandelbrot ascii) --- content/html/en/blog/Haskell-Mandelbrot.md | 117 +++++++ content/html/fr/blog/Haskell-Mandelbrot.md | 117 +++++++ img_latest_blog_dir | 1 + latest.md | 2 +- multi/blog/Haskell-Mandelbrot.md | 121 ++++++++ output/Scratch/assets/css/main.css | 2 +- .../blog/2009-09-jQuery-Tag-Cloud/index.html | 16 +- .../index.html | 4 + .../index.html | 4 + .../blog/Haskell-Mandelbrot/code/animandel.hs | 10 + .../en/blog/Haskell-Mandelbrot/index.html | 287 ++++++++++++++++++ .../en/blog/Password-Management/index.html | 4 + output/Scratch/en/blog/feed/feed.xml | 157 +++++----- output/Scratch/en/blog/index.html | 88 +++--- .../index.html | 4 + .../index.html | 4 + .../blog/Haskell-Mandelbrot/code/animandel.hs | 10 + .../fr/blog/Haskell-Mandelbrot/index.html | 287 ++++++++++++++++++ .../fr/blog/Password-Management/index.html | 6 +- output/Scratch/fr/blog/feed/feed.xml | 49 ++- output/Scratch/fr/blog/index.html | 75 ++--- output/Scratch/sitemap.xml | 6 + output/index.html | 2 +- 23 files changed, 1175 insertions(+), 198 deletions(-) create mode 100644 content/html/en/blog/Haskell-Mandelbrot.md create mode 100644 content/html/fr/blog/Haskell-Mandelbrot.md create mode 120000 img_latest_blog_dir create mode 100644 multi/blog/Haskell-Mandelbrot.md create mode 100644 output/Scratch/en/blog/Haskell-Mandelbrot/code/animandel.hs create mode 100644 output/Scratch/en/blog/Haskell-Mandelbrot/index.html create mode 100644 output/Scratch/fr/blog/Haskell-Mandelbrot/code/animandel.hs create mode 100644 output/Scratch/fr/blog/Haskell-Mandelbrot/index.html diff --git a/content/html/en/blog/Haskell-Mandelbrot.md b/content/html/en/blog/Haskell-Mandelbrot.md new file mode 100644 index 000000000..5214042e2 --- /dev/null +++ b/content/html/en/blog/Haskell-Mandelbrot.md @@ -0,0 +1,117 @@ +----- +isHidden: false +menupriority: 1 +kind: article +created_at: 2011-07-10T12:41:26+02:00 +title: ASCII Haskell Mandelbrot +author_name: Yann Esposito +author_uri: yannesposito.com +# tags: +----- +Here is the obfuscated code: + + +a=27;b=79;c=C(-2.0,-1.0);d=C(1.0,1.0);e=C(-2.501,-1.003) +newtype C = C (Double,Double) deriving (Show,Eq) +instance Num C where C(x,y)*C(z,t)=C(z*x-y*t,y*z+x*t);C(x,y)+C(z,t)=C(x+z,y+t);abs(C(x,y))=C(sqrt(x*x+y*y),0.0) +r(C(x,y))=x;i(C(x,y))=y +f :: C -> C -> Int -> Int +f c z 0=0;f c z n=if(r(abs(z))>2)then n else f c ((z*z)+c) (n-1) +h j k = map (\z->(f (C z) (C(0,0)) 32,(fst z>l - q/2))) [(x,y)|y<-[p,(p+((o-p)/a))..o],x<-[m,(m + q)..l]] where o=i k;p=i j;m=r j;l=r k;q=(l-m)/b +u j k = concat $ map v $ h j k where v (i,p)=(" .,`'°\":;-+oO0123456789=!%*§&$@#"!!i):rst p;rst True="\n";rst False="" +main = putStrLn $ im 0 where cl n (C (x,y))=let cs=(1.1**n-1) in C ((x+cs*(r e))/cs+1,(y+cs*(i e))/cs+1);bl n=cl n c;tr n=cl n d;im n=u (bl n) (tr n)++"\x1b[H\x1b[25A"++im (n+1) + + +To launch it, you'll need to have [haskell](http://haskell.org) installed and to run: + +ghc --make animandel.hs && animandel + +Here is some image after 50 iterations: + + +5555666666666666666666666666666655555555554O+++ :o022334444444444444444444444444 +5555556666666666666666666666665555555555543210O-+O112333344444444444444444444444 +55555555666666666666666666665555555555444333210o`O012333333444444444444444444444 +4555555555566666666666666555555555544444333331O+°°,'0233333334444444444444444433 +44444445555555556666555555555444444444433333210o-:O01122333333334444444444443333 +44444444444444445555444444444444444444333332211O+ -o1112222223333333344433333222 +444444444444433331133334444444444444433332221110o"+O0111222222222222222222222222 +34444444443333330OO03333334444444443332222221100O+-oO001122222222221110-O1111122 +22333333333332210--01223333333333322222222211000o-°+o00000122222111110o°;o001111 +11OO112222222111O;;O111222222211OO111122211000Oo-" :+ooOOOO.O0000000OOo'°oOO0000 +0O;+O01122211000O--O00011221110O+;O00000OO +oooo-: :-+oo++";oOO0000Ooo+;;+oooO00 +o+"+oO00OO OOOOoo::ooOOOO°OO00Oo+"+ooOooo+;°---",' ,,";--: ;-+oo+ +++;;°°;;-++:; +,° °':°: ` "`".°° °° "°". :'", '°`°":`°` ,,`` . . .°°'°° ` .. `'°. ++-`-oo+oo+'+o+`--°°;-`+o+"+oo+oo-'-++;+++-:,:::"` °::°° :-;;--,;-; " " ;-;": +OO"-O0000000000Oo--oO0000000000O-:oO0000Oo::+++;;: ":"-++-';+oooOOoooo-::-oooo++ +10;-111222222110O--O011222222111- 01111110oOOOoo-: :-ooooo`:OO000000OO+;;+OOO000 +22122222222222110++0112222222222111222222221000O+:,;.O000001111111100Oo:-OO00000 +3344444433333332-,°-2333333344444433322222221100o-;oO00011222222221111O'+0111111 +444444444444333320023333444444444444433322221110O.:O0011222222222222211-01112222 +44444444444444443333444444444444444444333332211O. -o1112222222223333333333322222 +44444444445555555555555555444444444444433333210O-"oO1122223333333444444444433333 +444555555555666666666666555555555444444433333' '`:+O0233333333444444444444444433 + + +Here is the more readable version. I believe with this far more readable version, no more explanation is needed. + + +-- Screen size +nbvert = 27 +nbhor = 79 +init_bottom_left = C (-2.0,-1.0) +init_top_right = C (1.0,1.0) +interrest = C (-2.5,-1.0) + +newtype Complex = C (Float,Float) deriving (Show,Eq) +instance Num Complex where + fromInteger n = C (fromIntegral n,0.0) + C (x,y) * C (z,t) = C (z*x - y*t, y*z + x*t) + C (x,y) + C (z,t) = C (x+z, y+t) + abs (C (x,y)) = C (sqrt (x*x + y*y),0.0) + signum (C (x,y)) = C (signum x , 0.0) + +real :: Complex -> Float +real (C (x,y)) = x +im :: Complex -> Float +im (C (x,y)) = y + +f :: Complex -> Complex -> Int -> Complex +f c z 0 = z +f c z n = f c ((z*z)+c) (n-1) + +cabs :: Complex -> Float +cabs = real.abs + +tst :: Complex -> Bool +tst c = (cabs (f c (C(0.0,0.0)) 32)) < 2 + +bmandel bottomleft topright = map (\z -> (tst (C z), (fst z > right - hstep/2 ))) [(x,y) | y <- [bottom,(bottom + vstep)..top], x<-[left,(left + hstep)..right]] + where + top = im topright + bottom = im bottomleft + left = real bottomleft + right = real topright + vstep=(top-bottom)/nbvert + hstep=(right-left)/nbhor + +mandel :: Complex -> Complex -> String +mandel bottomleft topright = concat $ map treat $ bmandel bottomleft topright + where + treat (True,jump) = " " ++ rst jump + treat (False,jump) = "@" ++ rst jump + rst True = "\n" + rst False = "" + +main = do + x <- getContents + putStrLn $ infinitemandel 0 + where + closer n (C (x,y)) = + let cst = (1.1**n - 1) in + C ( (x + cst*(real interrest))/cst+1, + (y + cst*(im interrest))/cst+1 ) + bottomleftn n = closer n init_bottom_left + toprightn n = closer n init_top_right + infinitemandel n = mandel (bottomleftn n) (toprightn n) ++ "\x1b[H\x1b[25A" ++ infinitemandel (n+1) + diff --git a/content/html/fr/blog/Haskell-Mandelbrot.md b/content/html/fr/blog/Haskell-Mandelbrot.md new file mode 100644 index 000000000..506339dfc --- /dev/null +++ b/content/html/fr/blog/Haskell-Mandelbrot.md @@ -0,0 +1,117 @@ +----- +isHidden: false +menupriority: 1 +kind: article +created_at: 2011-07-10T12:41:26+02:00 +title: Mandelbrot avec haskell +author_name: Yann Esposito +author_uri: yannesposito.com +# tags: +----- +Voici le code "obfusqué" : + + +a=27;b=79;c=C(-2.0,-1.0);d=C(1.0,1.0);e=C(-2.501,-1.003) +newtype C = C (Double,Double) deriving (Show,Eq) +instance Num C where C(x,y)*C(z,t)=C(z*x-y*t,y*z+x*t);C(x,y)+C(z,t)=C(x+z,y+t);abs(C(x,y))=C(sqrt(x*x+y*y),0.0) +r(C(x,y))=x;i(C(x,y))=y +f :: C -> C -> Int -> Int +f c z 0=0;f c z n=if(r(abs(z))>2)then n else f c ((z*z)+c) (n-1) +h j k = map (\z->(f (C z) (C(0,0)) 32,(fst z>l - q/2))) [(x,y)|y<-[p,(p+((o-p)/a))..o],x<-[m,(m + q)..l]] where o=i k;p=i j;m=r j;l=r k;q=(l-m)/b +u j k = concat $ map v $ h j k where v (i,p)=(" .,`'°\":;-+oO0123456789=!%*§&$@#"!!i):rst p;rst True="\n";rst False="" +main = putStrLn $ im 0 where cl n (C (x,y))=let cs=(1.1**n-1) in C ((x+cs*(r e))/cs+1,(y+cs*(i e))/cs+1);bl n=cl n c;tr n=cl n d;im n=u (bl n) (tr n)++"\x1b[H\x1b[25A"++im (n+1) + + +Pour le lancer, [haskell](http://haskell.org) doit être installé. Puis vous devez écrire dans un terminal : + +ghc --make animandel.hs && animandel + +Voici le résultat après 50 itérations. + + +5555666666666666666666666666666655555555554O+++ :o022334444444444444444444444444 +5555556666666666666666666666665555555555543210O-+O112333344444444444444444444444 +55555555666666666666666666665555555555444333210o`O012333333444444444444444444444 +4555555555566666666666666555555555544444333331O+°°,'0233333334444444444444444433 +44444445555555556666555555555444444444433333210o-:O01122333333334444444444443333 +44444444444444445555444444444444444444333332211O+ -o1112222223333333344433333222 +444444444444433331133334444444444444433332221110o"+O0111222222222222222222222222 +34444444443333330OO03333334444444443332222221100O+-oO001122222222221110-O1111122 +22333333333332210--01223333333333322222222211000o-°+o00000122222111110o°;o001111 +11OO112222222111O;;O111222222211OO111122211000Oo-" :+ooOOOO.O0000000OOo'°oOO0000 +0O;+O01122211000O--O00011221110O+;O00000OO +oooo-: :-+oo++";oOO0000Ooo+;;+oooO00 +o+"+oO00OO OOOOoo::ooOOOO°OO00Oo+"+ooOooo+;°---",' ,,";--: ;-+oo+ +++;;°°;;-++:; +,° °':°: ` "`".°° °° "°". :'", '°`°":`°` ,,`` . . .°°'°° ` .. `'°. ++-`-oo+oo+'+o+`--°°;-`+o+"+oo+oo-'-++;+++-:,:::"` °::°° :-;;--,;-; " " ;-;": +OO"-O0000000000Oo--oO0000000000O-:oO0000Oo::+++;;: ":"-++-';+oooOOoooo-::-oooo++ +10;-111222222110O--O011222222111- 01111110oOOOoo-: :-ooooo`:OO000000OO+;;+OOO000 +22122222222222110++0112222222222111222222221000O+:,;.O000001111111100Oo:-OO00000 +3344444433333332-,°-2333333344444433322222221100o-;oO00011222222221111O'+0111111 +444444444444333320023333444444444444433322221110O.:O0011222222222222211-01112222 +44444444444444443333444444444444444444333332211O. -o1112222222223333333333322222 +44444444445555555555555555444444444444433333210O-"oO1122223333333444444444433333 +444555555555666666666666555555555444444433333' '`:+O0233333333444444444444444433 + + +Here is the more readable version. I believe with this far more readable version, no more explanation is needed. + + +-- Screen size +nbvert = 27 +nbhor = 79 +init_bottom_left = C (-2.0,-1.0) +init_top_right = C (1.0,1.0) +interrest = C (-2.5,-1.0) + +newtype Complex = C (Float,Float) deriving (Show,Eq) +instance Num Complex where + fromInteger n = C (fromIntegral n,0.0) + C (x,y) * C (z,t) = C (z*x - y*t, y*z + x*t) + C (x,y) + C (z,t) = C (x+z, y+t) + abs (C (x,y)) = C (sqrt (x*x + y*y),0.0) + signum (C (x,y)) = C (signum x , 0.0) + +real :: Complex -> Float +real (C (x,y)) = x +im :: Complex -> Float +im (C (x,y)) = y + +f :: Complex -> Complex -> Int -> Complex +f c z 0 = z +f c z n = f c ((z*z)+c) (n-1) + +cabs :: Complex -> Float +cabs = real.abs + +tst :: Complex -> Bool +tst c = (cabs (f c (C(0.0,0.0)) 32)) < 2 + +bmandel bottomleft topright = map (\z -> (tst (C z), (fst z > right - hstep/2 ))) [(x,y) | y <- [bottom,(bottom + vstep)..top], x<-[left,(left + hstep)..right]] + where + top = im topright + bottom = im bottomleft + left = real bottomleft + right = real topright + vstep=(top-bottom)/nbvert + hstep=(right-left)/nbhor + +mandel :: Complex -> Complex -> String +mandel bottomleft topright = concat $ map treat $ bmandel bottomleft topright + where + treat (True,jump) = " " ++ rst jump + treat (False,jump) = "@" ++ rst jump + rst True = "\n" + rst False = "" + +main = do + x <- getContents + putStrLn $ infinitemandel 0 + where + closer n (C (x,y)) = + let cst = (1.1**n - 1) in + C ( (x + cst*(real interrest))/cst+1, + (y + cst*(im interrest))/cst+1 ) + bottomleftn n = closer n init_bottom_left + toprightn n = closer n init_top_right + infinitemandel n = mandel (bottomleftn n) (toprightn n) ++ "\x1b[H\x1b[25A" ++ infinitemandel (n+1) + diff --git a/img_latest_blog_dir b/img_latest_blog_dir new file mode 120000 index 000000000..d574a6e5c --- /dev/null +++ b/img_latest_blog_dir @@ -0,0 +1 @@ +/Users/esposito/Sites/webroot/output/Scratch/img/blog/Haskell-Mandelbrot \ No newline at end of file diff --git a/latest.md b/latest.md index d4f418306..6a31001e7 120000 --- a/latest.md +++ b/latest.md @@ -1 +1 @@ -./multi/blog/Password-Management.md \ No newline at end of file +./multi/blog/Haskell-Mandelbrot.md \ No newline at end of file diff --git a/multi/blog/Haskell-Mandelbrot.md b/multi/blog/Haskell-Mandelbrot.md new file mode 100644 index 000000000..b082f29e2 --- /dev/null +++ b/multi/blog/Haskell-Mandelbrot.md @@ -0,0 +1,121 @@ +----- +isHidden: false +menupriority: 1 +kind: article +created_at: 2011-07-10T12:41:26+02:00 +en: title: ASCII Haskell Mandelbrot +fr: title: Mandelbrot avec haskell +author_name: Yann Esposito +author_uri: yannesposito.com +# tags: +----- +en: Here is the obfuscated code: +fr: Voici le code "obfusqué" : + + +a=27;b=79;c=C(-2.0,-1.0);d=C(1.0,1.0);e=C(-2.501,-1.003) +newtype C = C (Double,Double) deriving (Show,Eq) +instance Num C where C(x,y)*C(z,t)=C(z*x-y*t,y*z+x*t);C(x,y)+C(z,t)=C(x+z,y+t);abs(C(x,y))=C(sqrt(x*x+y*y),0.0) +r(C(x,y))=x;i(C(x,y))=y +f :: C -> C -> Int -> Int +f c z 0=0;f c z n=if(r(abs(z))>2)then n else f c ((z*z)+c) (n-1) +h j k = map (\z->(f (C z) (C(0,0)) 32,(fst z>l - q/2))) [(x,y)|y<-[p,(p+((o-p)/a))..o],x<-[m,(m + q)..l]] where o=i k;p=i j;m=r j;l=r k;q=(l-m)/b +u j k = concat $ map v $ h j k where v (i,p)=(" .,`'°\":;-+oO0123456789=!%*§&$@#"!!i):rst p;rst True="\n";rst False="" +main = putStrLn $ im 0 where cl n (C (x,y))=let cs=(1.1**n-1) in C ((x+cs*(r e))/cs+1,(y+cs*(i e))/cs+1);bl n=cl n c;tr n=cl n d;im n=u (bl n) (tr n)++"\x1b[H\x1b[25A"++im (n+1) + + +en: To launch it, you'll need to have [haskell](http://haskell.org) installed and to run: +fr: Pour le lancer, [haskell](http://haskell.org) doit être installé. Puis vous devez écrire dans un terminal : + +ghc --make animandel.hs && animandel + +en: Here is some image after 50 iterations: +fr: Voici le résultat après 50 itérations. + + +5555666666666666666666666666666655555555554O+++ :o022334444444444444444444444444 +5555556666666666666666666666665555555555543210O-+O112333344444444444444444444444 +55555555666666666666666666665555555555444333210o`O012333333444444444444444444444 +4555555555566666666666666555555555544444333331O+°°,'0233333334444444444444444433 +44444445555555556666555555555444444444433333210o-:O01122333333334444444444443333 +44444444444444445555444444444444444444333332211O+ -o1112222223333333344433333222 +444444444444433331133334444444444444433332221110o"+O0111222222222222222222222222 +34444444443333330OO03333334444444443332222221100O+-oO001122222222221110-O1111122 +22333333333332210--01223333333333322222222211000o-°+o00000122222111110o°;o001111 +11OO112222222111O;;O111222222211OO111122211000Oo-" :+ooOOOO.O0000000OOo'°oOO0000 +0O;+O01122211000O--O00011221110O+;O00000OO +oooo-: :-+oo++";oOO0000Ooo+;;+oooO00 +o+"+oO00OO OOOOoo::ooOOOO°OO00Oo+"+ooOooo+;°---",' ,,";--: ;-+oo+ +++;;°°;;-++:; +,° °':°: ` "`".°° °° "°". :'", '°`°":`°` ,,`` . . .°°'°° ` .. `'°. ++-`-oo+oo+'+o+`--°°;-`+o+"+oo+oo-'-++;+++-:,:::"` °::°° :-;;--,;-; " " ;-;": +OO"-O0000000000Oo--oO0000000000O-:oO0000Oo::+++;;: ":"-++-';+oooOOoooo-::-oooo++ +10;-111222222110O--O011222222111- 01111110oOOOoo-: :-ooooo`:OO000000OO+;;+OOO000 +22122222222222110++0112222222222111222222221000O+:,;.O000001111111100Oo:-OO00000 +3344444433333332-,°-2333333344444433322222221100o-;oO00011222222221111O'+0111111 +444444444444333320023333444444444444433322221110O.:O0011222222222222211-01112222 +44444444444444443333444444444444444444333332211O. -o1112222222223333333333322222 +44444444445555555555555555444444444444433333210O-"oO1122223333333444444444433333 +444555555555666666666666555555555444444433333' '`:+O0233333333444444444444444433 + + +Here is the more readable version. I believe with this far more readable version, no more explanation is needed. + + +-- Screen size +nbvert = 27 +nbhor = 79 +init_bottom_left = C (-2.0,-1.0) +init_top_right = C (1.0,1.0) +interrest = C (-2.5,-1.0) + +newtype Complex = C (Float,Float) deriving (Show,Eq) +instance Num Complex where + fromInteger n = C (fromIntegral n,0.0) + C (x,y) * C (z,t) = C (z*x - y*t, y*z + x*t) + C (x,y) + C (z,t) = C (x+z, y+t) + abs (C (x,y)) = C (sqrt (x*x + y*y),0.0) + signum (C (x,y)) = C (signum x , 0.0) + +real :: Complex -> Float +real (C (x,y)) = x +im :: Complex -> Float +im (C (x,y)) = y + +f :: Complex -> Complex -> Int -> Complex +f c z 0 = z +f c z n = f c ((z*z)+c) (n-1) + +cabs :: Complex -> Float +cabs = real.abs + +tst :: Complex -> Bool +tst c = (cabs (f c (C(0.0,0.0)) 32)) < 2 + +bmandel bottomleft topright = map (\z -> (tst (C z), (fst z > right - hstep/2 ))) [(x,y) | y <- [bottom,(bottom + vstep)..top], x<-[left,(left + hstep)..right]] + where + top = im topright + bottom = im bottomleft + left = real bottomleft + right = real topright + vstep=(top-bottom)/nbvert + hstep=(right-left)/nbhor + +mandel :: Complex -> Complex -> String +mandel bottomleft topright = concat $ map treat $ bmandel bottomleft topright + where + treat (True,jump) = " " ++ rst jump + treat (False,jump) = "@" ++ rst jump + rst True = "\n" + rst False = "" + +main = do + x <- getContents + putStrLn $ infinitemandel 0 + where + closer n (C (x,y)) = + let cst = (1.1**n - 1) in + C ( (x + cst*(real interrest))/cst+1, + (y + cst*(im interrest))/cst+1 ) + bottomleftn n = closer n init_bottom_left + toprightn n = closer n init_top_right + infinitemandel n = mandel (bottomleftn n) (toprightn n) ++ "\x1b[H\x1b[25A" ++ infinitemandel (n+1) + diff --git a/output/Scratch/assets/css/main.css b/output/Scratch/assets/css/main.css index af818ecfc..3698afb87 100644 --- a/output/Scratch/assets/css/main.css +++ b/output/Scratch/assets/css/main.css @@ -1 +1 @@ -table.description tr td{border:1px solid#eee}.assombris20{background-color:#eee}body{color:#111;background-color:#fff}#content{color:#111;background-color:#fff}a:hover{text-shadow:0 0 2px#faa}a,a:link,a:visited,a:active,a:hover,#clickcomment{text-decoration:none;outline:none}a,a:link,a:visited,a:active,#clickcomment{color:#111}a:hover,#clickcomment:hover{color:#d50000}hr{color:#eee;border-top:1px solid#eee;border-bottom:none;border-left:none;border-right:none}ul{list-style:square}ol,ul{padding-left:0}ol li,ul li{margin:.5em 0}ol li ul,ol li ol,ul li ol,ul li ul{margin:.5em 1.5em;list-style:circle}body,h1,h2,h3,h4,#entete,.tag{font-family:Georgia,Palatino,"Century Schoolbook L","Times New Roman",Times,serif;line-height:1.4em}pre{background-color:#111;color:#fff;padding:1em;line-height:1.2em}pre,code{font-family:monaco,monospace;font-size:.7em}p code{font-family:monospace;font-size:1em}p{margin-bottom:1.2em}blockquote{font-style:italic;padding:.5em 1em;color:#555}blockquote a:hover{color:#d50000}blockquote strong,blockquote b,blockquote i,blockquote em{font-weight:400;font-style:normal;color:#111}abbr,acronym{font-variant:small-caps;text-decoration:none;border-bottom-width:0}#titre{letter-spacing:-0.06em;border-bottom:4px double#ccc;border-top:4px double#ccc}#liens .active,#sousliens{color:#111;background-color:#eee;border-top:none}#liens .active a,#sousliens a{color:#666}#liens .active a:hover,#sousliens a:hover{color:#e25f2f}#liens .active a:hover strong,#liens .active a:hover b,#liens .active a:hover i,#liens .active a:hover em,#liens .active a:hover .nicer,#sousliens a:hover strong,#sousliens a:hover b,#sousliens a:hover i,#sousliens a:hover em,#sousliens a:hover .nicer{color:#ffbe96}#liens .active hr,#sousliens hr{color:#666;border-top:1px solid#666}#liens .active strong,#liens .active b,#liens .active i,#liens .active em,#sousliens strong,#sousliens b,#sousliens i,#sousliens em{color:#111}#lastmod{font-size:.8em}.nojsbutton{font-size:2.5em}#clickcomment{cursor:pointer;font-size:1.2em}.small{font-size:.8em}.sc{font-variant:small-caps}.impact,.darkimpact{font-size:2em;margin:0 auto 1em auto;line-height:1.3em}h1 > .date{font-size:.6em;color:#111}.date{font-size:.8em;color:#fff;border:1px solid#111;text-align:center;width:4.1em;line-height:1.5em;display:inline-block;vertical-align:middle;margin-right:1em}.date .day,.date .month,.date .year{display:block}.date .day{color:#111;background-color:#fff;float:left;width:1.7em}.date .month{float:right;width:2.3em;background-color:#111;color:#fff}.date .year{line-height:3ex;clear:both;color:#111;background-color:#eee}.date .year a{color:#666}.date .year a:hover{color:#e25f2f}.date .year a:hover strong,.date .year a:hover b,.date .year a:hover i,.date .year a:hover em,.date .year a:hover .nicer{color:#ffbe96}.date .year hr{color:#666;border-top:1px solid#666}.date .year strong,.date .year b,.date .year i,.date .year em{color:#111}body{text-align:center;font-size:1em}body > #entete{position:absolute;left:0;top:.5em;width:100%;min-width:50em;z-index:8000;padding-bottom:1em;margin-bottom:3em}body > #content > #entete > #choix > #choixrss > #rss{font-size:1em}#titre h2{width:80%;margin-left:auto;margin-right:auto;text-align:center;color:#ccc}#titre{text-align:center;width:100%}#titre h1,#titre h2{padding-left:1em;padding-right:1em}#bottom{clear:right;margin-right:0;padding:1.5em;line-height:1.5em;color:#ccc;margin-top:2em;text-align:center}#bottom a{color:#ccc}#bottom a:hover{color:#d50000}#sousliens{padding:1em 0;line-height:2em}#sousliens ul{list-style:none;margin-left:4em}ul.horizontal li{display:inline;font-size:.9em}ul.horizontal{margin-top:0;margin-bottom:0}#entete{padding-top:.1em;border-top:1px solid#ccc;border-bottom:1px solid#ccc}#liens{width:100%;padding:0;clear:both;margin-top:.5em}#liens ul{width:100%;clear:both;padding:0;margin:0}#liens ul li{display:inline-block;height:4em;margin-left:.2em;margin-right:.2em;width:23%}#liens ul li a,#liens ul li span{width:100%;display:block;line-height:4em}.clear{clear:both}#content{line-height:4em;margin-left:auto;margin-right:auto;margin-top:0;position:relative;clear:both;width:52em}#content > #choix{margin-top:1em}.encadre,.black,.red,.intro,.resume,.shadow{padding-left:2em;padding-right:2em;margin-top:2em;margin-bottom:2em}.encadre,.black,.red,.shadow{color:#111;background-color:#eee}.encadre a,.black a,.red a,.shadow a{color:#666}.encadre a:hover,.black a:hover,.red a:hover,.shadow a:hover{color:#e25f2f}.encadre a:hover strong,.encadre a:hover b,.encadre a:hover i,.encadre a:hover em,.encadre a:hover .nicer,.black a:hover strong,.black a:hover b,.black a:hover i,.black a:hover em,.black a:hover .nicer,.red a:hover strong,.red a:hover b,.red a:hover i,.red a:hover em,.red a:hover .nicer,.shadow a:hover strong,.shadow a:hover b,.shadow a:hover i,.shadow a:hover em,.shadow a:hover .nicer{color:#ffbe96}.encadre hr,.black hr,.red hr,.shadow hr{color:#666;border-top:1px solid#666}.encadre strong,.encadre b,.encadre i,.encadre em,.black strong,.black b,.black i,.black em,.red strong,.red b,.red i,.red em,.shadow strong,.shadow b,.shadow i,.shadow em{color:#111}.intro,.resume{font-size:.9em;font-style:italic;padding:.5em 1em;color:#555}.intro a:hover,.resume a:hover{color:#d50000}.intro strong,.intro b,.intro i,.intro em,.resume strong,.resume b,.resume i,.resume em{font-weight:400;font-style:normal;color:#111}#afterheader > h1{width:100%;padding-top:1.5em;text-align:left}#afterheader{padding-left:0;padding-right:0}#sousliens{margin-top:3em;margin-bottom:3em;font-size:1.2em;letter-spacing:1px;text-align:left;clear:both}.twilight{line-height:1.1em}.corps{font-family:Georgia,Palatino,"Century Schoolbook L","Times New Roman",Times,serif;font-size:1.25em;line-height:1.6em;text-align:justify;text-align:left;padding:3em 3em;margin:0;border-bottom:1px#ccc solid;clear:both}.corps img{max-width:30em;border:1px solid#ccc;background-color:#fff;padding:.5em;box-shadow:0 10px 15px#ccc}img.clean{border:none}#address{clear:both}.definitionCell{width:5em;vertical-align:top;font-weight:700;text-align:center}.valueCell{text-align:right}.smallblock{float:left;width:50%;font-size:1em;font-weight:700}.largeblock{float:right;width:70%;font-size:1em}#blackpage,#nojsredirect{top:0;left:0;width:100%;height:100%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:fixed;text-align:center}#blackpage{color:#666;padding-top:10em;background-color:#eee;z-index:9000;cursor:wait}#blackpage img{background:none;border:none}#blackpage a{cursor:pointer}#nojsredirect{z-index:9001}.nojsbutton{width:50%;padding:1em;border:solid 3px white;margin-left:auto;margin-right:auto;margin-top:2em;z-index:9002}.file{font-size:.8em;text-align:right;padding-right:1em;margin-right:.1;margin-bottom:0;background:#111}.file a{color:#fff}.flush{clear:both}table.description{border-spacing:5px;border-collapse:separate;margin-right:auto;margin-left:auto}table.description tr td{padding-left:.5em;padding-right:.5em;padding-top:.5ex;padding-bottom:.5ex;vertical-align:middle;margin-right:5px}ul.long li{margin-bottom:1em}img{display:block;margin-left:auto;margin-right:auto;background:none;border:none}img.left{float:left;max-width:30%;margin-right:1em}img.inside{display:inline;vertical-align:middle}pre{overflow:hidden}.withfile pre{margin-top:0;overflow:hidden}.navigationprev,.navigationnext{padding:0;margin-left:.2em;margin-right:.2em;margin-bottom:0;margin-top:3em;width:45%}.navigation .navigationprev,.navigation .navigationnext{width:30%;margin-top:0}.navigation{height:4em;border-bottom:#ccc solid 1px}.presarticleleft,.presarticleright{font-size:1em}.navigationprev{float:left;text-align:left}.navigationnext{float:right;text-align:right}.impact,.darkimpact{text-align:left;width:66%;padding-left:.25em;padding-right:.25em}table.impact{text-align:left}table.impact tr td{padding-left:.25em;padding-right:.25em}#liens{font-size:1.2em}#iemessage{font-size:1.2em}.tag{display:inline;cursor:pointer;margin-left:.5em;margin-right:.5em}.list{margin-top:3em}#menuMessage{font-size:1.2em;line-height:1.5em;width:100%;text-align:center}#choixrss{float:right;width:25%;line-height:2em}#choixlang{line-height:2em}#choix a{color:#888}#choix a:hover{color:#d50000}#choixlang a{display:block;width:25%;line-height:4em;text-align:center}#next_before_articles{clear:both;width:100%;font-size:1.2em;padding-top:1em;padding-bottom:1em}#previous_articles,#next_articles{color:#888;font-style:italic;font-size:.8em}#previous_articles{float:left;margin-left:1em;width:45%;text-align:left}.previous_article,.next_article{margin-top:1em}#next_articles{float:right;width:45%;margin-right:1em;text-align:right}#clickcomment{margin-left:0;width:25%}#rss{font-size:1.2em;text-align:center;display:block;width:100%;float:right;padding:1em .1em}.return a{text-align:center;float:right;width:25%}.corps .return a{color:#eee;padding:.1em;line-height:1.5em;font-size:1.5em;height:1.5em;float:left;font-size:2em;margin-top:-0.5em;margin-left:-2em;width:1.5em}a.return{color:#eee;padding:.1em;line-height:1.5em;font-size:1.5em;height:1.5em;font-size:2em;width:1.5em;display:block}a.return:hover{color:#888}.corps .return a:hover{color:#d50000}.footnotes{font-size:.8em}.fontnotes ol{margin-left:0}.typeset img{display:inline;border:none;margin:0;padding:0}strong,b,i,em{font-weight:400;color:#888}strong a,b a,i a,em a{color:#111}strong a:hover,b a:hover,i a:hover,em a:hover{color:#d50000}.corps p strong,.corps p b,.corps p i,.corps p em{color:#555}a:hover strong,a:hover b,a:hover i,a:hover em{color:#e25f2f}a:hover .nicer{color:#ffbe96}.nicer{color:#ccc;font-family:"Lucida Grande",Tahoma}.block{width:31%;text-align:left;line-height:1em;margin-left:1%;margin-right:1%;font-size:.8em}.block a{color:#111}.block a:hover{color:#d50000}.block h3{margin:0;font-size:1.3em}.block p{line-height:1.2em}.left{float:left}.right{float:right}.corps p a,.corps ul a{color:#555}.corps p a:hover,.corps ul a:hover{color:#d50000}ul.bloglist,.archive ul{list-style-type:none;margin:0}ul.bloglist li,.archive ul li{margin-bottom:1em}.button{cursor:pointer;text-align:center}#tagcloud{font-size:.8em} \ No newline at end of file +table.description tr td{border:1px solid#eee}.assombris20{background-color:#eee}body{color:#111;background-color:#fff}#content{color:#111;background-color:#fff}a:hover{text-shadow:0 0 2px#faa}a,a:link,a:visited,a:active,a:hover,#clickcomment{text-decoration:none;outline:none}a,a:link,a:visited,a:active,#clickcomment{color:#111}a:hover,#clickcomment:hover{color:#d50000}hr{color:#eee;border-top:1px solid#eee;border-bottom:none;border-left:none;border-right:none}ul{list-style:square}ol,ul{padding-left:0}ol li,ul li{margin:.5em 0}ol li ul,ol li ol,ul li ol,ul li ul{margin:.5em 1.5em;list-style:circle}body,h1,h2,h3,h4,#entete,.tag{font-family:Georgia,Palatino,"Century Schoolbook L","Times New Roman",Times,serif;line-height:1.4em}pre{background-color:#111;color:#fff;padding:1em;line-height:1.2em}pre,code{font-family:monaco,monospace;font-size:.7em}p code{font-family:monospace;font-size:1em}p{margin-bottom:1.2em}blockquote{font-style:italic;padding:.5em 1em;color:#555;background-color:#f2f2f2;border:1px solid#ccc}blockquote a:hover{color:#d50000}blockquote strong,blockquote b,blockquote i,blockquote em{font-weight:400;font-style:normal;color:#111}abbr,acronym{font-variant:small-caps;text-decoration:none;border-bottom-width:0}#titre{letter-spacing:-0.06em;border-bottom:4px double#ccc;border-top:4px double#ccc}#liens .active,#sousliens{color:#111;background-color:#eee;border-top:none}#liens .active a,#sousliens a{color:#666}#liens .active a:hover,#sousliens a:hover{color:#e25f2f}#liens .active a:hover strong,#liens .active a:hover b,#liens .active a:hover i,#liens .active a:hover em,#liens .active a:hover .nicer,#sousliens a:hover strong,#sousliens a:hover b,#sousliens a:hover i,#sousliens a:hover em,#sousliens a:hover .nicer{color:#ffbe96}#liens .active hr,#sousliens hr{color:#666;border-top:1px solid#666}#liens .active strong,#liens .active b,#liens .active i,#liens .active em,#sousliens strong,#sousliens b,#sousliens i,#sousliens em{color:#111}#lastmod{font-size:.8em}.nojsbutton{font-size:2.5em}#clickcomment{cursor:pointer;font-size:1.2em}.small{font-size:.8em}.sc{font-variant:small-caps}.impact,.darkimpact{font-size:2em;margin:0 auto 1em auto;line-height:1.3em}h1 > .date{font-size:.6em;color:#111}.date{font-size:.8em;color:#fff;border:1px solid#111;text-align:center;width:4.1em;line-height:1.5em;display:inline-block;vertical-align:middle;margin-right:1em}.date .day,.date .month,.date .year{display:block}.date .day{color:#111;background-color:#fff;float:left;width:1.7em}.date .month{float:right;width:2.3em;background-color:#111;color:#fff}.date .year{line-height:3ex;clear:both;color:#111;background-color:#eee}.date .year a{color:#666}.date .year a:hover{color:#e25f2f}.date .year a:hover strong,.date .year a:hover b,.date .year a:hover i,.date .year a:hover em,.date .year a:hover .nicer{color:#ffbe96}.date .year hr{color:#666;border-top:1px solid#666}.date .year strong,.date .year b,.date .year i,.date .year em{color:#111}body{text-align:center;font-size:1em}body > #entete{position:absolute;left:0;top:.5em;width:100%;min-width:50em;z-index:8000;padding-bottom:1em;margin-bottom:3em}body > #content > #entete > #choix > #choixrss > #rss{font-size:1em}#titre h2{width:80%;margin-left:auto;margin-right:auto;text-align:center;color:#ccc}#titre{text-align:center;width:100%}#titre h1,#titre h2{padding-left:1em;padding-right:1em}#bottom{clear:right;margin-right:0;padding:1.5em;line-height:1.5em;color:#ccc;margin-top:2em;text-align:center}#bottom a{color:#ccc}#bottom a:hover{color:#d50000}#sousliens{padding:1em 0;line-height:2em}#sousliens ul{list-style:none;margin-left:4em}ul.horizontal li{display:inline;font-size:.9em}ul.horizontal{margin-top:0;margin-bottom:0}#entete{padding-top:.1em;border-top:1px solid#ccc;border-bottom:1px solid#ccc}#liens{width:100%;padding:0;clear:both;margin-top:.5em}#liens ul{width:100%;clear:both;padding:0;margin:0}#liens ul li{display:inline-block;height:4em;margin-left:.2em;margin-right:.2em;width:23%}#liens ul li a,#liens ul li span{width:100%;display:block;line-height:4em}.clear{clear:both}#content{line-height:4em;margin-left:auto;margin-right:auto;margin-top:0;position:relative;clear:both;width:52em}#content > #choix{margin-top:1em}.encadre,.black,.red,.intro,.resume,.shadow{padding-left:2em;padding-right:2em;margin-top:2em;margin-bottom:2em}.encadre,.black,.red,.shadow{color:#111;background-color:#eee}.encadre a,.black a,.red a,.shadow a{color:#666}.encadre a:hover,.black a:hover,.red a:hover,.shadow a:hover{color:#e25f2f}.encadre a:hover strong,.encadre a:hover b,.encadre a:hover i,.encadre a:hover em,.encadre a:hover .nicer,.black a:hover strong,.black a:hover b,.black a:hover i,.black a:hover em,.black a:hover .nicer,.red a:hover strong,.red a:hover b,.red a:hover i,.red a:hover em,.red a:hover .nicer,.shadow a:hover strong,.shadow a:hover b,.shadow a:hover i,.shadow a:hover em,.shadow a:hover .nicer{color:#ffbe96}.encadre hr,.black hr,.red hr,.shadow hr{color:#666;border-top:1px solid#666}.encadre strong,.encadre b,.encadre i,.encadre em,.black strong,.black b,.black i,.black em,.red strong,.red b,.red i,.red em,.shadow strong,.shadow b,.shadow i,.shadow em{color:#111}.intro,.resume{font-size:.9em;font-style:italic;padding:.5em 1em;color:#555}.intro a:hover,.resume a:hover{color:#d50000}.intro strong,.intro b,.intro i,.intro em,.resume strong,.resume b,.resume i,.resume em{font-weight:400;font-style:normal;color:#111}#afterheader > h1{width:100%;padding-top:1.5em;text-align:left}#afterheader{padding-left:0;padding-right:0}#sousliens{margin-top:3em;margin-bottom:3em;font-size:1.2em;letter-spacing:1px;text-align:left;clear:both}.twilight{line-height:1.1em}.corps{font-family:Georgia,Palatino,"Century Schoolbook L","Times New Roman",Times,serif;font-size:1.25em;line-height:1.6em;text-align:justify;text-align:left;padding:3em 3em;margin:0;border-bottom:1px#ccc solid;clear:both}.corps img{max-width:30em;border:1px solid#ccc;background-color:#fff;padding:.5em;box-shadow:0 10px 15px#ccc}img.clean{border:none}#address{clear:both}.definitionCell{width:5em;vertical-align:top;font-weight:700;text-align:center}.valueCell{text-align:right}.smallblock{float:left;width:50%;font-size:1em;font-weight:700}.largeblock{float:right;width:70%;font-size:1em}#blackpage,#nojsredirect{top:0;left:0;width:100%;height:100%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:fixed;text-align:center}#blackpage{color:#666;padding-top:10em;background-color:#eee;z-index:9000;cursor:wait}#blackpage img{background:none;border:none}#blackpage a{cursor:pointer}#nojsredirect{z-index:9001}.nojsbutton{width:50%;padding:1em;border:solid 3px white;margin-left:auto;margin-right:auto;margin-top:2em;z-index:9002}.file{font-size:.8em;text-align:right;padding-right:1em;margin-right:.1;margin-bottom:0;background:#111}.file a{color:#fff}.flush{clear:both}table.description{border-spacing:5px;border-collapse:separate;margin-right:auto;margin-left:auto}table.description tr td{padding-left:.5em;padding-right:.5em;padding-top:.5ex;padding-bottom:.5ex;vertical-align:middle;margin-right:5px}ul.long li{margin-bottom:1em}img{display:block;margin-left:auto;margin-right:auto;background:none;border:none}img.left{float:left;max-width:30%;margin-right:1em}img.inside{display:inline;vertical-align:middle}pre{overflow:hidden}.withfile pre{margin-top:0;overflow:hidden}.navigationprev,.navigationnext{padding:0;margin-left:.2em;margin-right:.2em;margin-bottom:0;margin-top:3em;width:45%}.navigation .navigationprev,.navigation .navigationnext{width:30%;margin-top:0}.navigation{height:4em;border-bottom:#ccc solid 1px}.presarticleleft,.presarticleright{font-size:1em}.navigationprev{float:left;text-align:left}.navigationnext{float:right;text-align:right}.impact,.darkimpact{text-align:left;width:66%;padding-left:.25em;padding-right:.25em}table.impact{text-align:left}table.impact tr td{padding-left:.25em;padding-right:.25em}#liens{font-size:1.2em}#iemessage{font-size:1.2em}.tag{display:inline;cursor:pointer;margin-left:.5em;margin-right:.5em}.list{margin-top:3em}#menuMessage{font-size:1.2em;line-height:1.5em;width:100%;text-align:center}#choixrss{float:right;width:25%;line-height:2em}#choixlang{line-height:2em}#choix a{color:#888}#choix a:hover{color:#d50000}#choixlang a{display:block;width:25%;line-height:4em;text-align:center}#next_before_articles{clear:both;width:100%;font-size:1.2em;padding-top:1em;padding-bottom:1em}#previous_articles,#next_articles{color:#888;font-style:italic;font-size:.8em}#previous_articles{float:left;margin-left:1em;width:45%;text-align:left}.previous_article,.next_article{margin-top:1em}#next_articles{float:right;width:45%;margin-right:1em;text-align:right}#clickcomment{margin-left:0;width:25%}#rss{font-size:1.2em;text-align:center;display:block;width:100%;float:right;padding:1em .1em}.return a{text-align:center;float:right;width:25%}.corps .return a{color:#eee;padding:.1em;line-height:1.5em;font-size:1.5em;height:1.5em;float:left;font-size:2em;margin-top:-0.5em;margin-left:-2em;width:1.5em}a.return{color:#eee;padding:.1em;line-height:1.5em;font-size:1.5em;height:1.5em;font-size:2em;width:1.5em;display:block}a.return:hover{color:#888}.corps .return a:hover{color:#d50000}.footnotes{font-size:.8em}.fontnotes ol{margin-left:0}.typeset img{display:inline;border:none;margin:0;padding:0}strong,b,i,em{font-weight:400;color:#888}strong a,b a,i a,em a{color:#111}strong a:hover,b a:hover,i a:hover,em a:hover{color:#d50000}.corps p strong,.corps p b,.corps p i,.corps p em{color:#555}a:hover strong,a:hover b,a:hover i,a:hover em{color:#e25f2f}a:hover .nicer{color:#ffbe96}.nicer{color:#ccc;font-family:"Lucida Grande",Tahoma}.block{width:31%;text-align:left;line-height:1em;margin-left:1%;margin-right:1%;font-size:.8em}.block a{color:#111}.block a:hover{color:#d50000}.block h3{margin:0;font-size:1.3em}.block p{line-height:1.2em}.left{float:left}.right{float:right}.corps p a,.corps ul a{color:#555}.corps p a:hover,.corps ul a:hover{color:#d50000}ul.bloglist,.archive ul{list-style-type:none;margin:0}ul.bloglist li,.archive ul li{margin-bottom:1em}.button{cursor:pointer;text-align:center}#tagcloud{font-size:.8em} \ No newline at end of file diff --git a/output/Scratch/en/blog/2009-09-jQuery-Tag-Cloud/index.html b/output/Scratch/en/blog/2009-09-jQuery-Tag-Cloud/index.html index 65d4e0b46..86c28044d 100644 --- a/output/Scratch/en/blog/2009-09-jQuery-Tag-Cloud/index.html +++ b/output/Scratch/en/blog/2009-09-jQuery-Tag-Cloud/index.html @@ -248,7 +248,7 @@ But you can easily translate from Ruby to Javascript.

  • - 18 + 19 Jun 2010 @@ -671,7 +671,7 @@ But you can easily translate from Ruby to Javascript.

    iPhone

    • - 1 + 2 Sep 2010 @@ -716,7 +716,7 @@ But you can easily translate from Ruby to Javascript.

    • - 18 + 19 Jun 2010 @@ -779,7 +779,7 @@ But you can easily translate from Ruby to Javascript.

    • - 18 + 19 Jun 2010 @@ -986,7 +986,7 @@ But you can easily translate from Ruby to Javascript.

    Objective-C

    • - 1 + 2 Sep 2010 @@ -1013,7 +1013,7 @@ But you can easily translate from Ruby to Javascript.

    Programming

    • - 1 + 2 Sep 2010 @@ -1499,7 +1499,7 @@ But you can easily translate from Ruby to Javascript.

    • - 18 + 19 Jun 2010 diff --git a/output/Scratch/en/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/index.html b/output/Scratch/en/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/index.html index fb2443332..a8f26553e 100644 --- a/output/Scratch/en/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/index.html +++ b/output/Scratch/en/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/index.html @@ -274,6 +274,10 @@ But I believe it would be a really hard task just to simulate the access of curr
    + +
    diff --git a/output/Scratch/en/blog/2011-04-20-Now-hosted-on-github/index.html b/output/Scratch/en/blog/2011-04-20-Now-hosted-on-github/index.html index 5933bc9ab..c55de9279 100644 --- a/output/Scratch/en/blog/2011-04-20-Now-hosted-on-github/index.html +++ b/output/Scratch/en/blog/2011-04-20-Now-hosted-on-github/index.html @@ -134,6 +134,10 @@ + + diff --git a/output/Scratch/en/blog/Haskell-Mandelbrot/code/animandel.hs b/output/Scratch/en/blog/Haskell-Mandelbrot/code/animandel.hs new file mode 100644 index 000000000..46032f84a --- /dev/null +++ b/output/Scratch/en/blog/Haskell-Mandelbrot/code/animandel.hs @@ -0,0 +1,10 @@ + +a=27;b=79;c=C(-2.0,-1.0);d=C(1.0,1.0);e=C(-2.501,-1.003) +newtype C = C (Double,Double) deriving (Show,Eq) +instance Num C where C(x,y)*C(z,t)=C(z*x-y*t,y*z+x*t);C(x,y)+C(z,t)=C(x+z,y+t);abs(C(x,y))=C(sqrt(x*x+y*y),0.0) +r(C(x,y))=x;i(C(x,y))=y +f :: C -> C -> Int -> Int +f c z 0=0;f c z n=if(r(abs(z))>2)then n else f c ((z*z)+c) (n-1) +h j k = map (\z->(f (C z) (C(0,0)) 32,(fst z>l - q/2))) [(x,y)|y<-[p,(p+((o-p)/a))..o],x<-[m,(m + q)..l]] where o=i k;p=i j;m=r j;l=r k;q=(l-m)/b +u j k = concat $ map v $ h j k where v (i,p)=(" .,`'°\":;-+oO0123456789=!%*§&$@#"!!i):rst p;rst True="\n";rst False="" +main = putStrLn $ im 0 where cl n (C (x,y))=let cs=(1.1**n-1) in C ((x+cs*(r e))/cs+1,(y+cs*(i e))/cs+1);bl n=cl n c;tr n=cl n d;im n=u (bl n) (tr n)++"\x1b[H\x1b[25A"++im (n+1) diff --git a/output/Scratch/en/blog/Haskell-Mandelbrot/index.html b/output/Scratch/en/blog/Haskell-Mandelbrot/index.html new file mode 100644 index 000000000..387f36f15 --- /dev/null +++ b/output/Scratch/en/blog/Haskell-Mandelbrot/index.html @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + ASCII Haskell Mandelbrot + + + + +
    + + +
    +

    + ASCII Haskell Mandelbrot +

    + +
    + +
    + + + + + +
    +
    +
    +

    Here is the obfuscated code:

    + +
    +
    +a=27;b=79;c=C(-2.0,-1.0);d=C(1.0,1.0);e=C(-2.501,-1.003)
    +newtype C = C (Double,Double) deriving (Show,Eq)
    +instance Num C where C(x,y)*C(z,t)=C(z*x-y*t,y*z+x*t);C(x,y)+C(z,t)=C(x+z,y+t);abs(C(x,y))=C(sqrt(x*x+y*y),0.0)
    +r(C(x,y))=x;i(C(x,y))=y
    +f :: C -> C -> Int -> Int
    +f c z 0=0;f c z n=if(r(abs(z))>2)then n else f c ((z*z)+c) (n-1)
    +h j k = map (\z->(f (C z) (C(0,0)) 32,(fst z>l - q/2))) [(x,y)|y<-[p,(p+((o-p)/a))..o],x<-[m,(m + q)..l]] where o=i k;p=i j;m=r j;l=r k;q=(l-m)/b
    +u j k = concat $ map v $ h j k where v (i,p)=(" .,`'°\":;-+oO0123456789=!%*§&$@#"!!i):rst p;rst True="\n";rst False=""
    +main = putStrLn $ im 0 where cl n (C (x,y))=let cs=(1.1**n-1) in C ((x+cs*(r e))/cs+1,(y+cs*(i e))/cs+1);bl n=cl n c;tr n=cl n d;im n=u (bl n) (tr n)++"\x1b[H\x1b[25A"++im (n+1)
    +
    +
    + +

    To launch it, you’ll need to have haskell installed and to run:

    + +
    ghc --make animandel.hs && animandel
    +
    + +

    Here is some image after 50 iterations:

    + +
    +5555666666666666666666666666666655555555554O+++ :o022334444444444444444444444444
    +5555556666666666666666666666665555555555543210O-+O112333344444444444444444444444
    +55555555666666666666666666665555555555444333210o`O012333333444444444444444444444
    +4555555555566666666666666555555555544444333331O+°°,'0233333334444444444444444433
    +44444445555555556666555555555444444444433333210o-:O01122333333334444444444443333
    +44444444444444445555444444444444444444333332211O+ -o1112222223333333344433333222
    +444444444444433331133334444444444444433332221110o"+O0111222222222222222222222222
    +34444444443333330OO03333334444444443332222221100O+-oO001122222222221110-O1111122
    +22333333333332210--01223333333333322222222211000o-°+o00000122222111110o°;o001111
    +11OO112222222111O;;O111222222211OO111122211000Oo-" :+ooOOOO.O0000000OOo'°oOO0000
    +0O;+O01122211000O--O00011221110O+;O00000OO +oooo-: :-+oo++";oOO0000Ooo+;;+oooO00
    +o+"+oO00OO OOOOoo::ooOOOO°OO00Oo+"+ooOooo+;°---",' ,,";--: ;-+oo+ +++;;°°;;-++:;
    +,° °':°: ` "`".°°  °° "°".  :'",  '°`°":`°` ,,``     .   . .°°'°° ` ..     `'°. 
    ++-`-oo+oo+'+o+`--°°;-`+o+"+oo+oo-'-++;+++-:,:::"`    °::°° :-;;--,;-; "  " ;-;":
    +OO"-O0000000000Oo--oO0000000000O-:oO0000Oo::+++;;: ":"-++-';+oooOOoooo-::-oooo++
    +10;-111222222110O--O011222222111- 01111110oOOOoo-: :-ooooo`:OO000000OO+;;+OOO000
    +22122222222222110++0112222222222111222222221000O+:,;.O000001111111100Oo:-OO00000
    +3344444433333332-,°-2333333344444433322222221100o-;oO00011222222221111O'+0111111
    +444444444444333320023333444444444444433322221110O.:O0011222222222222211-01112222
    +44444444444444443333444444444444444444333332211O. -o1112222222223333333333322222
    +44444444445555555555555555444444444444433333210O-"oO1122223333333444444444433333
    +444555555555666666666666555555555444444433333' '`:+O0233333333444444444444444433
    +
    + +

    Here is the more readable version. I believe with this far more readable version, no more explanation is needed.

    + +
    +-- Screen size
    +nbvert = 27
    +nbhor = 79
    +init_bottom_left = C (-2.0,-1.0)
    +init_top_right   = C (1.0,1.0)
    +interrest        = C (-2.5,-1.0)
    +
    +newtype Complex = C (Float,Float) deriving (Show,Eq)
    +instance Num Complex where
    +    fromInteger n     = C (fromIntegral n,0.0)
    +    C (x,y) * C (z,t) = C (z*x - y*t, y*z + x*t)
    +    C (x,y) + C (z,t) = C (x+z, y+t)
    +    abs (C (x,y))     = C (sqrt (x*x + y*y),0.0)
    +    signum (C (x,y))  = C (signum x , 0.0)
    +
    +real :: Complex -> Float
    +real (C (x,y))    = x
    +im :: Complex -> Float
    +im   (C (x,y))    = y
    +
    +f :: Complex -> Complex -> Int -> Complex
    +f c z 0 = z
    +f c z n = f c ((z*z)+c) (n-1) 
    +
    +cabs :: Complex -> Float
    +cabs = real.abs
    +
    +tst :: Complex -> Bool
    +tst c = (cabs (f c (C(0.0,0.0)) 32)) < 2
    +
    +bmandel bottomleft topright = map (\z -> (tst (C z), (fst z > right - hstep/2 ))) [(x,y) | y <- [bottom,(bottom + vstep)..top], x<-[left,(left + hstep)..right]]
    +    where
    +        top = im topright
    +        bottom = im bottomleft
    +        left = real bottomleft
    +        right = real topright
    +        vstep=(top-bottom)/nbvert
    +        hstep=(right-left)/nbhor
    +
    +mandel :: Complex -> Complex -> String
    +mandel bottomleft topright = concat $ map treat $ bmandel bottomleft topright
    +    where
    +        treat (True,jump) = " " ++ rst jump
    +        treat (False,jump) = "@" ++ rst  jump
    +        rst True = "\n"
    +        rst False = ""
    +
    +main = do
    +    x <- getContents
    +    putStrLn $ infinitemandel 0
    +    where
    +        closer n (C (x,y)) = 
    +            let cst = (1.1**n - 1) in
    +                C ( (x + cst*(real interrest))/cst+1,
    +                    (y + cst*(im   interrest))/cst+1 )
    +        bottomleftn n = closer n init_bottom_left
    +        toprightn n   = closer n init_top_right
    +        infinitemandel n = mandel (bottomleftn n) (toprightn n) ++ "\x1b[H\x1b[25A" ++ infinitemandel (n+1)
    +
    + +
    + + + + + +
    +
    +

    comments

    + + + + + + +
    + +
    + +
    +
    +
    + + +
    +
    +
    + + +
    + +
    + Created: 07/10/2011 + Modified: 07/10/2011 +
    +
    + Entirely done with + Vim + and + nanoc +
    + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/output/Scratch/en/blog/Password-Management/index.html b/output/Scratch/en/blog/Password-Management/index.html index 8116b6a50..9932e8844 100644 --- a/output/Scratch/en/blog/Password-Management/index.html +++ b/output/Scratch/en/blog/Password-Management/index.html @@ -259,6 +259,10 @@ Further more using shorter password make it even harder for an attaquer to retri +

    + + 10 + Jul + 2011 + + ASCII Haskell Mandelbrot » +

    + +
    + +

    Here is the obfuscated code:

    + +
    +
    +a=27;b=79;c=C(-2.0,-1.0);d=C(1.0,1.0);e=C(-2.501,-1.003)
    +newtype C = C (Double,Double) deriving (Show,Eq)
    +instance Num C where C(x,y)*C(z,t)=C(z*x-y*t,y*z+x*t);C(x,y)+C(z,t)=C(x+z,y+t);abs(C(x,y))=C(sqrt(x*x+y*y),0.0)
    +r(C(x,y))=x;i(C(x,y))=y
    +f :: C -> C -> Int -> Int
    +f c z 0=0...
    + +
    +
    +

    + Read more » +

    +
    + +
    +

    18 @@ -219,39 +250,6 @@ But I will revive a bit this blog.

    -

    - - 26 - Oct - 2010 - - LaTeX like macro for markdown » -

    - -
    - - -
    - - -

    tl;dr: I made a simple macro system for my blog. Now I juste have to write %latex and it show as LaTeX.

    - - -
    - - -

    I added a macro system for my blog system. -When we are used to LaTe

    - -
    -
    -

    - Read more » -

    -
    - - -
    @@ -428,7 +426,7 @@ When we are used to L - 18 + 19 Jun 2010 @@ -851,7 +849,7 @@ When we are used to L

    iPhone

    • - 1 + 2 Sep 2010 @@ -896,7 +894,7 @@ When we are used to L - 18 + 19 Jun 2010 @@ -959,7 +957,7 @@ When we are used to L - 18 + 19 Jun 2010 @@ -1166,7 +1164,7 @@ When we are used to L

    Objective-C

    • - 1 + 2 Sep 2010 @@ -1193,7 +1191,7 @@ When we are used to L

    Programming

    • - 1 + 2 Sep 2010 @@ -1679,7 +1677,7 @@ When we are used to L - 18 + 19 Jun 2010 @@ -1845,6 +1843,10 @@ When we are used to LArchives

      [2011]

      • + 10 + Jul + 2011 + ASCII Haskell Mandelbrot»
      • 18 May 2011 @@ -1881,7 +1883,7 @@ When we are used to LSep 2010 Use git to calculate trusted mtimes»
      • - 1 + 2 Sep 2010 base64 and sha1 on iPhone»
      • @@ -1909,7 +1911,7 @@ When we are used to LJul 2010 Cappuccino vs jQuery»
      • - 18 + 19 Jun 2010 jQuery popup the easy way»
      • diff --git a/output/Scratch/fr/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/index.html b/output/Scratch/fr/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/index.html index 2f713317b..bff530207 100644 --- a/output/Scratch/fr/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/index.html +++ b/output/Scratch/fr/blog/2011-01-03-Why-I-sadly-won-t-use-coffeescript/index.html @@ -272,6 +272,10 @@ Mais il me semble que ça serait un travail très difficile rien que pour simule
      + +
    diff --git a/output/Scratch/fr/blog/2011-04-20-Now-hosted-on-github/index.html b/output/Scratch/fr/blog/2011-04-20-Now-hosted-on-github/index.html index 14b7bccbe..2bb888bd8 100644 --- a/output/Scratch/fr/blog/2011-04-20-Now-hosted-on-github/index.html +++ b/output/Scratch/fr/blog/2011-04-20-Now-hosted-on-github/index.html @@ -134,6 +134,10 @@
    + + diff --git a/output/Scratch/fr/blog/Haskell-Mandelbrot/code/animandel.hs b/output/Scratch/fr/blog/Haskell-Mandelbrot/code/animandel.hs new file mode 100644 index 000000000..46032f84a --- /dev/null +++ b/output/Scratch/fr/blog/Haskell-Mandelbrot/code/animandel.hs @@ -0,0 +1,10 @@ + +a=27;b=79;c=C(-2.0,-1.0);d=C(1.0,1.0);e=C(-2.501,-1.003) +newtype C = C (Double,Double) deriving (Show,Eq) +instance Num C where C(x,y)*C(z,t)=C(z*x-y*t,y*z+x*t);C(x,y)+C(z,t)=C(x+z,y+t);abs(C(x,y))=C(sqrt(x*x+y*y),0.0) +r(C(x,y))=x;i(C(x,y))=y +f :: C -> C -> Int -> Int +f c z 0=0;f c z n=if(r(abs(z))>2)then n else f c ((z*z)+c) (n-1) +h j k = map (\z->(f (C z) (C(0,0)) 32,(fst z>l - q/2))) [(x,y)|y<-[p,(p+((o-p)/a))..o],x<-[m,(m + q)..l]] where o=i k;p=i j;m=r j;l=r k;q=(l-m)/b +u j k = concat $ map v $ h j k where v (i,p)=(" .,`'°\":;-+oO0123456789=!%*§&$@#"!!i):rst p;rst True="\n";rst False="" +main = putStrLn $ im 0 where cl n (C (x,y))=let cs=(1.1**n-1) in C ((x+cs*(r e))/cs+1,(y+cs*(i e))/cs+1);bl n=cl n c;tr n=cl n d;im n=u (bl n) (tr n)++"\x1b[H\x1b[25A"++im (n+1) diff --git a/output/Scratch/fr/blog/Haskell-Mandelbrot/index.html b/output/Scratch/fr/blog/Haskell-Mandelbrot/index.html new file mode 100644 index 000000000..f09fe1e14 --- /dev/null +++ b/output/Scratch/fr/blog/Haskell-Mandelbrot/index.html @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + Mandelbrot avec haskell + + + + +
    + + +
    +

    + Mandelbrot avec haskell +

    + +
    + +
    + + + + + +
    +
    +
    +

    Voici le code “obfusqué” :

    + +
    +
    +a=27;b=79;c=C(-2.0,-1.0);d=C(1.0,1.0);e=C(-2.501,-1.003)
    +newtype C = C (Double,Double) deriving (Show,Eq)
    +instance Num C where C(x,y)*C(z,t)=C(z*x-y*t,y*z+x*t);C(x,y)+C(z,t)=C(x+z,y+t);abs(C(x,y))=C(sqrt(x*x+y*y),0.0)
    +r(C(x,y))=x;i(C(x,y))=y
    +f :: C -> C -> Int -> Int
    +f c z 0=0;f c z n=if(r(abs(z))>2)then n else f c ((z*z)+c) (n-1)
    +h j k = map (\z->(f (C z) (C(0,0)) 32,(fst z>l - q/2))) [(x,y)|y<-[p,(p+((o-p)/a))..o],x<-[m,(m + q)..l]] where o=i k;p=i j;m=r j;l=r k;q=(l-m)/b
    +u j k = concat $ map v $ h j k where v (i,p)=(" .,`'°\":;-+oO0123456789=!%*§&$@#"!!i):rst p;rst True="\n";rst False=""
    +main = putStrLn $ im 0 where cl n (C (x,y))=let cs=(1.1**n-1) in C ((x+cs*(r e))/cs+1,(y+cs*(i e))/cs+1);bl n=cl n c;tr n=cl n d;im n=u (bl n) (tr n)++"\x1b[H\x1b[25A"++im (n+1)
    +
    +
    + +

    Pour le lancer, haskell doit être installé. Puis vous devez écrire dans un terminal :

    + +
    ghc --make animandel.hs && animandel
    +
    + +

    Voici le résultat après 50 itérations.

    + +
    +5555666666666666666666666666666655555555554O+++ :o022334444444444444444444444444
    +5555556666666666666666666666665555555555543210O-+O112333344444444444444444444444
    +55555555666666666666666666665555555555444333210o`O012333333444444444444444444444
    +4555555555566666666666666555555555544444333331O+°°,'0233333334444444444444444433
    +44444445555555556666555555555444444444433333210o-:O01122333333334444444444443333
    +44444444444444445555444444444444444444333332211O+ -o1112222223333333344433333222
    +444444444444433331133334444444444444433332221110o"+O0111222222222222222222222222
    +34444444443333330OO03333334444444443332222221100O+-oO001122222222221110-O1111122
    +22333333333332210--01223333333333322222222211000o-°+o00000122222111110o°;o001111
    +11OO112222222111O;;O111222222211OO111122211000Oo-" :+ooOOOO.O0000000OOo'°oOO0000
    +0O;+O01122211000O--O00011221110O+;O00000OO +oooo-: :-+oo++";oOO0000Ooo+;;+oooO00
    +o+"+oO00OO OOOOoo::ooOOOO°OO00Oo+"+ooOooo+;°---",' ,,";--: ;-+oo+ +++;;°°;;-++:;
    +,° °':°: ` "`".°°  °° "°".  :'",  '°`°":`°` ,,``     .   . .°°'°° ` ..     `'°. 
    ++-`-oo+oo+'+o+`--°°;-`+o+"+oo+oo-'-++;+++-:,:::"`    °::°° :-;;--,;-; "  " ;-;":
    +OO"-O0000000000Oo--oO0000000000O-:oO0000Oo::+++;;: ":"-++-';+oooOOoooo-::-oooo++
    +10;-111222222110O--O011222222111- 01111110oOOOoo-: :-ooooo`:OO000000OO+;;+OOO000
    +22122222222222110++0112222222222111222222221000O+:,;.O000001111111100Oo:-OO00000
    +3344444433333332-,°-2333333344444433322222221100o-;oO00011222222221111O'+0111111
    +444444444444333320023333444444444444433322221110O.:O0011222222222222211-01112222
    +44444444444444443333444444444444444444333332211O. -o1112222222223333333333322222
    +44444444445555555555555555444444444444433333210O-"oO1122223333333444444444433333
    +444555555555666666666666555555555444444433333' '`:+O0233333333444444444444444433
    +
    + +

    Here is the more readable version. I believe with this far more readable version, no more explanation is needed.

    + +
    +-- Screen size
    +nbvert = 27
    +nbhor = 79
    +init_bottom_left = C (-2.0,-1.0)
    +init_top_right   = C (1.0,1.0)
    +interrest        = C (-2.5,-1.0)
    +
    +newtype Complex = C (Float,Float) deriving (Show,Eq)
    +instance Num Complex where
    +    fromInteger n     = C (fromIntegral n,0.0)
    +    C (x,y) * C (z,t) = C (z*x - y*t, y*z + x*t)
    +    C (x,y) + C (z,t) = C (x+z, y+t)
    +    abs (C (x,y))     = C (sqrt (x*x + y*y),0.0)
    +    signum (C (x,y))  = C (signum x , 0.0)
    +
    +real :: Complex -> Float
    +real (C (x,y))    = x
    +im :: Complex -> Float
    +im   (C (x,y))    = y
    +
    +f :: Complex -> Complex -> Int -> Complex
    +f c z 0 = z
    +f c z n = f c ((z*z)+c) (n-1) 
    +
    +cabs :: Complex -> Float
    +cabs = real.abs
    +
    +tst :: Complex -> Bool
    +tst c = (cabs (f c (C(0.0,0.0)) 32)) < 2
    +
    +bmandel bottomleft topright = map (\z -> (tst (C z), (fst z > right - hstep/2 ))) [(x,y) | y <- [bottom,(bottom + vstep)..top], x<-[left,(left + hstep)..right]]
    +    where
    +        top = im topright
    +        bottom = im bottomleft
    +        left = real bottomleft
    +        right = real topright
    +        vstep=(top-bottom)/nbvert
    +        hstep=(right-left)/nbhor
    +
    +mandel :: Complex -> Complex -> String
    +mandel bottomleft topright = concat $ map treat $ bmandel bottomleft topright
    +    where
    +        treat (True,jump) = " " ++ rst jump
    +        treat (False,jump) = "@" ++ rst  jump
    +        rst True = "\n"
    +        rst False = ""
    +
    +main = do
    +    x <- getContents
    +    putStrLn $ infinitemandel 0
    +    where
    +        closer n (C (x,y)) = 
    +            let cst = (1.1**n - 1) in
    +                C ( (x + cst*(real interrest))/cst+1,
    +                    (y + cst*(im   interrest))/cst+1 )
    +        bottomleftn n = closer n init_bottom_left
    +        toprightn n   = closer n init_top_right
    +        infinitemandel n = mandel (bottomleftn n) (toprightn n) ++ "\x1b[H\x1b[25A" ++ infinitemandel (n+1)
    +
    + +
    + + + + + +
    +
    +

    commentaires

    + + + + + + +
    + +
    + +
    +
    +
    + + +
    +
    +
    + + +
    + +
    + Écrit le : 10/07/2011 + modifié le : 10/07/2011 +
    +
    + Site entièrement réalisé avec + Vim + et + nanoc +
    + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/output/Scratch/fr/blog/Password-Management/index.html b/output/Scratch/fr/blog/Password-Management/index.html index b2ae6d406..ad86e1750 100644 --- a/output/Scratch/fr/blog/Password-Management/index.html +++ b/output/Scratch/fr/blog/Password-Management/index.html @@ -250,6 +250,10 @@ Avec des mots de passes plus petit, il est encore plus difficile pour un attaqua
    Écrit le : 18/05/2011 - modifié le : 08/06/2011 + modifié le : 09/06/2011
    Site entièrement réalisé avec diff --git a/output/Scratch/fr/blog/feed/feed.xml b/output/Scratch/fr/blog/feed/feed.xml index 82af0e4e9..04c60d6a9 100644 --- a/output/Scratch/fr/blog/feed/feed.xml +++ b/output/Scratch/fr/blog/feed/feed.xml @@ -2,13 +2,33 @@ http://yannesposito.com/ Yogsototh's last blogs entries - 2011-05-18T11:14:28Z + 2011-07-10T10:41:26Z Yann Esposito http://yannesposito.com + + tag:yannesposito.com,2011-07-10:/Scratch/fr/blog/Haskell-Mandelbrot/ + Mandelbrot avec haskell + 2011-07-10T10:41:26Z + 2011-07-10T10:41:26Z + + Yann Esposito + yannesposito.com + + + <p>Voici le code &ldquo;obfusqué&rdquo;&nbsp;:</p> + +<div class="code"><div class="file"><a href="/Scratch/fr/blog/Haskell-Mandelbrot/code/animandel.hs"> &#x27A5; animandel.hs </a></div><div class="withfile"> +<pre class="twilight"> +a=27<span class="Keyword">;</span>b=79<span class="Keyword">;</span>c=C(-2.0,-1.0)<span class="Keyword">;</span>d=C(1.0,1.0)<span class="Keyword">;</span>e=C(-2.501,-1.003) +newtype C = C (Double,Double) deriving (Show,Eq) +instance Num C where C(x,y)*C(z,t)=C(z*x-y*t,y*z+x*t)<span class="Keyword">;</span>C(x,y)+C(z,t)=C(x+z,y+t)<span class="Keyword">;</span>abs(C(x,y))=C(sqrt(x*x+y*y),0.0) +r(C(x,y))=x<span class="Keyword">;</span>i(C(x,y))=y +f&nbsp;:: C -<span class="Keyword">&gt;</span> C -<span class="Keyword">&gt;</span> Int -<span class="Keyword">&gt;</span></pre></div></div> + tag:yannesposito.com,2011-05-18:/Scratch/fr/blog/Password-Management/ Password Management @@ -974,31 +994,4 @@ $ sudo port install git-core <p>Toutes les branches locales utilisent le même répertoire. Ainsi on peu changer de branche très aisément et rapidement. On peut aussi changer de branche alors que certains fichier sont en cours de modifications. On peut même pousser le vice jusqu&rsquo;à modifier un fichier, changer de branche, commiter une partie seulement des modifications de ce fichier dans la branche courante. Revenir dans l&rsquo;ancienne branche et commi...</p> - - tag:yannesposito.com,2009-11-12:/Scratch/fr/blog/2009-11-12-Git-for-n00b/commandes-avancees/ - Git pour les nuls - 2009-11-12T09:39:54Z - 2009-11-12T09:39:54Z - - Yann Esposito - yannesposito.com - - - <h1 class="first" id="liste-de-commandes">Liste de commandes</h1> - -<h2 id="les-commandes-pour-chaque-choses">Les commandes pour chaque choses</h2> - -<p>Dans la première partie, nous avons vu la liste des problèmes résolus par <a href="http://git-scm.org" title="Git">Git</a>. En résumé Git doit pouvoir&nbsp;:</p> - -<ul> - <li>récupérer les modifications des autres&nbsp;;</li> - <li>envoyer ses modifications aux autres&nbsp;;</li> - <li>revenir dans le temps&nbsp;;</li> - <li>lister les différences entre chaque version&nbsp;;</li> - <li>nommer certaines versions pour s&rsquo;y référer facilement&nbsp;;</li> - <li>afficher l&rsquo;historique des modifications&nbsp;;</li> - <li>savoir qui a fait quoi et quand&nbsp;;</li> - <li>gérer des conflits&nbsp;;</li> - <li>manipuler facileme...</li></ul> - diff --git a/output/Scratch/fr/blog/index.html b/output/Scratch/fr/blog/index.html index 9ab8fb0e2..cbcee46b3 100644 --- a/output/Scratch/fr/blog/index.html +++ b/output/Scratch/fr/blog/index.html @@ -73,6 +73,36 @@ Les 5 derniers articles
    +

    + + 10 + Jul + 2011 + + Mandelbrot avec haskell » +

    + +
    + +

    Voici le code “obfusqué” :

    + +
    +
    +a=27;b=79;c=C(-2.0,-1.0);d=C(1.0,1.0);e=C(-2.501,-1.003)
    +newtype C = C (Double,Double) deriving (Show,Eq)
    +instance Num C where C(x,y)*C(z,t)=C(z*x-y*t,y*z+x*t);C(x,y)+C(z,t)=C(x+z,y+t);abs(C(x,y))=C(sqrt(x*x+y*y),0.0)
    +r(C(x,y))=x;i(C(x,y))=y
    +f :: C -> C -> Int ->
    + +
    +
    +

    + en lire plus » +

    +
    + +
    +

    18 @@ -213,39 +243,6 @@ Je n’en ai pas encore terminé avec ça. Mais si je tarde trop, je communi

    -

    - - 26 - Oct - 2010 - - Des macros LaTeX pour markdown » -

    - -
    - - -
    - - -

    tlàl : J’ai fait un système simple de macros pour mon blog. Par exemple, il me suffit d’écrire %latex et ça affiche LaTeX.

    - - -
    - - -

    J’ai ajouter un système de macro pour mon système de blog. -Lorsqu’on est habitué à LaT

    - -
    -
    -

    - en lire plus » -

    -
    - - -
    @@ -872,7 +869,7 @@ Lorsqu’on est habitué à L

    iPhone

    • - 1 + 2 Sep 2010 @@ -1178,7 +1175,7 @@ Lorsqu’on est habitué à L

    Objective-C

    • - 1 + 2 Sep 2010 @@ -1223,7 +1220,7 @@ Lorsqu’on est habitué à L

    Programmation

    • - 1 + 2 Sep 2010 @@ -1839,6 +1836,10 @@ Lorsqu’on est habitué à LArchives

      [2011]

      • + 10 + Jul + 2011 + Mandelbrot avec haskell»
      • 18 Mai 2011 @@ -1875,7 +1876,7 @@ Lorsqu’on est habitué à LSep 2010 Utilisation de git pour calculer les mtimes»
      • - 1 + 2 Sep 2010 base64 et sha1 sur iPhone»
      • diff --git a/output/Scratch/sitemap.xml b/output/Scratch/sitemap.xml index 2b936ce7e..faf8b8b61 100644 --- a/output/Scratch/sitemap.xml +++ b/output/Scratch/sitemap.xml @@ -159,6 +159,9 @@ http://yannesposito.com/Scratch/en/blog/2010-06-15-Get-my-blog-engine/ + + http://yannesposito.com/Scratch/en/blog/Haskell-Mandelbrot/ + http://yannesposito.com/Scratch/fr/about/technical_details/ @@ -360,6 +363,9 @@ http://yannesposito.com/Scratch/en/blog/2010-03-23-Encapsulate-git/ + + http://yannesposito.com/Scratch/fr/blog/Haskell-Mandelbrot/ + http://yannesposito.com/Scratch/fr/blog/2010-05-24-Trees--Pragmatism-and-Formalism/ diff --git a/output/index.html b/output/index.html index ff3e7a1e3..afbf0a4e9 100644 --- a/output/index.html +++ b/output/index.html @@ -188,7 +188,7 @@ Copyright ©, Yann Esposito
      - Modified: 06/09/2011 + Modified: 07/10/2011
      Entirely done with