Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#676 Le 22/03/2011, à 00:12

Кຼزດ

Re : /* Topic des codeurs couche-tard [4] */

Pylade a écrit :
Michaël Chaize a écrit :

Sur le Web, nous étions dans le domaine fragmenté du navigateur, entre Netscape et Internet Explorer ; nous avons créé Flash pour offrir une expérience consistante sur toutes les plates-formes. Sur mobile, nous repartons sur la même histoire. Et j'ai le sentiment que cela va s'accentuer, qu'il va y avoir de plus en plus de systèmes d'exploitation, et de plus en plus de fragmentation. Avec Flash player, nous disons à notre communauté de développeurs, "développez une fois, nous nous chargeons de rendre votre travail disponible sur un maximum d'écrans".

neutral

« Ce n'est pas très efficace »

Dernière modification par Кຼزດ (Le 22/03/2011, à 02:05)


dou

Hors ligne

#677 Le 22/03/2011, à 00:28

cm-t

Re : /* Topic des codeurs couche-tard [4] */

'Nuit;


Actu Ubuntu            ☺/
Pauses Ubuntu sur Paris            \_< -t
[(π)] La Quadrature du net

Hors ligne

#678 Le 22/03/2011, à 00:34

Pylades

Re : /* Topic des codeurs couche-tard [4] */

.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#679 Le 22/03/2011, à 03:15

nesthib

Re : /* Topic des codeurs couche-tard [4] */

plop


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#680 Le 22/03/2011, à 03:41

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

Comme à chaque fois que j'ai du boulot ras la gueule, j'ai passé la soirée à faire un truc totalement useless >_<" : j'ai implémenté les optimisations que j'avais mentionné hier pour mon générateur de code brainfuck.

Pour rappel, la première version brutale c'était ça

import Data.List (intersperse)
import Data.Char (ord)

main :: IO ()
main = do str <- getContents 
          let base = initValue str
          putStrLn $ initCode base str ++ dispCode base str



initValue :: String -> Int
initValue str = minimum $ map (ord) str



initCode :: Int -> String -> String
initCode base str = replicate base '+'
                    ++ "["
                    ++ (concat $ replicate (length str) ">+")
                    ++ (replicate (length str) '<')
                    ++ "-]"



dispCode :: Int -> String -> String
dispCode base str = '>' : ((concat.intersperse ">") $ map (dispChar base) str)
    where dispChar offset c = reverse ('.' : replicate (ord c - offset) '+')

Bon les résultats n'étaient pas brillants :

grim7reaper@chaos bf_gen]$echo -n 'BN World!' | ./bf_gen1 | wc -m
522
grim7reaper@chaos bf_gen]$./bf_gen1 < ../CLFB/COPYING | wc -m
3000287

