Retour de brocante #3

Week end chargé niveau brocante, mais au final, du bon, voir du très bon !

Samedi 22 septembre : 1ère brocante, 4 exposants en train d'installer, je passe mon chemin.

2ème brocante, inexistante ! Flechée sur place, et indiquée sur internet, mais à part un parking désert, rien à signaler.

3ème brocante, au sud de Fontainebleau, un peu plus fournie, heureusement. Je passe sur les brocanteurs pro qui pratiquent des tarifs inimaginables, et qui ont la fâcheuse tendance à être cons à ratisser les autres stands pour fournir le leur.

Au détour d'une allée, je tombe sur un mégadrive, 2-3 jeux en boite et un sonic en loose. Je demande le prix des 2 plus beaux jeux en boite (entendez par là, ceux en moins mauvais état). Après quelques secondes à négocier, j'arrive à splitter le lot, et récupérer ces deux jeux :

Shining Force et Aladdin pour .... 5 euros. Quand on voit la côte de Shining Force (qui est complet en plus), on peut dire que j'ai fait un très bonne affaire

Je récupère un peu plus loin les Indestructibles + 1 manette Gamecube, pour 2€ :

4ème brocante, trop tard et trop loin, rien de bien spécial à récupérer.

C'est tout pour ce samedi de brocante, qui se termine pas si mal

Dimanche 23 septembre :

Planning chargé aujourd'hui. Pas moins de 9 brocantes relevées par mes soins, plus ou moins intéressantes. Je commence par les plus intéressantes et plus importantes en premier, histoire d'arriver avant les ratisseurs.

Première brocante :

Beaucoup d'exposants, pas trop de visiteurs. Le moment idéal pour fouiner

Je tombe sur une pile de 3 jeux SNES au coin d'une table. Pas exceptionnel, mais je demande le prix.

"Malheureusement" les jeux sont liés à une console, qui était planquée sous la table : 25€ le lot. Les 3 jeux m'intéressant, je prends le lot. GROSSE surprise qd je m'aperçois que la console est en bonne état, avec 3 manettes, et qu'au final, ce sont 9 jeux et non 3 qui sont dans le lot.

Dans ce lot, donc :

  • Street Fighter 2
  • Super Mario World
  • Eric Cantona Football challenge (ouais ok....)
  • Super Mario World 2, Yoshi's Island
  • Super Punch Out
  • Astérix
  • Donkey Kong Country
  • Super Bomberman
  • Sim city

Belle pêche

Quelques stands plus loin, j'aperçois une pile de jeux Megadrive, en boite, pleins de poussière. Le petit papy ne sait pas combien il vend ça, mais il veut que je prenne le lot, "ça lui fera de la place". Je prends le lot à 10€ :

  • Phantasy Star 2
  • The Faery Tale Adventure
  • World cup soccer (jap)
  • Altered Beast (jap)
  • Risky woods
  • Winter challenge (avec boîte carton)

Tous les jeux sont complets (avec même la carte sur certains) sauf Risky Wood. Sur leur parfait état, ils valaient nettement plus que 10€. Je suis content, le petit papy aussi, qui a libéré de la place dans son grenier, tout le monde y trouve son compte

Deuxième brocante :

Un lot de trois jeux SNES, 1 N64 et un NES, pour 12€ (la propriétaire était pas décidée à les laisser plus bas )

  • Cool Spot SNES
  • Wing commander SNES
  • L'arme fatale SNES
  • Mission: impossible N64
  • Golf NES

Troisième brocante : rien de bien folichon, j'arrive quand même à mettre la main sur 2 pokemons GB et sur Goldeneye sur N64.

Quatrième brocante : bah, elle est où la brocante ? Pas moyen de le trouver. Ca sent le plan moisi (décidément, va falloir que je revois mes sources) Cinquième brocante, au pas de charge, je suis à la bourre, et loin de mon rdv d'après, et en plus je suis au fin fond de la Seine et Marne, les gens me font un peu peur (crévaindiou) 2 jeux PS1, 1€ chaque :

