Contenu | Rechercher | Menus

Annonce

Ubuntu-fr vend de superbes t-shirts et de belles clés USB 32Go
Rendez-vous sur la boutique En Vente Libre

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.

#101 Le 13/09/2011, à 18:21

grim7reaper

Re : /* Topic des codeurs [6] */

kamui57 a écrit :

helly : je ne poste pas de photos de moi sous pseudo cool

Il nous suffit donc de découvrir ta véritable identité :]
Je vais demander à notre ami zQ&r27v$F8e de faire une enquête sur toi tongue



Rolinh a écrit :
grim7reaper a écrit :

c’était un peu la lose à une époque

Marrant que tu cites cet article. Kaworu (un pote IRL) avait écrit ce post quand je lui avais parlé de zathura à l'époque. Marrant, lui son premier réflexe quand on lui parle d'un soft, c'est d'aller voir les sources. Si le code est trop affreux, il n'installe pas.

J’ai découvert son blog car tu avais posté un lien vers un de ses articles sur ce topic.
J’approuve son comportement, cela dit il est difficile de l’appliquer à 100% : trop d’outil GNU n’ont pas d’équivalents (ou d’équivalent assez mûr) tongue


↓↓↓ Pour avoir mater le code de mencoder/mplayer, je confirme qu’il y a des trucs crado (je parle pas des optimisations à coup d’assembleur inline (dans un tel logiciel, c’est justifié) mais du main de ~2000 lignes…)

Dernière modification par grim7reaper (Le 13/09/2011, à 18:25)

Hors ligne

#102 Le 13/09/2011, à 18:21

The Uploader

Re : /* Topic des codeurs [6] */

Rolinh a écrit :
grim7reaper a écrit :

c’était un peu la lose à une époque

Marrant que tu cites cet article. Kaworu (un pote IRL) avait écrit ce post quand je lui avais parlé de zathura à l'époque. Marrant, lui son premier réflexe quand on lui parle d'un soft, c'est d'aller voir les sources. Si le code est trop affreux, il n'installe pas.

Il doit éviter mencoder et pas mal d'autres bons logiciels au code (soi-disant) crade. ^^

Dernière modification par The Uploader (Le 13/09/2011, à 18:22)


- 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 AWE64, 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

#103 Le 13/09/2011, à 18:24

helly

Re : /* Topic des codeurs [6] */

Rolinh a écrit :

EDIT: Oops, j'ai lu zathura et ai pensé jumanji... bon, c'est le même type qui a écrit les deux...

Hein ?
Heu nan, mais j’ai peut être glissé dessus sans le voir ! yikes
N’oublie pas qu’en ce moment,  j’manque d’hémoglobine et que ça faaaaaaaaaaaaaaaaaaaaaatigue !


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

#104 Le 13/09/2011, à 18:25

helly

Re : /* Topic des codeurs [6] */

kamui57 a écrit :

helly : je ne poste pas de photos de moi sous pseudo cool

Bha, une photo sous vêtement, ça me va au pire.
Nan, mais le terme « sous pseudo » je l’ai pas compris…


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

#105 Le 13/09/2011, à 18:28

Pylades

Re : /* Topic des codeurs [6] */

grim7reaper a écrit :

Les développeurs savent coder correctement en C maintenant ?
Nan, parce que bon, c’était un peu la lose à une époque

Ce n’est pas la plus grave des erreurs… même si c’est bien moche quand même.

Sinon, en fouillant dans le blog que t’as lié, j’ai trouvé un lien vers ma signature ! yikes
C’est là que tu l’avais trouvée ?


“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

#106 Le 13/09/2011, à 18:29

grim7reaper

Re : /* Topic des codeurs [6] */

helly a écrit :
Rolinh a écrit :

EDIT: Oops, j'ai lu zathura et ai pensé jumanji... bon, c'est le même type qui a écrit les deux...

Hein ?
Heu nan, mais j’ai peut être glissé dessus sans le voir ! yikes
N’oublie pas qu’en ce moment,  j’manque d’hémoglobine et que ça faaaaaaaaaaaaaaaaaaaaaatigue !

