• Alors que le monde de la musique est en pleine révolution, la société BACH Technology, composée des créateurs du MP3, a annoncé le 27 janvier dernier, lors du <emcronym title="Marché international de l'édition musicale">Midem</emcronym> de Cannes, la naissance d'un nouveau format audio : le MusicDNA.
    Ce dernier pourrait rapidement succéder au MP3, le format musical actuellement le plus utilisé au monde.

    Un nouveau format, pourquoi ?


    « Nous pensons que de magnifiques ?uvres musicales ont été réduites à un code numérique. Nous voulons les enrichir à nouveau. »
    Image utilisateur

    Le MP3, créé en 1991 par l'institut Fraunhofer en Allemagne, reste très apprécié pour ses capacités de compression et sa faible altération du son, qui reste d'une qualité raisonnable pour la plupart des oreilles.

    En effet, avec un taux de compression pouvant monter jusqu'à 12, les fichiers MP3 sont très légers, ce qui favorise leurs échanges sur Internet et donc le téléchargement illégal. Comme vous le savez certainement, même si l'industrie du disque voit ses ventes de musiques en ligne augmenter, elle prétend être en plein déclin depuis l'arrivée des réseaux <emcronym title="Réseaux d'échange de fichiers">peer-to-peer</emcronym> (P2P).

    L'idée serait donc d'essayer de sortir l'industrie musicale de cette impasse, et c'est ce que BACH Technology tente actuellement de faire, en proposant aux artistes un format audio innovant et plus attrayant.
    De plus, un fichier MusicDNA téléchargé illégalement ne pourra, en théorie, exploiter toutes les fonctionnalités citées ci-dessous, contrairement aux fichiers acquis de manière légale. Ces restrictions consisteront donc à remplacer les <emcronym title="Digital Rights Management (Gestion des droits numériques)">DRM</emcronym> des formats musicaux actuels, en privant l'utilisateur des contenus dynamiques du MusicDNA mais en lui laissant l'opportunité d'écouter le morceau.

    Le MusicDNA, un format enrichi


    En plus d'une musique MP3 classique, les fichiers MusicDNA sont capables d'embarquer un maximum de 32 Go de métadonnées.
    Concrètement, cela signifie qu'il sera dorénavant possible d'inclure au fichier un bon nombre d'informations liées aux musiques, comme des tags, photos, paroles de musiques, pochettes d'albums, ... voire même des vidéos !

    Image utilisateur
    Informations pouvant être contenues dans un fichier MusicDNA

    Mais ce n'est pas tout : la mise à jour régulière de ces données permettra d'enrichir la musique numérique. En effet, lorsque l'utilisateur connecté ouvrira un fichier MusicDNA, si de nouveaux contenus sont disponibles, ils remplaceront automatiquement les anciens. Ainsi, les artistes auront la possibilité de publier leurs prochaines dates de concert, interviews, et autres nouvelles fraîches qu'ils voudraient partager avec leurs fans. L'intégration des réseaux sociaux est aussi prévue, nous indique BACH Technology.

    Image utilisateur
    Schéma explicatif de la mise à jour des informations

    Concrètement, cette mise à jour des informations est possible grâce à une énorme base de données contenant l'analyse audio de 8 millions de morceaux et les tags de près de 22 millions de musiques. Lorsque l'utilisateur lancera un morceau MusicDNA en étant connecté au service en ligne de BACH Technology, l'<emcronym title="Application Programming Interface (Interface de programmation)">API</emcronym> se chargera de chercher toutes les informations relatives à la musique en lecture. Pour cela, elle interrogera le serveur qui analysera la musique et renverra les renseignements de la base de données si la légalité du fichier est confirmée. Une fois ce processus achevé, les nouvelles métadonnées seront exportées et remplaceront les anciennes. Pour les maisons de disques et les artistes, il suffira donc d'éditer les informations voulues de cette base de données pour que les utilisateurs puissent recevoir des nouveautés, via l'actualisation du contenu de leurs fichiers.

    A noter que ce nouveau format audio est, si l'on en croit ses promoteurs, lisible par tout lecteur MP3, même ancien.

    Quel avenir ?


    « Nous recevons déjà de très bons retours. »

    Mais y a-t-il un réel besoin d'un nouveau format audio ? Jusque là, BACH Technology a reçu le soutien de plusieurs organismes, dont Sony Music Entertainment qui a investi dans ce projet.

    De plus, plusieurs labels indépendants comme Beggars Banquet, Tommy Boy Records, ou encore Delta records, auraient déjà signé un accord pour utiliser le MusicDNA. Il ne reste plus que les Majors à convaincre, mais le projet semble déjà bien parti et prometteur.
    BACH Technology, installé en Norvège, en Allemagne et en Chine, signale être à la recherche de partenaires (développeurs, maisons de disques ...).

    La société prévoit une version bêta pour le printemps, et une version définitive (et peut-être même la commercialisation) pour la fin de l'été 2010.

    Mais par ailleurs, Apple annonce travailler actuellement sur un format similaire au MusicDNA dédié à sa plateforme bien connue iTunes : le iTunes LP. En effet, ce dernier pourra lui aussi inclure au fichier des vidéos, photos et autres contenus dynamiques, en plus de la musique. Reste à voir comment les deux firmes réagiront.

    Seul bémol, les fichiers MusicDNA et iTunes LP devraient être vendus à un prix supérieur à celui des autres fichiers audio.

    Liens et sources externes

    • Image utilisateur Site du projet de BACH Technology
    • Image utilisateur Brève description de l'iTunes LP sur le site d'Apple
    • Image utilisateur Article sur l'iTunes LP

    Pour plus d'informations sur le sujet Le MusicDNA, un successeur au MP3 ?, il vous est conseillé de lire la suite.


    votre commentaire
  • Bienvenue dans ce tutoriel portant sur la programmation orientée objet (souvent abrégé par ses initiales POO) en PHP. :)

    Vous ne savez pas ce qu'est la POO ? Ne vous inquiétez pas, je vais me charger de vous en apprendre le principe du début et le maximum possible. ;)

    Pour pouvoir suivre ce tutoriel, vous devez avoir lu le big tuto de M@teo21 sur PHP.


    Vous devez obligatoirement avoir PHP 5 sur votre serveur. Je ne parlerai pas de POO en PHP 4 car sous cette version de PHP, certaines fonctions indispensables de la POO ne sont pas présentes (on ne peut donc pas vraiment parler de POO).

    Pour plus d'informations sur le sujet [POO] Programmer orienté objet en PHP, il vous est conseillé de lire la suite.


    votre commentaire
  • Quels que soient les logiciels utilisés, tout le monde a un jour ou l'autre été confronté à un bug informatique. Du freeze d'un programme aux pertes de données, les bugs sont un fléau que tout bon développeur se doit d'éradiquer pour contenter les utilisateurs. Développé par l'<emcronym title="Ecole Polytechnique Fédérale de Lausanne">EPFL</emcronym>, Dimmunix est un projet qui entend révolutionner cette approche, en permettant à l'ordinateur d'éviter lui-même les bugs.

    Dans sa dernière version, gratuitement téléchargeable, il se base sur le principe du cloud computing pour permettre de protéger une ferme de serveurs entière, en partageant les informations entre ceux-ci.

    Le principe de Dimmunix


    Le concept est inspiré de notre système immunitaire humain. Lors d'une infection, notre corps produit en effet des anticorps, qui seront alors capables de reconnaître à nouveau le facteur infectieux lors d'une future attaque. George Candea, directeur du projet, présente Dimmunix comme une application de ce principe aux programmes informatiques : lorsqu'un logiciel plante à cause d'un bug particulier, celui-ci est sauvegardé, et Dimmunix tente de l'éviter par la suite.

    En fait, Dimmunix ne permet pour le moment d'éviter que certains bugs, appelés deadlocks ou interblocage en français. Ces interblocages peuvent survenir en programmation concurrente, quand un même logiciel utilise plusieurs processus, en parallèle, c'est à dire quand certaines instructions sont exécutées simultanément (ou que l'on considère qu'elles le sont). Pour que ceci soit possible, on met en place des verrous sur les ressources système, de manière à ce qu'il n'y ait pas de conflits lorsque les processus demandent simultanément l'accès à ces ressources. Cependant il peut arriver qu'un processus bloque une ressource A et demande une ressource B, pendant qu'un autre processus bloque la ressource B et demande la ressource A.


    interblocage


    Évidement dans ce cas les deux processus se retrouvent bloqués indéfiniment, et le programme également : c'est à ce niveau que doit agir Dimmunix. Pour cela, un processus est chargé de surveiller l'exécution du programme. Lorsque celui-ci détecte un interblocage, il renseigne le Resource Allocation Graph, qui garde un historique des obtentions et relâchements de verrous avant l'interblocage, pour créer ensuite ce que l'on appelle la signature. Cette signature permettra à Dimmunix de prévenir l'interblocage dans le futur si la même situation est détectée. Si ce programme est surtout fait pour les serveurs, il est cependant tout à fait utilisable par un utilisateur quelconque et pour n'importe quelle application (Dimmunix a par exemple été testé sur Limewire).

    Le RAG, ou Ressource Allocation Graph



    Le RAG est un graphe (une sorte de schéma) qui résume l'ensemble des interactions entre les processus et les verrous. Il est construit pour représenter les différents évènements qui se déroulent pendant que le logiciel étudié tourne : le premier correspond à la demande d'accès à un verrou par un processus ; le deuxième au fait que Dimmunix autorise ce processus à faire une pause en attendant d'obtenir un accès ; un autre indique que le processus obtient effectivement l'accès. Le dernier type d'évènement possible correspond au fait qu'un processus cède sa place à un autre. Ce graphe permet à Dimmunix de détecter des structures cycliques, qui sont le signe d'un interblocage.

    À partir de la détection de ce cycle, le programme est arrêté, mais il faut que Dimmunix enregistre une signature de manière à empêcher cet interblocage de survenir de nouveau. Cette signature est en fait constituée des numéros de toutes les évènements représentés sur le graphe, indiquant soit l'accès à un verrou par un processus, soit l'arrêt d'un processus en faveur d'un autre. Elle est stockée dans un fichier, et c'est elle qui va permettre à Dimmunix d'empêcher l'interblocage par la suite.

    Empêcher les bugs de survenir à nouveau



    Une fois la signature enregistrée, il faut faire en sorte d'éviter que le bug survienne de nouveau. Pour cela, toutes les requêtes d'accès aux verrous sont interceptées par Dimmunix, qui va ensuite indiquer au processus si celui-ci peut se bloquer en attendant la ressource, ou s'il doit laisser la main à un collègue (donc cesser de tourner jusqu'à ce que ce collègue libère la ressource). Pour cela, il consulte son historique, et cherche si le fait d'attendre la ressource peut amener le programme dans une situation d'interblocage. S'il trouve une signature qui correspond à la situation courante, il ordonne alors au processus qui fait la requête de laisser la main à un autre processus de manière à libérer la ressource.

    D'un serveur à toute une ferme



    La dernière version de Dimmunix généralise ce principe à un ensemble de serveurs : chaque machine faisant tourner un logiciel surveillé par Dimmunix est en quelque sorte capable de communiquer avec les autres pour partager les rapports d'erreurs, ainsi que les solutions. Ainsi, si un interblocage est détecté sur un serveur, tous les autres seront protégés, comme un vaccin que l'on injecterait à toute une population.

    Un test concret



    On peut écrire un petit programme en C pour tester le fonctionnement de Dimmunix :

    Secret (cliquez pour afficher)
    Code : C
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #include <pthread.h>
    #include <unistd.h>
    #include <stdio.h>
    
    pthread_mutex_t mutex1;
    pthread_mutex_t mutex2;
    
    void f1() {
            pthread_mutex_lock(&mutex1);
            sleep(1);
            pthread_mutex_lock(&mutex2);
            pthread_mutex_unlock(&mutex2);
            pthread_mutex_unlock(&mutex1);
            printf("thread 1 done\n");
    }
    
    void g1() {
            pthread_mutex_lock(&mutex2);
            sleep(1);
            pthread_mutex_lock(&mutex1);
            pthread_mutex_unlock(&mutex1);
            pthread_mutex_unlock(&mutex2);
            printf("thread 2 done\n");
    }
    
    void* f(void* args) {
            f1();
    }
    
    void* g(void* args) {
            g1();
    }
    
    int main() {
    
            pthread_mutex_init(&mutex1, 0);
            pthread_mutex_init(&mutex2, 0);
    
            pthread_t t1;
            pthread_t t2;
    
            pthread_create(&t1, NULL, f, 
    NULL);
            pthread_create(&t2, NULL, g, 
    NULL);
    
            pthread_join(t1, NULL);
            pthread_join(t2, NULL);
    }
    


    Ce code reproduit en effet la situation énoncée en début de news et aboutit à un interblocage. Lançons le programme, compilé sous le nom de "test", sans oublier de précharger Dimmunix :
    $ LD_PRELOAD=../src/libdimmunix.so ./test
    Et l'on obtient :
    deadlock found and saved to dlock.history
    Complété
    Cela signifie que le programme a effectivement buggé, et que Dimmunix l'a détecté. Le fichier dlock.history doit contenir le nécessaire pour éviter que l'interblocage ne se reproduise. On teste donc une seconde fois :
    $ LD_PRELOAD=../src/libdimmunix.so ./test
    Et l'on obtient cette fois :
    thread 1 done
    thread 2 done
    Le programme a donc correctement fonctionné, et ce sans qu'il soit nécessaire de le modifier ou même de le recompiler. Tout est fait de manière automatique par Dimmunix, qui s'occupe d'ordonnancer l'attribution des verrous de manière à éviter l'interblocage détecté précédemment.

    Un projet prometteur


    Dimmunix est une petite révolution dans le monde des bugs informatiques. Cependant il ne faut pas perdre de vue que le programme peut aussi détecter de faux positifs (c'est à dire croire à un interblocage alors qu'il n'y en a pas). Ceci n'est pas très grave en soi, et ne porte pas atteinte à l'exécution générale du programme, mais peut causer des ralentissements inutiles. Bien sûr, la meilleure solution pour éviter ce genre de bugs est de s'en préoccuper lors de la conception du programme : même si les interblocages sont parfois difficiles à éviter, on trouve généralement une solution.

    Dimmunix permet cependant de pallier le problème temporairement, en attendant que les développeurs du logiciel buggé corrigent leur code. Il permet également dans ce cas-là de faire remonter aux développeurs l'historique enregistré, pour les aider à comprendre la situation. Le fait que le projet soit désormais jugé utilisable pour des vrais serveurs est très prometteur, puisqu'il a déjà été testé avec succès sur des projets variés comme MySQL, Apache, Limewire ou ActiveMQ.

    Liens


    • Site web de Dimmunix
    • Documentation sur son fonctionnement
    • Les interblocages sur wikipedia


    Pour plus d'informations sur le sujet Dimmunix traque les bugs de nos ordinateurs, il vous est conseillé de lire la suite.


    votre commentaire
  • Bienvenue dans ce tutoriel portant sur la programmation orientée objet (souvent abrégé par ses initiales POO) en PHP. :)

    Vous ne savez pas ce qu'est la POO ? Ne vous inquiétez pas, je vais me charger de vous en apprendre le principe du début et le maximum possible. ;)

    Pour pouvoir suivre ce tutoriel, vous devez avoir lu le big tuto de M@teo21 sur PHP.


    Vous devez obligatoirement avoir PHP 5 sur votre serveur. Je ne parlerai pas de POO en PHP 4 car sous cette version de PHP, certaines fonctions indispensables de la POO ne sont pas présentes (on ne peut donc pas vraiment parler de POO).

    Pour plus d'informations sur le sujet [POO] Programmer orienté objet en PHP, il vous est conseillé de lire la suite.


    votre commentaire
  • Alors que les usurpations d'identités deviennent de plus en plus fréquentes sur Internet, la secrétaire d'État à l'économie numérique, Nathalie Kosciusko-Morizet, a présenté le 1er février dernier un nouveau concept d'identification : l'IDéNUM.

    L'IDéNUM, c'est quoi ?

    Image utilisateur

    À l'heure actuelle, lorsqu'un internaute souhaite s'identifier sur un site web de déclaration d'impôts, d'e-commerce, d'une banque ou d'une assurance, il est bien souvent obligé de retenir plusieurs mots de passe différents. C'est pour cette raison que Nathalie Kosciusko-Morizet a élaboré la technologie IDéNUM, dont le principe de fonctionnement est semblable à celui de certains sites d'authentification décentralisée comme OpenID ou Facebook Connect.

    Ce dispositif d'identification repose concrètement sur une clé <emcronym title="Universal Serial Bus">USB</emcronym> ou une puce de carte <emcronym title="Subscriber Identity Module">SIM</emcronym>. Lors de la première utilisation, l'utilisateur devra créer un certificat de sécurité en indiquant son nom et son prénom. Il le finalisera ensuite en verrouillant les informations à l'aide d'un code <emcronym title="Personal Identification Number">PIN</emcronym>.
    Chaque certificat ainsi créé sera valide de trois à cinq ans. En cas de perte ou de vol, la procédure à suivre sera la même que pour une carte bancaire : l'utilisateur devra contacter un centre de révocation qui se chargera de mettre son certificat en opposition.

    Avantages et inconvénients


    Le principal atout de l'IDéNUM est sa simplicité d'utilisation : en ne retenant qu'un seul et unique code PIN et en connectant l'appareil mobile à son ordinateur, l'utilisateur pourra s'identifier sur tous les sites proposant le service. Un autre avantage non négligeable est l'obligation d'avoir un support physique pour pouvoir s'identifier sur le web : actuellement, en connaissant le mot de passe d'une personne, n'importe qui est susceptible de se connecter sur son compte et d'entreprendre des actions pouvant être dangereuses. Ce danger est écarté avec l'IDéNUM car l'utilisateur doit obligatoirement être doté d'une clé USB ou d'une puce de carte SIM pour prouver son identité.

    Malgré ses avantages, l'IDéNUM peut causer quelques désagréments. Tout d'abord, il sera payant, le prix n'ayant pas encore été communiqué par le gouvernement. Si celui-ci est trop élevé, l'IDéNUM pourrait ne pas être assez accessible au grand public.
    De plus, les certificats créés à l'aide de l'IDéNUM ne seront valables qu'en France, empêchant un voyageur à l'étranger de se connecter à un site via cette technologie.

    Des noms de domaines convoités


    L'État doit actuellement faire face à un obstacle : de nombreuses extensions du nom de domaine idenum ont déjà été réservées par quelques personnes (certaines étant anonymes, d'autres ayant fourni leur véritable identité au registrar), qui ont devancé le gouvernement.

    Ainsi, le particulier ayant réservé le nom de domaine idenum.fr a reçu une lettre par courriel d'un cabinet d'avocat lyonnais. La lettre informe le propriétaire du nom de domaine que la marque IDéNUM a déjà été déposée en septembre 2009 par l'État et lui demande de céder le nom de domaine, sous peine de trois ans d'emprisonnement et de 300 000 euros d'amende.

    Vers un web plus sûr


    Les Français et les sites de services publics


    Image utilisateur
    Selon une étude de TNS effectuée en 2008, près de 2 Français sur 3 utilisent des services publics en ligne.
    En effet, ces derniers ne sont pas moins de 76% à, chaque mois, effectuer leurs démarches administratives via Internet. Mais si l'on en croit les enquêtes menées, 1 tiers d'entre eux utiliseraient le même identifiant et un mot de passe unique sur les sites qu'ils visitent. De plus, 27% des internautes n'utiliseraient pas les services publics sur Internet par peur de piratage de leurs informations personnelles. Ces deux problèmes majeurs de sécurité seront donc, en théorie, solutionnés par l'arrivée de l'IDéNUM.

    Quel avenir ?


    Outre les services de d'authentification décentralisée en ligne comme OpenID, plusieurs pays tentent de mettre en place une technologie similaire à l'IDéNUM.
    C'est notamment le cas pour l'Autriche, la Norvège, la Finlande et bien d'autres, qui permettront aux internautes de s'identifier avec une carte d'identité numérique appelée eID.

    On peut donc espérer que l'IDéNUM trouvera le moyen de se faire une place dans le monde du numérique, le projet semblant déjà bien parti. En effet, Nathalie Kosciusko-Morizet annonce une vingtaine de partenaires (privés ou publics) parmi lesquels nous pouvons trouver La Poste, SFR et la Fédération bancaire française.

    Des tests concernant le dispositif ont déjà été réalisés sur des sites administratifs, et des citoyens français pourront essayer l'IDéNUM dès la fin 2010. Le service devrait être disponible pour le grand public d'ici 2011.
    Reste à savoir si nous sommes prêts à faire confiance à l'État pour mettre entre ses mains nos informations personnelles.

    Liens et sources externes

    • Image utilisateur Documents PDF concernant la présentation de l'IDéNUM
    • Image utilisateur Trois questions à Charles Nouyrit au sujet de l'IDéNUM
    • Image utilisateur Etude de TNS sur l'e-administration (2008)

    Pour plus d'informations sur le sujet L'IDéNUM ou l'identification sans mot de passe, il vous est conseillé de lire la suite.


    votre commentaire



    Suivre le flux RSS des articles
    Suivre le flux RSS des commentaires