Une super housse rose, avec une Game boy color quasi neuve à l'intérieur. Quelques notices de jeux avec, et un Pokemon Or planqué au fond de la housse. Fausse joie tout de même. Quelques secondes avant, dans les notices, j'ai trouvé celle de Zelda Oracle of Ages. Mais le jeu n'y était pas Le tout : 5€

Au final, pas mal de bornes parcourues, des brocantes fantômes, mais de (très) belles trouvailles edit : Le goldeneye N64 est HS. J'ai fait tout ce qui était possible, mais la cartouche refuse irrémédiablement de booter

Temps de lecture : 3 minutes

Trouvailles Retrogaming #1

Il n'y a pas que les brocantes pour trouver du retrogaming Il y a aussi les amis , Le Bon Coin et les dépôts vente

Alors pèle mêle de mes dernières acquisitions :

Une Game boy advance, avec 4 jeux (2 GBA, 2 G , sur leboncoin:

Un Zapper NES, avec Mario/Duck Hunt et Mario 3 (qui a été très dur à nettoyer ), sur leboncoin :

5 jeux NES, avec notices et boitiers (pour certains), trouvés dans un Cash Converter, à 4€ l'unité (très bon état) :

et enfin, un magnifique Teenage Mutant Hero Turtles NES, offert par Messire Guillaume

Temps de lecture : 1 minute

Retour de brocante #2

Bon ok, je suis à la bourre sur mes trouvailles en brocante

Alors, voici les petits trésors que j'ai pu dénicher dimanche 9 septembre :

3 jeux Gamecube, bon état avec notices, 2 euros l'unité :

3 connecteurs RCA->Peritel (parce c'est plus facile de trouver un multiprise péritel qu'une multiprise RCA), 1 euro les 3 :

2 jeux N64 (mais je n'ai pas la console ) : 7 euros les 2 (un poil cher pour des jeux en loose, mais c'est la première fois que j'en voyais en brocante, alors je ne les ai pas laissé filer)

Ma plus belle pièce de cette journée. Une belle Super NES, avec câbles, 1 manette eten bonus, Super Mario All Stars (loose) pour la modique somme de .... 5 euros. Je n'ai pas cherché à négocier à ce prix là, ç'aurait été indécent

Enfin, pour faire plaisir à mon grand (et à moi aussi ), un super Wall-E VTech en parfait état (mais il manque le cache pile, pas très grave), pour.... 5 euros aussi. La pêche fut bonne dans cette brocante

Voilà il ne reste plus qu'à dénicher d'autres petites merveilles, dans de futures brocantes !

Temps de lecture : 1 minute

Retour de brocante #1

Il paraît que c'est à la mode de faire des billets "Retour de brocante" pour montrer les belles trouvailles que l'on a pu faire en brocante, et plus précisément pour le rétrogaming.

Alors à mon tour

Samedi 8 septembre, lever aux aurores pour attaquer la première brocante à 10 km de là. 7h du mat, 70% des exposants déjà installés, les autres arrivent doucement. Première trouvaille, au bout de 5 min : Sonic Adventure DX et Super Smash Bros Melee sur Gamecube.

-C'est combien ?"
- 3 euros"
- Les deux ?
- non chaque.
- Allez, 5euros, et je vous prends les deux.
- Ok, vendu

Résultat, deux jeux en parfait état, boite + notice, pour 5 euros

J'ai eu beau retourner tout le reste de la brocante, rien de bien intéressant en retrogaming. Un mec avait pourtant une belle collection de jeux GBA, en loose. Mais 5 euros le jeu seul, non merci

Après 1h30, en voiture, brocante suivante, 30 km plus loin.

Toute petite brocante, perdue au fin fond de la campagne. A tout casser, 40 exposants. Pas grand chose à se mettre sous la dent, sauf sur le dernier stand. Un Parasite Eve 2 sur PS1 et un Pokemon Rubis GBA. Le tout, pour un euro DEAL !

C'est reparti pour 30 bornes de voitures, pour s'enfoncer encore plus dans le fin fond de la Seine et Marne. Très belle brocante, beaucoup d'exposants, et surtout pas mal de jeux et jouets.

5 minutes de fouille, et hop, un petit Final Fantasy Crystal Chronicles sur Gamecube pour 5 euros. Un poil cher par rapport aux 2 derniers, mais il est en bon état.

Bon, c'est bien beau tout ça. Mais j'ai 3 jeux Gamecube, mais je n'ai pas la console (ok la Wii peut les faire tourner, mais ça ne compte pas )

Un dizaine de minute plus tard, je tombe par hasard sur un stand en vrac. Sous des sacs vides, surprise : une Gamecube noire en loose. Moyennant 10 euros, elle finit dans mon sac

L'objectif de la journée n'est pas atteint pour autant. Maintenant que j'ai une superbe NES, il me faudrait quelques jeux.

Au fond de la brocante se trouve alors le Saint Graal du retrogamer. Un stand uniquement consacré aux anciens jeux vidéos. Une trentaine de jeus NES (boite ou loose), des jeux Master System, Megadrive (EUR et JAP tous en boite), Super NES, Xbox, Wii, PS1, PS2 et NDS.

Le sourire jusqu'aux oreilles, et la main déjà sur le portefeuille, je cheche LE jeu à acheter. Les prix m'ont vite fait reposer les cartouches. Un jeu NES : pas moins de 8 euros, en loose. Megadrive : 12 euros mini.

Ca sera sans moi, salut l'escroc.

Autre trouvaille, une GB Color transparente. Mais les rayures sur l'écran m'ont dissuadé de l'acheter. Pour finir, histoire de faire plaisir à mon grand, une belle trouvaille, pour 4 euros :

Allez, on se motive pour remettre ça demain dimanche : il y a encore plus de brocantes dans les environs, je trouverais peut être mon bonheur ( en vrac : une GB micro, une SNES, un N64, des jeux NES et MD ou encore, soyons fou, un Mega CD ou une PC Engine )

Temps de lecture : 3 minutes

Meteosun vous fait découvrir la France

Une petite news rapide pour vous informer que désormais, Meteosun.com vous permet d'obtenir la météo dans toute le France !

Avant, le site proposait la météo de 470 villes en France. A présent, ce n'est pas moins 34400 communes qui sont référencées ! Ainsi, si vous voulez la météo de Rochefourchat, la plus petite commune de France, vous pouvez

Bonne découverte des villages de France !

Temps de lecture : 1 minute

J'ai reçu mon Raspberry Pi

Après de longues semaines d'attente, j'ai enfin reçu mon Raspberry Pi.

Forcément, vous vous demandez ce que c'est, et c'est normal. On ne peut pas dire que ce produit soit encore grand public.

Il s'agit d'un ordinateur, pas plus grand qu'une carte de crédit, et dont l'objectif est d'être suffisamment puissant pour un usage bureautique et d'avoir un prix suffisamment bas pour être très accessible. En l'occurrence, un Raspberry Pi B coûte environ 25€.



Qu'est-ce que vous avez pour ce prix là ?

Vous avez juste la carte mère, équipée d'un processeur ARM à 700Mhz, 256 Mo de Ram, un port ethernet 100Mbits, une sortie audio, une sortie HDMI, une sortie composite et deux ports USB 2.0 Le stockage de vos données et du système d'exploitation s'effectue grâce à un lecteur de carte SD au dos de la carte mère.

Des images systèmes Linux sont téléchargeables librement. Il vous suffit de copier votre système sur une carte SD de 2Go minimum, (ce qui fera l'objet d'un billet plus tard) et votre ordinateur est prêt à fonctionner



Rien n'est fourni dans la boîte. Ni la SD, ni les câbles, ni l'alimentation. C'est à vous (pour le moment) de vous débrouiller avec ce que vous pouvez avoir chez vous.

Ainsi, pour l'alimenter, un simple chargeur de téléphone avec une prise micro USB suffit, l'appareil ne consommant que très peu d'énergie. J'ai donc essayé tout ça, en téléchargeant une Debian Squeeze sur uen carte SD. Si vous n'avez jamais utilisé Linux, vous allez rencontrer quelques problèmes. Mais rien d'insurmontable

Sur le système de base, vous avez l'essentiel pour utiliser votre Raspberry Pi pour aller sur internet et faire un peu de développement. A vous après d'installer les logiciels qui vous intéressent. Ce n'est effectivement pas encore très grand public.

A partir de là, c'est à vous de jouer. Soit vous utiliser votre Raspberry en tant qu'ordinateur basique, soit vous pouvez l'intégrer dans un système embarqué, pour peu que vous soyez bricoleur. On voit déjà fleurir sur le net des projets de consoles de jeu portables (sur base de Game boy), des projets domotiques, robotiques, etc (exemple, pilotage de cartes électroniques grâce à l'I2C disponible sur les GPIO, reconnaissance vocale, caméra, etc)

Pour le moment, j'ai juste installé le système (comme vous pouvez le voir sur les photos) et configuré un peu le tout.

J'en ai profité pour configurer une clé WiFi USB qui trainaît dans un tiroir. Ainsi, mon système est autonome : il me suffit de l'alimenter (via un chargeur d'iPhone ou une batterie) et il se connecte automatiquement sur mon réseau WiFi, et le daemon sshd écoute sur le réseau. La machine est ainsi administrable à distance

La suite au prochain épisode

Plus d'infos sur le site officiel du Raspberry

Temps de lecture : 3 minutes

Meteosun, direction la Scandinavie

Meteosun ScandinavieOn continue dans les évolutions de MeteoSun.

En bref, à présent, vous pourrez retrouver la météo en Suède, la météo en Norvège et la météo en Finlande

Et pourquoi n'iriez-vous pas voir le village du Père Noël, à Rovaniemi ?

Stay tuned, Meteosun a encore quelques trucs dans les cartons :)

Temps de lecture : 1 minute

MeteoSun est mort, vive MeteoSun !

Il y a 4 ans 1/2, je vous présentais mon dernier projet en date, un site sur la météo, j'ai nommé MeteoSun.

Bien du temps s'est écoulé depuis, les nouveautés ont été ajoutées au fil du temps, le site a même servi de chaîne météo pour feu le portail Lycos.fr

Depuis, le site vivait bien, mais sans réelles nouveautés.

Il était temps de remédier à cela. C'est pourquoi, aujourd'hui, je suis fier de vous présenter MeteoSun V2 !

Meteosun V2

Le site vous propose toujours la météo pour plus de 5000 villes dans le monde, réparties dans 57 pays, ainsi que la météo des neiges (qui va bientôt être à jour avec l'ouverture de la saison de sports d'hiver).

A cela, vous rajoutez 55 000 hôtels, 1 700 séjours différents (ce qui représente, avec les dates et aéroports de départ, plus de 930 000 combinaisons possibles)

Tout cela était déjà présent dans la version précédente du site. Quoi de neuf alors me direz-vous ?

Pour faire simple, 90% du site a été réécrit, et last but not least la météo ne provient plus de weather.com !

En effet, maintenant, MeteoSun dispose de sa propre solution météorologique. Grâce à elle, vous disposez maintenant de prévisions météo détaillées par tranche de 3 heures, voir même très détaillées, des graphiques météo

C'est une grande fierté pour moi, et j'espère que vous apprécierez autant que moi ce nouveau site.

L'ancien site ayant disparu dans les limbes d'internet, je laisse ici un screenshot de l'ancien, et bien sur du nouveau, pour mémoire.

Meteosun Meteosun

MeteoSun est mort, Vive MeteoSun !

Allez, zou, visitez MeteoSun.com et dites moi ce que vous en pensez :)