D’ailleurs tu nous fait un très beau fail quote tongue

helly a écrit :
kamui57 a écrit :

helly : je ne poste pas de photos de moi sous pseudo cool

Bha, une photo sous vêtement, ça me va au pire.

Tiens helly, en attendant voilà une série de pix de moi (au diable l’anonymat !)



Πυλάδης a écrit :

C’est là que tu l’avais trouvée ?

Non, je la tiens de la source.

Dernière modification par grim7reaper (Le 13/09/2011, à 18:31)

Hors ligne

#107 Le 13/09/2011, à 18:31

The Uploader

Re : /* Topic des codeurs [6] */

grim7reaper a écrit :
helly a écrit :
kamui57 a écrit :

helly : je ne poste pas de photos de moi sous pseudo cool

Bha, une photo sous vêtement, ça me va au pire.

Tiens helly, en attendant voilà une série de pix de moi (au diable l’anonymat !)

Moi c'est encore pire, je suis suggéré par Google! hmm


- 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 AWE64, 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

#108 Le 13/09/2011, à 18:39

helly

Re : /* Topic des codeurs [6] */

grim7reaper a écrit :
helly a écrit :
Rolinh a écrit :

EDIT: Oops, j'ai lu zathura et ai pensé jumanji... bon, c'est le même type qui a écrit les deux...

Hein ?
Heu nan, mais j’ai peut être glissé dessus sans le voir ! yikes
N’oublie pas qu’en ce moment,  j’manque d’hémoglobine et que ça faaaaaaaaaaaaaaaaaaaaaatigue !

D’ailleurs tu nous fait un très beau fail quote tongue

>_<*

/me va se cacher.

Goto foire au vin \o/


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

#109 Le 13/09/2011, à 18:41

Rolinh

Re : /* Topic des codeurs [6] */

@helly: en fait, je faisais référence à ce post qui faisait référence à un du fil précédent que je ne retrouve plus et qui précédait celui-là.

Hors ligne

#110 Le 13/09/2011, à 18:45

helly

Re : /* Topic des codeurs [6] */

Oups, j’me souviens plus de quoi tu parlais ^^’.
Nan, je ne snobais pas, logiquement, c’est que j’avais pas lu ou que je m’en souvenais plus.


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

#111 Le 13/09/2011, à 18:49

Rolinh

Re : /* Topic des codeurs [6] */

@helly:
Je viens de retrouver le post original auquel je faisais référence.
J'avais écrit ça qui était une sorte de réponse face à ton désarroi de ne pas savoir quoi coder dont tu as fais mention un peu avant.

Hors ligne

#112 Le 13/09/2011, à 18:59

Ras&#039;

Re : /* Topic des codeurs [6] */

kamui57 a écrit :

Ras'
http://uni.xkcd.com/
http://goosh.org/
liens trouvés ici yen a sûrement d'autres http://news.ycombinator.com/item?id=1870857

edit : Emulating a terminal-like caret with javascript and css. http://www.dynamicdrive.com/forums/show … hp?t=17450

