Articles

L'histoire de Marc L.

La vie privée est aujourd'hui une notion assez vague. Comment peut-on d'un coté demander aux autorités de protéger nos informations personnelles, si de l'autre coté nous alimentons Internet (la plus grosse base de données publique du monde) avec tout un tas de petites informations sur notre vie?

En fait, ce n'est pas évidant de se rendre compte de la somme d'informations que l'on met à disposition sur la toile. On en donne souvent sur différents sites à droite à gauche, par petite touche, une photo par ci, un commentaire par là. Et on ne se doute pas de la quantité et de la qualité des informations que l'on abandonne, on n'imagine pas ce que cela représente si ces infos sont mises en relations. Voici une petite liste des lieux privilégiés pour s'adonner à ce déballage volontaire :

  • Photos de vacances, des amis, de la famille sur Flickr
  • Récit de la vie quotidienne, anecdotes, favoris, clin d'oeil aux amis sur son blog ou son MySpace
  • Profils personnel, professionnel, scolaire, loisirs et amoureux sur Facebook et surtout, les relations !
  • Goûts et dégouts en matière de musique ou de vidéo sur Deezer ou Youyube
  • Profile amoureux sur Meetic, centres d'intérêts et auto description
  • Parcours scolaire et réseaux sociaux sur Copain d'avant ou Trombi

Ajoutez à cela des outils comme Google qui permettent de rechercher un nom ou un pseudonyme dans le monde entiers...

L'histoire de Marc L. marc_l.png

Raphaël Meltz, un journaliste pour le magazine Le Tigre, a eu l'idée de choisir une personne sur internet complètement au hasard, et d'essayer de dresser le portrait le plus complet possible en utilisant uniquement les informations que celui-ci avait mis à disposition sur la toile. Le résultat est parfaitement édifiant je trouve et il devrait pousser certaines personnes à réfléchir avant de poster l'intégralité de leur vie privée sur le net.

book_open.png L'article Marc L*** sur le site du magazine Le Tigre
action_save.gif Sauvegarde de l'article du 16/01/2009 (document word)

A la rechercher du bus CAN

interfaces_can.png

Misc

Devices

Projects

  • Virtual CAN API
  • CAN Project : The CAN projects aim is to develop and maintain a CAN driver for Linux/windows that support misc. can chips/cards. Also utilities such as tracing tools, diagnostic tools and such will be published in the project. The Very Simple Control Protocol (VSCP)
  • CANpie : This project defines a Standard API for access to the CAN (Controller Area Network) bus. The API provides functionality for ISO/OSI Layer-2 (Data Link Layer). The CANpie driver is the base for HLPs like CANopen, DeviceNet, J1939 etc.

Protocols

  • SAE J1850 PWM (41.6 kbaud)
  • SAE J1850 VPW (10.4 kbaud)
  • ISO 9141-2 (5 baud init, 10.4 kbaud)
  • ISO 14230-4 KWP (5 baud init, 10.4 kbaud)
  • ISO 14230-4 KWP (fast init, 10.4 kbaud)
  • ISO 15765-4 CAN (11 bit ID, 500 kbaud)
  • ISO 15765-4 CAN (29 bit ID, 500 kbaud)
  • ISO 15765-4 CAN (11 bit ID, 250 kbaud)
  • ISO 15765-4 CAN (29 bit ID, 250 kbaud)
  • ISO 15765-4 CAN (29/11bit ID, arbitrary baudrate)
  • SAE J1939

Compatible with the following vehicles

  • cars in Europe market from 2001.1
  • Diesel cars in Europe from year 2004
  • Cars (Domestic & Import) in the USA market from 1996
  • Light trucks (Domestic & Import) from 1996

Vehicle Coverage

  • Works on all OBD2 Vehicles (1996 onwards ) and EOBD vehicles ( Petrol cars from 2001 and diesel cars from 2003/2004 in Europe)
  • Alfa Romeo/ Audi/ Bentley/ BMW/ Cadillac/ Chevrolet/ Chrysler/ Citroen/ Daewoo/ Fiat/ Ford/ GM/ Honda/ Hyundai/ Isuzu/ Jaguar/ Jeep/ Kia/ Land Rover/ Lexus/ Mazda/ Mercury/ Mini/ Nissan/ Mitsubishi/ Opel/ Peugeot/ Porsche/ Renault/ Rover/ Saab/ Seat/ Skoda/ Toyota/ Vauxhall/ Volvo/ VW

Interface specifications

  • OBD-D-I V1.3 and FTDI USB to Serial chipset
  • Connects to your PC’s USB port
  • Baud rate: 38400 8-N-1
  • Operating voltage: 12V
  • Nominal idle current: 45 mA
  • No need for adapter or batteries takes its power directly from the vehicle’s OBD2 plug

