Romain Guy a écrit 196 commentaires

  • [^] # Re: Interview de Matz le créateur de Ruby

    Posté par  . En réponse à la dépêche Interview de Matz le créateur de Ruby. Évalué à 3.

    Un mélange des deux. C'est un article de 5 pages qui permet de prendre en main le langage : écrire quelques scripts courts, apprendre à définir des méthodes, utiliser les différentes sortes de variables, créer des classes, faire de l'héritage et même un exemple de XML-RPC. Bref, le "démarrez ruby en 15 minutes" :-)
  • [^] # Re: Interview de Matz le créateur de Ruby

    Posté par  . En réponse à la dépêche Interview de Matz le créateur de Ruby. Évalué à 3.

    Heu mettez moi vite -1 pour ne pas abîmer la page.
  • [^] # Re: Interview de Matz le créateur de Ruby

    Posté par  . En réponse à la dépêche Interview de Matz le créateur de Ruby. Évalué à -1.

    Je suis un adorateur de Python. J'ai testé Ruby (un article pour Login: de plusieurs pages écrit en novembre dernier, à paraître en septembre prochain seulement) et je préfère Python. MAIS, voici trois exemples de ce qu'on peut faire avec Python dans le genre illisible :
    FILE_EXTENSIONS   = ['.bmp', '.pcx']            # list of file extensions to handle
    STOP_BY_DIRECTORY = ['htrack', 'strack']        # handle directories of one of these names
    
    def fileTreeVisitor(arg, dirname, names):
      if os.path.split(dirname)[1] in STOP_BY_DIRECTORY: filterFiles(dirname, names)
    
    def filterFiles(dirname, names):
      fileNames = [name for name in names if os.path.splitext(name)[1] in FILE_EXTENSIONS]
      if len(fileNames) == 0: return
      fileNames.sort()
    
      map(os.mkdir, [os.path.join(dirname, "Angle" + str(i)) for i in range(1, 9) if not os.path.exists(os.path.join(dirname, "Angle" + str(i)))])
    
      for i in range(0, len(fileNames), len(fileNames) / 8):
        files = filter(lambda name: int(re.search("(\d+)\.", name).group(1)) % 2 != 0, fileNames[i:i + len(fileNames) / 16])
        for file in files:
          os.system(".\i_view32.exe " + os.path.join(os.getcwd(), dirname, file) + " /bpp=8 /convert=" + os.path.join(os.getcwd(), dirname, file))
          os.rename(os.path.join(dirname, file), os.path.join(dirname, "Angle" + str((i / (len(fileNames) / 8)) + 1), file))
    
    if __name__ == "__main__":
      if len(sys.argv) == 1:
        print "Please specify the root working directory"
      else:
        os.path.walk(sys.argv[1], fileTreeVisitor, ())
    
    Maintenant un bot IRC :
    BOT_CHANS, BOT_HOST, BOT_PORT, BOT_IDENT, OP, IDENT_PORT, ident, bot = '#pcteam,#progworld', 'ircnet.grolier.net', 6667, 'remouleur', '~romain\.gu@*\.abo\.wanadoo\.fr', 113, socket(AF_INET, SOCK_STREAM), socket(AF_INET, SOCK_STREAM)
    
    ident.bind(('', IDENT_PORT)) or ident.listen(1) or bot.connect((BOT_HOST, BOT_PORT))
    irc, irchost = ident.accept()
    irc.send(re.search('(\d+)', irc.recv(1024)).group(1) + ", " + str(BOT_PORT) + ' : USERID : UNIX : ' + BOT_IDENT) and (irc.close() or ident.close())
    
    bot.send('NICK ' + BOT_IDENT + '\r\nUSER ' + BOT_IDENT + ' ' + gethostname() + ' ' + BOT_HOST + ' :' + BOT_IDENT + '\r\n')
    while (bot.recv(1024).find('376 ' + BOT_IDENT) == -1): pass
    bot.send('JOIN ' + BOT_CHANS + '\r\n')
    
    while 1:
      match = re.search('(?m)^PING.+|:([^!]+)!([^\s]+) \w+ #(\w+)\s*:(.*)', bot.recv(1024))
      if match is not None:
        if match.group(0).find('PING') == 0: bot.send('PONG ' + BOT_IDENT + '\r\n')
        elif re.search(OP, match.group(2)) is not None and re.search(BOT_IDENT + ', (.*)\r', match.group(4)) is not None and re.search(BOT_IDENT + ', (.*)\r', match.group(4)).group(1) == 'quit': bot.send("QUIT :BOUM ! V'LA L'REMOULEUR !\r\n") and (bot.close() or sys.exit(0))
        elif chr(int(re.search('0\.(\d\d)', str(Random().random())).group(1))) in match.group(1).upper(): bot.send('PRIVMSG #' + match.group(3) + ' :' + base64.decodestring(binascii.unhexlify("".join(map(lambda x: hex(x)[2:], [5330296, 81040486, 206591574, 76969238, 189158482, 87303205, 5682518, 122776406, 81085187, 88623430, 86312084, 106320906])))) + '\r\n')
     
    Et enfin un vérificateur d'XHTML :
    exec """stack = []\nfor tag in re.findall("<(/?\w+)[^/]*?>", " ".join(open(sys.argv[1]).readlines())): print (tag[0] != '/' and (lambda t: stack.append(t)) or (lambda t: stack.pop() != tag[1:]))(tag) and "\\n%s invalid because of missing <%s> " % (sys.argv[1], tag) or "",\n"""
    
    Alors non, Python n'est pas FORCEMENT lisible :-)
  • [^] # Re: humour et relativité

    Posté par  . En réponse à la dépêche Vol des serveurs Tuxfamily. Évalué à 2.

    Alors en fait je crois que c'était 10 Go dont il parlait (si je me souviens bien) (et je suis sérieux).
  • [^] # Re: Login: 105

    Posté par  . En réponse à la dépêche Login: 105. Évalué à 0.

    Ben oui puisque je suis pigiste et non pas rédacteur :p
  • [^] # Re: Login: 105

    Posté par  . En réponse à la dépêche Login: 105. Évalué à 1.

    Tu parle de quel rédacteur ?
  • [^] # Re: Login: 105

    Posté par  . En réponse à la dépêche Login: 105. Évalué à -4.

    Que ceux qui ne lisent plus ou pas le magazine s'abstiennent de faire des commentaires sur le numéro de ce mois-ci !
  • [^] # Re: Login: 105

    Posté par  . En réponse à la dépêche Login: 105. Évalué à -1.

    Acrocheur ? La couverture me fait plutôt l'office d'une franche déconnade, mais bon...
  • [^] # Re: Légèreté

    Posté par  . En réponse à la dépêche OpenOffice 1.1 Beta. Évalué à 1.

    Bah je suis plongé dans le code de Mozilla depuis quelques semaines, y'a pas mal de code made in Netscape encore hein.
  • [^] # Re: XML - Quelles sont tes possibilités ?

    Posté par  . En réponse au journal XML - Quelles sont tes possibilités ?. Évalué à 1.

    Heu non, SOAP-RPC et XML-RPC sont comparables à DCOM/RMI/CORBA. Bien entendu SOAP-RPC se base sur SOAP qui n'est rien d'autre qu'un protocole d'échange de fichiers. WSDL permet pour sa part de décrire des services web afin de permettre aux programmes d'exécuter des services de manières plus ou moins automatiques (se référer à UDDI);
    Des explications sur 8 pages dans le Login: (désolé :-) du mois de Mai.
  • [^] # Re: Des technologies ouvertes au service du jeu

    Posté par  . En réponse à la dépêche Des technologies ouvertes au service du jeu. Évalué à 3.

    Tu sais, même le code de la version GBA (qui a un petit processeur et très peu de mémoire) n'utilise l'assembleur que pour deux choses : la définition du logo Nintendo et le boot (pour branche la console sur le main() du programme). Pourtant ça tourne :-)
  • [^] # Re: Des technologies ouvertes au service du jeu

    Posté par  . En réponse à la dépêche Des technologies ouvertes au service du jeu. Évalué à 8.

    Oui ça aide nécessairement, mais le code reste très gros (on s'approche du méga octet de code Python).

    Cela étant dit heu... disons que sur un P IV 1.6 Ghz (avec la RAM et la carte gfx qui vont bien) on sent les menus "ramer". En fait le problème est leur utilisation excessive de XML, chaque changement d'écran fait sentir le bon vieux parsing du bazar (en plus ce sont des gros fichiers XML, par exemple la base des joueurs tient dans un fichier de 500 ko).
  • [^] # Re: Des technologies ouvertes au service du jeu

    Posté par  . En réponse à la dépêche Des technologies ouvertes au service du jeu. Évalué à 7.

    Oui. Ceci dit, j'ai développé sur GBA plusieurs mois avec ces outils (cf http://progx.jext.org(...) ou Login:) mais je dois bien avouer que leur système pour débugger est vachement plus pratique qu'un émulateur :-) Pour information, il s'agit d'un gros boîtier connecté en SCSI sur la machine, relié à la console (fournissant une sorte de fausse cartouche + le courant pour éviter d'utiliser des piles), et la contrôlant entièrement (de fait, il s'agit de machines particulières, débridées pour pouvoir être rebootées, etc. depuis le PC).

    Toujours est-il que pour environ 100€ n'importe qui peut acheter une cartouche vierge et uploader ses propres ROMs dedans pour des tests en grandeur nature.
  • [^] # Re: Des technologies ouvertes au service du jeu

    Posté par  . En réponse à la dépêche Des technologies ouvertes au service du jeu. Évalué à 5.

    Le kit de développement Nintendo pour GBA est basé sur GCC :)
  • [^] # Re: Des technologies ouvertes au service du jeu

    Posté par  . En réponse à la dépêche Des technologies ouvertes au service du jeu. Évalué à 10.

    Heu le jeu repose sur DirectX, mais j'ai le code source entre les mains, TOUT a été écrit en Python :-)
  • [^] # Re: XFree, la saga continue

    Posté par  . En réponse à la dépêche XFree, la saga continue. Évalué à 5.

    Je confirme. Je me suis lancé à l'assaut du code source de Mozilla et si on met de côté l'absence TOTALE de commentaires dans le code, je suis tombé sur un écueil de taille : le propriétaire du module DOM Inspector sur lequel j'ai bossé. Il n'a de cesse de vouloir changer mon code et j'ai bien l'impression que ça va être dur pour que mon changement passe (pour vous donner une idée il m'a fait ch**r dans un long mail pour me dire de passer un int en static - ce qui à mon avis était stupide au regard de son utilisation). Toutefois, les gens sur #mozilla prennent bien le temps d'aider les débutants et sont très patients. Un grand merci à eux (et comme quoi sur un projet ils sont pas tous forcément "bons" ou "mauvais" :))
  • # Re: Sortie de Mozilla 1.3

    Posté par  . En réponse à la dépêche Sortie de Mozilla 1.3. Évalué à 10.

    Je confirme, sous Windows XP il démarre plus rapidement que IE. L'affichage des pages est bien plus rapide également. C'est... WAOW !
  • [^] # Re: Login n°104 - Mars 2003 est en kiosque

    Posté par  . En réponse à la dépêche Login n°104 - Mars 2003 est en kiosque. Évalué à 1.

    Pour ma part ça fait longtemps que j'ai une image de RMS assez proche de l'illustration :-)))))))))))))
  • [^] # Re: Login n°104 - Mars 2003 est en kiosque

    Posté par  . En réponse à la dépêche Login n°104 - Mars 2003 est en kiosque. Évalué à 1.

    Désolé, mais les légendes "idiotes" on DEJA été critiquées dans cette discussion.

    Bref, juste pour te donner un exemple : les gens aimaient pas les tests de logiciels, y'en a plus. Les gens voulaient des articles de plus de deux pages, ça tombe bien, c'est ce qu'il se passe depuis quelques numéros et la tendance n'est pas près de s'inverser, au contraire.

    Ce que j'appelle constructif, c'est des exemples précis et plus les sempiternels "je l'achète plus mais c'est nul". Comme je l'ai dit, on veut bien faire des efforts, mais encore faudrait-il que nous puissions déterminer ce que vous n'aimez vraiment pas (hormis les légendes et la couverture, mais ça ça changera pas, désolé :-).
  • [^] # Re: libMNG version 1.05 est sortie !

    Posté par  . En réponse à la dépêche libMNG version 1.05 est sortie !. Évalué à 7.

    Hmmm. Chaque fois que je fais un site Internet, une grande préoccupation reste, pour chaque image, de voir dans quel format j'obtiendrais le meilleur ratio qualité/taille. J'aime énormément le format PNG, mais il n'est pas le meilleur en toutes circonstances.
  • [^] # Re: précision

    Posté par  . En réponse à la dépêche Login n°104 - Mars 2003 est en kiosque. Évalué à 0.

    Si vous voulez un indice sachez qu'une partie du magazine est décidée "hors rédaction", autrement dit entre le rédacteur en chef et les pigistes. Et pour faire ce travail depuis 3 ans, je peux vous assurer UNE CHOSE : c'est très cloisonné. Autrement dit, en tant que pigiste, j'ai très peu d'informations sur ce qui se passe au magazine. Je ne m'en plains pas. Mais les sujets dont je discute avec le rédacteur en chef (Yann Rocq) sont réellement décidés de manière totalement indépendante du reste. Et dans 90% des cas, l'idée vient de moi, et non de lui. Et comme je ne risque pas de me préoccuper de la couverture...

    Concernant avoir une couverture accrocheuse et une réputation de qualité, je pense que les deux magazines en question les ont. Vous savez, pour 10 personnes qui se plaignent ici de la mauvaise qualité de Login:, nous en trouvons 50 qui disent le contraire à d'autres endroits.

    Un magazine possède une certaine cible après tout, et tout le monde ne peut en faire partie. Lire des messages qui disent "c'est nul, changez ça ça et ça" et en même temps d'autres qui disent "j'adore, ne touchez à rien" ou même "j'aime bien le lire de temps en temps"... ça simplifie pas les choses !

    Bien sûr, la rédaction s'efforce d'apporter des changements quand elle le juge nécessaire, mais il y aura toujours des laissés pour compte. Et comme j'ai il semblerait que les ventes de Login: soient loin de chuter on *peut* se dire que l'avis de 10 personnes sur linuxfr.org disant qu'ils n'achètent de toute manière plus le magazine n'aura pas tellement d'importance.

    Ah et concernant une remarque lue quelque part dans ce sujet à propos des tests de logiciels dans Login: ... cette personne serait étonnée de voir depuis combien de mois Login: n'a pas testé de soft.
  • [^] # Re: lemonde.fr et

    Posté par  . En réponse au journal lemonde.fr et "La face cachée du Monde". Évalué à 1.

    Merci !
  • [^] # Re: Je vais encore avoir l'air chiant mais...

    Posté par  . En réponse à la dépêche Login n°104 - Mars 2003 est en kiosque. Évalué à -1.

    Je ne te demande pas de ne pas râler, je te demande de BONNES RAISONS de râler.
  • [^] # Re: précision

    Posté par  . En réponse à la dépêche Login n°104 - Mars 2003 est en kiosque. Évalué à 1.

    Ils ont du mal à saisir le concept d'ironie ici :-)
  • [^] # Re: Je vais encore avoir l'air chiant mais...

    Posté par  . En réponse à la dépêche Login n°104 - Mars 2003 est en kiosque. Évalué à 0.

    Heu si, promis, c'était de l'humour noir. Pourquoi échangerait-on les deux ? C'est sans aucun intérêt ni même faisable :)