Je précise que le code généré pour la GPLv3 faisait planter mes interpréteurs brainfuck (« SIGSEGV », car on sortait de la mémoire (vu que j'avais limité la mémoire au minimum requis par le standard => 30 000 « cases »). Seul celui de Pylade s'en sortait smile (vu qu'il avait fait une mémoire « infinie »).


Suite à cette constatation, j'ai implémenté ma première optimisation : utilisation d'un alphabet pour ne charger qu'une seule fois chaque caractère en mémoire (quand je vous disais que l'algo précédent était à chier, c'était pas pour rire big_smile). On obtient donc

import qualified Data.Set as Set
import qualified Data.Map as Map
import Data.Char (ord)
import Data.List (intersperse)

main :: IO ()
main = do str <- getContents 
          putStrLn $ genCode str



genCode:: String -> String
genCode str = initCode alphabet ++ (dispCode str memmap (length alphabet))
    where alphabet = Set.toList $ Set.fromList str
          memmap   = Map.fromList (zip alphabet [1..])



initCode :: String -> String
initCode alphabet = replicate base '+'
                    ++ "["
                    ++ (concat $ replicate (length alphabet) ">+")
                    ++ (replicate (length alphabet) '<')
                    ++ "-]>"
                    ++ ((concat.intersperse ">") $ map (setChar base) alphabet)
    where base = minimum $ map (ord) alphabet
          setChar offset c = replicate (ord c - offset) '+'



dispCode :: String -> Map.Map Char Int -> Int -> String
dispCode []     _   _      = []
dispCode (x:xs) memmap pos = move ++ dispCode xs memmap idx
    where idx    = case Map.lookup x memmap of
                        Just i  -> i
                        Nothing -> 0 -- Impossible, juste pour eviter warning.
          offset = idx - pos
          move   = if offset < 0
                      then reverse ('.' : replicate (abs(offset)) '<')
                      else reverse ('.' : replicate offset        '>')

Je refais donc mes tests :

grim7reaper@chaos bf_gen]$echo -n 'BN World!' | ./bf_gen2 | wc -m
547
grim7reaper@chaos bf_gen]$./bf_gen2 < ../CLFB/COPYING | wc -m
889746

Bon on voit qu'on a pas gagné grand chose sur le "BN World!" (au contraire !), par contre niveau GPLv3 il n'y a pas photo : le gain est violent (et maintenant mes interpréteurs brainfuck ne se cassent pas les dents dessus).
J'en profite pour signaler que celui en C++ est d'ailleurs ~9 fois plus rapide que celui de Pylade sur ce coup (si on regarde que le temps user, en temps global je ne suis que ~3 fois plus rapide) big_smile

cppbfi GNU.bf  0,01s user 0,01s system 57% cpu 0,035 total
bf GNU.bf  0,09s user 0,00s system 88% cpu 0,098 total

(C'est bien sûr compilé avec les mêmes options).


Enfin, dernière optimisation : le choix d'une valeur d'initialisation plus judicieuse (moyenne au lieu du minimum). Code quasi‑identique au précédent (à ~3 lignes près)

-- Même code que précédemment.

initCode :: String -> String
initCode alphabet = replicate base '+'
                    ++ "["
                    ++ (concat $ replicate (length alphabet) ">+")
                    ++ (replicate (length alphabet) '<')
                    ++ "-]>"
                    ++ ((concat.intersperse ">") $ map (setChar base) alphabet)
    where base = (sum $ map (ord) alphabet) `div` length alphabet
          setChar offset c = if diff < 0
                                then replicate (abs diff) '-'
                                else replicate diff       '+'
            where diff = ord c - offset

-- Même code que précédemment.

Bon, cette fois on obtient

grim7reaper@chaos bf_gen]$echo -n 'BN World!' | ./bf_gen3 | wc -m
385
grim7reaper@chaos bf_gen]$./bf_gen3 < ../CLFB/COPYING | wc -m
886289

Pas d'énormes gains sur la GPLv3 (mais gain quand même cela dit), en revanche on a enfin un truc potable sur le "BN World!" smile

Je suis donc fier de vous présentez mon

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+[>+>+>+>+>+>+>+>+>+<<<<<<<<<-]>------------------------------------------------
->------------------------------------------------>--------------->--->++++++>++
+++++++++++++++++>+++++++++++++++++++++++++++>++++++++++++++++++++++++++++++>+++
++++++++++++++++++++++++++++++<<<<<<.>.<<<.>>>>.>>>.>.<<.<.<<<<.


Bon, et si j'allais vraiment bosser maintenant mad

Dernière modification par grim7reaper (Le 22/03/2011, à 04:01)

Hors ligne

#681 Le 22/03/2011, à 08:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [4] */

Scores totaux, depuis le début :

1) 2842    nesthib
2) 2649    samuncle
3) 2273    Pylade
4) 1846    Кຼزດ
5) 1552+5  grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
6) 1385    cm-t
7) 997    :mad: ✰ :бешеный: ✰ :mad:
8) 846    helly
9) 812    \\Ouranos//
10) 659    gnuuat
11) 559    Lagierl
12) 474    tshirtman
13) 294    Rolinh
14) 246    The Uploader
15) 229    Kanor
16) 196    Askelon
17) 172    nathéo
18) 121    ǤƦƯƝƬ
19) 108    :!pakman
20) 93    petifrancais
21) 84    kamui57
22) 78    edge_one
22) 78    pierguiard
24) 70    gulp
25) 39    Le Rouge
26) 37    ilagas
27) 30    keny
28) 28    xapantu
29) 26    gustare
29) 26    d10g3n
31) 25    GentooUser
31) 25    Morgiver
33) 24    ไ୦บเઢ'
33) 24    Steap
35) 20    CROWD
36) 18    Ph3nix_
37) 15    timsy
38) 14    kouskous
39) 12    stratoboy
39) 12    sailing
39) 12    sakul
42) 11    alexises
42) 11    Crocoii
44) 10    Toineo
44) 10    NutMotion
44) 10    pseudovingtcinqcaracteres
44) 10    pfriedZ
44) 10    CasseTaTele
44) 10    Zeibux
50) 8    Mornagest
51) 7    Vista
52) 6    ubuntlin
52) 6    asma.geek
54) 5    tendances-tdct
54) 5    kinouchou
56) 4    danychou56
56) 4    Neros
56) 4    Biaise
56) 4    totoflute
56) 4    pinballyoda ㋛
56) 4    NLS le pingouin
62) 3    Revan26914
63) 2    SoJaS
63) 2    ceric
65) 1    geenux

RépartitionPosts/heure


Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne

#682 Le 22/03/2011, à 08:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [4] */

Scores de la période en cours :

1) 158    nesthib
2) 137    Pylade
3) 116    samuncle
4) 115    grim7reaper
5) 110    Кຼزດ
6) 83    cm-t
7) 73    :mad: ✰ :бешеный: ✰ :mad:
8) 46    Rolinh
9) 37    tshirtman
10) 27    :!pakman
11) 17    The Uploader
11) 17    Lagierl
13) 12    Kanor
14) 10    helly
14) 10    \\Ouranos//
16) 2    kamui57

Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne

#683 Le 22/03/2011, à 11:24

Pylades

Re : /* Topic des codeurs couche-tard [4] */

grim7reaper a écrit :

J'en profite pour signaler que celui en C++ est d'ailleurs ~9 fois plus rapide que celui de Pylade sur ce coup (si on regarde que le temps user, en temps global je ne suis que ~3 fois plus rapide) big_smile

Je ne crois pas que je t'aie donné ma dernière version… mais oui, je pourrais faire mieux. J'avais pensé à certaines optimisations, mais je ne les ai pas implémentées. Cela dit, la différence vient peut-être de la mise en buffer du code, et dans ce cas là les optimisations ne feraient que ralentir encore plus. ^^


grim7reaper a écrit :

Bon, et si j'allais vraiment bosser maintenant mad

Tiens, c'est une bonne idée, ça…


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#684 Le 22/03/2011, à 12:42

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++[>+>+>+>+>+>+>+>+>+<<<<<<<<<-]>---------------------------------------------
------->--------------------------------------------------->------------>+++>+++
+++++++++++++>+++++++++++++++++>++++++++++++++++++++++++>+++++++++++++++++++++++
++++>++++++++++++++++++++++++++++++<<<<<<.>>>.>..>.<<<<<<<.>>>.>>>>.>.<<.<<.<<<.
Pylade a écrit :
grim7reaper a écrit :

J'en profite pour signaler que celui en C++ est d'ailleurs ~9 fois plus rapide que celui de Pylade sur ce coup (si on regarde que le temps user, en temps global je ne suis que ~3 fois plus rapide) big_smile

Je ne crois pas que je t'aie donné ma dernière version… mais oui, je pourrais faire mieux. J'avais pensé à certaines optimisations, mais je ne les ai pas implémentées. Cela dit, la différence vient peut-être de la mise en buffer du code, et dans ce cas là les optimisations ne feraient que ralentir encore plus. ^^

