<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yoann Sculo &#187; Général</title>
	<atom:link href="http://www.yoannsculo.fr/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yoannsculo.fr</link>
	<description>Un blog utilisant WordPress</description>
	<lastBuildDate>Fri, 26 Aug 2011 22:31:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Juillet 2011 &#8211; Quelques news en vrac sur l&#8217;actualité de l&#8217;embarqué</title>
		<link>http://www.yoannsculo.fr/juillet-2011-quelques-news-en-vrac-sur-lactualite-de-lembarque/</link>
		<comments>http://www.yoannsculo.fr/juillet-2011-quelques-news-en-vrac-sur-lactualite-de-lembarque/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 15:06:28 +0000</pubDate>
		<dc:creator>Yoann Sculo</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[Systèmes Embarqués]]></category>
		<category><![CDATA[actualité]]></category>
		<category><![CDATA[Armadeus]]></category>
		<category><![CDATA[Armadeus Project]]></category>
		<category><![CDATA[embarqué]]></category>
		<category><![CDATA[Freedom Box]]></category>
		<category><![CDATA[Freedom Box Foundation]]></category>
		<category><![CDATA[Open Silicium]]></category>
		<category><![CDATA[Shoutcast]]></category>

		<guid isPermaLink="false">http://www.yoannsculo.fr/?p=1787</guid>
		<description><![CDATA[Délaissé depuis juin, mon blog était très bien triste de ne plus parler d’embarqué. Voici donc quelques informations intéressantes dont je voulais parler. Je suis pas mal en retard ! Mais ce n’est pas grave ! Donc en vrac ! Open Silicium sort son numéro 3, toujours aussi intéressant Buildroot a sorti sa version 2011.05. [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.yoannsculo.fr%252Fjuillet-2011-quelques-news-en-vrac-sur-lactualite-de-lembarque%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fis.gd%2FygcVbu%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Juillet%202011%20-%20Quelques%20news%20en%20vrac%20sur%20l%27actualit%C3%A9%20de%20l%27embarqu%C3%A9%22%20%7D);"></div>
<p style="text-align: justify;">Délaissé depuis juin, mon blog était très bien triste de ne plus parler d’embarqué. Voici donc quelques informations intéressantes dont je voulais parler. Je suis pas mal en retard ! Mais ce n’est pas grave ! <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Donc en vrac !</p>
<ul>
<li style="text-align: justify;">Open Silicium sort son <a href="http://www.editions-diamond.com/opensilicium/index.php/opensilicium-magazine-n%C2%B03-juilletaoutseptembre-2011">numéro 3</a>, toujours aussi intéressant</li>
<li>Buildroot a sorti sa version <a href="http://old.nabble.com/Buildroot-2011.05-released-td31716992.html">2011.05</a>. J’ai oublié il y a quelques mois de traiter mon dossier de mails de listes de diffusion. L’annonce de sortie s’est perdue dans mes plusieurs milliers de mails que j’ai aujourd’hui en attente. Dès que l’on arrête de consulter au fur et à mesure ces listes un peu trop prolifiques &#8230; c’est le début la fin !</li>
<li style="text-align: justify;">Le <a href="http://www.armadeus.com/wiki/index.php?title=Main_Page">projet Armadeus</a> a sorti la <a href="http://sourceforge.net/projects/armadeus/files/armadeus/armadeus-4.0/">V4</a> de son système (voir <a href="http://linuxfr.org/news/sortie-de-la-version-40-du-projet-armadeus">LinuxFr</a> à ce propos)</li>
<li>La Freedom Box Foundation, dont je parlais <a href="http://www.yoannsculo.fr/freedom-box-%E2%80%93-reparons-internet-pour-plus-de-libertes/">il y a 6 mois</a> donne <a href="http://www.freedomboxfoundation.org/news/Update_12_July_2011/index.en.html">des nouvelles de son projet</a>. On voit que ça bouge, c’est chouette <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li style="text-align: justify;">Oh, et puis <a href="http://www.embedded-bits.co.uk/2011/writeanmlo/">un article intéressant</a> sur les fichiers MLO pour les bootloaders de type X-loader</li>
</ul>
<p style="text-align: justify;">Sinon, je me suis lancé dans le développement d’un <a href="https://github.com/yoannsculo/SHOUTcast-Recorder">petit projet open source</a> , dont je devrais parler bientôt ici. Je me cherche une licence en ce moment. J’ai repris un de mes anciens projets, sur l&#8217;enregistrement de flux SHOUTcast, que j’ai recommencé from scratch. C’est fou ce que ça va plus vite après quelques années d’expérience supplémentaires <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.yoannsculo.fr%2Fjuillet-2011-quelques-news-en-vrac-sur-lactualite-de-lembarque%2F&amp;title=Juillet%202011%20%26%238211%3B%20Quelques%20news%20en%20vrac%20sur%20l%26%238217%3Bactualit%C3%A9%20de%20l%26%238217%3Bembarqu%C3%A9" id="wpa2a_2"><img src="http://www.yoannsculo.fr/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.yoannsculo.fr/juillet-2011-quelques-news-en-vrac-sur-lactualite-de-lembarque/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mass Storage USB sur tous les OS grâce au File-backed Storage Gadget (g_file_storage)</title>
		<link>http://www.yoannsculo.fr/mass-storage-usb-sur-tous-les-os-grace-au-file-backed-storage-gadget-g_file_storage/</link>
		<comments>http://www.yoannsculo.fr/mass-storage-usb-sur-tous-les-os-grace-au-file-backed-storage-gadget-g_file_storage/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 09:09:19 +0000</pubDate>
		<dc:creator>Yoann Sculo</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Systèmes Embarqués]]></category>
		<category><![CDATA[g_file_storage]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mass storage]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[storage gadget]]></category>
		<category><![CDATA[USB]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.yoannsculo.fr/?p=1761</guid>
		<description><![CDATA[Je me suis attelé récemment à la mise en place d’un mass storage (FAT32) sur un device Linux grâce au gadget file storage (g_file_storage), compatible avec Windows, Mac et Linux ! Hé bien, c’est un peu de la tambouille magique pour rendre ça compatible entre OS. Hélas, la documentation que l’on retrouve sur Internet ne [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.yoannsculo.fr%252Fmass-storage-usb-sur-tous-les-os-grace-au-file-backed-storage-gadget-g_file_storage%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fis.gd%2F5GRlLc%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Mass%20Storage%20USB%20sur%20tous%20les%20OS%20gr%C3%A2ce%20au%20File-backed%20Storage%20Gadget%20%28g_file_storage%29%22%20%7D);"></div>
<p style="text-align: justify;">Je me suis attelé récemment à la mise en place d’un mass storage (FAT32) sur un device Linux grâce au gadget file storage (g_file_storage), compatible avec Windows, Mac et Linux ! Hé bien, c’est un peu de la tambouille magique pour rendre ça compatible entre OS. Hélas, la <a href="http://www.linux-usb.org/gadget/file_storage.html">documentation</a> que l’on retrouve sur Internet ne précise pas forcément les étapes pour faire fonctionner le mass storage sous tous les OS. En fouinant bien j’ai fini par trouver les étapes à suivre pour mettre ça en place ! C’est plus une question du bon argument à spécifier à la création de la partition, mais au final on gagne du temps quand on le sait dès le départ ! Parce qu’aller fouiner dans le code source du driver pour voir comment ça marche c’est cool, mais un poil prise de tête. (encore que mine de rien c’est plutôt bien documenté)</p>
<p>Voici les étapes :</p>
<h3>Préparation du kernel</h3>
<ul>
<li>Prendre un kernel bien frais !</li>
<li>Activer le “File-backed Storage Gadget” (USB_FILE_STORAGE) dans la catégorie USB support. Dans mon cas j’ai choisi de le mettre en module externe.</li>
<li>recompiler la bête</li>
<li>Et en attendant, préparons la partition de mass_storage.</li>
</ul>
<h3>Préparation de la partition</h3>
<p>Jusque là, je n’ai réussi qu’à générer des partitions puissances de 2 au niveau de la taille. Avec des unités d’allocation de 4 Ko (par défaut), il suffit de changer le nombre de têtes (1, 2, 4, &#8230;) pour avoir respectivement des mass storage de (4, 8, 16Mo, &#8230;) Je n’ai pas encore complètement compris entièrement le fonctionnement pour tenter de sortir des clous avec des partitions exotiques (genre 7Mo si c’est envisageable). Si quelqu’un a l’information, je suis preneur <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Parce que je me perds un peu avec cette ratatouille de Linux / Windows qui n’ont pas les mêmes unités&#8230;</p>
<p>Bref, dans cet exemple je me base sur un mass storage de 4 Mo. Mais pour augmenter la taille de celle-ci, il suffit de changer la valeur du count dans la commande dd qui va suivre, puis le nombre de têtes dans le fdisk. Le max était 255 têtes, soit les 1020 Mo max du FAT32 pour des unités d’allocation de 4 Ko</p>
<p>Créons donc notre périphérique à partir du néant !</p>
<pre class="brush: plain; light: true; title: ; notranslate">
dd bs=1M count=4 if=/dev/zero of=mass_storage.img
</pre>
<p>Puis lançons fdisk.</p>
<pre class="brush: plain; light: true; title: ; notranslate">
$ fdisk mass_storage.img
Le périphérique ne contient pas une table de partitions DOS ou Sun, SGI, OSF valide
Création d'une nouvelle étiquette DOS avec id de disque 0x3a4a9ca1.
Les modifications restent en mémoire jusqu'à ce que vous les écriviez.
Après quoi, bien sûr, le contenu précédent sera irrécupérable.

AVERTISSEMENT: fanion 0x0000 non valide dans la table de partitions 4, sera corrigé par w(écriture)
Vous devez initialiser cylindres.
Vous pouvez faire cela depuis le menu des fonctions avancées.

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Commande (m pour l'aide): x

Commande pour experts (m pour de l'aide): s
Nombre de secteurs (1-63, par défaut 63): 8
AVERTISSEMENT: initialisation du décalage de secteur pour compatibilité DOS

Commande pour experts (m pour de l'aide): h
Nombre de têtes (1-256, par défaut 255): 1

Commande pour experts (m pour de l'aide): c
Nombre de cylindres (1-1048576): 1024

Commande pour experts (m pour de l'aide): r

Commande (m pour l'aide): n
Commande d'action
e   étendue
p   partition primaire (1-4)
p
Numéro de partition (1-4): 1
Premier cylindre (2-1024, par défaut 2):
Utilisation de la valeur par défaut 2
Dernier cylindre, +cylindres or +taille{K,M,G} (2-1024, par défaut 1024):
Utilisation de la valeur par défaut 1024

Commande (m pour l'aide): t
Partition sélectionnée 1
Code Hexa (taper L pour lister les codes): b
Type système de partition modifié de 1 à b (W95 FAT32)

Commande (m pour l'aide): p

Disque mass_storage.img: 0 Mo, 0 octets
1 têtes, 8 secteurs/piste, 1024 cylindres
Unités = cylindres de 8 * 512 = 4096 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x3a4a9ca1

Périphérique Amorce  Début        Fin      Blocs     Id  Système
mass_storage.img1               2        1024        4092    b  W95 FAT32

Commande (m pour l'aide): w
La table de partitions a été altérée!

AVERTISSEMENT: si vous avez créé ou modifié une partition DOS 6.x,
svp consulter les pages du manuel de fdisk pour des informations
complémentaires.
Synchronisation des disques.
</pre>
<p>Et si l’on souhaite consulter les informations de notre partition :</p>
<pre class="brush: plain; light: true; title: ; notranslate">
$ fdisk -l mass_storage.img
Vous devez initialiser cylindres.
Vous pouvez faire cela depuis le menu des fonctions avancées.

Disque mass_storage.img: 0 Mo, 0 octets
1 têtes, 8 secteurs/piste, 0 cylindres
Unités = cylindres de 8 * 512 = 4096 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x3a4a9ca1

Périphérique Amorce  Début        Fin      Blocs     Id  Système
mass_storage.img1               2        1024        4092    b  W95 FAT32
</pre>
<p>Pour accéder au device, on doit alors préciser à quel offset se placer pour travailler avec. Pour ça nous devons calculer la taille du premier cylindre. Soit :<br />
offset = cylindres de 8 * 512 = 4096 octets (indiqué par la commande p du fdisk ou fdisk -l)</p>
<pre class="brush: plain; light: true; title: ; notranslate">
losetup -o 4096 /dev/loop0 mass_storage.img
</pre>
<p>Et on créé un magnifique système de fichiers FAT32 appelé “storage” :</p>
<pre class="brush: plain; light: true; title: ; notranslate">
mkdosfs /dev/loop0 -n storage
</pre>
<p>Si vous voulez vous pouvez monter votre mass storage et bidouiller dedans :</p>
<pre class="brush: plain; light: true; title: ; notranslate">
mount -t vfat /dev/loop0
...
umount /dev/loop0
</pre>
<p>puis on démonte le périphérique virtuel.</p>
<pre class="brush: plain; light: true; title: ; notranslate">
losetup -d /dev/loop0
</pre>
<h3>Chargement du mass_storage</h3>
<p>Une fois que votre kernel est en place sur votre système, il n’y a plus qu’à placer le fichier mass_storage.img sur le système embarqué et de charger la partition :</p>
<pre class="brush: plain; light: true; title: ; notranslate">
insmod g_file_storage.ko file=/tmp/mass_storage.img stall=0
</pre>
<p>stall=0 est l’option magique qui fait que le mass_storage fonctionne sous Windows sans mouliner à l’infini en attendant une détection du filesystem. (boolean to permit the driver to halt bulk endpoints)<br />
On peut également jouer avec l’option ro pour mettre le mass storage en read only ou non. De façon générale on peut retrouver de la doc sur le driver dans le kernel : drivers/usb/gadget/file_storage.c</p>
<p>Et voilà, en branchant votre device sur n’importe quel OS, il sera reconnu comme disque de mass storage appelé “storage” <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Héhé !</p>
<p>Et pour la route, voici les partitions FAT32 finales (vides) :</p>
<ul>
<li><a href="http://yoannsculo.fr/docs/mass_storage/mass_storage_4mb.img" target="_blank">version 4Mo</a></li>
<li><a href="http://yoannsculo.fr/docs/mass_storage/mass_storage_8mb.img" target="_blank">version 8Mo</a></li>
</ul>

<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.yoannsculo.fr%2Fmass-storage-usb-sur-tous-les-os-grace-au-file-backed-storage-gadget-g_file_storage%2F&amp;title=Mass%20Storage%20USB%20sur%20tous%20les%20OS%20gr%C3%A2ce%20au%20File-backed%20Storage%20Gadget%20%28g_file_storage%29" id="wpa2a_4"><img src="http://www.yoannsculo.fr/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.yoannsculo.fr/mass-storage-usb-sur-tous-les-os-grace-au-file-backed-storage-gadget-g_file_storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction au système de communication inter-processus D-Bus</title>
		<link>http://www.yoannsculo.fr/introduction-au-systeme-de-communication-inter-processus-d-bus/</link>
		<comments>http://www.yoannsculo.fr/introduction-au-systeme-de-communication-inter-processus-d-bus/#comments</comments>
		<pubDate>Thu, 26 May 2011 12:31:35 +0000</pubDate>
		<dc:creator>Yoann Sculo</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Bus]]></category>
		<category><![CDATA[D-Bus]]></category>
		<category><![CDATA[dbus-daemon]]></category>
		<category><![CDATA[IPC]]></category>
		<category><![CDATA[libdbus]]></category>
		<category><![CDATA[processus]]></category>

		<guid isPermaLink="false">http://www.yoannsculo.fr/?p=1719</guid>
		<description><![CDATA[Cela faisait quelques temps que je souhaitais rédiger une documentation sur D-Bus et ses concepts (en français). Je n&#8217;ai pas trouvé énormément d&#8217;informations sur lefonctionnement détaillé de ce Bus quand j&#8217;en avais besoin. Du coup, je me suis lancé dans la rédaction d&#8217;un tutoriel pour les personnes qui se retrouveront tôt ou tard dans le [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.yoannsculo.fr%252Fintroduction-au-systeme-de-communication-inter-processus-d-bus%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fis.gd%2Fnib2zg%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Introduction%20au%20syst%C3%A8me%20de%20communication%20inter-processus%20D-Bus%22%20%7D);"></div>
<p><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/05/dbus-schema-1.png"><img class="size-thumbnail wp-image-1736 alignleft" title="dbus-schema-1" src="http://www.yoannsculo.fr/wp-content/uploads/2011/05/dbus-schema-1-150x150.png" alt="" width="150" height="150" /></a></p>
<p id="LI" style="text-align: justify;">Cela faisait quelques temps que je souhaitais rédiger une documentation sur D-Bus et ses concepts (en français). Je n&#8217;ai pas trouvé énormément d&#8217;informations sur lefonctionnement détaillé de ce Bus quand j&#8217;en avais besoin. Du coup, je me suis lancé dans la rédaction d&#8217;un tutoriel pour les personnes qui se retrouveront tôt ou tard dans le même cas que moi. Et puis ça me sert aussi de gros aide mémoire <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Vous pouvez consulter l&#8217;article <a href="http://yoannsculo.developpez.com/tutoriels/linux/introduction-dbus/">sur developpez.com</a>, mais également <a href="ftp://ftp-developpez.com/yoannsculo/tutoriels/linux/introduction-dbus/introduction-dbus.pdf">au format pdf</a>.</p>
<blockquote><p>D-Bus est un système de communication inter-processus initié en 2002 offrant un moyen simple de dialoguer entre applications. Aujourd&#8217;hui il est présent sur de très nombreux projets. Il fait partie intégrante d&#8217;Ubuntu, et sait être assez obscur pour les personnes souhaitant l&#8217;utiliser ou le comprendre. Cet article s&#8217;adresse aux personnes souhaitant comprendre le fonctionnement de D-Bus et éventuellement mettre en place une architecture logicielle basée sur ce bus.</p></blockquote>
<p><span id="more-1719"></span></p>
<h3>Introduction</h3>
<h4 id="LI-A">I-A. Qu&#8217;est-ce que D-Bus ?</h4>
<div>D-Bus est un système de communication inter-processus (IPC : interprocess communication) offrant un moyen simple de dialoguer entre applications. D-Bus permet aux processus qui se sont enregistrés sur le bus d&#8217;exposer des services sur un ou plusieurs bus (système ou session) afin de communiquer entre eux. En outre, D-Bus est en mesure de démarrer des applications et daemons à la demande, lorsque leurs services exposés sur le bus sont demandés.</div>
<div>Démarré en 2002, D-Bus fait partie du projet freedesktop.org, et est maintenu principalement par RedHat. Il est <a href="http://dbus.freedesktop.org/doc/COPYING">distribué</a> sous <a href="http://dbus.freedesktop.org/doc/dbus-faq.html#id562905">double licence</a> <a href="http://www.opensource.org/licenses/gpl-2.0">GPL V2</a> / <a href="http://www.opensource.org/licenses/afl-3.0.php">AFL</a>.</div>
<div>Vous pouvez retrouver les spécifications détaillées du protocole sur <a href="http://dbus.freedesktop.org/doc/dbus-specification.html">le site de freedesktop</a>.</div>
<div>Le but de cet article est avant tout de présenter le fonctionnement de D-Bus sans rentrer dans le détail de ses différentes implémentations. L&#8217;article ne requiert pas de prérequis particuliers si ce n&#8217;est quelques connaissances basique de fonctionnement d&#8217;un système Linux. A l&#8217;issue de cet article, l&#8217;idée est d&#8217;être en mesure de comprendre les particularités de D-Bus et d&#8217;avoir les bases pour mettre en place une architecture logicielle construite sur D-Bus.</div>
<div>Il existe différents &laquo;&nbsp;<em>bindings</em>&nbsp;&raquo; pour D-Bus. C&#8217;est à dire des bibliothèques développées dans d&#8217;autres langages plus haut niveau que celui de D-Bus, en l&#8217;occurrence le C. Ces bindings s&#8217;avèrent très utiles et d&#8217;adaptent aux besoins des développeurs selon les langages des logiciels à lier à D-Bus. Toutefois, les bindings D-Bus ne seront abordés que dans de futurs articles.</div>
<div>J&#8217;ai récemment mis en place une architecture logicielle basée sur D-Bus. Et j&#8217;ai vraiment manqué de documentation claire lors de la mise en place de D-Bus. Par conséquent j&#8217;ai souhaité partager mon expérience acquise sur le sujet, dans l&#8217;espoir d&#8217;aider un &laquo;&nbsp;<em>futur moi</em>&nbsp;&raquo; dans le besoin. D-Bus est partout, dans nos desktops, nos smartphones et appareils communicants sous Linux. Et nous allons voir en quoi D-Bus est vraiment utile pour le développement de systèmes multi processus.</div>
<div>Je n&#8217;ai pas la prétention de prêcher la parole ultime. On trouve un certain nombre de documentations sur cette carte, et bien souvent en anglais. Ce tutoriel permet de faire un tour des fonctionnalités de base, rassemblant tout ce que j&#8217;ai pu trouver sur Internet mais aussi découvrir à travers mes différents projets.</div>
<h4 id="LI-B">I-B. Projets utilisant D-Bus</h4>
<div>Les projets utilisant D-Bus sont relativement nombreux, on peut lister :</div>
<ul>
<li>Gnome</li>
<li>MeeGo, anciennement Maemo / Moblin</li>
<li>Android</li>
<li>Skype</li>
<li>Telepathy</li>
<li>Evolution</li>
<li>Pidgin</li>
<li>Nautilus</li>
<li>Connman</li>
<li>network-manager</li>
<li>HAL</li>
<li>&#8230;</li>
</ul>
<div>Pour prendre un exemple concret, au sein d&#8217;Ubuntu, D-Bus permet, entre autres :</div>
<ul>
<li>à Nautilus de lancer un fichier multimedia via Rhythmbox au passage de la souris sur l&#8217;icone du fichier.</li>
<li>à Pidgin d&#8217;afficher des popups de notification via Gnome à la réception de messages.</li>
<li>à Evolution d&#8217;afficher des popups de notification via Gnome en cas de réception d&#8217;email.</li>
<li>à Network-manager de gérer dans Gnome l&#8217;icone de gestion du réseau en haut à droite de l&#8217;écran</li>
</ul>
<h3 id="LII">II. D-Bus : Les concepts</h3>
<div>L&#8217;implémentation du protocole D-Bus offre différents outils :</div>
<ul>
<li>Une bibliothèque, <strong>libdbus</strong>, permettant aux applications de communiquer entre elles.</li>
<li>Un exécutable <strong>dbus-daemon</strong> basé sur libdbus, dont le rôle est de créer le support de communication entre les processus. Le daemon va s&#8217;occuper de router et acheminer les messages vers un ou plusieurs processus connectées au bus.</li>
<li>Des wrappers et bindings permettant de travailler avec certains langages ou framework particuliers. Il existe des bindings pour le C et la glib, le C++ et le framework QT, Python, etc. A cela s&#8217;ajoute une API low-level en C permettant de créer ses propres bindings.</li>
</ul>
<div>D-Bus peut être vu comme une sorte de routeur auquel chacun des processus est connecté par une connexion bidirectionnelle.</div>
<div>
<div id="attachment_1736" class="wp-caption aligncenter" style="width: 413px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/05/dbus-schema-1.png"><img class="size-full wp-image-1736" title="dbus-schema-1" src="http://www.yoannsculo.fr/wp-content/uploads/2011/05/dbus-schema-1.png" alt="" width="403" height="398" /></a></dt>
</dl>
</div>
<div>La connexion (sockets sur le schéma) peut prendre différentes formes :</div>
<ul>
<li>Unix Domain Sockets (IPC Sockets)</li>
<li>launchd sous Mac OS X</li>
<li>TCP/IP sockets</li>
</ul>
<div>Il s&#8217;agit d&#8217;un protocole binaire, non textuel, qui s&#8217;affranchit donc des problèmes de sérialisation et de parsing de données formatées tel que le XML. On gagne donc en vitesse. (Hélas je n&#8217;ai pas eu l&#8217;occasion de tester et mesure cet aspect). Si vous êtes courageux, vous pouvez retrouver les spécifications de D-Bus sur <a href="http://dbus.freedesktop.org/doc/dbus-specification.html">le site de freedesktop</a>.</div>
<div>D-Bus offre deux types de bus :</div>
<ul>
<li>Le bus <strong>session</strong>, il est utilisé pour la communication au sein d&#8217;une session utilisateur. Plus particulièrement au sein d&#8217;une session graphique de X. Il est créé à l&#8217;ouverture de session de l&#8217;utilisateur et perdure tant qu&#8217;elle est ouverte.</li>
<li>Le bus <strong>système</strong>, comme son nom l&#8217;indique est dédié au transport d&#8217;information système bas niveau telles que les events kernel sous Linux, les notifications de connexion à un réseau, le (dé)branchement d&#8217;un périphérique USB, le statut de la batterie, etc. Des messages qui concernent donc tous les utilisateurs connectés au système. N&#8217;importe quel processus est en mesure de se connecter au bus système. Cependant, cette instance de bus possède une couche de sécurité autorisant ou refusant les messages qu&#8217;on lui demande de transmettre. A noter, que seul un seul bus système peut fonctionner à la fois. Le bus système est créé au démarrage du système dans une distribution de type Ubuntu.</li>
</ul>
<div>Rien ne nous empêche de connecter une application à plusieurs bus. Par exemple à plusieurs bus session et au bus système. On peut par exemple séparer plusieurs bus de session pour des questions de sécurité. Mais nous aborderons la notion de sécurité un peu plus loin.</div>
<div>
<div class="mceTemp mceIEcenter">
<dl id="attachment_1738" class="wp-caption aligncenter" style="width: 329px;">
<dt class="wp-caption-dt"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/05/dbus-schema-2.png"><img class="size-full wp-image-1738" title="dbus-schema-2" src="http://www.yoannsculo.fr/wp-content/uploads/2011/05/dbus-schema-2.png" alt="" width="319" height="345" /></a><p class="wp-caption-text">Connexions multiples d&#39;un processus</p></div>
</div>
<div>Pour information, je déconseille fortement de tenter un /etc/init.d/dbus restart dans une session Ubuntu. Le résultat est juste catastrophique pour votre session. Vous n&#8217;avez plus qu&#8217;à redémarrer votre session ! <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
<div>Il existe aujourd&#8217;hui de nombreux systèmes de bus. D-Bus se démarque par sa conception orientée communication entre applications d&#8217;une session de type &laquo;&nbsp;Desktop&nbsp;&raquo;, mais aussi pour la communication entre le Desktop et le système d&#8217;exploitation. D-Bus peut très bien être utilisé pour des systèmes n&#8217;ayant pas forcément de partie graphique, ni d&#8217;aspect &laquo;&nbsp;Desktop&nbsp;&raquo;. C&#8217;est à dire qu&#8217;il est parfaitement envisageable d&#8217;utiliser D-Bus en embarqué pour faire dialoguer ses applications entre elles.</div>
<div>Les mécanismes de D-Bus ne se résument pas qu&#8217;à une simple ouverture de socket entre le processus et le daemon. D-Bus permet d&#8217;identifier de façon unique les services qu&#8217;expose une application sur le bus. Rentrons dans les détails !</div>
<h4 id="LII-A">II-A. Messages</h4>
<div>Il existe différents types de messages :</div>
<ul>
<li>les signaux</li>
<li>les méthodes</li>
<li>les messages d&#8217;erreur</li>
</ul>
<div>Les <strong>signaux</strong> sont des notifications d&#8217;événements. Le signal est à sens unique et n&#8217;attend pas de retour. Son expéditeur ne précise pas le destinataire du message. Plusieurs processus peuvent s&#8217;abonner à ce signal. De plus, il peut contenir des paramètres.</div>
<div>Les <strong>méthodes</strong> permettent à des applications d&#8217;invoquer les méthodes d&#8217;objets distants. Les méthodes peuvent êtres invoquées avec des paramètres. Ces dernières peuvent être synchrones ou asynchrones et surtout en mesure de remonter de l&#8217;information à l&#8217;appelant en renvoyant un ou plusieurs paramètres (qui restent optionnels).</div>
<div>Les <strong>messages d&#8217;erreur</strong> offrent des exceptions dans le cas d&#8217;invocations de méthodes.</div>
<div>Du fait que D-Bus est un mécanisme de communication inter-processus, ce dernier supporte nativement plusieurs types pour les données échangés sur le bus (boolean, int32, string, &#8230;). D-Bus gère également des containers pour ces types : tableau, structure, dictionnaire et variant. Pour une liste exhaustive, se référer <a href="http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol">aux spécifications</a> de D-Bus. Toutefois l&#8217;utilisation du typage de données est intimement liée au &laquo;&nbsp;binding&nbsp;&raquo; choisi lors du développement de l&#8217;application. Ces points seront abordés plus en détail dans de futurs articles.</div>
<h4 id="LII-B">II-B. Services</h4>
<div>Un processus enregistre un service auprès du daemon D-Bus. Tous les clients souhaitant utiliser ce service vont pour cella créer un proxy (voir après). Lorsque des clients vont appeler des méthodes de l&#8217;objet du proxy, ce dernier va convertir ces méthodes en appels D-Bus qui sont reçus et exécutés par le processus qui a enregistré le service.</div>
<div>De plus, D-Bus fournit un mécanisme capable de démarrer automatiquement des applications à partir d&#8217;un simple appel. Une application peut exposer des services sur un bus. Si un des services est demandé par un autre processus, alors D-Bus est en mesure de démarrer l&#8217;application pour avoir accès au service en question.</div>
<div>Prenons l&#8217;exemple du service org.gnome.Rhythmbox sous Linux (lecteur multimédia d&#8217;Ubuntu). Il est possible de lui demander de lire une musique, voir de lire la suivante dans une liste de lecture, la stopper, etc. Tout cela par D-Bus. Si un appel D-Bus demande de lire une musique, et que le service Rythmbox n&#8217;est pas enregistré sur le Bus, alors, il va être automatiquement lancé et le message en question sera transmis à Rythmbox une fois que ce dernier sera opérationnel. Toutes ces étapes sont transparentes pour le processus à l&#8217;initiative de l&#8217;appel.</div>
<div>Nous pourrons voir un peu plus loin un exemple d&#8217;utilisation de Rythmbox par Dbus en ligne de commande.</div>
<div>Généralement, la plupart des applications utilisant D-Bus sont définies commes services. Sous Linux, la liste des services est située dans le dossier <em>/usr/share/dbus-1/services</em>. On y retrouve notamment à l&#8217;intérieur le nom du service et le binaire à démarrer à l&#8217;appel du service.</div>
<h4 id="LII-C">II-C. Objets</h4>
<div>Chaque message D-Bus possède une source et une destination. Ces adresses sont définies par des &laquo;&nbsp;object paths&nbsp;&raquo;. Chaque processus connecté à un bus peut avoir enregistré un ou plusieurs objets. Les messages sont alors envoyés entre objets, mais pas directement par les applications.</div>
<div>
<div id="attachment_1739" class="wp-caption aligncenter" style="width: 585px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/05/dbus-schema-3.png"><img class="size-full wp-image-1739" title="dbus-schema-3" src="http://www.yoannsculo.fr/wp-content/uploads/2011/05/dbus-schema-3.png" alt="" width="575" height="173" /></a><p class="wp-caption-text">Discussion entre deux applications sur D-Bus</p></div>
</div>
<div>Le PATH d&#8217;un objet est similaire à celui d&#8217;un filesystem UNIX, par exemple un objet pourrait être nommé /com/developpez/exemple/objetDBus. Il s&#8217;agit là d&#8217;une convention de nommage, nous sommes libres de créer des PATH de notre choix.</div>
<div>D-Bus permet ainsi aux applications d&#8217;exporter leurs objets et leurs fonctionnalités en tant que méthodes, que les applications peuvent utiliser pour communiquer entre elles. Elles utilisent pour cela les messages D-Bus.</div>
<div>Si l&#8217;on fait une comparaison avec un programme écrit en C++ qui implémente un service réseau, alors le nom du bus est l&#8217;hostname de la machine exécutant le programme. L&#8217;object path peut alors être vu comme un pointeur d&#8217;objet C++</div>
<h4 id="LII-D">II-D. Interfaces</h4>
<div>D-Bus utilise également le principe d&#8217;interfaces, ce qui autorise l&#8217;utilisation d&#8217;un même nom de méthode plusieurs fois au sein d&#8217;un objet pour différents contextes. C&#8217;est une sorte de “namespace” pour les noms de méthodes, un groupe de méthodes et de signaux.</div>
<div>Si l&#8217;on reprend notre analogie au C++, l&#8217;interface peut être vue comme une classe C++</div>
<div>On peut prendre l&#8217;exemple de l&#8217;interface <strong>org.freedesktop.Introspectable</strong> qui permet aux instances d&#8217;objets de récupérer la description d&#8217;un objet (interfaces, signaux, méthodes et mêmes propriétés) et donc de faire ce que l&#8217;on appelle de l&#8217;introspection sur le bus. Très pratique ! (je ne vais pas plus loin, c&#8217;est juste un exemple. Vous avez <a href="http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-introspectable">plus d&#8217;informations à ce sujet</a> dans les spécifications.)</div>
<h4 id="LII-E">II-E. Proxies</h4>
<div>Les proxies sont des éléments haut niveau dans D-Bus, utilisés par les bindings pour simplifier l&#8217;utilisation du protocole. Ils permettent d&#8217;accéder aux objets à distance tout en travaillant au sein de notre programme. L&#8217;utilisation sera plus ou moins transparente pour le développeurs suivant les bindings. Le binding Glib n&#8217;est pas le plus simple hélas, mais permet de comprendre eu peu plus en détail le fonctionnement de D-Bus. Le binding Java, par exemple ne fait pas de différence entre les objets et les proxies. On a alors l&#8217;impression de travailler directement avec un objet. Nous pourrons aborder cette petite différence dans les prochains tutoriaux relatifs aux différents bindings.</div>
<div>Il est intéressant de noter qu&#8217;un proxy (pour certains bindings comme la Glib) permet de travailler avec un objet distant même en cas de &laquo;&nbsp;déconnexion&nbsp;&raquo; de celui-ci. Les proxies se comportant de cette façon, gèrent une sorte de &laquo;&nbsp;failover&nbsp;&raquo;. La reconnexion à l&#8217;objet distant est alors transparente, ce qui est relativement pratique. Prenons l&#8217;exemple du fichier <strong>org.gnome.Rhythmbox.service</strong> :</div>
<div>
<pre class="brush: bash; gutter: false; title: ; notranslate">
[D-BUS Service]
Name=org.gnome.Rhythmbox
Exec=/usr/bin/rhythmbox
</pre>
</div>
<h3 id="LIII">III. Fonctionnement et utilisation de D-Bus</h3>
<div>Avec une installation clé en main classique, D-Bus se créé un script de démarrage dans /etc/init.d qui permet de démarrer et stopper le daemon. Tout est démarré de façon automatique et presque transparente pour l&#8217;utilisateur. Nous allons toutefois décortiquer les étapes de lancement de D-Bus.</div>
<div>Avant toute chose D-Bus ne nécessite pas beaucoup de dépendances, on peut librement choisir la dépendance à libexpat ou libxml2. Le package sous Ubuntu utilise expat par défaut, mais la recompilation nécessaire pour passer à libxml2 n&#8217;est pas bien méchante.</div>
<div>D-Bus arrive avec un lot d&#8217;exécutables :</div>
<ul>
<li><strong>dbus-launch</strong> : permet de démarrer un bus session depuis un script shell</li>
<li><strong>dbus-cleanup-sockets</strong> : fait le ménage dans les sockets ouverts par des bus et qui ne sont plus utilisés.</li>
<li><strong>dbus-send</strong> : permet d&#8217;envoyer un message sur le bus depuis un script shell</li>
<li><strong>dbus-daemon</strong> : Le plus important, le daemon D-Bus</li>
<li><strong>dbus-monitor</strong> : Permet d&#8217;observer ce qui transite sur un ou plusieurs bus</li>
<li><strong>dbus-uuidgen</strong> : génère des uuids pour les sessions de D-Bus</li>
</ul>
<div>et de fichiers de configuration par défaut (/etc/dbus-1/ sous Linux)</div>
<h4 id="LIII-A">III-A. Lancement de D-Bus</h4>
<div>Pour lancer D-Bus lorsqu&#8217;il n&#8217;est pas déjà lancé (attention, les distributions récentes le lancent au démarrage), la première chose à faire est de lancer :</div>
<div>
<table id="codeTabled0e516">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e516">
<div id="codeOverflowd0e516">
<pre><code id="contenuCoded0e516">dbus-uuidgen --ensure
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>qui va aller vérifier l&#8217;existence du fichier /var/lib/dbus/machine-id. S&#8217;il n&#8217;existe pas il va générer un nouvel <a href="http://fr.wikipedia.org/wiki/Universal_Unique_Identifier">uuid</a> (un identifiant unique). Le comportement est similaire à la commande uuidgen. Attention toutefois, l&#8217;uuid généré n&#8217;est pas un uuid standard.</div>
<div>L&#8217;étape suivante est le démarrage du bus system :</div>
<div>
<table id="codeTabled0e528">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e528">
<div id="codeOverflowd0e528">
<pre><code id="contenuCoded0e528">/usr/bin/dbus-daemon --system
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>Il existe tout un lot d&#8217;options avancées à <em>dbus-daemon</em> que vous pouvez retrouver sur le man de celui-ci. A noter cependant, qu&#8217;écrire <em>dbus-daemon &#8211;system</em> revient à écrire l&#8217;option &laquo;&nbsp;<em>&#8211;config-file=/etc/dbus-1/system.conf</em>&laquo;&nbsp;, même chose pour <em>&#8211;session</em> avec &laquo;&nbsp;<em>/etc/dbus-1/session.conf</em>&laquo;&nbsp;</div>
<div>Cela me permet alors d&#8217;introduire la notion de configuration de D-Bus. En effet, ce dernier est paramétrable grâce aux fichiers de configuration suivants</div>
<ul>
<li>/etc/dbus-1/system.conf</li>
<li>/etc/dbus-1/session.conf</li>
</ul>
<div>Ils permettent de préciser des limites de ressources, paramètres de sécurité, tailles de messages, timeout, &#8230; Je vous invite à consulter le man de dbus-daemon pour en savoir plus.</div>
<div>Le lancement d&#8217;une session est &laquo;&nbsp;légèrement&nbsp;&raquo; plus compliqué. Comme il peut y avoir plusieurs bus session, il faut être en mesure de distinguer sur quel bus nous allons discuter. Nous utilisons pour cela la commande <em>dbus-launch</em>. Celle-ci va alors lancer une instance de bus de session en définissant les variables d&#8217;environnement nécessaires pour que les futurs programmes soient en mesure de trouver le bus.</div>
<div>Il suffit alors de lancer la commande suivante</div>
<div>
<table id="codeTabled0e573">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e573">
<div id="codeOverflowd0e573">
<pre><code id="contenuCoded0e573">dbus-launch --sh-syntax
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>qui nous retourne ces quelques lignes sur la sortie standard</div>
<div>
<table id="codeTabled0e579">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e579">
<div id="codeOverflowd0e579">
<pre><code id="contenuCoded0e579">DBUS_SESSION_BUS_ADDRESS='unix:abstract=/tmp/dbus-pV37oOMDlR,guid=90f13303a628db51a40b63454d14b6e7';
export DBUS_SESSION_BUS_ADDRESS;
DBUS_SESSION_BUS_PID=10440;
DBUS_SESSION_BUS_WINDOWID=62914561;
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div><em>dbus-launch</em> fait tout simplement appel à <em>dbus-daemon &#8211;session</em> et se charge de définir les variables de session que nous avons là. DBUS_SESSION_BUS_ADDRESS nous permet alors d&#8217;identifier le bus que nous venons de créer (on y retrouve les information sur le socket ouvert ainsi que l&#8217;uuid du bus). Sans la variable DBUS_SESSION_BUS_ADDRESS de définie dans votre environnement, vous aurez le droit à une erreur.</div>
<div>J&#8217;utilise ici l&#8217;option <em>&#8211;sh-syntax</em> qui permet d&#8217;afficher les informations du bus sur la sortie standard à destination d&#8217;un shell de type sh. Il existe d&#8217;autres options de formatage : <em>&#8211;csh-syntax</em>, <em>&#8211;binary-syntax</em>, ou <em>&#8211;auto-syntax</em>. Car par défaut, dbus-launch écrit de simples clés/valeurs sur la sortie standard et ne les exporte pas.</div>
<div>Je vous invite à regarder les man de chacune de ces commande si vous souhaitez avoir accès aux options avancées. A noter que la commande dbus-cleanup-sockets permet de faire du ménage dans les sockets ouverts par les bus et qui n&#8217;auraient pas été fermés correctement (en cas de fermeture intempestive par exemple.)</div>
<div>Sur un système clé en main de type Ubuntu, tout est lancé automatiquement et le bus est intimement lié à la session de Gnome. Donc avec un Ubuntu fraichement démarré, nous avons les bus system et session qui tournent. Par conséquent, nous n&#8217;avons pas à nous soucier des variables d&#8217;environnement déjà définies au démarrage de la session.</div>
<h4 id="LIII-B">III-B. Utilisation de D-Bus par l&#8217;exemple</h4>
<div>Nous pouvons à présent nous intéresser à d&#8217;autres commandes déjà plus concrètes.</div>
<ul>
<li><em><strong>dbus-monitor</strong></em>, comme son nom l&#8217;indique, permet à la façon “wireshark” d&#8217;observer ce qui transite sur le bus.</li>
<li><em><strong>dbus-monitor &#8211;system</strong></em> permet d&#8217;observer le bus system</li>
<li><em><strong>dbus-monitor &#8211;session</strong></em> permet d&#8217;observer le bus session</li>
</ul>
<div>Sans paramètre donné, dbus-monitor observera le bus session.</div>
<div>Vous pouvez alors voir qu&#8217;au sein d&#8217;une session Ubuntu énormément d&#8217;information transite sur le bus. En observant le bus system, on peut remarquer que des informations transitent lorsque l&#8217;on branche ou débranche une souris par exemple.</div>
<div>Il est possible filtrer les messages en spécifiant le type, l&#8217;émetteur, l&#8217;interface, &#8230; Par exemple observer les signaux envoyés par l&#8217;objet org.gnome.TypingMonitor:</div>
<div>
<table id="codeTabled0e651">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e651">
<div id="codeOverflowd0e651">
<pre><code id="contenuCoded0e651">dbus-monitor <code>type</code>=signal <code>sender</code>=org.gnome.TypingMonitor <code>interface</code>=org.gnome.TypingMonitor
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>Ou pour espionner les signaux de Pidgins, nous pouvons utiliser la syntaxe suivante :</div>
<div>
<table id="codeTabled0e666">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e666">
<div id="codeOverflowd0e666">
<pre><code id="contenuCoded0e666">dbus-monitor <code>type</code>=signal <code>interface</code>=im.pidgin.purple.PurpleInterface
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>Les outils graphiques :</div>
<ul>
<li><a href="http://live.gnome.org/DFeet">d-feet</a></li>
<li><a href="http://willthompson.co.uk/bustle/">bustle</a></li>
<li><a href="http://www.ndesk.org/DBusExplorer">DBusExplorer</a></li>
<li><a href="http://www.vitavonni.de/projekte/dbus-inspector.html.de">dbus-inspector</a></li>
<li><a href="http://doc.qt.nokia.com/4.5/qdbusviewer.html">QDBusViewer</a></li>
</ul>
<div>permettent également d&#8217;observer ce qui transite sur D-Bus et de communiquer avec les processus. Mais d&#8217;autres applications existent, comme <a href="http://alban.apinc.org/blog/2010/04/01/d-bus-debugging-how-to-use-d-feet-on-n900/">dbus-daemon-proxy</a> développée par Alban Créquy qui redirige tout le trafic D-Bus par TCP. Outil initialement prévu pour teléphone nokia N900, pratique pour débugger à distance.</div>
<div>Pour terminer, le plus intéressant, l&#8217;outil dbus-send. Cette commande permet tout simplement d&#8217;envoyer un message depuis un script shell, et va me permettre d&#8217;illustrer concrètement mes précédentes explications.</div>
<div><em>dbus-send</em> attend au minimum les arguments suivants :</div>
<ul>
<li>le nom du destinataire</li>
<li>l&#8217;object path</li>
<li>le nom du message</li>
<li>et dans certains cas le type de message est requis</li>
</ul>
<div>Prenons quelques exemples sous Ubuntu</div>
<div>
<table id="codeTabled0e734">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e734">
<div id="codeOverflowd0e734">
<pre><code id="contenuCoded0e734">dbus-send --<code>dest</code>=<code>'</code><code>org.gnome.Rhythmbox</code><code>'</code> /org/gnome/Rhythmbox/Player org.gnome.Rhythmbox.Player.next
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>envoie le message next au logiciel Rythmbox ce qui fait passer à la musique suivante</div>
<div>
<table id="codeTabled0e750">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e750">
<div id="codeOverflowd0e750">
<pre><code id="contenuCoded0e750">dbus-send --<code>dest</code>=org.freedesktop.PowerManagement /org/freedesktop/PowerManagement/Backlight org.freedesktop.PowerManagement.Backlight.SetBrightness uint32:<code>25</code>
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>réduit à 25% la luminosité de votre écran</div>
<div>
<table id="codeTabled0e762">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e762">
<div id="codeOverflowd0e762">
<pre><code id="contenuCoded0e762">dbus-send --print-reply --<code>dest</code>=org.freedesktop.PowerManagement /org/freedesktop/PowerManagement/Backlight org.freedesktop.PowerManagement.Backlight.GetBrightness
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>retourne la valeur de la luminosité de votre écran</div>
<div>
<table id="codeTabled0e771">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e771">
<div id="codeOverflowd0e771">
<pre><code id="contenuCoded0e771">dbus-send --<code>type</code>=method_call --<code>dest</code>=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>verrouille votre écran</div>
<div>
<table id="codeTabled0e783">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e783">
<div id="codeOverflowd0e783">
<pre><code id="contenuCoded0e783">dbus-send --<code>type</code>=method_call --<code>dest</code>=org.freedesktop.PowerManagement /org/freedesktop/PowerManagement org.freedesktop.PowerManagement.Shutdown
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>éteint votre ordinateur</div>
<div>
<table id="codeTabled0e795">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e795">
<div id="codeOverflowd0e795">
<pre><code id="contenuCoded0e795">dbus-send --system --print-reply --<code>dest</code>=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.GetAllProperties
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>retourne toutes les propriétés de HAL (hardware abstraction layer), c&#8217;est à dire de votre matériel.</div>
<div>Etc.</div>
<h3 id="LIV">IV. Gestion de la sécurité avec D-Bus</h3>
<div>D-Bus a également été développé dans un soucis de sécurité lors de l&#8217;échanges de messages. Les politiques de sécurité de D-Bus permettent de spécifier qui a le droit de parler à qui, ce qui est réellement pratique.</div>
<div>La politique de sécurité de D-Bus se précise dans les dossiers :</div>
<ul>
<li>le dossier /etc/dbus-1/system.d pour le bus système</li>
<li>le dossier /etc/dbus-1/session.d pour le bus session</li>
</ul>
<div>Elle se présente sous la force de fichiers XML à placer directement dans les dossier cités précédemment. Peu importe le nom des fichiers, seul le contenu va jouer ici.</div>
<div>Voici un exemple très simple qui autorise l&#8217;utilisateur root à</div>
<ul>
<li>posséder l&#8217;objet com.developpez.exemple.ObjetA</li>
<li>envoyer des messages à l&#8217;object com.developpez.exemple.ObjetA</li>
<li>appeler l&#8217;interface com.developpez.exemple.ObjectInterface</li>
</ul>
<div>
<table id="codeTabled0e847">
<tbody>
<tr>
<td>
<div id="codeWrapperd0e847">
<div id="codeOverflowd0e847">
<pre><code id="contenuCoded0e847">
<code>&lt;!</code><code>DOCTYPE</code><code> </code><code>busconfig</code><code> </code><code>PUBLIC</code>
<code> </code><code>"</code><code>-//freedesktop//DTD</code><code> </code><code>D-BUS</code><code> </code><code>Bus</code><code> </code><code>Configuration</code><code> </code><code>1.0//EN</code><code>"</code>
<code> </code><code>"</code><code>http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd</code><code>"</code><code>&gt;</code>
<code>&lt;</code><code>busconfig</code><code>&gt;</code>
    <code>&lt;</code><code>policy</code><code> </code><code>user</code><code>=</code><code>"</code><code>root</code><code>"</code><code>&gt;</code>
        <code>&lt;</code><code>allow</code><code> </code><code>own</code><code>=</code><code>"</code><code>com.developpez.exemple.ObjetA</code><code>"</code><code>/</code><code>&gt;</code>
        <code>&lt;</code><code>allow</code><code> </code><code>send_destination</code><code>=</code><code>"</code><code>com.developpez.exemple.ObjetA</code><code>"</code><code>/</code><code>&gt;</code>
        <code>&lt;</code><code>allow</code><code> </code><code>send_interface</code><code>=</code><code>"</code><code>com.developpez.exemple.ObjectInterface</code><code>"</code><code>/</code><code>&gt;</code>
    <code>&lt;</code><code>/</code><code>policy</code><code>&gt;</code>
<code>&lt;</code><code>/</code><code>busconfig</code><code>&gt;</code>
</code></pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>Il est alors possible de restreindre les accès suivant les utilisateurs, mais surtout de dire qui a droit de parler avec qui et sur quelles interfaces. Pour des explications détaillées sur la configuration des politiques de sécurité, se référer au man de dbus-daemon.</div>
<div>Dans certains cas, la sécurité de D-Bus n&#8217;est pas suffisante, et peut être couplée à SELinux. SELinux apporte la possibilité de restreindre l&#8217;accès d&#8217;applications spéficiques à des services donnés. Je n&#8217;ai jamais eu l&#8217;occasion d&#8217;aller jusque là, mais sa configuration se fait grâce à la balise &lt;selinux&gt;. Pour plus d&#8217;information, se référer également au man ou à <a href="http://www.redhat.com/magazine/003jan05/features/dbus">la documentation de Redhat</a>.</div>
<h3 id="LV">V. Les avantages et inconvénients de D-Bus</h3>
<h4 id="LV-A">V-A. Les avantages</h4>
<ul>
<li>D-Bus est léger</li>
<li>D-Bus est un simple bus partagé par tout le système. Ce qui offre la possibilité de faire communiquer énormément d&#8217;applications entre elles, qu&#8217;elles soient au niveau de la session X ou du noyau.</li>
<li>D-Bus permet une communication synchrone/asynchrone.</li>
<li>Dans certains cas (comme Telepathy), D-Bus peut-être utile pour faire cohabiter des programmes dont les licences seraient contaminantes si elles ne passaient pas par un bus intermédiaire.</li>
<li>D-Bus est multiplateforme et présent sur les 3 OS principaux (Windows, Mac, Linux)</li>
<li>D-Bus peut être détourné de son utilisation &laquo;&nbsp;desktop&nbsp;&raquo; classique et adaptée aux besoins des systèmes embarqués.</li>
<li>D-Bus permet de travailler de façon modulaire et développer des applications découpées en briques communicantes. Une brique peut planter sans impacter les autres et se reconnecter au bus d&#8217;elle même sans que tout le système s&#8217;écroule.</li>
</ul>
<h4 id="LV-B">V-B. Les inconvénients</h4>
<ul>
<li>Suivant le binding choisi D-Bus peut-être contaminant du fait de sa license. Prenons l&#8217;exemple du binding glib, sous license <a href="http://www.opensource.org/licenses/gpl-2.0">GPL V2</a>. Il peut être &laquo;&nbsp;embêtant&nbsp;&raquo; de lier un projet dont on ne souhaite pas publier le code métier sous license open source. Ce genre de désagrément sera abordé dans un futur article dédié au binding glib. Cependant il faut néanmoins bien prendre en compte la question des licenses lorsque l&#8217;on part sur des projets industriels avec D-Bus. Les très mauvaises surprises sont très vite arrivées.</li>
<li>Selon le binding, l&#8217;apport de bibliothèques partagées assez lourdes peut-être assez problématique selon les projets. Pour des cibles de type embarqué par exemple, embarquer le binding glib et ses libdbus.so* n&#8217;est pas un choix à prendre à la légère et peut être même rédhibitoire selon les contraintes de ressources et de place.</li>
<li>Je n&#8217;en trouve pas d&#8217;autres ! <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<h3 id="LVI">VI. Les différents bindings D-Bus</h3>
<div>Il existe <a href="http://www.freedesktop.org/wiki/Software/DBusBindings">différents bindings</a> D-Bus pour utiliser le protocole avec différents langages :</div>
<div>L&#8217;API C &laquo;&nbsp;low-level&nbsp;&raquo; de D-Bus existe pour créer de nouveaux bindings. La librairie permet de travailler de façon très bas niveau sur le protocole. Mais comme la documentation le précise &laquo;&nbsp;<em>If you use this low-level API directly, you&#8217;re signing up for some pain.</em>&nbsp;&raquo; &laquo;&nbsp;<em>Si vous utilisez directement l&#8217;API bas niveau, vous vous engagez à souffrir</em>&nbsp;&raquo; <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
<div>Mais pour travailler avec des langages un peu plus haut niveau, des bindings existent pour les langages suivants. En C avec Glib et Vala, en Python avec <a href="http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html">dbus-python</a> , en C++ avec <a href="http://dbus-cxx.sourceforge.net/">dbus-cxx</a> ou le module <a href="http://doc.trolltech.com/4.7/qtdbus.html">QtDBus de QT</a>, mais aussi en <a href="http://dbus.freedesktop.org/doc/dbus-java/">Java</a>, <a href="http://cgit.freedesktop.org/dbus/dbus-mono/">C#</a>,<a href="http://download.enlightenment.org/snapshots/LATEST/">enlightenment</a>, <a href="http://search.cpan.org/~danberr/Net-DBus-0.33.3/lib/Net/DBus.pm">Perl</a>, <a href="http://pecl.php.net/package/DBus">PHP</a>, Pascal, <a href="https://trac.luon.net/ruby-dbus/">Ruby</a>, <a href="http://hackage.haskell.org/package/dbus-core">Haskell</a>, <a href="http://obus.forge.ocamlcore.org/">OCaml</a>, Objective-C, &#8230;</div>
<h3 id="LVII">VII. Conclusion</h3>
<div>Aujourd&#8217;hui, une très grande part des applications GNOME et KDE utilise D-Bus comme support de communication. Les possibilités d&#8217;interfaçage sur de nombreux langages offre de de belles possibilités de développement multiprocessus. Si j&#8217;arrive à trouver le temps, je rédigerai un prochain article sur des bindings D-Bus en particulier, histoire d&#8217;illustrer encore plus mes propos. En attendant, si vous avez des questions, ou remarques, n&#8217;hésitez pas !</div>
<h3 id="LVIII">VIII. Remerciements</h3>
<div>Je remercie beaucoup <a href="http://www.developpez.net/forums/u54119/bizulk/">bizulk</a> pour sa relecture méticuleuse et ses remarques constructives qui m&#8217;ont été très utiles.</div>
<h3 id="LIX">IX. Bibliographie</h3>
<ul>
<li><a href="http://library.gnome.org/devel/platform-overview/stable/dbus.html.en">http://library.gnome.org/devel/platform-overview/stable/dbus.html.en</a></li>
<li><a href="http://www.ibm.com/developerworks/linux/library/l-dbus.html">http://www.ibm.com/developerworks/linux/library/l-dbus.html</a></li>
<li><a href="http://freedesktop.org/wiki/IntroductionToDBus">http://freedesktop.org/wiki/IntroductionToDBus</a></li>
<li><a href="http://dbus.freedesktop.org/doc/dbus-tutorial.html">http://dbus.freedesktop.org/doc/dbus-tutorial.html</a></li>
<li><a href="http://dbus.freedesktop.org/doc/dbus-specification.html">http://dbus.freedesktop.org/doc/dbus-specification.html</a></li>
<li><a href="http://www.redhat.com/magazine/003jan05/features/dbus">http://www.redhat.com/magazine/003jan05/features/dbus</a></li>
<li><a href="http://www.unixgarden.com/index.php/programmation/decouvertes-et-experimentation-avec-d-bus">http://www.unixgarden.com/index.php/programmation/decouvertes-et-experimentation-avec-d-bus</a></li>
<li><a href="http://www.linuxjournal.com/article/7744">http://www.linuxjournal.com/article/7744</a></li>
<li><a href="http://doc.ubuntu-fr.org/dbus">http://doc.ubuntu-fr.org/dbus</a></li>
<li><a href="http://www.linuxforu.com/teach-me/d-bus-the-smart-simple-powerful-ipc">http://www.linuxforu.com/teach-me/d-bus-the-smart-simple-powerful-ipc</a></li>
<li>Sans compter la mailing-list de D-Bus <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
</div>

<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.yoannsculo.fr%2Fintroduction-au-systeme-de-communication-inter-processus-d-bus%2F&amp;title=Introduction%20au%20syst%C3%A8me%20de%20communication%20inter-processus%20D-Bus" id="wpa2a_6"><img src="http://www.yoannsculo.fr/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.yoannsculo.fr/introduction-au-systeme-de-communication-inter-processus-d-bus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Faire un hash md5 d&#8217;un string en C</title>
		<link>http://www.yoannsculo.fr/faire-un-hash-md5-dun-string-en-c/</link>
		<comments>http://www.yoannsculo.fr/faire-un-hash-md5-dun-string-en-c/#comments</comments>
		<pubDate>Sat, 14 May 2011 23:17:41 +0000</pubDate>
		<dc:creator>Yoann Sculo</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[fonction]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[md5sum]]></category>
		<category><![CDATA[string]]></category>

		<guid isPermaLink="false">http://www.yoannsculo.fr/?p=1656</guid>
		<description><![CDATA[Petit aide mémoire à moi même, et pour les gens qui en auraient besoin un jour. Voici une fonction C bien pratique pour générer le hash md5 d&#8217;une chaîne de caractères en C. Il y a juste besoin de linker openssl (-lssl) lors de la compilation.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.yoannsculo.fr%252Ffaire-un-hash-md5-dun-string-en-c%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fis.gd%2FTcpwfY%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Faire%20un%20hash%20md5%20d%27un%20string%20en%20C%22%20%7D);"></div>
<p style="text-align: justify;">Petit aide mémoire à moi même, et pour les gens qui en auraient besoin un jour. Voici une fonction C bien pratique pour générer le hash md5 d&#8217;une chaîne de caractères en C. Il y a juste besoin de linker openssl (-lssl) lors de la compilation.</p>
<pre class="brush: cpp; title: ; notranslate">
#include &lt;stdio.h&gt;
#include &lt;openssl/md5.h&gt;
#include &lt;string.h&gt;

int md5_hash_from_string (char *string, char *hash)
{
    int i;
    char unsigned md5[MD5_DIGEST_LENGTH] = {0};

    MD5((const unsigned char *)string, strlen(string), md5);

    for (i=0; i &lt; MD5_DIGEST_LENGTH; i++) {
        sprintf(hash + 2*i, &quot;%02x&quot;, md5[i]);
    }
    return 0;
}

int main()
{
    char string[255] = &quot;Hello World&quot;;
    char md5_hash[2*MD5_DIGEST_LENGTH+1] = &quot;&quot;;
    md5_hash_from_string(string, md5_hash);
    printf(&quot;%s\n&quot;, md5_hash);
    return 0;
}
</pre>

<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.yoannsculo.fr%2Ffaire-un-hash-md5-dun-string-en-c%2F&amp;title=Faire%20un%20hash%20md5%20d%26%238217%3Bun%20string%20en%20C" id="wpa2a_8"><img src="http://www.yoannsculo.fr/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.yoannsculo.fr/faire-un-hash-md5-dun-string-en-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Arduino &#8211; Le documentaire</title>
		<link>http://www.yoannsculo.fr/arduino-le-documentaire/</link>
		<comments>http://www.yoannsculo.fr/arduino-le-documentaire/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 13:30:31 +0000</pubDate>
		<dc:creator>Yoann Sculo</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[Systèmes Embarqués]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Documentaire]]></category>
		<category><![CDATA[documentary]]></category>
		<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.yoannsculo.fr/?p=1507</guid>
		<description><![CDATA[Je viens de tomber sur un superbe documentaire qui explique l&#8217;histoire de la carte Arduino. Ça laisse rêveur ! Arduino The Documentary (2010) English HD from gnd on Vimeo.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.yoannsculo.fr%252Farduino-le-documentaire%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fis.gd%2FYgdKLg%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Arduino%20-%20Le%20documentaire%22%20%7D);"></div>
<p style="text-align: justify;">Je viens de tomber sur un superbe documentaire qui explique l&#8217;histoire de la carte Arduino. Ça laisse rêveur !</p>
<p><iframe src="http://player.vimeo.com/video/18539129?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0"></iframe>
<p><a href="http://vimeo.com/18539129">Arduino The Documentary (2010) English HD</a> from <a href="http://vimeo.com/gnd">gnd</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.yoannsculo.fr%2Farduino-le-documentaire%2F&amp;title=Arduino%20%26%238211%3B%20Le%20documentaire" id="wpa2a_10"><img src="http://www.yoannsculo.fr/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.yoannsculo.fr/arduino-le-documentaire/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mon petit compte rendu du CES 2011 à Las Vegas</title>
		<link>http://www.yoannsculo.fr/mon-petit-compte-rendu-du-ces-2011-a-las-vegas/</link>
		<comments>http://www.yoannsculo.fr/mon-petit-compte-rendu-du-ces-2011-a-las-vegas/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 21:30:45 +0000</pubDate>
		<dc:creator>Yoann Sculo</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[Robotique]]></category>
		<category><![CDATA[Systèmes Embarqués]]></category>
		<category><![CDATA[booth]]></category>
		<category><![CDATA[CES]]></category>
		<category><![CDATA[CES 2011]]></category>
		<category><![CDATA[Karotz]]></category>
		<category><![CDATA[lapin]]></category>
		<category><![CDATA[Las Vegas]]></category>
		<category><![CDATA[Mindscape]]></category>
		<category><![CDATA[Rabbit]]></category>
		<category><![CDATA[Salon]]></category>
		<category><![CDATA[USA]]></category>
		<category><![CDATA[violet]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://www.yoannsculo.fr/?p=1413</guid>
		<description><![CDATA[Je suis rentré lundi dernier de Las Vegas, où se déroulait comme chaque année le CES. J&#8217;y étais pour le travail, sur le stand de Karotz pour la présentation du dit produit, sur lequel je travaille depuis un an déjà. Nous étions donc au CES dès mardi matin à la recherche de notre petit stand. [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.yoannsculo.fr%252Fmon-petit-compte-rendu-du-ces-2011-a-las-vegas%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fis.gd%2Fn7owoA%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Mon%20petit%20compte%20rendu%20du%20CES%202011%20%C3%A0%20Las%20Vegas%22%20%7D);"></div>
<div id="attachment_1414" class="wp-caption aligncenter" style="width: 584px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000603.jpg"><img class="size-large wp-image-1414  " title="P1000603" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000603-1024x768.jpg" alt="CES 2011 - Las Vegas" width="574" height="430" /></a><p class="wp-caption-text">CES 2011 - Las Vegas</p></div>
<p style="text-align: justify;">Je suis rentré lundi dernier de Las Vegas, où se déroulait comme chaque année le CES. J&#8217;y étais pour le travail, sur le stand de Karotz pour la présentation du dit produit, sur lequel je travaille depuis un an déjà.</p>
<p style="text-align: justify;">Nous étions donc au CES dès mardi matin à la recherche de notre petit stand. On a fini par le trouver au fin fond du labyrinthe de caisses et de cartons. Hélas il a fallu attendre le lendemain pour avoir enfin tout notre matériel et nos Karotz qui étaient bloqués à la douane &#8230; Mon routeur de secours prévu exactement pour ce cas a eu la bonne idée de griller lors de son branchement ! Gros FAIL ! Bref, je peux vous dire que l&#8217;arrivée du fenwick et de notre petite palette le mercredi après midi était un sacré soulagement ! Ouf !</p>
<table>
<tbody>
<tr>
<td>
<div id="attachment_1417" class="wp-caption aligncenter" style="width: 250px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000617.jpg"><img class="size-medium wp-image-1417 " title="P1000617" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000617-300x225.jpg" alt="CES avant l'ouverture" width="240" height="180" /></a><p class="wp-caption-text">CES avant l&#39;ouverture</p></div></td>
<td>
<p><div id="attachment_1424" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000824.jpg"><img class="size-medium wp-image-1424 " title="P1000824" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000824-300x225.jpg" alt="Stand Karotz" width="300" height="225" /></a><p class="wp-caption-text">Stand Karotz</p></div></td>
</tr>
<tr>
<td>
<p><div id="attachment_1421" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/IMAG0058.jpg"><img class="size-medium wp-image-1421 " title="IMAG0058" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/IMAG0058-300x179.jpg" alt="Arrivée des Karotz" width="300" height="179" /></a><p class="wp-caption-text">Arrivée des Karotz</p></div></td>
<td></td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Journée/soirée de taré à tout installer à la vitesse de la lumière et notre stand était tout beau et prêt à affronter la foule du jeudi. Le CES a en effet commencé particulièrement fort. Toute la journée (et les jours suivants) le stand n&#8217;a pas désempli. Evidemment, la journée n&#8217;était pas terminée à 18h, car j&#8217;ai dû aller installer notre second stand au <a href="http://www.showstoppers.com/">ShowStoppers</a>, salon plus privé avec des journalistes, en parallèle du CES. Bon alors, forcément, comme au CES, le wifi faut pas compter dessus (trop d&#8217;interférences entre stands)&#8230; Par chance, nos amis Karotz fonctionnent en Ethernet !</p>
<p style="text-align: justify;">Et nous avons donc enchaîné sur une soirée de Karotz très productive.</p>
<table>
<tbody>
<tr>
<td>
<p><div id="attachment_1434" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/karotz_booth.jpg"><img class="size-medium wp-image-1434 " title="karotz_booth" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/karotz_booth-300x225.jpg" alt="Du monde au stand Karotz" width="300" height="225" /></a><p class="wp-caption-text">Du monde au stand Karotz</p></div></td>
<td>
<p><div id="attachment_1431" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000811.jpg"><img class="size-medium wp-image-1431 " title="P1000811" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000811-300x225.jpg" alt="Karotz au ShowStoppers" width="300" height="225" /></a><p class="wp-caption-text">Karotz au ShowStoppers</p></div></td>
</tr>
</tbody>
</table>
<p>Et rebelote au CES jusqu&#8217;à dimanche ! En tant qu&#8217;exposant, le CES est juste complètement épuisant, mais nous avons déjà pu avoir quelques retour sur le web de notre présence au CES <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<ul>
<li><a href="http://www.butterscotch.com/show/CES-2011-Karotz-The-Broadband-Bunny-Rabbit">CES-2011-Karotz-The-Broadband-Bunny-Rabbit</a></li>
<li><a href="http://www.daddoes.com/1255/ces-2011-awards/">CES 2011 awards</a> (qui nous décerne le &laquo;&nbsp;top product of CES 2011&#8243; <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</li>
<li><a href="http://blog.laptopmag.com/karotz-robotic-rabbit-demo-reads-your-feeds-plays-music-looks-cute-doing-it">Karotz Robotic Rabbit Demo: Reads Your Feeds, Plays Music, Looks Cute Doing It</a></li>
<li><a href="http://latimesblogs.latimes.com/technology/2011/01/consumer-electronics-show-mindscape-karotz.html">Consumer Electronics Show: Karotz, a bunny to do your bidding</a></li>
<li><a href="http://www.lifestylermag.com/technology/karotz-debuts-upgraded-wi-fi-communication-rabbit">Karotz Debuts Upgraded Wi-fi Communication Rabbit</a></li>
<li><a href="http://dvice.com/archives/2011/01/nabaztag-rabbit.php">Nabaztag rabbitputer evolves into Karotz compubunny</a></li>
<li><a href="http://www.gearlog.com/2011/01/karotz_the_new_nabaztag.php">Karotz: The New Nabaztag</a></li>
<li><a href="http://www.gadgetell.com/tech/comment/ces-2011-karotz-the-successor-to-nabaztag">CES 2011: Karotz, the successor to Nabaztag</a></li>
<li>&#8230;</li>
</ul>
<p style="text-align: justify;">Ce que je regrette c&#8217;est de ne pas avoir eu énormément de temps pour visiter le reste du CES et le ShowStoppers (que je n&#8217;ai absolument pas pu parcourir). J&#8217;ai pu faire un tour rapide au CES, mais j&#8217;aurais aimé en voir plus. Vis à vis du CES 2011, je n&#8217;ai rien vu de vraiment transcendant&#8230; Ne comprenant pas trop l&#8217;engouement pour la télé 3D que nous avions à toutes les sauces, j&#8217;ai passé mon chemin. Niveau tablettes, nous avions de quoi faire <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  J&#8217;ai pu aller voir la Galaxy Tab, que nous avons déjà au travail. Je suis allé m&#8217;amuser avec la Google TV de Logitech. Encore une fois, rien de bien fantastique, c&#8217;est une set top box que l&#8217;on a depuis un paquets d&#8217;années en France, mais à la sauce Google quoi. J&#8217;ai souhaité bien du courage à la fille du stand pour lancer le produit en France <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<table>
<tbody>
<tr>
<td>
<p><div id="attachment_1448" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000971.jpg"><img class="size-medium wp-image-1448" title="P1000971" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000971-300x225.jpg" alt="Google TV de Logitech" width="300" height="225" /></a><p class="wp-caption-text">Google TV de Logitech</p></div></td>
<td>
<p><div id="attachment_1449" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000972.jpg"><img class="size-medium wp-image-1449" title="P1000972" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000972-300x225.jpg" alt="Google TV de Logitech" width="300" height="225" /></a><p class="wp-caption-text">Google TV de Logitech</p></div></td>
</tr>
</tbody>
</table>
<p>Bon, j&#8217;ai donc continué mon tour, j&#8217;ai pu revoir les robots que nous voyons depuis quelques années sur le net et dans les magazines spécialisés. C&#8217;était tout de même bien sympa de les tester ! J&#8217;ai pu également en voir de nouveaux !</p>
<table>
<tbody>
<tr>
<td>
<p><div id="attachment_1451" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000830.jpg"><img class="size-medium wp-image-1451" title="P1000830" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000830-300x225.jpg" alt="Phoque Paro - Robot Therapy" width="300" height="225" /></a><p class="wp-caption-text">Phoque Paro - Robot Therapy</p></div></td>
<td>
<p><div id="attachment_1452" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000833.jpg"><img class="size-medium wp-image-1452" title="P1000833" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000833-300x225.jpg" alt="Oh un robot trop meeugnon !" width="300" height="225" /></a><p class="wp-caption-text">Oh un robot trop meeugnon !</p></div></td>
</tr>
<tr>
<td>
<p><div id="attachment_1454" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000841.jpg"><img class="size-medium wp-image-1454" title="P1000841" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000841-300x225.jpg" alt="Le Robot Pléo" width="300" height="225" /></a><p class="wp-caption-text">Le Robot Pléo</p></div></td>
<td>
<p><div id="attachment_1456" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000839.jpg"><img class="size-medium wp-image-1456" title="P1000839" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000839-300x225.jpg" alt="Un robot masseur" width="300" height="225" /></a><p class="wp-caption-text">Un robot masseur</p></div></td>
</tr>
<tr>
<td>
<p><div id="attachment_1458" class="wp-caption aligncenter" style="width: 235px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000842.jpg"><img class="size-medium wp-image-1458" title="P1000842" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000842-225x300.jpg" alt="Un robot qui vous aide à faire votre régime" width="225" height="300" /></a><p class="wp-caption-text">Un robot qui vous aide à faire votre régime</p></div></td>
<td></td>
</tr>
</tbody>
</table>
<p>et j&#8217;en passe &#8230;</p>
<p>Mais je n&#8217;ai été réellement bluffé que par 2 trucs :</p>
<p style="text-align: justify;"><strong>L&#8217;imprimante 3D <a href="http://www.makerbot.com">MakerBot Industries</a></strong> (que j&#8217;avais déjà entrevue sur le net) mais avec une explication live c&#8217;est nettement plus classe. Il s&#8217;agit donc d&#8217;une imprimante 3D qui imprime ce que vous voulez en plastique, en chauffant de la matière première. Un modèle 3D en input, et zou on a un modèle 3D réel en quelques heures. C&#8217;est juste fantastique pour faire des prototypes. Pour $1225 c&#8217;est la fête du bricoleur ! Ils ont même poussé le vice à recréer un bonhomme légo pièce par pièce ! Woooot ! Bon c&#8217;est un peu cher je vous l&#8217;avoue. MAIS j&#8217;adore !!!</p>
<table>
<tbody>
<tr>
<td>
<p><div id="attachment_1465" class="wp-caption aligncenter" style="width: 235px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000975.jpg"><img class="size-medium wp-image-1465" title="P1000975" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000975-225x300.jpg" alt="Makerbot l'imprimante 3D" width="225" height="300" /></a><p class="wp-caption-text">Makerbot l&#39;imprimante 3D</p></div></td>
<td>
<p><div id="attachment_1466" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000976.jpg"><img class="size-medium wp-image-1466" title="P1000976" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000976-300x225.jpg" alt="Makerbot l'imprimante 3D" width="300" height="225" /></a><p class="wp-caption-text">Makerbot l&#39;imprimante 3D</p></div></td>
</tr>
</tbody>
<tbody>
<tr>
<td>
<p><div id="attachment_1467" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000977.jpg"><img class="size-medium wp-image-1467" title="P1000977" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000977-300x225.jpg" alt="Un visage en 3D réalisé avec Makerbot" width="300" height="225" /></a><p class="wp-caption-text">Un visage en 3D réalisé avec Makerbot</p></div></td>
<td>
<p><div id="attachment_1470" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000978.jpg"><img class="size-medium wp-image-1470" title="P1000978" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000978-300x225.jpg" alt="Quelques exemples de réalisations" width="300" height="225" /></a><p class="wp-caption-text">Quelques exemples de réalisations</p></div></td>
</tr>
<tr>
<td>
<p><div id="attachment_1471" class="wp-caption aligncenter" style="width: 235px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000979.jpg"><img class="size-medium wp-image-1471" title="P1000979" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000979-225x300.jpg" alt="Un perso lego articulé en 3D réalisé avec Makerbot" width="225" height="300" /></a><p class="wp-caption-text">Un perso lego articulé en 3D réalisé avec Makerbot</p></div></td>
<td></td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><strong>Et le proto de jouet d&#8217;Intel</strong> : qui montrait un proto d&#8217;interaction réel/virtuel entre jouets (légos) pour les enfants. Ça, j&#8217;aurais bien aimé l&#8217;avoir gosse ! En gros on pose un dragon légo sur une surface plane, ça commence à projeter des flammes devant le dragon. On l&#8217;approche d&#8217;une maison, et fiou elle prend feu. Mais comme un camion de pompier en légo n&#8217;est pas loin, il suffit de l&#8217;approcher et un jet d&#8217;eau sort de la lance et éteint la maison. En discutant avec le mec d&#8217;Intel il m&#8217;a expliqué que s&#8217;en était encore qu&#8217;à l&#8217;état de proto et qu&#8217;ils réfléchissaient à la façon de créer les interactions et surtout permettre au gens d&#8217;en créer. Snif pas pour tout de suite. Mais tellement de potentiel ! J&#8217;aime !</p>
<p><div id="attachment_1473" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000942.jpg"><img class="size-medium wp-image-1473" title="P1000942" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000942-300x225.jpg" alt="Le proto d'Intel" width="300" height="225" /></a><p class="wp-caption-text">Le proto d&#39;Intel</p></div>
<p>Mes impressions sont forcément biaisées, du fait de ne pas avoir pu tout parcourir au CES faute de temps <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Donc voilà, CES 2011, salon bien épuisant ! En espérant pouvoir revenir l&#8217;année prochaine au CES 2012 avec un nouveau produit à présenter <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Et pour la route, quelques photos de Las Vegas, parce que ces américains sont de grands malades !</p>
<table>
<tbody>
<tr>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000550.jpg"><img class="aligncenter size-medium wp-image-1500" title="P1000550" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000550-300x225.jpg" alt="" width="300" height="225" /></a></td>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000711.jpg"><img class="aligncenter size-medium wp-image-1483" title="P1000711" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000711-300x225.jpg" alt="" width="300" height="225" /></a></td>
</tr>
<tr>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000761.jpg"><img class="aligncenter size-medium wp-image-1484" title="P1000761" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000761-300x225.jpg" alt="" width="300" height="225" /></a></td>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000769.jpg"><img class="aligncenter size-medium wp-image-1485" title="P1000769" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000769-300x225.jpg" alt="" width="300" height="225" /></a></td>
</tr>
<tr>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000787.jpg"><img class="aligncenter size-medium wp-image-1486" title="P1000787" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000787-300x225.jpg" alt="" width="300" height="225" /></a></td>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000804.jpg"><img class="aligncenter size-medium wp-image-1488" title="P1000804" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000804-300x225.jpg" alt="" width="300" height="225" /></a></td>
</tr>
<tr>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000821.jpg"><img class="aligncenter size-medium wp-image-1490" title="P1000821" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000821-300x225.jpg" alt="" width="300" height="225" /></a></td>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000853.jpg"><img class="aligncenter size-medium wp-image-1491" title="P1000853" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000853-300x225.jpg" alt="" width="300" height="225" /></a></td>
</tr>
<tr>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000860.jpg"><img class="aligncenter size-medium wp-image-1492" title="P1000860" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000860-300x225.jpg" alt="" width="300" height="225" /></a></td>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000879.jpg"><img class="aligncenter size-medium wp-image-1493" title="P1000879" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000879-300x225.jpg" alt="" width="300" height="225" /></a></td>
</tr>
<tr>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000907.jpg"><img class="aligncenter size-medium wp-image-1494" title="P1000907" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000907-300x225.jpg" alt="" width="300" height="225" /></a></td>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1010055.jpg"><img class="aligncenter size-medium wp-image-1497" title="P1010055" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1010055-300x225.jpg" alt="" width="300" height="225" /></a></td>
</tr>
<tr>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1010017.jpg"><img class="aligncenter size-medium wp-image-1496" title="P1010017" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1010017-225x300.jpg" alt="" width="225" height="300" /></a></td>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000922.jpg"><img class="aligncenter size-medium wp-image-1495" title="P1000922" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1000922-225x300.jpg" alt="" width="225" height="300" /></a></td>
</tr>
<tr>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1010096.jpg"><img class="aligncenter size-medium wp-image-1498" title="P1010096" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1010096-300x225.jpg" alt="" width="300" height="225" /></a></td>
<td><a href="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1010135.jpg"><img class="aligncenter size-medium wp-image-1499" title="P1010135" src="http://www.yoannsculo.fr/wp-content/uploads/2011/01/P1010135-300x225.jpg" alt="" width="300" height="225" /></a></td>
</tr>
</tbody>
</table>

<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.yoannsculo.fr%2Fmon-petit-compte-rendu-du-ces-2011-a-las-vegas%2F&amp;title=Mon%20petit%20compte%20rendu%20du%20CES%202011%20%C3%A0%20Las%20Vegas" id="wpa2a_12"><img src="http://www.yoannsculo.fr/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.yoannsculo.fr/mon-petit-compte-rendu-du-ces-2011-a-las-vegas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Déménagement de serveur</title>
		<link>http://www.yoannsculo.fr/demenagement-de-serveur/</link>
		<comments>http://www.yoannsculo.fr/demenagement-de-serveur/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 14:38:39 +0000</pubDate>
		<dc:creator>Yoann Sculo</dc:creator>
				<category><![CDATA[Général]]></category>

		<guid isPermaLink="false">http://www.yoannsculo.fr/?p=1322</guid>
		<description><![CDATA[Et voilà ! Depuis le temps que je cherchais à le faire ! Je viens de déménager mon blog (et ma flopée d&#8217;autres sites) sur mon nouveau serveur mutualisé. J&#8217;en avais marre d&#8217;administrer mon serveur dédié, car c&#8217;est du travail, et un métier &#8230; Mon truc c&#8217;est plutôt de créer des systèmes Linux, mais les administrer c&#8217;est [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.yoannsculo.fr%252Fdemenagement-de-serveur%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22D%C3%A9m%C3%A9nagement%20de%20serveur%22%20%7D);"></div>
<p style="text-align: justify;">Et voilà ! Depuis le temps que je cherchais à le faire ! Je viens de déménager mon blog (et ma flopée d&#8217;autres sites) sur mon nouveau serveur mutualisé. J&#8217;en avais marre d&#8217;administrer mon serveur dédié, car c&#8217;est du travail, et un métier &#8230; Mon truc c&#8217;est plutôt de créer des systèmes Linux, mais les administrer c&#8217;est moins fun ! C&#8217;est comme les légos quand j&#8217;étais enfant, ça devient moins marrant une fois que tout est construit.</p>
<p>Bref, juste pour dire que normalement je devrais :</p>
<ul>
<li>ne plus avoir de problème de Captcha</li>
<li>et ne plus avoir de problème de mails capricieux qui envoient les notifications de commentaires un mois après.</li>
</ul>
<p>J&#8217;en ai même profité pour passer sous WordPress 3.0.1.</p>
<p>Bref, tout est bien dans le meilleur des monde <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.yoannsculo.fr%2Fdemenagement-de-serveur%2F&amp;title=D%C3%A9m%C3%A9nagement%20de%20serveur" id="wpa2a_14"><img src="http://www.yoannsculo.fr/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.yoannsculo.fr/demenagement-de-serveur/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problème de Captcha résolu</title>
		<link>http://www.yoannsculo.fr/probleme-de-captcha-resolu/</link>
		<comments>http://www.yoannsculo.fr/probleme-de-captcha-resolu/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 08:08:16 +0000</pubDate>
		<dc:creator>Yoann Sculo</dc:creator>
				<category><![CDATA[Général]]></category>

		<guid isPermaLink="false">http://www.yoannsculo.fr/?p=1133</guid>
		<description><![CDATA[J&#8217;ai mis à jour un certain nombre de plugins récemment, dont celui du CAPTCHA. On vient de me signaler qu&#8217;un message d&#8217;erreur bloquait la publication de nouveaux commentaires. Merci les mises à jours automatiques de WordPress !! Je viens de corriger le problème On peut à nouveau écrire des commentaires. Si ça se reproduit, n&#8217;hésitez [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.yoannsculo.fr%252Fprobleme-de-captcha-resolu%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Probl%C3%A8me%20de%20Captcha%20r%C3%A9solu%22%20%7D);"></div>
<p style="text-align: justify;">J&#8217;ai mis à jour un certain nombre de plugins récemment, dont celui du CAPTCHA. On vient de me signaler qu&#8217;un message d&#8217;erreur bloquait la publication de nouveaux commentaires. Merci les mises à jours automatiques de WordPress !!</p>
<p style="text-align: justify;">Je viens de corriger le problème <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  On peut à nouveau écrire des commentaires. Si ça se reproduit, n&#8217;hésitez pas à <a href="http://www.yoannsculo.fr/contact">me contacter</a>.</p>

<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.yoannsculo.fr%2Fprobleme-de-captcha-resolu%2F&amp;title=Probl%C3%A8me%20de%20Captcha%20r%C3%A9solu" id="wpa2a_16"><img src="http://www.yoannsculo.fr/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.yoannsculo.fr/probleme-de-captcha-resolu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MeeGo ne serait-elle pas la vraie alternative Libre à Android ?</title>
		<link>http://www.yoannsculo.fr/meego-ne-serait-elle-pas-la-vraie-alternative-libre-a-android/</link>
		<comments>http://www.yoannsculo.fr/meego-ne-serait-elle-pas-la-vraie-alternative-libre-a-android/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 21:25:13 +0000</pubDate>
		<dc:creator>Yoann Sculo</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Systèmes Embarqués]]></category>
		<category><![CDATA[alternative]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Intel]]></category>
		<category><![CDATA[Libre]]></category>
		<category><![CDATA[LinuxCon]]></category>
		<category><![CDATA[MeeGo]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[store]]></category>

		<guid isPermaLink="false">http://www.yoannsculo.fr/?p=1006</guid>
		<description><![CDATA[Je suis tombé aujourd&#8217;hui sur un article très intéressant d&#8217;Ars Technica, relayé par Toolinux. La semaine dernière, à la conférence LinuxCon à Boston, les créateurs de MeeGo ont abordé les éléments qui différenciaient leur nouveau système de ceux existants sur le marché. En profitant pour annoncer la sortie du premier appareil sous MeeGo cette année, [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.yoannsculo.fr%252Fmeego-ne-serait-elle-pas-la-vraie-alternative-libre-a-android%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22MeeGo%20ne%20serait-elle%20pas%20la%20vraie%20alternative%20Libre%20%C3%A0%20Android%20%3F%22%20%7D);"></div>
<p style="text-align: justify;"><a href="http://www.yoannsculo.fr/wp-content/uploads/2010/08/meego_twins_ars.jpg"><img class="alignleft size-full wp-image-1019" title="meego_twins_ars" src="http://www.yoannsculo.fr/wp-content/uploads/2010/08/meego_twins_ars.jpg" alt="" width="300" height="169" /></a>Je suis tombé aujourd&#8217;hui sur un article très intéressant d&#8217;<a href="http://arstechnica.com/open-source/news/2010/08/intel-nokia-tout-meego-as-inclusive-alternative-to-android.ars">Ars Technica</a>, relayé par <a href="http://www.toolinux.com/lininfo/toolinux-information/developpement/article/et-si-la-veritable-alternative">Toolinux</a>. La semaine dernière, à la conférence LinuxCon à Boston, les créateurs de MeeGo ont abordé les éléments qui différenciaient leur nouveau système de ceux existants sur le marché. En profitant pour annoncer la sortie du premier appareil sous MeeGo cette année, Thomas Miller (Nokia&#8217;s MeeGo Ecosystem Development head) a déclaré que l&#8217;appareil serait ouvert. Dans le sens où les utilisateurs seraient à même de modifier le software. Donc de quoi ravir les early-adopters.</p>
<p style="text-align: justify;">Un des avantages notables de MeeGo, et pas des moindres, est que les constructeurs seront en mesure de participer au processus de développement du système de façon plus active. Ce qui fait donc la force du produit à mes yeux ! L&#8217;approche est différente de celle de Google Android qui est moins proche du Libre qu&#8217;on voudrait le croire. Les fondateurs de MeeGo montrent ainsi un peu du doigt la politique de Google Android, moins ouverte.</p>
<p style="text-align: justify;">Mettant en avant la diversité des langages de programmation disponibles sur MeeGo, les créateurs de MeeGo ont également abordé le point de la distribution des applications. Les utilisateurs et développeurs auront la possibilité de disposer de plusieurs stores. Les fabriquant seraient également en mesure de bénéficier de leur propre de store basé sur le service AppUp d&#8217;Intel</p>
<p style="text-align: justify;">Concernant le choix de QT comme framework par défaut, je vois déjà râler les gens qui critiquent le C++ et préfèrent des langages plus &laquo;&nbsp;facile d&#8217;accès&nbsp;&raquo;. Cependant, utilisant Android quotidiennement, j&#8217;ai légèrement le sentiment que l&#8217;Android Market devient de plus en plus pollué par les applications buggués, inutiles et faites à la va-vite. Je ne sais pas comment les stores de MeeGo seront gérés et agencés. Toutefois, je me demande si la décision d&#8217;utiliser QT ne serait pas à terme un gage de qualité (ne pas y voir un sentiment anti JAVA, mais plutôt anti développeurs du dimanche).</p>
<p style="text-align: justify;">Idéalement, je rêverais beaucoup plus d&#8217;un système d&#8217;applications libres, améliorées par les utilisateurs et développeurs, plutôt qu&#8217;un système de magasin en ligne où les gens ne publient que leurs exécutables. Attention, je fais bien la distinction entre libre et gratuit. A vrai dire, l&#8217;aspect Libre d&#8217;Android ne transparaît pas du tout dans ses applications. Point que je trouve réellement intéressant chez MeeGo s&#8217;ils s&#8217;aventurent dans l&#8217;optique de l&#8217;ouverture.</p>
<p style="text-align: justify;">Tout cela pour conclure que ces annonces illustrent une vision des choses bien différente de celle des concurrents actuels de MeeGo. Dans ce sens, c&#8217;est exactement ce qui se rapproche de ma façon de voir les choses. A ce titre, je pense que MeeGo aurait parfaitement sa place sur le marché, offrant des perspectives plus proches du Libre. J&#8217;ai maintenant juste hâte que le premier appareil sous MeeGo sorte <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.yoannsculo.fr%2Fmeego-ne-serait-elle-pas-la-vraie-alternative-libre-a-android%2F&amp;title=MeeGo%20ne%20serait-elle%20pas%20la%20vraie%20alternative%20Libre%20%C3%A0%20Android%20%3F" id="wpa2a_18"><img src="http://www.yoannsculo.fr/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.yoannsculo.fr/meego-ne-serait-elle-pas-la-vraie-alternative-libre-a-android/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RACER &#8211; Un allemand recrée un véritable Wipeout radiocommandé</title>
		<link>http://www.yoannsculo.fr/racer-un-allemand-recree-un-veritable-wipeout-radiocommande/</link>
		<comments>http://www.yoannsculo.fr/racer-un-allemand-recree-un-veritable-wipeout-radiocommande/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 19:08:37 +0000</pubDate>
		<dc:creator>Yoann Sculo</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[Systèmes Embarqués]]></category>
		<category><![CDATA[arcade]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[circuit]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[WipeOut]]></category>

		<guid isPermaLink="false">http://www.yoannsculo.fr/?p=996</guid>
		<description><![CDATA[Je suis récemment tombé sur un projet complètement génial réalisé par un Allemand. Mêlant jeu vidéo et réalité virtuelle, l&#8217;idée est de télécommander une voiture dans un véritable circuit en carton le tout commandé par une borne d&#8217;arcade. Et bien sûr, géré par une carte Arduino ! Tiens, tiens ! L&#8217;idée est vraiment énorme. J&#8217;ai [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_jade" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.yoannsculo.fr%252Fracer-un-allemand-recree-un-veritable-wipeout-radiocommande%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22RACER%20-%20Un%20allemand%20recr%C3%A9e%20un%20v%C3%A9ritable%20Wipeout%20radiocommand%C3%A9%22%20%7D);"></div>
<p style="text-align: justify;">Je suis récemment tombé sur <a href="http://racer.sputnic.tv/">un projet complètement génial</a> réalisé par un Allemand. Mêlant jeu vidéo et réalité virtuelle, l&#8217;idée est de télécommander une voiture dans un véritable circuit en carton le tout commandé par une borne d&#8217;arcade. Et bien sûr, géré par une carte Arduino ! Tiens, tiens !</p>
<p><object class="aligncenter" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=9056286&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed type="application/x-shockwave-flash" width="400" height="225" src="http://vimeo.com/moogaloop.swf?clip_id=9056286&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: justify;">L&#8217;idée est vraiment énorme. J&#8217;ai un gros projet similaire en tête depuis un moment déjà, je sens que je vais finir par m&#8217;y mettre. Déjà parce que cette vidéo m&#8217;a vraiment donné envie de me lancer pour de bon et ensuite parce que quelqu&#8217;un va finir par avoir la même idée que moi <img src='http://www.yoannsculo.fr/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.yoannsculo.fr%2Fracer-un-allemand-recree-un-veritable-wipeout-radiocommande%2F&amp;title=RACER%20%26%238211%3B%20Un%20allemand%20recr%C3%A9e%20un%20v%C3%A9ritable%20Wipeout%20radiocommand%C3%A9" id="wpa2a_20"><img src="http://www.yoannsculo.fr/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.yoannsculo.fr/racer-un-allemand-recree-un-veritable-wipeout-radiocommande/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