Connectiques

  • Sub-D 9 (type écran VGA) : assez répandu sur les produits cher
  • Connectique chelou à large fiche (produits à 1€ sur ebay)

Software

VCSP

Sur le site de VCSP, les mecs se sont intéressés à l’interface CAN. Si j’ai bien compris, il a plusieurs composants :

  • CANALD : un deamon qui rebalance les info sur un socket TCP/IP
  • VCSP
  • CAN Abstraction Layer : couche basse (DLL Driver)

architecture_canald.png

Heu…

  • Main Control Chip:PIC18F2480
  • USB Drive Chip: FTDI232RL
  • 5ft integrated OBD-D-I V1.3 OBDII to USB Cable

Les Archives du Web

icon_archive_med.gif Pour les gens comme moi qui ont connu l'internet pendant les années 90 - avant l'apparition des grandes enseignes, du web 2.0, du xhtml et autres utf8 de merde - vous avez peut-être déjà eu des relents de nostalgie et vous vous êtes lancés dans la recherche des anciennes reliques du web qui vous faisaient rêver? Et bien moi oui, bandes de langoustes, il m'est très souvent arrivé de rechercher des sites qui m'avaient fait rire 10 ans plus tôt, ou les premiers jeux vidéo VGA de mon enfance.

Alors alors, dans ce délire, j'ai le plaisir de vous présenter :


Monsieur, modélise moi une religion steuplai

Des fois je trouve que la religion c'est un peu comme une interface, et que les grandes religions monothéistes c'est un peu comme des implémentations. Chaque fournisseur de contenu (Eglises) propose son propre framework (Religion) avec ses librairies (Rites, pratiques, ...) le plus généralement sous licence libre.

Bon, pour commencer, je vais préciser que je vais principalement parler des trois grandes religions monothéistes même si je ferai de petites excursions dans les autres croyances. Voici grosso modo la hiérarchie des classes :

classes 1.jpg

Afin d'éviter les tensions dans l'équipe d'architecte divin, il a été décidé de ne pas mettre d'héritage entre les trois religions. De plus, cela ne fait pas parti des exigences du client. Bon, maintenant il nous faudrait une ébauche d'interface Religion :

   public interface Religion {
       boolean isMonotheistes();
       String getGodName();
       LivreSaint getLivreSaint();
       Prophete getLastProphete();
   }

C'est un peu simple mais c'est pas mal. On va donc avoir besoin de nouvelles classes :

  • La classe LivreSaint qui représente un texte de référence pour la religion (on ne fait pas de list, on se contente du texte fondateur)
  • La classe Prophete qui représente la personnalité la plus importante dans la religion, celle qui fait office de guide (c'est une vue très simplifiée vue que je ne suis pas certain de saisir complètement le sens de ce mot ; néanmoins il m'est très pratique ici.)


Pour la suite, on va avoir besoin de quelques objets :

   Religion judaisme = new ReligionImpl();
   Religion catho = new ReligionImpl();
   Religion islam = new ReligionImpl();

Bon, et bien maintenant on peut commencer à créer les composants de notre application SuperReligion v3.0 :

Les livres saints

   private class Torah implements LivreSaint { }
   private class Bible implements LivreSaint { }
   private class Coran implements LivreSaint { }
   judaisme.setLivreSaint(new Torah());
   catho.setLivreSaint(new Bible());
   islam.setLivreSaint(new Coran());

Les Prophètes

Pour les chrétiens :

   Prophete p = new Prophete();
   p.setName("Jésus de Nazareth");
   p.setMessie(true);
   p.setFilsDeDieu(true);

Pour les musulmans, on garde la même instance mais on injecte quelques valeurs :

   p.setName("Îsâ");
   p.setMessie(true);
   p.setFilsDeDieu(false);

Quand au juifs, si je me souviens bien ils n'ont toujours pas eu signe de leur prophète :

   p = null;

Nous verrons par la suite comment les NullPointerException ont influencés la religion Judaïque.

Bah voila...

On va pas aller plus loin on s'en fou, on l'a modélisé notre religion. Pour finir, notez que les religions sont le plus souvent public mais la documentation est souvent obscure et énigmatique. Les applications de type religions disposent souvent d'une mécanique de persistance de données. De plus, il faut savoir que le Garbage Collector n'est pas compatible avec les religions, ce qui peut provoquer de mémoire des fuites de connerie.

   for (People p : World.getInstance().getAllPeople()) {
       try {
           p.setReligion(getCurrentReligion());
       } catch (AllreadyEndoctrinedException ex) {
       } catch (UnableToEndoctrineException ex) {
       } catch (HeavenSecurityException ex) {
       }
   }

page 19 de 22