Hum, je crois que si.
T'avais une version très lente à la base, et tu en avais fait une autre que j'avais bien prise en compte et c'est celle-là il me semble.
Elle est bien meilleure, là c'est un cas parmi d'autres (sur d'autres scripts l'écart est plus faible, et je crois que sur un des scripts que j'avais testé tu es même meilleur).
C'est quoi que tu appelles la mise en « buffer » ?
Parce que moi aussi le code est chargé dans un buffer.


Édit : pour ceux qui veulent voir la GPLv3 en brainfuck c'est par ici (je le poste pas car c'est trop long).

Dernière modification par grim7reaper (Le 22/03/2011, à 12:51)

Hors ligne

#685 Le 22/03/2011, à 13:06

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Ouais, mais à ce moment là je ne fais pas que charger le code, regarde ma fonction buf_code qui est bien longue (83 lignes)…
Voilà la dernière version (je ne suis quand même pas sûr que t'aies la dernière, là).


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#686 Le 22/03/2011, à 13:23

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

Effectivement, je n'avais pas la toute dernière, mais vu les différences ça ne changera rien aux perf' big_smile
Pour l'en‑tête

51,52c51,52
< char* buf_code(const char*, size_t**);
< int move_pointer(struct data*, char);
---
> static char* buf_code(const char*, size_t**);
> static int move_pointer(struct data*, char);

Pour le source

108c108
< char* buf_code(const char* src, size_t** match)
---
> static char* buf_code(const char* src, size_t** match)
182a183
>                     free(*match);
191c192
< int move_pointer(struct data* dt, char forward)
---
> static int move_pointer(struct data* dt, char forward)

Dernière modification par grim7reaper (Le 22/03/2011, à 13:26)

Hors ligne

#687 Le 22/03/2011, à 13:30

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Ah ouais, ça ne va pas chercher bien loin…


Mais note tout de même que c'est beaucoup mieux sans free manquant ! big_smile


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#688 Le 22/03/2011, à 13:37

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

Oui, effectivement. Rien que ça, ça justifie que je remplace la version que j'avais par celle-là smile

Hors ligne

#689 Le 22/03/2011, à 13:47

helly

Re : /* Topic des codeurs couche-tard [4] */

Bon, j'vais essayer de mettre en place un dépôt git/svn/hg/truc sur mon nas, pour voir comment ça se passe, comme ça quand j'en aurai besoin…
C'est lequel le mieux à choper ?
J'vois avec arch qu'il y a git, svn, cvs, mercurial… Mais je ne vois pas trop la différence entre tous…


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#690 Le 22/03/2011, à 13:49

The Uploader

Re : /* Topic des codeurs couche-tard [4] */


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#691 Le 22/03/2011, à 13:50

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

@helly : Darcs \o/
Théorie des patchs pour plus de souplesse + 100% Haskell + utilisé et recommandé par le Farfadet (c'est en lisant ces posts que je l'ai découvert, il était sur Mercurial avant (comme moi en fait)).

Sinon SVN et CVS c'est du centralisé (donc moisi, obligé d'avoir un serveur qui tourne donc chiant quand tu bosses seul en local ou sans le net). En gros c'est des vieux machins (CVS n'est même plus maintenu je crois)
Les autres c'est du décentralisé donc que du bon (oui, je ne suis pas objectif, je sais tongue).
Au pire, fait une recherche pour avoir des avis plus partiaux (enfin surtout plus développés).



@The Uploader : git c'est fait par un connard tongue

Dernière modification par grim7reaper (Le 22/03/2011, à 13:52)

Hors ligne

#692 Le 22/03/2011, à 13:54

helly

Re : /* Topic des codeurs couche-tard [4] */

'sorry uploader, j'ai plus tendance à faire confiance à grim, surtout s'il a aussi l'approbation du farfadet tongue.


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#693 Le 22/03/2011, à 14:01

helly

Re : /* Topic des codeurs couche-tard [4] */

Arf, il semble que ghc ne puisse pas tourner sur de l'ARM selon leur site hmm.


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#694 Le 22/03/2011, à 14:04

Kanor

Re : /* Topic des codeurs couche-tard [4] */

J'aime bien git mais Darcs semble bien intéressant je ne connaissais pas


je suis tombé sur un cas étrange
http://alternc.org/wiki/DocDarcs