(Et maintenant, je vais pouvoir retrouver mon lit après de trop nombreuses nuits trop courtes ;) )

Temps de lecture : 2 minutes

La relève est assurée

Après plus de 4 ans de bons et loyaux services, il était temps pour mon vénérable Macbook Pro de prendre sa retraite.

Suite aux problèmes de SSD que j'ai pu rencontrer avec, voici donc son remplaçant, un Macbook Pro 15" 2011 avec un core i7. Il n'y a pas à dire, en 4 ans, la technologie a bien évoluée :)

Temps de lecture : 1 minute

Le Nabaztag, comment ca marche ? Partie 3 : Communiquer avec un lapin

Suite de notre série sur le développement d'un serveur alternatif pour faire fonctionner les Nabaztag.

Jusque là, nous avons vu comment le lapin bootait et comment il s'identifiait sur le serveur.

Voyons à présent comment la lapin communique avec le serveur, et surtout, comment lui parler.

Temps de lecture : 6 minutes

Le Nabaztag, comment ca marche ? Partie 2 : l'authentification et la fin du boot

Nouvel épisode de notre série un nabaztag, comment ça marche. Cette fois-ci, nous allons nous attaquer à l'authentification, l'étape juste après la séquence de boot

A la fin de la première partie, nous avions vu que le lapin tentait de se connecter à un serveur XMPP (par défault xmpp.nabaztag.com). C'est sur ce serveur que se déroule l'étape d'authentification, constituée d'une série d'échanges entre le lapin et le serveur.

