Le petit journal du pr0n

Benjamin GIGON's blog

Aller au contenu | Aller au menu | Aller à la recherche

Page

mardi 24 juin 2008

Tu les as vu mes grosses bolox ?

Tony - alias Tony-De-Koh-Lanta - a pasté ce *wonderful* cadeau dans les commentaires: Intel ® Integrated Performance Primitives 5.3

Cette merveilleuse librairie propose aloooooooooors:
  • Video Decode/Encode
  • Audio Decode/Encode
  • JPEG/JPEG2000
  • Data Compression
  • Cryptography – CAVP Validated!
  • Speech Coding
  • Speech Recognition
  • Image Processing
  • Image Color Conversion
  • Computer Vision
  • Signal Processing
  • Vector/Matrix Mathematics
  • String Processing
  • Rah la la ! y'a tellement de truc, que je peux pas les évoquer là ... Regardez et mangez !
    Bon, par contre, c'est OpenSource-à-la-mode-Intel ...

    samedi 15 septembre 2007

    Graphisme> Le redesign de GIMP à l'étude

    Je suis tombé sur cette page: http://gimp-brainstorm.blogspot.com.
    Je kiff :


    La petite vidéo qui va faire chier les 3/4 des lecteurs (donc pas les techs) : Vidéo LGM: GIMP branlette-brainstorming

    Le redesign de GIMP est important ... mais bon, y'a aussi le support de plus de format d'image, l'ajout de fonctionnalité, etc...

    vendredi 8 juin 2007

    Bind SQL: Bind DLZ, Patch Extended Tags

    A une certaine époque, je m'occupais d'un Registrar français (non, ce n'est pas gandi et encore moins OVH ;-).

    Pour mes besoins, je devais interfacer tout le NOC à une seule et même base de donnée: le site web, le DNS (Bind), le serveur de mail (Postfix), les VirtualHosts (Apache), les redirecteurs transparents (Apache+Mod_Proxy) et le Whoisd (codé par himself),

    En gros, je ne voulais pas à me prendre la tête: si un domaine expirait (ou pas), les requètes SQL - implementées dans les différentes configurations - devaient suffire à gérer les différents services: soit à produire un résultat viable, soit à rejeter la demande, tout ceci en direct bien entendu. (pas de couche d'abstraction entre les applis, comme un soft-crontabisé générant le fichier de config Bind ou Apache)
    .
    Pour le DNS, je me suis basé sur un patch existant : Bind-DLZ.

    Bind-DLZ permettait des interconnexions vers les différentes grandes bases de donnéees OpenSource: MySQL, PostgreSQL, (Open)LDAP ou non-free avec ODBC.

    Un pur bonheur.... oui, enfin pas tout à fait, j'avais quelques petits problèmes de performance au niveau du DNS lors des "queries" classiques.
    Même la plus belle des requètes n'aurait pas pu régler ce problème: il fallait se rendre à l'évidence: j'avais besoin de "tags" supplémentaires dans la configuration de Bind patché avec DLZ.

    Après quelques minutes/heures, j'ai produit une serie de patch pour les différents "drivers" Bind-DLZ pour l'ajout de deux tags: le "zone_tld" tag et le "zone_domain" tag.
    Le "zone_tld" s'occupait des gTLD comme .com, .net, .org, etc...
    Le "zone_domain", lui, s'occupait de la partie "nom" du domaine: "sherpadown", "google", etc... par exemple.

    Après test et mise en production, les latences ont disparus.

    Les différents patchs et packages :
    Bind DLZ - Patchs Extended-Tags
    Bind DLZ
    Unofficial Debian packages for Bind DLZ + Patch Extended-Tags

    mardi 27 juin 2006

    eXtreme Programming, Pair Programming et Sociabilité (sans meurtres)

    Lorsque l'on gère une nouvelle équipe en eXtreme Programming, ils existent des aspects auquels les développeurs - qui proviennent du développement classique - vont devoir se confronter.

    En général, les développeurs travaillent suivant un concept relativement simple: chacun dans son coin et on centralise à interval régulier (si cela est le cas) l'ensemble du travail (à l'aide d'un repository par exemple)

    Dans la méthodologie XP, beaucoup de points divergent entre méthode classique et eXtreme Programming;

    Dans l'ensemble, la plupart des nouveaux aspects - traités en XP - sont relativement simples à mettre en oeuvre pour une équipe fraichement déabarquée: la publication rapide des travaux, les tests unitaires, la conception simplifiée, le refactoring sont des points qui - après un petit temps d'adaptation - deviennent naturels chez les néo-développeurs XP convertis;

    Il existe cependant un point qui (peut) se révèler des plus trouble pour pas mal d'entre eux: Le pair programming (ou programmation à deux).

    Pour faire simple, je prendrais la définition provenant de Wikipedia :

    "Pair Programming"  ou  "Programmation en binôme"
    La programmation se fait par deux. Le premier, appelé driver, a le clavier. 
    C'est lui qui va travailler sur la portion de code à écrire.
    Le second, appelé partner, est là pour l'aider, en suggérant de nouvelles 
    possibilités ou en décelant d'éventuels problèmes.
    Les développeurs changent fréquemment de partenaires, ce qui permet 
    d'améliorer la connaissance collective de l'application et
    d'améliorer la communication au sein de l'équipe.
    
                 Extreme Programming / Wikipedia
    


    L'aspect semble relativement simple au premier regard;
    Chaque développeur travaille avec un autre programmeur.

    Simple non ?
    Pas forcément;

    Il existe un élément qui a été écarté : L'aspect psychologique de la chose: celui de la proxémie et du concept » d'espace vitale »

    Le concept de l'espace vital se présente sous cette notation :

    Chaque personne dispose d'un espace vital virtuel. 
    Si un inconnu rentre dans ce périmètre, l'autre peut l'interpréter 
    comme une attaque.
    On peut estimer ce périmètre à une longueur de bras. 
    Le regard qui se situe dans cet espace vital prend donc beaucoup d'importance.
    Le périmètre public se situe environ à deux mètres de l'autre personne.
    
                     Texte de ciao.ch
    

    Il se peux que je me trompe [1], cependant je n'ai pas remarqué une allusion dans les analyses que j'ai pu lire ou entrendre (publications ou rencontre avec des experts XP).

    Devant un écran, il est (très) souvent difficile d'être parfaitement concentré lorsqu'il existe une présence derrière ou à coté de soit.
    Que ce ne soit par des accès fréquents derrière son dos (une porte, un couloir fréquenté, ...), ou bien un collègue venant regarder votre écran.
    ( Avouez que vous vous êtes déjà retrouvé dans une situation pareil et que cela vous rendez nerveux :-)

    La méthode XP impose cette restriction: celui d'avoir un pair qui valide le code avec vous.
    Si les programmeurs s'entendent et se respectent, la "fusion" peut très bien se passer;
    Cependant, Quid lorsque deux développeurs ne peuvent s'entendre ?

    Il existe de nombreux cas qui peuvent s'accorder avec cette problématique :
    • Un développeur qui n'aime pas un collègue bien particulier
    • Un développeur trop orgeilleux
    • ...

    La méthode classique consiste à placer les deux développeurs devant un même écran et un même clavier;

    Cependant, une autre approche permettrait de démarrer progressivement le pair programming sans braquer le ou les développeurs.

    Elle consisterait à séparer les unités de contrôle et de vision: l'écran et le clavier.
    Rendre indépendant ces deux périphériques mais connecté toujours sur un seul et même ordinateur (unité centrale ou portable)

    De plus en plus (voire la majorité maintenant) de machine - même portable - propose aux moins deux ports USB;
    Il suffit de brancher deux claviers pour que les deux développeurs puissent ne pas ressentir de frein ou la sensation de ne pas maitriser le développement en cours.
    Concernant les écrans, ils existent des cartes gérant le DualHead, qui permettent, soit de créer une copie parfaite de l'un des écrans virtuels (TwinView, Clone, etc...), soit d'avoir un écran virtuel indépendant (TwinView).


    Les deux développeurs peuvent avoir une légère séparation entre eux: Allant de quelques centaines de centimètres, voire être l'un en face de l'autre de la table.

    Le développement en Pair Programming n'est pas bouleversé par ce changement car l'écart se révèle être très minime pour la communication entre les deux protagonistes;

    Les deux ayants la même perception du développement et pouvant interargir directement sur la construction du code sans subir une quelconque pression de leur(s) environnement(s): les deux développeurs qui ne pourraient travailler en pair programming peuvent le faire sans être restreint.


    Cela ne constitue pas une fin en soit, mais testé sur une équipe de développeurs, les résultats ont été plutôt positifs


    EDIT: Il existe une autre méthode, la méthode vnc:
    Lancez un vncserveur sur le poste "serveur" (x11vnc [1] est très bien)
    Puis un vncviewer depuis le ou les postes clients

    Page