Dernière modification par Kanor (Le 22/03/2011, à 14:06)

Hors ligne

#695 Le 22/03/2011, à 14:05

compte supprimé

Re : /* Topic des codeurs couche-tard [4] */

grim7reaper a écrit :
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++[>+>+>+>+>+>+>+>+>+<<<<<<<<<-]>---------------------------------------------
------->--------------------------------------------------->------------>+++>+++
+++++++++++++>+++++++++++++++++>++++++++++++++++++++++++>+++++++++++++++++++++++
++++>++++++++++++++++++++++++++++++<<<<<<.>>>.>..>.<<<<<<<.>>>.>>>>.>.<<.<<.<<<.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>++++++++++.

Fixed. tongue

/me part en courant et évite les tirs de grim' et de Pylade

#696 Le 22/03/2011, à 14:09

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

helly a écrit :

'sorry uploader, j'ai plus tendance à faire confiance à grim, surtout s'il a aussi l'approbation du farfadet tongue.

cool
En complément :
./viewtopic.php?pid=3647168#p3647168
./viewtopic.php?pid=4044800#p4044800
Tu noteras que c'est ce qu'il utilise pour son livre sur le C++.



helly a écrit :

Arf, il semble que ghc ne puisse pas tourner sur de l'ARM selon leur site hmm.

Arf, merde.
Bah mercurial c'est pas mal aussi dans ce cas.


@Lagierl : L'absence d''\n'était voulu.

Dernière modification par grim7reaper (Le 22/03/2011, à 14:14)

Hors ligne

#697 Le 22/03/2011, à 14:11

helly

Re : /* Topic des codeurs couche-tard [4] */

Yep, j'vais faire avec mercurial alors.
J'ai quand mêem voulu essayer d'installer ghc, pour voir…

[13:07 root@Mine ~/ghc-7.0.2] # ./configure 
checking for gfind... no
checking for find... /usr/bin/find
checking for sort... /usr/bin/sort
checking for ghc... no
configure: error: GHC is required unless bootstrapping from .hc files.

Cool ! Pour installer ghc, il faut avoir ghc d'installé !
Stack overflow ! \☺/

Dernière modification par helly (Le 22/03/2011, à 14:16)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#698 Le 22/03/2011, à 14:17

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

J'ai l'impression qu'il y a quand même un portage qui existe (même s'il ne fait pas parti de leur priorité). Peut-être de ce côté‑ (ou pas, en tout cas, on dirait qu'il y a bien quelque chose qui existe).

helly a écrit :

Cool ! Pour installer ghc, il faut avoir ghc d'installer !

Bah normal, vu que le ghc est écrit en Haskell…
Tu sais qu'il te faut un compilo C pour compiler un compilateur C (sauf s'il est écrit entièrement en assembleur, ce qui me semble tendu) ?
Bah là c'est pareil, c'est le fameux bootstrapping.
Il y a peut-être moyen de faire une cross-compilation

Dernière modification par grim7reaper (Le 22/03/2011, à 14:22)

Hors ligne

#699 Le 22/03/2011, à 14:25

The Uploader

Re : /* Topic des codeurs couche-tard [4] */

git c'est fait par un connard tongue

Nan, un idiot. ^^ (git = idiot en anglais british)

sorry, 'uploader [...]

mais euh, darcs n'a pas de github, s'nul! tongue

Dernière modification par The Uploader (Le 22/03/2011, à 14:27)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#700 Le 22/03/2011, à 14:33

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

The Uploader a écrit :

git c'est fait par un connard tongue

Nan, un idiot. ^^ (git = idiot en anglais british)

Tu es sûr ?
Idiot ça me semble bien soft, je trouve que connard (ou un truc du genre) est une meilleure traduction.

The Uploader a écrit :

sorry, 'uploader [...]

mais euh, darcs n'a pas de github, s'nul! tongue

github ça-pue-c-est-pas-libre.
gitorious c'est mieux :]

Dernière modification par grim7reaper (Le 22/03/2011, à 14:36)

Hors ligne