Ouaip.
Ben j'ai regardé le code source des exemples sus-cités et me rends compte que j'ai carrément sous estimé la charge de travail (à mettre en adéquation avec l'état de mon cerveau en sortant du taff)
On s'en passera, donc.


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.

Hors ligne

#113 Le 13/09/2011, à 19:17

grim7reaper

Re : /* Topic des codeurs [6] */

Hors ligne

#114 Le 13/09/2011, à 19:47

Rolinh

Re : /* Topic des codeurs [6] */

void
main(void)
{
    (void)puts("En même temps, on peut mettre 255 autres valeurs dans un octet...");
}

EDIT pour grim (un truc qui me ressemblerait plus):

#include <stdio.h>
#include <stdlib.h>

int
main(void)
{
    (void)puts("En même temps, on peut mettre 255 autres valeurs dans un octet...");

    /* yep, no check for errors so it is a success..... */
    return EXIT_SUCCESS;
    /* NOTREACHED */
}

Dernière modification par Rolinh (Le 13/09/2011, à 20:16)

Hors ligne

#115 Le 13/09/2011, à 19:56

grim7reaper

Re : /* Topic des codeurs [6] */

Rolinh, tu me déçois sad
Non, pas toi :
« void main(void) » !!! mad

(et puis il manque le include aussi)

Dernière modification par grim7reaper (Le 13/09/2011, à 19:57)

Hors ligne

#116 Le 13/09/2011, à 20:11

Rolinh

Re : /* Topic des codeurs [6] */

tongue

Je t'avoue que quand je l'ai écrit, je me suis dit:" mmmh, jamais fait ça...m'étonnerait que ça puisse se faire. On va voir si grim gueule". big_smile

EDIT: je n'aurais pas du faire ça à cette heure tardive. Tu vas faire pleins de cauchemars. tongue

EDIT2: Ayant toujours écrit des main qui retournent au moins un code d'erreur, je ne m'étais jamais posé la question. Mais en fait, ça le fait carrément pas un void main(void) pour le compilo.

Dernière modification par Rolinh (Le 13/09/2011, à 20:25)

Hors ligne

#117 Le 13/09/2011, à 20:34

grim7reaper

Re : /* Topic des codeurs [6] */

En fait, y’a certains cas où ça le fait :

ISO/IEC 9899:TC3 a écrit :

The function called at program startup is named main. The implementation declares no prototype for this function. It shall be defined with a return type of int and with no parameters:
int main(void) { /* ... */ }
or with two parameters (referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared):
int main(int argc, char *argv[]) { /* ... */ }
or equivalent; or in some other implementation-defined manner.

mais ça reste rare (certains codes embarqués, C en mode freestanding (kernel par exemple), …)

Dernière modification par grim7reaper (Le 13/09/2011, à 20:36)

Hors ligne

#118 Le 13/09/2011, à 21:42

Elzen

Re : /* Topic des codeurs [6] */

Bon : mon éditeur de texte commence à ressembler à quelque chose big_smile

J'suis même en train de l'utiliser pour le finir, ç'fun ^^


J'ai juste la base de la base, pour le moment (gestion des onglets (ça, c'était déjà géré par ma bibli pour les nouveaux utilitaires Touhy) ; ouvrir/enregistrer/enregistrer sous ; annuler/refaire au clavier (c'était géré automatiquement) et avec des boutons ; copier-coller par raccourcis clavier (c'était géré automatiquement, il faut que je rajoute les boutons), recherche de texte (un peu buggée, ça ne scrolle pas encore tout seul quand le texte trouvé n'est pas dans la zone visible) et coloration syntaxique (automatique, pour le moment, pas encore de choix de langage)).

J'vais voir pour ajouter un rechercher/remplacer, une correction orthographique, quelques réglages d'options et les deux-trois autres fonctionnalités saugrenues auxquelles j'ai pensé (notamment : la possibilité d'afficher le contenu non-modifié du fichier dans le panneau latéral, pour comparer), mais déjà, j'ai un logiciel qui me convient pour bosser avec, c'est le principal.

J'ai juste un petit soucis : je n'trouve pas comment récupérer la colonne à laquelle se trouve actuellement le curseur, pour afficher dans la barre de statut (j'ai trouvé comment récupérer le numéro du caractère sur la ligne, mais ça n'prend pas en compte les tabs, et vérifier manuellement le contenu de la ligne à chaque déplacement du curseur pour régler la taille des tabs, ça me paraît lourd).

Hors ligne

#119 Le 13/09/2011, à 21:49

Pylades

Re : /* Topic des codeurs [6] */

Tu ne feras pas mieux que Vim, t’façons. tongue


“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

#120 Le 13/09/2011, à 22:02

Elzen

Re : /* Topic des codeurs [6] */

Mieux, probablement pas ; plus adapté à mon utilisation personnelle, très certainement tongue

(Ceci dit, si vous avez des suggestions de fonctionnalités, j'garantis rien, mais j'veux bien les entendre)