Etape 1 :

Le lapin envoie le message suivant au serveur :

LAPIN :
<?xml version='1.0' encoding='UTF-8'?>
<stream:stream to='xmpp.nabaztag.com' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>

Rien de particulier ici, le serveur répond alors :

SERVEUR :
<?xml version='1.0'?>
<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='1549628791' from='xmpp.nabaztag.com' version='1.0' xml:lang='en'>

Etape 2 :

Le serveur envoie alors les méthodes d'authentification disponibles :

SERVEUR :
<stream:features>
<mechanisms xmlns='urn:ietf: params:xml:ns:xmpp-sasl'>
<mechanism>DIGEST-MD5</mechanism>
<mechanism>PLAIN</mechanism>
</mechanisms>
<register xmlns='http://violet.net/features/violet-register'/>
</stream:features>

Le lapin choisit de s'authentifier en MD5 par défaut :

LAPIN :
<auth xmlns='urn:ietf: params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5'/>

Etape 3 :

La méthode d'authentification ayant été choisie, le serveur envoie donc un challenge pour que le lapin s'identifie :

SERVEUR :
<challenge xmlns='urn:ietf: params:xml:ns:xmpp-sasl'>
bm9uY2U9IjEzNDc2MTcwNTIiLHFvcD0iYXV0a
CIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=
</challenge>




Le serveur envoie ici son premier challenge encodé en Base64. Une fois décodée, la chaîne vaut :

nonce="1347617052",qop="auth",charset=utf-8,algorithm=md5-sess

(Les messages en Base64 ont volontairement été scindés en plusieurs partie à des fins de mise en page)

Le lapin doit alors répondre correctement pour continuer la séquence :

LAPIN :
<response xmlns='urn:ietf: params:xml:ns:xmpp-sasl'>
dXNlcm5hbWU9IjAwMTNkMzg0NTM1YSIsbm9uY2U9IjEzNDc2MTcwNTIiLGNub25
jZT0iMTQzMzIxNTY1MzU3Mu+/vSIsbmM9MDAwMDAwMDEscW9wPWF1dGgsZGl
nZXN0LXVyaT0ieG1wcC94bXBwLm5hYmF6dGFnLmNvbSIscmVzcG9uc2U9ZDYyN
GNlZmNlYWYzNjBhMzg3NDRjOWM1MTY1ZDZhYzcsY2hhcnNldD11dGYtOA==
</response>

Une fois encore, le message est encodé en Base64. Décodons-le :

username="0013d384535a",
nonce="1347617052",cnonce="1433215653572&#65533;",
nc=00000001,
qop=auth,digest-uri="xmpp/xmpp.nabaztag.com",
response=d624cefceaf360a38744c9c5165d6ac7,charset=utf-8

Examinons de plus près cette réponse du lapin. Il s'agit d'une authentification en mode DIGEST, où le username est l'adresse MAC du lapin.

Le but initial étant de construire un nouveau serveur pour les nabaztag, nous n'avons que peu à faire de l'authentification. Il suffit juste de faire croire au lapin que la séquence qu'il a envoyée est correcte ;)

Normalement, le serveur renvoie donc une réponse du type :

<challenge xmlns='urn:ietf: params:xml:ns:xmpp-sasl'>
XXXX
</challenge>

Où XXXX est de nouveau une chaîne encodée en base64 de la forme :

rspauth=HASH

