Ontologia a écrit 2141 commentaires

  • [^] # Re: Utilité

    Posté par  (site web personnel) . En réponse au journal Chat80. Évalué à 3.

    Récemment, j'ai codé une application en rail ou j'ai écrit des requêtes SQL bien plus complexe que cela.
    Je sais pas où tu travailles, mais j'y vois de nombreuses applications dans les projets que j'ai vu durant mon parcours professionnel : Dans de nombreux cas, il arrive que l'on ait des filtrage de données qui corresponde à des requête 2, 3, 4 fois imbriquées, avec des divisions relationnelles et autres joyeuseté.

    Je pense que ce n'est pas du tout à rejeter d'un revers de la main, il faut juste être un peu créatif et imaginer des applications.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • # Coquille

    Posté par  (site web personnel) . En réponse au journal Chat80. Évalué à 7.

    A la fin : "Ce que je trouve particulièrement dommage car cela simplifie énormément l'analyse en obtenant des arbre très profond."
    Lire : "des arbres peu profond".

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • # Sortir par le haut

    Posté par  (site web personnel) . En réponse au journal Lamentations ou les remords d'un geek. Évalué à 5.

    Merci.
    Ca fait du bien de lire ça, on se sent moins seul :-)

    Moi je suis TDAH tendance procrastination. Alors j'ai maintenant choisi la même voie que toi pour pallier à ce même problème : ne plus faire de code dans son métier (je reprend dès septembre une formation en organisation/management).

    Par contre, comme je suis rêveur et éternel insatisfait, je travail depuis quelques années à réinventer les langage de programmations.
    En effet, je suis convaincu que le paradigme même qui sous tend ces derniers est intrinsèquement trop error prone.
    Les langages de programmations, même de haut niveau sont trop orientés "machines" avec une sémantique beaucoup trop pauvre, qui ne prend en compte que la dichotomie, le test d'existance, l'affectation. Elle est la survivance directe des premiers ordinateurs manuellement cablés.

    Pour des gens comme nous, qui n'avons pas la puissance et la rigeur logique des knuths et consorts, ils nous faut un outil de programmation adapté à notre cerveau, notre façon de pensée d'humain : ainsi on fera moins d'erreur et on pourra reprendre plaisir à programmer.
    En ce qui me concerne, à part 2 ou 3 langages que je trouve "suportable" (prolog, ocaml, lisaac, ruby à la limite), ça devient trop pénible.
    J'ai encore passé un mois sur un ensemble de bouclettes qui analyse un tableau html en gérant les spans : un vrai cauchemar.

    En ce moment, pour mon futur langage, je travaille sur l'analyse du langage naturel, l'anglais en l'occurence pour faire des requêtes sur les données.
    Cela a été initié entre autres par "chat 80", écrit en 1978-1981 en prolog par Warren (le type qui a inventé la Warren Abstract Machine) et Pereira
    http://www.cis.upenn.edu/~pereira/oldies.html

    Chat80 permet de répondre à des question assez couillues.
    Exemple de dialog, que je copie de mon terminal :

    % chattop.pl compiled 0.01 sec, 0 bytes
    XPCE 6.6.66, July 2009 for i386-darwin9.8.0 and X11R6
    Copyright (C) 1993-2009 University of Amsterdam.
    XPCE comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to redistribute it under certain conditions.
    The host-language is SWI-Prolog version 5.8.3

    For HELP on prolog, please type help. or apropos(topic).
    on xpce, please type manpce.

    ?- hi.
    Question: Which country bordering the Mediterranean borders a country that is bordered by a country whose population exceeds the population of India?
    turkey.


    On peut tracer son exécution, c'est assez marrant

    Question: trace.
    Tracing from now on!
    Question: Which country bordering the Mediterranean borders a country that is bordered by a country whose population exceeds the population of India?
    Parse: 0msec.
    whq
       $VAR(1)
       s
          np
             3+sin
             np_head
                int_det($VAR(1))
                []
                country
             reduced_rel
                $VAR(2)
                s
                   np
                      3+sin
                      wh($VAR(2))
                      []
                   verb(border, active, inf, [prog], pos)
                   arg
                      dir
                      np
                         3+sin
                         name(mediterranean)
                         []
                   []
          verb(border, active, pres+fin, [], pos)
          arg
             dir
             np
                3+sin
                np_head
                   det(a)
                   []
                   country
                rel
                   $VAR(3)
                   s
                      np
                         3+sin
                         wh($VAR(3))
                         []
                      verb(border, passive, pres+fin, [], pos)
                      []
                      pp
                         prep(by)
                         np
                            3+sin
                            np_head
                               det(a)
                               []
                               country
                            rel
                               $VAR(4)
                               s
                                  np
                                     3+sin
                                     np_head
                                        det(the(sin))
                                        []
                                        population
                                     pp
                                        poss
                                        np
                                           3+sin
                                           wh($VAR(4))
                                           []
                                  verb(exceed, active, pres+fin, [], pos)
                                  arg
                                     dir
                                     np
                                        3+sin
                                        np_head
                                           det(the(sin))
                                           []
                                           population
                                        pp
                                           prep(of)
                                           np
                                              3+sin
                                              name(india)
                                              []
                                  []
          []



    Semantics: 0msec.
    answer([$VAR(0)]) :-
       country($VAR(0))
     & borders($VAR(0), mediterranean)
     & exists $VAR(1) 
         country($VAR(1))
       & exists $VAR(2) 
           country($VAR(2))
         & exists $VAR(3) 
             population($VAR(2), $VAR(3))
           & exists $VAR(4) 
               population(india, $VAR(4))
             & exceeds($VAR(3), $VAR(4))
         & borders($VAR(2), $VAR(1))
       & borders($VAR(0), $VAR(1))

    Planning: 0msec.
    answer([$VAR(0)]) :-
       exists $VAR(1) $VAR(2) $VAR(3) $VAR(4) 
         population(india, $VAR(4))
       & borders($VAR(0), mediterranean)
       & {country($VAR(0))}
       & { borders($VAR(0), $VAR(1))
         & {country($VAR(1))}
         & { borders($VAR(2), $VAR(1))
           & {country($VAR(2))}
           & { population($VAR(2), $VAR(3))
             & {exceeds($VAR(3), $VAR(4))} } } }
    turkey.


    Reply: 0msec.




    Ya trois étapes : le parsing avec analyse grammaticale, la transformation en requete logique, et le planning où la requete est améliorée.

    Bref, c'est possible.

    Ce langage sera aussi basés sur des paradigmes vraiment nouveaux, mais je vous en reparlerai en temps voulu.

    Bref, tout ça pour dire, que d'une part l'humain, c'est mieux qu'une machine au quotidien. Et d'autre part, nos outils de programmations sont peut être pas adaptés.
    Et je n'accepte pas (pour moi, les gens font ce qu'ils veulent) les messages de résignations que je lis tout le long du style "c'est en forgeant qu'on devient forgeron", "code plus, tu feras moins de bugs".
    Je code beaucoup depuis l'age de 11 ans, et je fait encore bcp trop de fautes d'innatention, c'est donc un problème de cerveau ET de langage.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Une nouvelle C.S.S. avec le printemps : « Springtime »

    Posté par  (site web personnel) . En réponse au journal Une nouvelle C.S.S. avec le printemps : « Springtime ». Évalué à 1.

    Je viens d'essayer et effectivement, j'avais pour ma part une police un eu trop grande, ce qui impliquait que tous ne tennait pas sans ascenseur horizontale. En la réduisant, c'est très joli.

    Bravo !

    PS : Il y avait une CSS qui était intéressante, en mettant des couleurs différentes en fonction de la profondeur du fil de la discussion. C'était très utile.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: mon Macbook a 3 ans

    Posté par  (site web personnel) . En réponse au journal Ordinateur portable = Ordinateur jetable. Évalué à 1.

    t là je pense acheter une nouvelle batterie histoire de retrouver une autonomie supérieur à 1h30 (ok, à 140e, ça fait un peu mal..)
    Va voir chez Fastmac, elles sont moins cher et mieux (plus de capacité).

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: mon Macbook a 4 ans

    Posté par  (site web personnel) . En réponse au journal Ordinateur portable = Ordinateur jetable. Évalué à 2.

    Aller je vais me faire moinser aussi.

    Bon effectivement, ma batterie, après 400 cycles, tiens 1h30 toute seule, 2h la lumière au mini, en faisant juste du texte ou de la lecture.


    Au fur et à mesure, j'ai ajouté de la mémoire, changé le disque, pris une batterie FastMac. Eh bien mon mac book marche toujours et pourtant je suis vraiment pas soigneux. Effectivement, il est fendillé aussi, falloir que je le remplace.

    Tout ça pour dire que du apple 2006, bah c'est du solide. Et je reprendrais la même chose, parce que plutôt acheter une machine à 400 € pour 2 ans, je préfère une à 1200 pour 5-6 ans (oui parce que je compte l'user jusqu'au bout, niveau puissance il me convient parfaitement).
    Et je reprendrai un macbook pro alu, tiens, et comme ça je serais un vrai fan boy apple*, et on m'insultera gaiment sur ce site !



    * En bon bon fanboy d'apple, il est hors de question d'acquerir un iP.+ je tiens à mon terminal texte moi :)

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Pourquoi pas des ARM ?

    Posté par  (site web personnel) . En réponse au journal Green500 : un TOP500 de l'écologie. Évalué à 2.

    Surtout qu'ARM vend du service pour adapter leur archi à tes besoins. Donc on pourrait concevoir des coeurs fait pour le massivement parallèle.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • # Pourquoi pas des ARM ?

    Posté par  (site web personnel) . En réponse au journal Green500 : un TOP500 de l'écologie. Évalué à 2.

    ARM est une boite qui vend de la propriété intellectuel sur leur architecture. On peut donc adapter soit même leur processeur.

    Pourquoi pas un supercalculateur écolo basé sur des ARM ? Je suis sur que la rapport perf/consommation serait très intéressant (?).

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: A que coucou

    Posté par  (site web personnel) . En réponse au journal Hudson, l'aigle de l'intégration continue. Évalué à 3.

    En gros, t'as une sorte de svn, un système de build qui ressemble à make (ou tu as une sorte de gestionnaire de paquet avec gestion des dépendances dedans),
    et des outils d'analyse de la qualité de code.
    Le Hudson machin permet de faire marcher tout ça ensemble :
    il fait régulièrement un build de ton code, et te pond automatiquement un site avec les indicateurs de qualité de code pour l'ensemble du projet.
    S'il détecte des problèmes, il peut envoyer un mail au type qui a commité le code qui a enclenché le problème.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • # Virgules en français

    Posté par  (site web personnel) . En réponse à la dépêche Le classement Top 500 de juin 2010 est disponible. Évalué à 10.

    Depuis quelques années, j'observe que l'habitude anglo-saxone de mettre des points à la place des virgules pour les nombres décimaux s'imposent...
    Cette news ne fait pas exception.

    Tout comme le 'Mr' qui n'est pas français s'impose aussi, même dans des documents officiels.

    Franchouillardes, franchouillards, résistons !

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • # Zut ! Ils ont eu la même idée que moi

    Posté par  (site web personnel) . En réponse au journal QML: le futur des interfaces graphiques. Évalué à 4.

    J'avais eu cette idée depuis 6 mois, de définir des interfaces avec des automates à états..; Bon bah c'est génial, il l'ont fait et bien fait.

    Quand on regarde bien, une interface utilisateur nécessite un automate à état pour fonctionner, je dirai même un automate à état hiérarchique (ie. des états peuvent contenir des machines à états), c'est le système le plus naturel, plutôt que gérer des callback.

    Couplé aux système slots, c'est génial !

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: lancer le débat :)

    Posté par  (site web personnel) . En réponse à la dépêche Spécifications de OpenGL 4.0. Évalué à 3.

    T'as pas compris. Il s'agit de supprimer l'aspect dynamique de l'appel de la fonction.
    ie. On remplace l'appelle à un pointeur sur fonction par un appel statique en utilisant un switch dichotomique (en log2(n) donc) sur l'id de l'objet.

    Ajoute qu'avec une bonne analyse de flot, on transforme 98% des appels en monomorphique.

    De cette manière on peut inliner très agressivement tout en gardant les possibilités de dynamisme dans l'écriture du code.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: lancer le débat :)

    Posté par  (site web personnel) . En réponse à la dépêche Spécifications de OpenGL 4.0. Évalué à 4.

    On y apprend un truc très intéressant sur les différences entre D3D et OpenGL : D3D oblige le programmeur à gérer manuellement ses resources hardware, ce qui est plus difficile, mais plus flexible et plus simple pour l'auteur du driver.

    OpenGL gère les ressources lui même, ce qui est plus facile à programmer, mais permet moins de tuner finement. De plus ça facilite pas la tâche du driver (enfin surtout celui qui l'écrit...)

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: lancer le débat :)

    Posté par  (site web personnel) . En réponse à la dépêche Spécifications de OpenGL 4.0. Évalué à 2.

    Parce qu'on sait pas faire de la perf avec de l'objet à cause de la liaison dynamique qui oblige d'utiliser des VFT, ce qui est lent (pointeur sur fonction -> impossible d'inliner, très dur pour le processeur d'optimiser, risque de vidage du cache, de la queue d'instructions à exécuter, etc...)

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Quelle idée géniale!

    Posté par  (site web personnel) . En réponse au journal Des films en vectoriel ?. Évalué à 2.

    C'est vlc qui t'as transformé l'image ou tu as utilisé un autre logiciel ?

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: ...

    Posté par  (site web personnel) . En réponse à la dépêche LLVM 2.7 est sorti. Évalué à 2.

    Surtout que les relecteurs ont l'air d'être recruté par copinage. Certains n'écrivent pas tant de contenus que ça sur le site...

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Langage auto-hébergé

    Posté par  (site web personnel) . En réponse à la dépêche Le langage ooc auto-hébergé - les nouveautés de rock 0.9.0. Évalué à 2.

    Non en général, tu écris ton compilateur avec les limites de la version précédente (celle avec laquelle tu compiles). Ensuite, tu dois compiler ton compilateur (1), recompiler ton compilateur avec(2), et pour être complet, recompiler ton compilateur avec le (2).
    Parce le (2) est compilé avec un compilateur compilé d'un version précédente, donc tu n'es pas indépendant :-)

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: HTC Magic ou Desire

    Posté par  (site web personnel) . En réponse au message Quel Smartphone. Évalué à 2.

    Très intéressant, merci ;-)
    Et le HTC Tatoo Silver, tu connais, c'est un bon téléphone ?

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Joli

    Posté par  (site web personnel) . En réponse à la dépêche Le langage ooc auto-hébergé - les nouveautés de rock 0.9.0. Évalué à 8.

    Je ne connaissais pas vraiment Lissaac mais il semble que ce soit un langage orienté prototype, c'est à dire qu'au lieu d'avoir une hiérarchie de classes, on peut cloner un objet et lui ajouter des méthodes. Cela semble plus dynamique que de l'ooc - donc forcément, avec un coût à l'exécution =) Mais intéressant tout de même.

    Effectivement, il est à prototype et héritage multiple, donc le parent s'affecte comme un slot normal que tu peux changer ou tu veux dans le code. Le parent a une existence physique propre (ou pas, car il y a 4 formes d'héritages différents en Lisaac).

    Concernant le coût du dynamisme, il n'y en a pas, d'une part parce que le compilateur n'utilise pas de VFT contrairement au votre *
    Lisaac** utilise des branchements dichotomiques, et transforme 99,6% (mesuré sur le compilateur, 400 000 appels, de l'héritage statique et dynamique dans tous les sens) des appels polymorphique en appel statique.
    Conclusion : tu n'as aucun cout pour le dynamisme. Et heureusement parce que dans ce langage, le if est un point de liaison dynamique, ne pas le faire serait catastrophique.

    Les VFT c'est lent, et ça a un cout énorme à l'exécution car :

    - Tu ne peux inliner
    - Le processeur ne peut pas optimiser car tu fais un jump indirect sur du code
    --> Tu dois garder tout tes objets en mémoire
    --> Certains objets ne peuvent décemment pas l'être pour des raisons de perfs. Par exemple, dans IsaacOS, et dans la GUI de la lib lisaac, par exemple, PIXEL est un objet, qui a des enfants PIXEL_16, PIXEL_8, PIXEL_32, etc.... Avec un modèle à VFT comme dans ooc, ça ruine les performances, parce que ça t'oblige à utiliser des VFT pour chaque appel de fonction sur tes pixels...

    Conseil : regarde ce qu'a fait Dominique Colnet dans son smarteiffel : c'est implémentable en ce qui vous concerne, parce que l'algorithme d'analyse de flot de Lisaac, c'est une autre paire de manche (surtout que votre langage est gros, ce qui simplifie pas la tâche).

    Et bon courage, parce que je sais de quoi je parle, et ça rend solidaire ;-)


    *
    Ce code :
    Animal: abstract class {
    shout: abstract func
    }

    Dog: class extends Animal {
    shout: func { "Woof, woof!" println() }
    }

    Cat: class extends Animal {
    shout: func { "Meoooww!" println() }
    }

    poke: func (animal: Animal) {
    animal shout()
    }

    poke(Dog new())
    poke(Cat new())

    Donne lieu à une VFT dans le C produit :

    void test__Animal_shout(test__Animal* this) {
    ((test__AnimalClass *)((lang_types__Object *)this)->class)->shout((test__Animal*)this);
    }


    **C'est expliqué ici http://www.dailymotion.com/video/xba8ij_1-8-presentation-du-(...) ou dans les suivantes.
    Tu as la vidéo des JM2L aussi, plus courte et synthétique.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: de ce que tu decris ...

    Posté par  (site web personnel) . En réponse au message Quel Smartphone. Évalué à 2.

    Monsieur tout le monde se fiche éperdument que google ait divergé par rapport au kernel original, pour la bonne raison que 95% au moins des gens ne savent pas ce que c'est (et même s'ils l'apprennent, je pense qu'ils s'en fichent).

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: de ce que tu decris ...

    Posté par  (site web personnel) . En réponse au message Quel Smartphone. Évalué à 2.

    Oui enfin, je me suis mal exprimé en disant que je voulais linux, je veux surtout un environnement GNU (outils unix classiq, gcc, etc...). Que le noyau soit linux, linux modifié, ou éventuellement BSD, ça me dérange qu'assez peu..

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • # Un peu rien à voir...

    Posté par  (site web personnel) . En réponse à la dépêche Stefano Zacchiroli : nouveau Responsable du Projet Debian. Évalué à 2.

    Cela a un peu rien à voir, mais j'ai l'impression que les debian squeeze et sid sont cassés en ce moment : en cause, un paquet udev qui s'installe pas et qui empêche d'installer quelconque paquet que ce soit.
    J'ai eu le problème en installant un serveur, et je ne suis pas le seul.
    J'ai reporté un énième bug, et le mainteneur m'a répondu que c'était parce que apt fonctionnait plus de la même façon...

    Du coup, j'ose plus updater ma machine

    Ca m'étonne de Debian.

    Qqun a eu des infos sur la question ?

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Ridicule ?

    Posté par  (site web personnel) . En réponse au journal Le point sur Java 7. Évalué à 2.

    Ya.

    http://www.javalinux.it/wordpress/java2scala/

    Et surtout : http://code.google.com/p/jatran/
    Qui a l'air assez fonctionnel. (J'ai failli partir dessus pour cracher du lisaac)

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: On est pas vendredi mais je m'en fous

    Posté par  (site web personnel) . En réponse à la dépêche Acceleo 2.7.0 est sorti !. Évalué à 2.

    Très intéressant, c'est encore la maladie du langage dans le langage, mais bon, ça a l'air expressif. Du moment que ça nous épargne le code chiant sans clickodrome..

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: On est pas vendredi mais je m'en fous

    Posté par  (site web personnel) . En réponse à la dépêche Acceleo 2.7.0 est sorti !. Évalué à 2.

    Bah voilà ! Ca c'est super ! Au moins on se retrouve pas bloqué.. Reste plus qu'à avoir un DSL text, parce qu'un clickodrome, beuurk, et sur ce site, je dois pas être le seul.
    Ca se configure simplement d'utiliser un DSL text sur votre techno ?

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker