blog cv à propos contact

Nouveau blog!

3 juin 2009

Après 10 ans (dix ans!) de bons et loyaux services, ce site va être laissé à l’abandon pour un vrai nom de domaine: roubaud.org. A priori vous retrouverez le blog techno à cette adresse: http://blog.roubaud.org

.nouveau_blog.jpg

Lampe Duled

8 janvier 2009

verpakking_duled.jpgUne fois n’est pas coutume, voici une bonne nouvelle en matière d’écologie: Osram commercialise en grande surface des ampoules à économie d’énergie ‘Duled’. Le principe: associer une lampe fluocompacte à une veilleuse à leds. L’ingéniosité est de pouvoir choisir le mode veilleuse avec…un simple interrupteur classique; il suffit d’éteindre et rallumer la lampe en moins de 2 s et on se trouve en mode led (0.3w!). Leds oblige, c’est plutôt directionnel, mais ça donne quand même une bonne lumière  d’ambiance style clair de lune. Pas mal pour les jeunes enfants ou simplement pour pouvoir se déplacer la nuit sans réveiller tout le monde ou se prendre les murs.

+pas cher, vers 9€
+simple et compatible avec toute installation électrique

-apparemment limité à 12w?
-obligation de passer par le mode normal

http://www.osram.nl/osram_bx/FR/Actuel/Larchive/Actuel_septembre_2007/OSRAM_DULED_8W12W/index.html

Utiliser les iButtons comme monnayeur

10 septembre 2008


Cet article n’est pas une incitation à la fraude, juste une explication sur comment stocker un crédit sur un ibutton….

Il y a quelques années, Maxim envoyait les lecteurs iButton en free sample. J’en ai donc un, accompagné de quelques fameux ds1992.

Voilà ce qu’on conclut après un peu de reverse engineering  sur la clé d’une machine à café.
Il s’agit de ds1992 qui sont des mémoires non volatiles de 128octets.

Déjà, uniquement la première page est utilisée, ce qui fait 32 octets. Le crédit est stocké en centimes d’euros.

 

le serial number de la clé:

08 5B 42 A5 00 00 00 65
ce qui donne en binaire:
0000 1000
0101 1011
0100 0010
1010 0101
0000 0000
0000 0000
0000 0000
0110 0101

Avec 3.39€ dessus:

 

1D 22 D5 0C B4 D3 2A 06 DD 6C 20 D1 79 17 E6 73   

6B E2 23 7F 8D EB 6E CE 43 22 2F 9A DF 9F 1F 5A

 

On se rend compte que suivant la somme pas tellement d’octets changent ;

 

3.39€ = 339 cts =  0001 0101 0011

XOR                     1000 0110  

D5=                     1101 0101

 

 

3.39€ = 339 cts =  0001 0101 0011

XOR                     1010 0101 

E6=                     1110 0110


Oui, en XORant la somme avec des bouts du serial number, on tombe sur des octets de la mémoire.

On trouve aussi le poids fort du crédit sur le 2ème octet (qui passe de 22 à 23 quand on passe sous les 2.56€) là aussi XORé.

 

Les deux derniers octets sont un checksum, simplement un CRC16.

Visiblement l’emplacement où est stocké le crédit est modifié suivant la clé utilisée : protection simple, mais quand même efficace.

 

avec 95cts sur la même clé:


 

0.95:

1D 23 D9 0C B4 D3 2A 06 DD 64 20 D1 79 17 EA 73

6B E2 23 7F 8D EB 6E CE 46 2E 2F 9A DF 9F C7 1B

 

Voilà,je n’en dis pas plus mais la sécurité, même si faible -c’est compréhensible sur une machine à café- est quand même là:

-on encode avec le SerialNumber de la clé (ici c’est le plus simple: du XOR)

-on stocke le crédit à des endroits différents de la mémoire suivant la clé utilisée

-on utilise un checksum

 

Après, si on veut plus de sécurité, on peut se tourner vers un vrai cryptage, une mise en réseau avec authentification centralisée, etc ce genre de solution n’est peut-être pas adapté à l’application: la machine à café. Même si certains distributeurs vendent de telles solutions.

Le fait de positionner le crédit d’une clé de monnayeur est puni par la loi…

winagoat

12 août 2008

Bonjour, vous avez tous sûrement aperçu ces fameuses publicités dans le métro/bus mettant en scène une ou des chèvres, avec un lien bizarre “winagoat“. Certains blogs voir derrière ce winagoat peut-être une opération virale d’orange.. il va falloir visiblement patienter quelque temps avant d’avoir une réponse sur ce mystère.

winagoat

http://e-winagoat.blogspot.com/

Mesures pouvoir d’achat

24 juin 2008

Pour surfer sur le buzz, je suis allé aujourd’hui regarder un peu www.mesurespouvoirdachat.gouv.fr :

portail-du-gouvernement-site-du-premier-ministre2.jpeg

Première page lue: notez le “équivalant à 20%”

mpa.jpg

Ensuite dans l’encart à droite, je remarque un ‘des étudiant’.

Même sans parler du contenu du site/des mesures, on peut se poser des questions sur le sérieux de la chose.

Alors, clown ou pas clown?? lol, on a peut-être une  bombe là: l’état délocalise-t-il ses équipes rédactionnelles?? enfin comment prendre le gouvernement au sérieux quand on voit ce genre de bêtises.

Nouvelle version de veganfamilies

4 juin 2008

Je vais mettre en ligne d’ici quelques jours un nouveau design de veganfamilies, plus ‘web2.0′…

vf_v2.jpg

Avec une mise en page plus large, et moins de place perdue, un design plus simple et propre.

Ca sera la bonne occasion d’intégrer le forum phpbb3!

Intégration PHPBB3

3 juin 2008

Oui, le bon vieux forum maison de 5 ans d’âge va être remplacé par un PHPBB. Les gros avantages sont les messages privés, l’interface d’administration, les plugins… Mais comme le site dispose déjà de son propre système de login, il va falloir ruser pour intégrer tout ça. C’est à dire avoir les utilisateurs présents sur les 2 systèmes.

J’ai donc un rapide script de migration, qui ajoute les utilisateurs existants aux nouvelles tables de phpbb:

 <?php

define('IN_PHPBB', true);
$phpbb_root_path = './';

$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.php');
include($phpbb_root_path . 'includes/functions_user.php');
include($phpbb_root_path . 'includes/ucp/ucp_register.php');

require("../inc/config.inc.php"); 

$a=new Profile();
$a->getAll();
$as=$a->profiles;
foreach ($as as $p) {
 $password=$p->password;
 $username=$p->login;
 $username_clean=strtolower($username);
 $user_email=$p->email;

    $sql_ary = array(
        'username'          => $username,
        'username_clean'    => $username_clean,
        'user_password'     => phpbb_hash($password),
        'user_pass_convert' => 0,
        'user_email'        => $user_email,
        'user_email_hash'   => crc32(strtolower($user_email)) . strlen($user_email),
        'group_id'          => 2,
        'user_type'         => 0,
    );
echo user_add($sql_ary);
echo 'ok';
}
?>

Je récupère tous les users existants (Profile->getAll()) de mon système et les ajoute un par un à phpbb avec user_add(). Par défaut ce sont des utilisateurs classiques.

Ensuite il nous reste à faire le login commun.

$auth->login($myprofile->login,$myprofile->password);

Dans toutes les pages de phpbb, je rajoute mes fonctions de login (include) qui protègent l’accès aux pages, et récupère le user courant depuis la session. Le profil du user connecté est dispo sous la forme d’une variable globale $myprofile. La méthode login() de $auth -objet gérant l’authentification sous phpbb, instancié par le header de phpbb- permet simplement de se connecter avec le login et le password.

vf_forum1.jpg

Concernant le visuel, dans toutes les pages de phpbb j’ai ajouté la génération de mon header, puis j’affiche la variable dans les templates:

index.php

ob_start();
myHead('',false,'header');
$header=ob_get_contents();
ob_end_clean();
ob_start();
myHead('',false,'body');
$body=ob_get_contents();
ob_end_clean();
$template->assign_vars(array('VF_HEADER'=>$header,'VF_BODY'=>$body));

overall_header.html

{VF_HEADER}
</head>
<body>
{VF_BODY}

$header contient l’entête (inclusion des JS et des CSS), $body le menu.

Attention de bien vider le répertoire cache à chaque modification des templates.

Voilà, en fait le plus dur est de gérer le design, avec un vrai menu dynamique.

Google Map integration

3 juin 2008

Enfin une avancée sur la Famap de veganfamilies, une info window dans la google map:

wwwveganfamilieseu-famap.jpeg

le code JS généré en php:

    <script type=“text/javascript”>

    //<![CDATA[

    var map;
    var geocoder = null;
    var addressMarker;
    var tinyIcon = new GIcon();
    tinyIcon.image = “http://labs.google.com/ridefinder/images/mm_20_green.png”;
    tinyIcon.shadow = “http://labs.google.com/ridefinder/images/mm_20_shadow.png”;
    tinyIcon.iconSize = new GSize(12, 20);
    tinyIcon.shadowSize = new GSize(22, 20);
    tinyIcon.iconAnchor = new GPoint(6, 20);
    tinyIcon.infoWindowAnchor = new GPoint(5, 1);

    // Set up our GMarkerOptions object
    markerOptions = { icon:tinyIcon };
     //les adresses, on utilise le service de geolocalisation de google
    var addresses = ["Nîmes,France","Paris,France"];
     //les profils, pour l'info window
    var profiles= ["<b>un nom de famille</b>, Nîmes<br>Une fille vegan Un chien vegan...","<b>Famille de Lya</b>, Paris<br>une Lya, une coquine née le...",""];
    var ids= ["29","7",""];    // les ids pour le lien 'suite"
    var numGeocoded = 0;

    function geocodeAll() {
      if (numGeocoded < addresses.length) {
        geocoder.getLocations(addresses[numGeocoded], addressResolved);
      }
    }

     function createMarker(point,html) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }

   function addressResolved(response) {
     var delay = 0;
     if (response.Status.code == 620) {
       // Too fast, try again, with a small pause
       delay = 500;
     } else {
       if (response.Status.code == 200) {

         // Success; do something with the address.
         place = response.Placemark[0];
         point = new GLatLng(place.Point.coordinates[1],
                             place.Point.coordinates[0]);
         marker = createMarker(point,profiles[numGeocoded]+'<div style="margin-left:300px"><a href="family_detail.php?id='+ids[numGeocoded]+'">suite</a></div>');
         map.addOverlay(marker);
       }
       // Move onto the next address; this skips bad addresses, too.
       numGeocoded += 1;
     }
     window.setTimeout(geocodeAll, delay);
   }

    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(48.876909,2.351074), 4);
        map.setMapType(G_HYBRID_MAP);

        geocoder = new GClientGeocoder();
        window.setTimeout(geocodeAll, 50);
      }
    }
  window.setTimeout(load, 200);;
    //]]>
    </script>

Qui a tué la voiture hybride?

23 mai 2008

2003: Renault commercialise la kangoo elect’road, une kangoo hybride à prédominance électrique. Visiblement dans le silence le plus total, c’est plutôt une petite série; quelques particuliers arrivent à s’en procurer, mais c’est les administrations qui font le beta-test.

image002.jpg

Que s’est -il passé en france depuis? Rien. Et oui ça fait plus de 5 ans qu’un constructeur français a lancé une voiture hybride et PSA nous annonce qu’il commercialisera des voitures propres dès … 2010. Pourtant on trouve des 106, des Berlingo, des saxo électriques sur le marché de l’occasion, à moins de 8 000€ (http://www.accus-service.fr/Vehicule.asp ).

On croirait revivre l’histoire de la EV1, voiture 100% électrique lancée en 1996 par GM et retirée du marché en 2003. D’ailleurs pour comprendre un peu mieux le climat (sans mauvais jeu de mot), regardez “who killed the electric car”!

Aussi il convient de se demander si la voiture électrique en france n’est pas victime d’un complot. C’est assez incroyable de voir l’état donner un éco bonus aux voitures qui émettent moins de 120g CO2/km alors que les voitures électriques sont au point techniquement depuis des années, et sont commercialisées et pourraient bénéficier d’un plus grand financement de l’état (actuellement, 5000€ de bonus). Et que 75 % des déplacements en voiture font moins de 5 km.

Dommage, TIPP, marchés pétroliers et autres nous privent d’air respirable dans les villes. Et dire que la France s’est équipée en nucléaire pour avoir son indépendance énergétique,.

des liens:

EV1:

http://fr.wikipedia.org/wiki/EV1_(General_Motors)

kangoo elect’road:

http://marc.chapel.free.fr/Free%20Web.htm

http://www.pile-au-methanol.com/roulez-electrique-2.htm

vente de véhicules électriques:

http://www.ste-marcel.com/produit-vehicules-electriques-7-11.htm

http://www.accus-service.fr/Vehicule.asp

Analyses de publicité

14 mai 2008

Excellente analyse par l’Alliance de publicités actuelles dont pas mal pour les voitures (à moteur thermique bien sûr!). C’est plutôt effrayant cette récupération qu’on pourrait qualifier d’escrologie…

total_inepuisable.jpg

C’est par là:  Analyses de publicité