(Pis tiens, toi : j'crois que tu n'as pas encore répondu à ça (ou alors j'ai loupé))

Hors ligne

#121 Le 13/09/2011, à 22:06

Pylades

Re : /* Topic des codeurs [6] */

Si je le savais, j’aurais fait un lanceur pour avoir une icône kisèr-aryen qui ouvre les menus dans Tint2, bien kikoolol. Mais là, non, désolé.


“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

#122 Le 13/09/2011, à 22:18

grim7reaper

Re : /* Topic des codeurs [6] */

Bon, j’ai avancé dans ma rédaction. Dans le meilleur des cas je fini demain soir (peu probable…) ou après‑demain (plus réaliste) voire vendredi (au pire).
En attendant, voilà un extrait

/me a écrit :

Il faut savoir qu’en C les types sont classés en trois catégories (Cf. ISO/IEC 9899:TC3, 6.2.5 Types) :
- Les types « fonction » : ce sont les types qui décrivent une fonction. Ils sont composés du type de retour et du nombre et du type des arguments ;
- Les types incomplets : ce sont les types dont on ignore la taille. Cette catégorie de type est elle-même divisée en trois parties :
    - Le type void : c’est le seul type incomplet qui ne peut pas être complété ;
    - Les tableaux dont la taille n’est pas spécifiée ;
    - Les structures et les unions dont le contenu est inconnu ;
- Les types « objet » : ce sont les types qui décrivent totalement un objet. Ils rassemblent tout ce qui n’entre pas dans les deux catégories précédentes.

Sur ce, BN World!

Hors ligne

#123 Le 13/09/2011, à 22:27

Rolinh

Re : /* Topic des codeurs [6] */

@grim: je te vois bien tenir un beau blog plutôt qu'un semblant de site web tongue
Enfin, j'aimerais bien moi un blog de grim avec un beau flux RSS et tout et tout.

Hors ligne

#124 Le 13/09/2011, à 23:37

The Uploader

Re : /* Topic des codeurs [6] */

#!/usr/bin/env ruby
require "ruby-debug"

module Security

    class Caesar < String

        def initialize(str)
            @alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            @english_freqs = {
                     'A'=>8.11, 'B'=>0.903, 'C'=>3.49, 'D'=>4.27, 'E'=>17.22,
                     'F'=>1.14, 'G'=>1.09, 'H'=>0.769, 'I'=>7.44, 'J'=>0.339,
                     'K'=>0.097, 'L'=>5.53, 'M'=>2.89, 'N'=>7.46, 'O'=>5.38,
                     'P'=>3.02, 'Q'=>0.999, 'R'=>7.05, 'S'=>8.04, 'T'=>6.99,
                     'U'=>5.65, 'V'=>1.30, 'W'=>0.039, 'X'=>0.435, 'Y'=>0.271,
                     'Z'=>0.098
                    }
            @english_freqs_infos = {'max_val'=>17.22, 'kappa'=>0.0746}
            super
        end

        def islower(string)
            if string == string.downcase
                return 1
            else
                return 0
            end
        end

        def sum_residual_error_squared(dict)
            sum = 0
            dict.each do |k, v|
                sum += (v - @english_freqs[k])**2
            end
            return sum
        end

        def frequency(string)
            dict = {}
            for c in string.upcase.chars
                if @alphabet.index(c) != nil
                    dict[c] = dict[c] == nil ? 1 : dict[c] + 1
                end
            end
            return scale(dict)
        end

        def scale(dict)
            v = dict.values
            v.sort
            max_val = v[-1]
            dict.each do |k, v|
                dict[k] = v*@english_freqs_infos['max_val']/max_val
            end
            return dict
        end

        def guess_shift_and_decipher(string)
            best = 0
            smallest_sum = -1
            for shift in Range.new(0, 26)
                encoded_text = encipher(string, shift)
                char_freqs = frequency(encoded_text)
                current_sum = sum_residual_error_squared(char_freqs)
                if smallest_sum == -1
                    smallest_sum = current_sum
                else
                    if current_sum < smallest_sum
                        best = shift
                        smallest_sum = current_sum
                    end
                end
            end
            return decipher(string, best)
        end

        def encipher(instance=self, shift)
            ciphertext = ""
            for p in instance.chars
                if @alphabet.index(p) != nil
                    ciphertext << ((p.ord - 'Aa'[islower(p)].ord + shift) % 26 + 'Aa'[islower(p)].ord).chr
                else
                    ciphertext << p
                end
            end
            return Caesar.new('' << (ciphertext))
        end

        def decipher(instance=self, shift)
            return instance.encipher(-shift)
        end
    end

    class Vigenere < String

        def initialize(str)
            @alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            super
        end

        def islower(string)
            if string == string.downcase
                return 1
            else
                return 0
            end
        end

        def encipher(instance=self, key)
            ciphertext = ""
            k = 0
            n = key.length
            for p in instance.chars
                if @alphabet.index(p) != nil
                    #ciphertext << (p.ord + islower(p) == 0 ? (key[k % n].upcase).ord => (key[k % n].downcase).ord - 2 * (('Aa'[islower(p)]).ord % 26 + ('Aa'[islower(p)]).ord % 26)).chr
                    k = k + 1
                else
                    ciphertext << p
                end
            end
            return Vigenere.new('' << ciphertext)
        end

        def decipher(instance=self, key)
            plaintext = ""
            k = 0
            n = key.length
            for c in instance.chars
                if @alphabet.index(c) != nil
                    #plaintext << (c.ord - key[k % n].downcase.ord % 26 + 'Aa'[islower(c)].ord).chr
                end
            end
            return Vigenere.new('' << plaintext)
        end

    end

    #v = Vigenere.new("HAHALEPSICESTCOOLZZ").encipher('MASSEFFECT').decipher('MASSEFFECT')
    #puts v
    c = Caesar.new("ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN ATTACK AT DAWN").encipher(5)
    g = Caesar.new('').guess_shift_and_decipher(c)
    puts c
    puts g
end

Ah ben oui 'craquer' un codage Caesar (automatiquement) et un codage Vigenere (donner la clé la plus probable) spa facile. hmm
Et encore, je me limite à la langue anglaise..

Dernière modification par The Uploader (Le 13/09/2011, à 23:37)


- 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 AWE64, 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

#125 Le 14/09/2011, à 07:53

grim7reaper

Re : /* Topic des codeurs [6] */

Hello World!



Rolinh a écrit :

@grim: je te vois bien tenir un beau blog plutôt qu'un semblant de site web

Hum oui et non.
C'est vrai qu'il y a des trucs intéressant dans les blogs comme :
- le classement par tag ;
- les commentaires ;
- et c'est tout ! (en ce qui me concerne).
Bon, à la limite on peut ajouter les thèmes tout fait qui permettent d'avoir un truc plus eye-candy sans se casser la tête :]

Après, il y a des trucs que je n'aime pas. Déjà faut souvent (bon pas pour tous c'est vrai) une BDD et/ou PHP, ça fait/génère des trucs dans ton dos du coup quand t'as des emmerdes (comme kamui57 en ce moment) bah tu sais pas d'où ça vient (alors que là avec mon truc 100% fait main je trouve vite le souci quand y en a un et j'ai la main sur 100% des fichiers (bon un peu moins en fait, y a du JS/CSS que j'ai récupéré pour la colo syntaxique)).
Puis y'a aussi une relation d'ordre chronologique entre les articles, choses que je ne souhaite pas vraiment...

En plus, j'ai l'impression qu'aujourd'hui tout le monde fait un blog et plus de bon vieux sites comme avant (et comme chacun sait, c'était mieux avant tongue).
Et puis ouais mon site à un design (très) épuré, mais de toute façon en général les gens balèze en prog font des sites "moches", c'est bien connu big_smile (Bjarne Stroustrup, RMS, ESR, Larry Wall (lui c'est le "meilleur"), Donald Knuth, ...)

Rolinh a écrit :

Enfin, j'aimerais bien moi un blog de grim avec un beau flux RSS et tout et tout.

Quoi, qu'est ce qu'il à mon RSS ? tongue
Il est beau, fait à la main et valide :]. Que demande le peuple ?

Hors ligne