(Le hash étant ici la réponse au DIGEST)

Etape 4 :

Le lapin demande alors si son authentification est correcte, de la manière la plus simple possible :

<response xmlns='urn:ietf: params:xml:ns:xmpp-sasl'/>

Il suffit alors au serveur de lui répondre OK :)

<success xmlns='urn:ietf: params:xml:ns:xmpp-sasl'/>

A partir de maintenant, le lapin est considéré comme authentifié auprès du serveur.
Nous n'avions donc pas besoin de calculer le hash pour le DIGEST, le lapin s'attendant juste à recevoir un <success /> pour continuer sa séquence de boot.

Les étapes qui suivent ne font pas partie à proprement parler de l'authentification, mais elles constituent la suite de la séquence d'initialisation du lapin. C'est à la fin de cette séquence que le lapin sera pleinement fonctionnel et attendra de nouvelles commandes.

Examinons tout ceci :

LAPIN :
<?xml version='1.0' encoding='UTF-8'?>
<stream:stream to='sackboylocal.eskuel.net' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>

Le lapin initie donc un nouveau Stream, comme au début de l'authentification.

SERVEUR :
<?xml version='1.0'?>
<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='1331400675' from='xmpp.nabaztag.com' version='1.0' xml:lang='en'>
<stream:features>
<bind xmlns='urn:ietf: params:xml:ns:xmpp-bind'>
<required/>
</bind>
<unbind xmlns='urn:ietf: params:xml:ns:xmpp-bind'/>
<session xmlns='urn:ietf: params:xml:ns:xmpp-session'/>
</stream:features>

Le lapin change alors sa resource XMPP, pour marquer qu'il est en mode boot :

LAPIN :
<iq from="[email protected]/" to="xmpp.nabaztag.com" type='set' id='1'>
<bind xmlns='urn:ietf: params:xml:ns:xmpp-bind'>
<resource>boot</resource>
</bind>
</iq>

Le serveur accuse réception de ce changement :

SERVEUR :
<iq id='1' type='result'>
<bind xmlns='urn:ietf: params:xml:ns:xmpp-bind'>
<jid>[email protected]/boot</jid>
</bind>
</iq>

Démarrage de session avec cette nouvelle resource

LAPIN :
<iq from='[email protected]/boot' to='xmpp.nabaztag.com' type='set' id='2'>
<session xmlns='urn:ietf: params:xml:ns:xmpp-session'/>
</iq>

SERVEUR :
<iq type='result' to='[email protected]/boot' from='xmpp.nabaztag.com' id='2'>
<session xmlns='urn:ietf: params:xml:ns:xmpp-session'/>
</iq>

LAPIN :
<iq from='[email protected]/boot' to='[email protected]/sources' type='get' id='3'>
<query xmlns="violet:iq:sources">
<packet xmlns="violet: packet" format="1.0"/>
</query>
</iq>

SERVEUR :
<iq from='[email protected]/sources' to='[email protected]/boot' id='3' type='result'>
<query xmlns='violet:iq:sources'>
<packet xmlns='violet: packet' format='1.0' ttl='604800'>
fwQAAAx////+BAAFAA7/CAALAAABAP8=
</packet>
</query>
</iq>

Le serveur nous renvoie ici un paquet contenant l'état du lapin en fin de boot (à savoir les oreilles positionnées à la verticale). Le formatage de ces paquets fera l'objet d'un autre article.

LAPIN :
<iq from="[email protected]/boot" to="xmpp.nabaztag.com" type='set' id='4'>
<bind xmlns='urn:ietf: params:xml:ns:xmpp-bind'>
<resource>idle</resource>
</bind>
</iq>

Le lapin change de nouveau de resource pour passer en /idle

SERVEUR :
<iq id='4' type='result'>
<bind xmlns='urn:ietf: params:xml:ns:xmpp-bind'>
<jid>[email protected]/idle</jid>
</bind>
</iq>

Le serveur accuse réception. Comme précédemment, le lapin démarre alors une nouvelle session sur cette nouvelle resource

LAPIN :
<iq from='[email protected]/idle' to='xmpp.nabaztag.com' type='set' id='5'>
<session xmlns='urn:ietf: params:xml:ns:xmpp-session'/>
</iq>

