Amand Tihon a écrit 734 commentaires

  • [^] # Re: OCaml & python ont vraiment des approches et possibilités différente

    Posté par  (site web personnel) . En réponse au journal pas d'inference de type a la ocmal en python. Évalué à 2.

    Tu as beaucoup d'exemples ou tu as eu besoin de coder une classe a laquelle tu peux ajouter 1, mais qui ne serait pas convertible en entier/float ?


    Les complexes ? :)

    >>> int(2 + 3j)
    Traceback (most recent call last):
    File "", line 1, in ?
    TypeError: can't convert complex to int; use int(abs(z))
    >>> 1 + (2 + 3j)
    (3+3j)
  • # mc et FTP

    Posté par  (site web personnel) . En réponse au message FTP avec Midnight Commander. Évalué à 3.

    Ben, ya rien de spécial à faire.

    Une fois que tu as ouvert ton panneau FTP, F4 sur un fichier pour l'éditer, F2 pour sauver (ou direct F10 et confirmer).
    Ce sera sauvé sur le FTP.
  • [^] # Re: OCaml & python ont vraiment des approches et possibilités différente

    Posté par  (site web personnel) . En réponse au journal pas d'inference de type a la ocmal en python. Évalué à 4.

    Accessoirement, le typage statique semble faire couler pas mal d'encre dans la communauté python actuellement


    Alors que dans la majorité des cas, un typage statique est demandé par "habitude", parce que les autres langages utilisent ça.

    En python, on préfère utiliser le duck typing : si ça marche en canard et que ça fait "CO1N !", on le traite comme un canard (non non, pas comme une moule). Un raisonnement assez proche de celui mis en place avec l'inférence de type. Ce qui est intéressant, ce sont les capacités de ton objet, pas son type.

    Ainsi, pour le premier exemple, f1 ne demande pas un entier en argument, mais n'importe quel "truc" auquel on peut ajouter un entier. Un entier ou un long, un float, un Decimal en python2.4, un complexe, ou n'importe quelle classe définie par moi et qui accepte qu'on lui ajoute 1.
  • [^] # Re: Rahhh

    Posté par  (site web personnel) . En réponse à la dépêche Nokia choisit python. Évalué à 5.

    Moi non plus, mais j'aime tellement le Python que je suis quand même content :)
  • [^] # Re: -moz-border-radius

    Posté par  (site web personnel) . En réponse au message css et formes. Évalué à 1.

    Oh ! C'est bien gentil d'en faire part !
    Quelqu'un sait si d'autres browsers ont un équivalent ? Ou alors, l'URL d'une page qui reprendait les attributs spécifiques supportés par chaque navigateur...
  • # AmigaOS

    Posté par  (site web personnel) . En réponse au journal J'ai honte. Évalué à 2.

    Voilà, je suis AmigaOS.

    Même si je n'ai jamais eu l'occasion de l'utiliser, je prends ça pour un compliment :)
  • [^] # Re: Pas trop possible

    Posté par  (site web personnel) . En réponse au journal Configuration multi-écran et gestionnaire de fenetres. Évalué à 2.

    J'utilise le Twinview de Nvidia sous KDE, et une fenêtre maximisée ne l'est que sur un écran.
    C'est au WM (kwin dans mon cas) à gérer ça. Tu peux peut-être faire une suggestion sur leur Bugzilla, si ce n'est pas encore fait ?
  • [^] # Re: Logical Desktop ?

    Posté par  (site web personnel) . En réponse au journal Marre du menu demarrer. Évalué à 5.

    On ne se dit pas "tiens j'ai envie de lire un PDF" mais "voici un fichier PDF, je veux le lire".

    D'autant plus vrai que certaines personnes se disent même "Voici un fichier, je veux le lire", et se fichent éperdument que le fichier soit un PDF ou autre chose (ou ne le savent tout simplement pas).
  • [^] # Re: Différence avec Python ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de Ruby 1.8.2. Évalué à 3.

    Juste une remarque :
    * En Python il faut des _ pour les variable d'instance accessibles publiquement

    « Pas du tout, efface » (tm).
    Il ne faut rien de spécial pour avoir une variable d'instance (sauf le self. que certains excècrent).

    En ce qui concerne les variables publiques vs. privées avec getter/setter, je préfère l'approche de Python (je ne parle pas des variables 100% privées).
    On met les variables publiques, sans se faire chier à écrire les getters/setters. Si un jour la représentation interne change, on passe la variable privée (avec __) et on utilise des property, qui offrent en outre la possibilité de définir une méthode "del", et une chaîne doctype.
  • [^] # Re: Différence avec Python ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de Ruby 1.8.2. Évalué à 2.

    marrant, naturellement le join je le ferai sur un tableau moi. Je joint "les éléments du tableau" "avec" "|".


    Oui, je reconnais que c'est un des bouts déroutants de Python. Mais en fait, les deux sont logiques.

    Avec "|".join(t), je demande au caractère "|" de faire la jointure entre les éléments de t.
    J'envoie à l'objet "|" le message "sert de glue à" "mon tableau t".

    Pour l'histoire du type de retour, je suis bien sûr d'accord avec la majorité :)
  • [^] # Re: Euh, on complique Python à loisir?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de Ruby 1.8.2. Évalué à 1.

    Et voilà, j'étais parti pour écrire un long commentaire, pas très structuré, qui aurait du répondre « et en python, on utilise les property, etc... »

    Et puis je me suis dit que de toute manière ça n'avait que peu d'importance. Python et Ruby font à peu près pareil, mais avec une syntaxe et une vision des choses fort différentes, c'est tout.

    Par contre, grand amoureux de ce langage, ce que je reproche le plus à Python, c'est de ne pas pouvoir modifier les types builtin, comme ça semble possible en Ruby (voir un exemple plus haut). Bien sûr, on peut en hériter, mais ce n'est pas pareil.
    Je n'ai plus d'exemple en tête, mais je sais qu'il y a déjà eu un cas où j'aurais été très content de pouvoir ajouter une méthode au type str.
  • # dosbox

    Posté par  (site web personnel) . En réponse au message Emulation d'un vieux jeu DOS ... Évalué à 3.

    Si dosemu ne s'en sort pas (souvent le cas avec les jeux, malheureusement), essaie dosbox. C'est un émulateur complet (x86 + DOS), que j'utilise pour jouer à Jazz Jack Rabbit :)
  • [^] # Re: précision

    Posté par  (site web personnel) . En réponse au journal Des données sur un vinyle. Évalué à 8.

    Ah, ça c'est facile !
    Un seul bien sûr :)
  • # Solution

    Posté par  (site web personnel) . En réponse au message hover sur tableau. Évalué à 2.

    Un exemple minimaliste qui fonctionne tant sous Firefox que sous Konqueror (pas d'autre browser pour tester) :
    http://allergy.alrj.org/CSS/table-hover.html(...)

    La partie tr:hover td est nécessaire pour que ça fonctionne sous Konqueror, mais Firefox s'en passe très bien.
  • # Et au japon...

    Posté par  (site web personnel) . En réponse au journal L'affichage 12 heures c'est naze.. Évalué à 7.

    ..tu as des émissions qui passent à la TV à 25:30, par exemple.

    Je trouve que cette méthode enlève pas mal d'ambiguïtés. Vendredi à 25:30, c'est clairement vendredi très tard le soir.
  • [^] # Re: Attention ...

    Posté par  (site web personnel) . En réponse au journal En colère.... Évalué à 8.

    Ils vont malheureusement te répondre que IE est la navigateur utilisés par plus de 90% de leur clientèle et que c'est "naturellement" dans l'objectif de la satisfaire qu'ils ont développé leur site.

    Auquel cas tu peux répondre que l'utilisation d'IE se voit de plus en plus interdite ou très fortement déconseillée (ça reste marginal, mais c'est le cas).

    Tu peux aussi dire que si le site ne s'affiche correctement que sous IE, il est normal de voir 99% des visiteurs du site utiliser ce navigateur.

    Par contre, inutile de leur parler du fait que c'est écrit en ASP. Je peux faire un site en Apache+mod_python+linux qui passe encore moins bien...
  • [^] # Re: Quel éditeur/IDE pour python ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de Python 2.4. Évalué à 2.

    Pour tester des très petits trucs rapidement : pas d'éditeur, juste le shell python.
    Pour tester des trucs un peu plus gros, mcedit ou Kate, suivant l'inspiration et la phase de la lune.
    Pour le "vrai" développement, Kate
  • [^] # Re: le python c'est bon

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de Python 2.4. Évalué à 6.

    ces erreurs aurait-elles pu être prévenues par des tests unitaires

    Pas toujours.
    En fait, à peu près tout est dynamique en python (les exceptions qui me viennent à l'esprit sont les types built-in).
    Ca veut dire que tu peux, durant l'exécution, ajouter ou retirer des méthodes à une instance, ou à une classe, tu peux modifier l'arbre d'héritage d'une classe, etc.

    Tout ceci signifie que l'interface de tes objets peut changer durant l'exécution, ce qui est parfois très pratique pour faire un système de plugins.

    Ajoute à ceci la possibilité de jouer avec les métaclasses (le type de ta classe, pas le type de ses instances), et un accès aux constructeurs eux-mêmes[1], et tu peux te retrouver devant de vrais casse-têtes.

    Je ne dis pas que c'est une bonne ou une mauvaise manière de programmer, juste qu'il y a beaucoup de champ libre et de possibilités de tester, dans un domaine qui est moins habituel quand on vient du java ou du C++.

    [1] Les méthodes appelées « constructeurs » en C++ ou java sont chargées d'initialiser l'instance (comme __init__ en python). Python remonte encore un cran plus haut et donne accès à la méthode qui retourne l'objet créé. Cela veut dire qu'on peut très bien avoir une classe C dont le constructeur (__new__) renvoie en fait une instance de D, même si C et D n'ont strictement rien en commun.
  • [^] # Re: Pourquoi tous ces self ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de Python 2.4. Évalué à 2.

    > Explicit is better than implicit
    ah, comme COBOL, quoi :)


    Merci de ne pas confondre « explicite » et « verbeux » :-)
  • [^] # Re: Décorateurs

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de Python 2.4. Évalué à 8.

    Non, non. Enfin, ça permet plein de trucs, mais ça n'ajoute rien, à part un peu de sucre syntaxique. Ce n'est jamais que l'application d'une fonction "enrobante", ce qui était déjà possible. Avant, sans décorateurs:
    class C:
        def m(x):
            pass
        m = staticmethod(m)
    
    Maintenant, avec décorateurs:
    class C:
        @staticmethod
        def m(x):
            pass
    
    Évidemment, on peut (et on pouvait déjà, la syntaxe en moins) faire bien d'autres choses qu'un contrôle de type, avec les décorateurs. Voir http://www.python.org/moin/PythonDecoratorLibrary(...) pour quelques exemples.
  • [^] # Re: Debian X-strike force ?

    Posté par  (site web personnel) . En réponse au journal Xorg sous Debian grace à Ubuntu. Évalué à 2.

    Et Daniel Stone, même s'il n'est plus officiellement dans l'équipe, a fait (et continue sans doute à faire) beaucoup de choses pour Xfree dans Debian.
  • # Oui, j'ai honte...

    Posté par  (site web personnel) . En réponse au journal La dernière personne que je pensais convertir .... Évalué à 4.

    ...mais, être konqui par Firefox, je trouve ça bô !
  • [^] # Re: et avec un domaine ?

    Posté par  (site web personnel) . En réponse au message Proftpd virtualhost avec ip dynamique. Évalué à 1.

    => <VirtualHost www.joydisco.at>

    C'est valide si et seulement si chaque nom d'hôte donné aux directives VirtualHost est associé à une IP différente.
  • [^] # Re: et avec un domaine ?

    Posté par  (site web personnel) . En réponse au message Proftpd virtualhost avec ip dynamique. Évalué à 1.

    Non, les virtualhost en ftp sont obligatoirement basés sur l'IP (ou éventuellement le port, mais c'est une autre histoire). Un vhost ftp => une IP.

    En http, au contraire, on utilise le header envoyé par le client pour distinguer le vhost à utiliser, ce qui permet d'avoir plusieurs vhost sur la même IP.

    Donc ta solution est probablement de créer les entrées ftp.domaineX.tld, et d'utiliser le login pour distinguer les comptes...
  • # Tutorial KIO

    Posté par  (site web personnel) . En réponse au message créer un KIO. Évalué à 2.

    Bon, ça semble être orienté KDE2, mais peut-être que l'API n'a pas trop changé :
    http://www.heise.de/ct/english/01/05/242/(...)

    J'espère que ça t'aidera.