Le serveur accuse réception :

SERVEUR :
<iq type='result' to='[email protected]/idle' from='xmpp.nabaztag.com' id='5'>
<session xmlns='urn:ietf: params:xml:ns:xmpp-session'/>
</iq>

LAPIN :
<presence from='[email protected]/idle' id='6'></presence>

SERVEUR :
<presence from='[email protected]/idle' id='6'></presence>

Le lapin peut alors libérer la resource /boot, maintenant qu'il a commencé une session en /idle

LAPIN :
<iq from='[email protected]/boot' to='xmpp.nabaztag.com' type='set' id='7'>
<unbind xmlns='urn:ietf: params:xml:ns:xmpp-bind'>
<resource>boot</resource>
</unbind>
</iq>

SERVEUR :
<iq id='7' type='result' />

Voilà, à partir de ce point, le lapin a terminé sa séquence de boot et d'authentification. Il est désormais prêt à recevoir des ordres de la part du serveur. Nous verrons dans le prochain article comment sont structurés les ordres envoyés au lapin.

Stay tuned !

Temps de lecture : 7 minutes

Le Nabaztag, comment ca marche ? Partie 1 : le boot

Etant donné que j'ai décidé de remonter un serveur Nabaztag, je partage avec vous mes découvertes sur le fonctionnement d'un Nabaztag au travers d'une série d'articles (que vous pourrez retrouver dans la catégorie Nabaztag)

Aujourd'hui, la première partie, la séquence de boot du Nabaztag.

Le lapin, une fois raccordé au secteur, allume ses 4 diodes en Orange.
Les diodes passent progressivement du orange au vert, en suivant les étapes suivantes :

  • Détection du réseau WiFi
  • Echange de la clé cryptage
  • Obtention d'une adresse IP
  • Connexion aux serveurs

Je ne reviendrais pas sur les 3 premières étapes, le lapin étant autonome sur cette phase de connexion.

La 4ème phase est, elle, plus intéressante.

A ce moment, le lapin tente une connexion HTTP au serveur défini dans sa configuration. La requête est de la forme :

GET /bc.jsp?v=0.0.0.10&m=00:13:d3:84:53:5a&l=00:00:00:00:00:00&p=00:00:00:00:00:00&h=4 HTTP/1.0
User-Agent: MTL
Pragma: no-cache

Le fichier bc.jsp est utilisé pour renvoyer un bootcode au lapin, qu'il puisse définir son état au démarrage. Les différents paramètres passés sont les suivants :

  • v : la version du Nabaztag
  • m : l'adresse MAC du lapin
  • l et p : deux adresse MAC, utilisation non identifée
  • h : paramètre inconnu

Le serveur contacté renvoie donc un bootcode d'une centaine de Ko au lapin, qui poursuit ainsi sa séquence de boot.

Un deuxième appel HTTP est alors réalisé, toujours vers le même serveur :

GET /locate.jsp?sn=0013d384535a&h=4&v=21029 HTTP/1.0
User-Agent: MTL
Pragma: no-cache
Icy-MetaData:1

Par cette requête, la lapin précise sa configuration en demandant les adresses des différents serveurs nécessaires à son fonctionnement (le seul paramètre intéressant ici est sn, l'adresse MAC ou numéro de série du lapin, sans les : )

Le serveur répond alors :

ping tagtag.nabaztag.objects.violet.net
broad broad.violet.net
xmpp_domain xmpp.nabaztag.com

Ici, on en apprend un peu plus sur la manière de fonctionner du lapin.

ping est un serveur web, utilisé lorsque le lapin détecte un tag RFID (les Ztamp:s) ou lors de la reconnaissance vocale
broad est également un serveur web, utilisé pour les chorégraphies, les sons, etc
xmpp_domain est un serveur XMPP (Jabber) utilisé pour contrôler le lapin.

C'est sur ce serveur XMPP que viendra ensuite se connecter le lapin, et tentera ainsi de s'identifier.

Mais cela fera l'objet d'un nouvel article ;)

Temps de lecture : 2 minutes
«»