<?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>Adrien Baptiste</title>
	<atom:link href="http://www.adrienbaptiste.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.adrienbaptiste.com</link>
	<description>Développeur web</description>
	<lastBuildDate>Mon, 14 May 2012 06:29:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Experimental Box #2 &#8211; Webcam Three.js</title>
		<link>http://www.adrienbaptiste.com/2012/02/experimental-box-2-webcam-three-js/</link>
		<comments>http://www.adrienbaptiste.com/2012/02/experimental-box-2-webcam-three-js/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 17:03:09 +0000</pubDate>
		<dc:creator>Baptiste</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.adrienbaptiste.com/?p=777</guid>
		<description><![CDATA[Voici la deuxième utilisant la techno WebRTC permettant de manipuler facilement des flux depuis Three.js. Cette démo s&#8217;appuie sur l&#8217;exemple du site Learningthreejs. Pour visualiser la démo il vous faudra utiliser le navigateur expérimental de Google: Chrome Canary. Une fois Canary installé et lancé, tapez dans la barre d&#8217;adresse: chrome://flags/ puis activez le module MediaStream WebRTC. Ce-dernier permet [...]]]></description>
			<content:encoded><![CDATA[<h3><a href="http://www.adrienbaptiste.com/2012/02/experimental-box-2-webcam-three-js/"><img class="full-width" title="box" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/12/box.png" alt="" width="620" height="173" /></a></h3>
<h3>Voici la deuxième <span class="highlight-1">Experimental Box</span> utilisant la techno WebRTC permettant de manipuler facilement des flux <span class="highlight-1"> venant d&#8217;une webcam </span> depuis Three.js.</h3>
<p><span id="more-777"></span>Cette démo s&#8217;appuie sur l&#8217;exemple du site <a href="http://learningthreejs.com/data/live-video-in-webgl/" target="_blank">Learningthreejs</a>.</p>
<p>Pour visualiser la démo il vous faudra utiliser le navigateur expérimental de Google: <a href="http://tools.google.com/dlpage/chromesxs" target="_blank">Chrome Canary</a>. Une fois Canary installé et lancé, tapez dans la barre d&#8217;adresse:</p>
<pre>chrome://flags/</pre>
<p>puis activez le module MediaStream WebRTC. Ce-dernier permet aux navigateurs web d&#8217;obtenir des fonctionnalités de communication en temps réel au travers d&#8217;interfaces de programmation JavaScript. On peut donc envisager des services de visioconférence en Javascript/Html sans aucune techno Flash ! Aujourd&#8217;hui WebRTC n&#8217;est pas encore supporté par défaut par les navigateurs mais cela va venir <img src='http://www.adrienbaptiste.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  On peut donc s&#8217;attendre à des applis web de plus en plus poussées &#8230;</p>
<p>Une fois ceci fait vous pouvez essayer la démo ! (il vous faut évidemment une webcam)<br />
<div class="box-note"><a title="Démo" href="http://www.adrienbaptiste.com/webcam/" target="_blank">Voir la démo</a></div></p>
<p>Voici une petite vidéo montrant le rendu final:<br />
<iframe src="http://player.vimeo.com/video/36646096" width="500" height="269" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.adrienbaptiste.com/2012/02/experimental-box-2-webcam-three-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Créer un chat Facebook avec NodeJS / NowJS</title>
		<link>http://www.adrienbaptiste.com/2012/02/creer-un-chat-facebook-avec-nodejs-nowjs/</link>
		<comments>http://www.adrienbaptiste.com/2012/02/creer-un-chat-facebook-avec-nodejs-nowjs/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 10:05:48 +0000</pubDate>
		<dc:creator>Baptiste</dc:creator>
				<category><![CDATA[Développement]]></category>

		<guid isPermaLink="false">http://www.adrienbaptiste.com/?p=671</guid>
		<description><![CDATA[Ce tutoriel va vous permettre de réaliser facilement un chat style facebook avec les technos et . Pour ce tutoriel vous aurez besoin d&#8217;installer node.js, vous pouvez suivre les indications ici. Une fois node.js installé, faites de même avec NowJS. Ce-dernier est un framework vous permettant de réaliser des applications node.js plus facilement. En effet, il [...]]]></description>
			<content:encoded><![CDATA[<h3><a href="http://www.adrienbaptiste.com/2012/02/creer-un-chat-facebook-avec-nodejs-nowjs"><img class="full-width size-full wp-image-714" title="Créer un chat facebook avec nodejs et nowjs" src="http://www.adrienbaptiste.com/wp-content/uploads/2012/02/fb.jpg" alt="Créer un chat facebook avec nodejs et nowjs" width="620" height="173" /></a></h3>
<h3>Ce tutoriel va vous permettre de réaliser facilement un chat style facebook avec les technos <span class="highlight-1">Node.js </span> et <span class="highlight-1">NowJS</span>.</h3>
<p><span id="more-671"></span>Pour ce tutoriel vous aurez besoin d&#8217;installer node.js, vous pouvez suivre <a title="Installer node.js" href="https://github.com/joyent/node/wiki/Installation" target="_blank">les indications ici</a>. Une fois node.js installé, faites de même avec <a title="NowJS" href="http://nowjs.com/doc" target="_blank">NowJS</a>. Ce-dernier est un framework vous permettant de réaliser des applications node.js plus facilement. En effet, il permet de simplifier la communication entre la partie client et serveur de votre application node. Une fois cet environnement configuré on peut se lancer !</p>
<div class="box-note"><a title="Démo" href="http://www.adrienbaptiste.com/chat3d/chatfb.html" target="_blank">DEMO</a> | <a title="Sources" href="http://www.adrienbaptiste.com/chat3d/chat-fb.zip" target="_blank">Télécharger les sources</a></div>
<h2>Partie serveur</h2>
<p>Je n&#8217;expliquerai pas en détail chaque ligne: de bons exemples et doc sont disponibles sur le site de NowJS <img src='http://www.adrienbaptiste.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Commençons par initialiser notre serveur et le lier avec notre interface client.  Dans mon cas le serveur sera lancé sur le port 1337 et mon interface client sera dans le fichier chatfb.html.</p>
<p>J&#8217;initialise également un tableau <em>clients</em> qui va contenir tous nos clients. Attention à bien initialiser celui-ci par { } et non par [ ] car cela provoque un bug chez nowJS pour l&#8217;échange de la variable avec le client:</p>
<pre>var html = require('fs').readFileSync(__dirname+'/chatfb.html');
var server = require('http').createServer(function(req, res){
    res.end(html);
});
server.listen(1337);

var nowjs = require("now");
var everyone = nowjs.initialize(server);
var clients = {};</pre>
<p>Il nous faut tout d&#8217;abord une fonction traitant l&#8217;arrivée d&#8217;un nouveau client:</p>
<pre>everyone.now.newClient = function(name){
    //On ajoute le client au tableau en renseignant son pseudo et son statut (connecté ou non)
    clients[this.user.clientId] =  {login: name,statut: 1 };
    // On met à jour la liste des connectés
    for(var c in clients) {
        nowjs.getClient(c, function(err) {
            this.now.updateClientList(clients);
        });
    }
};</pre>
<p>Ensuite une fonction qui va créer un groupe afin que deux clients puissent parler entre eux. L&#8217;identifiant du chat sera la somme des deux id des clients. Pour créer un canal propre aux deux clients on crée un groupe avec cet identifiant et on les ajoute dedans:</p>
<pre>everyone.now.openChat = function(idClient){
    var idChat = parseInt(idClient)+parseInt(this.user.clientId);
    var newChat = nowjs.getGroup(idChat);
    newChat.addUser(this.user.clientId);
    newChat.addUser(idClient);
    newChat.now.addChat(idChat,idClient,clients[idClient].login,clients[this.user.clientId].login);
};</pre>
<p>Une fois le groupe crée, on peut traiter l&#8217;envoie d&#8217;un message entre les deux clients. Si le groupe contient une seule personne alors cela veut dire que l&#8217;autre personne s&#8217;est déconnectée on renvoie donc un message pour lui signaler, sinon on relaie le message:</p>
<pre>everyone.now.sendMessage = function(message, room){
    var group = nowjs.getGroup(room);
    var idSender = this.user.clientId;
    group.count(function (ct) {
        if(ct &lt;= 1) group.now.displayMessage(room, "Your friend isn't connected");
        else group.now.displayMessage(room, clients[idSender].login+': '+clean(message));
    });
};</pre>
<p>Enfin on gère la déconnexion d&#8217;un client (suppression du client dans le tableau et mise à jour de la liste des connectés):</p>
<pre>nowjs.on('disconnect', function() {
    for(var i in clients) {
        if(i == this.user.clientId) {
            delete clients[i];
            break;
        }
    }
    for(var i in clients) {
        nowjs.getClient(i, function(err) {
            this.now.updateClientList(clients);
        });
    }
});</pre>
<p>J&#8217;ai aussi utilisé cette petit fonction afin de nettoyer les messages échangés et ainsi éviter des <a title="XSS" href="http://fr.wikipedia.org/wiki/Cross-site_scripting" target="_blank">injections XSS</a>:</p>
<pre>function clean(html){
    return String(html).replace(/&amp;(?!\w+;)/g, '&amp;amp;').replace(/&lt;/g, '&amp;lt;').replace(/&gt;/g, '&amp;gt;').replace(/"/g, '&amp;quot;');
}</pre>
<h2>Partie client</h2>
<p>Passons donc à l&#8217;interface client. Tout d&#8217;abord voici la structure HTML:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
    &lt;head&gt;
        &lt;title&gt;Facebook Chat Like in NodeJS&lt;/title&gt;
        &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
        &lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"&gt;&lt;/script&gt;
        &lt;script src="http://adressedevotresite:votreport/nowjs/now.js"&gt;&lt;/script&gt;
        &lt;link rel='stylesheet' href='fbchat.css' type='text/css' media='screen' /&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;div id="loginbox"&gt;
            Hi guy ! What's your name ?&lt;/br&gt;
            &lt;input type="text" id="login"/&gt;&lt;input type="button" value="Go" id="launch"&gt;
        &lt;/div&gt;
        &lt;div id="nav-right"&gt;
            &lt;ul id="clientList"&gt;
            &lt;/ul&gt;
        &lt;/div&gt;
        &lt;div id="chatList"&gt;
        &lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
<p>Notez qu&#8217;il faut remplacer la ligne suivante avec vos valeurs afin que NowJS soit bien chargé (pour le port utilisez celui renseigné dans la partie serveur):</p>
<pre>&lt;script src="http://adressedevotresite:votreport/nowjs/now.js"&gt;&lt;/script&gt;</pre>
<p>Ensuite voyons le code javascript à insérer entre la balise &lt;head&gt;:</p>
<pre> &lt;script&gt;
    $(document).ready(function(){
       // Code javascript client
    });
&lt;/script&gt;</pre>
<p>Commençons par l&#8217;initialisation du chat, on demande le pseudo de l&#8217;utilisateur et on le connecte au serveur:</p>
<pre>$('#launch').click(function() {
    startApp();
});

function startApp(){
    if($('#login').val() != ""){
        now.name = $('#login').val();
        now.ready(function(){
            $('#loginbox').css("display","none")
            // On signal l'arrivée d'un nouveau client
            now.newClient(now.name);
        });
    }
}</pre>
<p>Lorsque l&#8217;utilisateur clique sur une personne dans la liste des connectés on va lancer un chat entre ces deux personnes. Si le chat existe déjà on l&#8217;affiche sinon on envoie une requête à notre serveur pour qu&#8217;il crée celui-ci:</p>
<pre>// Demande d'ouverture d'un chat avec la personne
$('#clientList a').live('click',function(){
    var idClient = $(this).attr('id');
    // L'id du chat est égal à la somme des id des deux clients
    var idChat = parseInt(idClient)+parseInt(now.core.clientId);
    if ($('#'+idChat).length == 0){
        now.openChat(idClient);
    } else {
        $('#'+idChat).css('display','block');
    }
});</pre>
<p>La fonction précédente demande au serveur de créer un chat. La fonction suivante créée le chat coté client suite à la confirmation du serveur:</p>
<pre>// Ajout du chat dans l'interface
now.addChat = function(idChat,idRecever,recever,sender){
    var login;
    if(idRecever == now.core.clientId) login = sender;
    else login = recever;
    $('#chatList').append('&lt;div class="popup-chat" id="'+idChat+'"&gt;&lt;div class="popup-chat-header"&gt;'+login+' &lt;a href="#null" rel="'+idChat+'"&gt;&lt;img src="img/close.gif" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="popup-chat-talk"&gt;&lt;/div&gt;&lt;div class="popup-chat-input"&gt;&lt;input name="'+idChat+'" id="msg-'+idChat+'" type="text" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;');
    $('#msg-'+idChat).focus();
}</pre>
<p>Lorsque l&#8217;utilisateur appuie sur la touche &laquo;&nbsp;entrée&nbsp;&raquo; (key 13) on envoie le message au destinataire:</p>
<pre>// Lorsque l'on presse entrée on envoie le message
$(document).keypress(function(e) {
    if(e.keyCode == 13) {
        var id = e.target.name;
        if($('#msg-'+id).val() != ''){
            var msg = $('#msg-'+id).val();
            $('#msg-'+id).val('');
            now.sendMessage(msg,id);
        }
    }
});</pre>
<p>On récupère les messages des clients pour les afficher:</p>
<pre>// Affichage des messages reçus
now.displayMessage = function(idChat, message){
    $('#'+idChat).css('display','block');
    $('#'+idChat+' .popup-chat-talk').append('&lt;div class="user-msg"&gt;&lt;div class="user-avatar"&gt;&lt;img src="img/avatar.gif" width="32" height="32"&gt;&lt;/div&gt;&lt;div class="user-text"&gt;'+message+'&lt;/div&gt;&lt;/div&gt;');
}</pre>
<p>On offre la possiblité de masquer le chat lors du clic sur la croix:</p>
<pre>// Masquer un chat
$('.popup-chat-header a').live('click',function(){
    var idChat = $(this).attr('rel');
    $('#'+idChat).css('display','none');
});</pre>
<p>Enfin, la dernière fonction permettant de mettre à jour la liste des utilisateurs connectés:</p>
<pre>// Fonction mettant à jour la liste des connectés
now.updateClientList = function(clients){
    var c=0;
    $("#clientList").html('');
    for(var i in clients) {
        if(i != now.core.clientId) {
            c++;
            $('#clientList').append('&lt;a id="'+i+'" href="#null"&gt;&lt;li&gt;&lt;img alt="'+clients[i].login +'" src="img/avatar.gif" width="28" height="28"&gt;&lt;div&gt;'+clients[i].login +'&lt;/div&gt;&lt;/li&gt;&lt;/a&gt;');
        }
    }
    if(c == 0) $('#clientList').append("&lt;li class='alone'&gt;Mmh... You're alone !&lt;/li&gt;");
}</pre>
<p>Les sources du projet (avec les images et le CSS) sont disponibles ici:<br />
<div class="box-download"><a title="Sources" href="http://www.adrienbaptiste.com/chat3d/chat-fb.zip">Télécharger les sources</a></div></p>
<p>Si vous avez des questions ou des problèmes n&#8217;hésitez pas à poster un commentaire <img src='http://www.adrienbaptiste.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.adrienbaptiste.com/2012/02/creer-un-chat-facebook-avec-nodejs-nowjs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Experimental Box #1 &#8211; Chat 3D nodeJS threeJS</title>
		<link>http://www.adrienbaptiste.com/2011/12/experimental-box/</link>
		<comments>http://www.adrienbaptiste.com/2011/12/experimental-box/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 21:58:38 +0000</pubDate>
		<dc:creator>Baptiste</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.adrienbaptiste.com/?p=640</guid>
		<description><![CDATA[L&#8217; commence à se répandre peu à peu sur la toile. On y voit des exemples de plus en plus concrets &#38; intéressants. Afin de ne pas manquer le virage, j&#8217;ai décidé de me lancer dans quelques &#8230; Je lance donc une série d&#8217;expérimentations appelée les «Experimental Box» des petites créations faisant appel aux dernières [...]]]></description>
			<content:encoded><![CDATA[<h3><a href="http://www.adrienbaptiste.com/2011/12/experimental-box/"><img class="full-width" title="Experimental Box #1" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/12/Sans-titre-1.png" alt="Experimental Box #1" width="620" height="173" /></a></h3>
<h3>L&#8217;<span class="highlight-1">HTML5 </span> commence à se répandre peu à peu sur la toile. On y voit des exemples de plus en plus concrets &amp; intéressants. Afin de ne pas manquer le virage, j&#8217;ai décidé de me lancer dans quelques <span class="highlight-1"> expérimentations</span> &#8230;</h3>
<p><span id="more-640"></span>Je lance donc une série d&#8217;expérimentations appelée les «Experimental Box» des petites créations faisant appel aux dernières technos &amp; librairies de l&#8217;univers web.</p>
<p>Au menu pour cette première box:</p>
<ul>
<li>WebGL</li>
<li>Three.js</li>
<li>Node.js</li>
</ul>
<div>Le tout pour réaliser un chat 3D. Celui-ci utilise l&#8217;excellente librairie <a href="https://github.com/mrdoob/three.js/" target="_blank">three.js</a> du fantastique  <a href="http://mrdoob.com/" target="_blank">Mr Doob</a>. Pour le coté communication, le chat s&#8217;appuie sur <a href="http://nodejs.org/" target="_blank">node.js</a>.</div>
<p>La démo est uniquement compatible avec les navigateurs supportant WebGL et est optimisée pour Chrome.</p>
<p><a class="btn-a" href="http://www.adrienbaptiste.com/chat3d/">Le tout se trouve ici !</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.adrienbaptiste.com/2011/12/experimental-box/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Qwiki donne du sens à la recherche</title>
		<link>http://www.adrienbaptiste.com/2011/10/qwiki-donne-du-sens-a-la-recherche/</link>
		<comments>http://www.adrienbaptiste.com/2011/10/qwiki-donne-du-sens-a-la-recherche/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 11:30:43 +0000</pubDate>
		<dc:creator>Baptiste</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.adrienbaptiste.com/?p=485</guid>
		<description><![CDATA[n&#8217;est pas un moteur de recherche comme les autres. Devant le manque d&#8217;innovation dans ce secteur, Qwiki innove en restituant les données Start-up fondé par Louis Monier (qui a entre autre travaillé chez Google et Ebay), Qwiki s&#8217;appuie sur la technologie du web sémantique. Le web sémantique Petit rappel, le web sémantique  — concept très [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/2011/10/qwiki-donne-du-sens-a-la-recherche/"><img class="full-width" title="qwiki" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/qwiki.jpg" alt="" width="620" height="173" /></a></p>
<h3 style="text-align: justify;"><span class="highlight-1">Qwiki </span>n&#8217;est pas un moteur de recherche comme les autres. Devant le manque d&#8217;innovation dans ce secteur, Qwiki innove en restituant les données <span class="highlight-1">d&#8217;une manière impressionnante. </span></h3>
<p style="text-align: justify;">Start-up fondé par Louis Monier (qui a entre autre travaillé chez Google et Ebay), Qwiki s&#8217;appuie sur la technologie du web sémantique.</p>
<h3 style="text-align: justify;"><span id="more-485"></span>Le web sémantique</h3>
<p style="text-align: justify;">Petit rappel, le web sémantique  — concept très en vogue en ce moment — vise à donner du sens aux données sur le web afin qu&#8217;elles soient exploitables par n&#8217;importe quel agent du web. L&#8217;utilisation du web sémantique permet de repérer des entités classées dans différentes catégories (Personne, Société, Pays &#8230;). Ces dernière disposent d&#8217;attributs (pour la catégorie Personne nous aurons le nom, prénom, date de naissance, etc &#8230;). Le but est donc de modéliser l&#8217;ensemble du web comme une sorte de base de données que l&#8217;on pourra interroger grâce à des requêtes à l&#8217;image de SQL. Si vous voulez en savoir plus sur le web sémantique, je vous invite à lire <a href="http://www.lespetitescases.net/les-technologies-du-web-semantique" target="_blank">cette très bonne introduction</a>.</p>
<h3 style="text-align: justify;">Qwiki en action</h3>
<p style="text-align: justify;"><a href="http://www.qwiki.com">Qwiki </a>tire donc profit de cette technologie de manière pertinente et présente les données de façon naturelle. Lors de la recherche Qwiki propose en temps réel les entités reconnues afin de générer une présentation multimédia synthétique.</p>
<p style="text-align: justify;">Cette présentation est une restitution de l&#8217;article wikipedia de l&#8217;entité. Qwiki génère une sorte de diaporama synchronisé avec l&#8217;article et lu par une voix de synthèse.</p>
<p style="text-align: center;"><a href="http://www.qwiki.com/q/Steve_Jobs"><img class="aligncenter size-full wp-image-515" title="La recherche sur Qwiki" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/steve2.jpg" alt="" width="475" height="205" /></a></p>
<p style="text-align: justify;">Qwiki ne s&#8217;arrête pas là, puisqu&#8217;il propose également un résumé quotidien thématique (sport, cinéma &#8230;) de l&#8217;actualité en représentant les divers news des sites comme Google News ou Yahoo.</p>
<p style="text-align: justify;">Même si Qwiki se limite à la recherche/restitution d&#8217;articles sur Wikipedia, il offre une nouvelle façon de présenter les données et exploite totalement le principe du web sémantique. La startup marque une nouvelle étape dans la restitution des données et pourrai bien être l&#8217;un des premiers services grand public s&#8217;appuyant sur le web sémantique.</p>
<p style="text-align: justify;">Qwiki étant en version alpha on ne peut t&#8217;être qu&#8217;enthousiaste quant à son futur. A suivre &#8230;</p>
<p><a class="btn-a" href="http://www.qwiki.com"> Visiter Qwiki →</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.adrienbaptiste.com/2011/10/qwiki-donne-du-sens-a-la-recherche/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La gamification</title>
		<link>http://www.adrienbaptiste.com/2011/10/la-gamification/</link>
		<comments>http://www.adrienbaptiste.com/2011/10/la-gamification/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 21:09:53 +0000</pubDate>
		<dc:creator>Baptiste</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.adrienbaptiste.com/?p=330</guid>
		<description><![CDATA[C&#8217;est un peu le concept du moment, le paradigme qui va rendre votre application web incroyable, je parle bien sur de la Pour rappel, la gamification (ou ludification pour les anti oncle sam) consiste à utiliser des mécaniques des jeux vidéos dans une application dans le but d&#8217;en augmenter l’acceptabilité. (dixit le père Wikipedia) La dernière [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="/2011/10/la-gamification/"><br />
<img class="full-width" title="touchpad" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/pipe.jpg" alt="" width="620" height="340" /></a></p>
<h3 style="text-align: justify;">C&#8217;est un peu le concept du moment, le paradigme qui va rendre votre application web incroyable, je parle bien sur de la <span class="highlight-1">gamification. </span></h3>
<p style="text-align: justify;">Pour rappel, la gamification (ou ludification pour les anti oncle sam) consiste à utiliser des mécaniques des jeux vidéos dans une application dans le but d&#8217;en augmenter l’acceptabilité. (dixit le père Wikipedia)</p>
<p style="text-align: justify;"><span id="more-330"></span> La dernière génération d&#8217;internautes (digital natives) ont grandis dans un monde ludique et ont connu des vagues successives les familiarisant avec l&#8217;univers des jeux vidéos. C&#8217;est pourquoi on assiste aujourd&#8217;hui à la démocratisation de la gamification. En immisçant des éléments issus des jeux vidéo dans un service, on va fidéliser l&#8217;utilisateur, améliorer  l&#8217;intérêt et la concentration de ce dernier. Quels sont donc ces éléments ?</p>
<h3 style="text-align: justify;">Quelques éléments de gamification</h3>
<p style="text-align: justify;"><a href="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/progress3.jpg"><img class="alignleft size-full wp-image-395" title="progress" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/progress3.jpg" alt="" width="82" height="82" /></a><strong>Les barres de progression</strong> permettent à l&#8217;utilisateur d&#8217;avoir un repère sur son état d&#8217;avancement dans l&#8217;application. Cela permet par exemple d&#8217;inciter l&#8217;utilisateur à finir la tâche qu&#8217;il a entrepris</p>
<p>&nbsp;</p>
<p><a href="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/lvl1.jpg"><img class="alignleft size-full wp-image-401" title="lvl" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/lvl1.jpg" alt="" width="82" height="82" /></a></p>
<p style="text-align: justify;"><strong>Les niveaux ou &laquo;&nbsp;levels&nbsp;&raquo;</strong> permettent de fidéliser l&#8217;utilisateur. Pour passer au niveau supérieur, l&#8217;utilisateur devra effectuer des tâches (objectifs) il participera donc à la dynamique de votre application. Les niveaux permettent d&#8217;instaurer de la notoriété et inciteront les bas niveaux à gravir les échelons.</p>
<p><a href="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/badge.jpg"><img class="alignleft size-full wp-image-416" title="badge" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/badge.jpg" alt="" width="82" height="82" /></a></p>
<p style="text-align: justify;"><strong>Les badges / trophés</strong> sont des moyens efficaces pour inciter l&#8217;utilisateur à effectuer une action (exemple: poster 100 commentaires débloque le badge Super Loquace)</p>
<address style="text-align: justify;"> </address>
<address style="text-align: justify;"><span class="Apple-style-span" style="font-style: normal;"><a href="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/cup.jpg"><img class="alignleft size-full wp-image-427" title="cup" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/cup.jpg" alt="" width="82" height="82" /></a></span></address>
<p><strong>Les classements</strong> permettent d&#8217;établir une concurrence positive au sein de votre communauté. Ils peuvent être établis selon différents critères (popularité, activité, investissement &#8230;)</p>
<p>&nbsp;</p>
<h3>Comment expliquer ce phénomène?</h3>
<p style="text-align: justify;">Il faut tout d&#8217;abord considérer un jeu comme un système ayant des contraintes: une map, un niveau, un plateau. Ces-dernières délimitent l&#8217;action dans l&#8217;espace et dans le temps. Les jeux disposent également de règles limitant la liberté d&#8217;action du joueur. Ce sont ces contraintes qui vont participer à la satisfaction mentale du joueur, ainsi ce dernier s&#8217;affranchit de &laquo;&nbsp;l&#8217;angoisse de la liberté&nbsp;&raquo;.<span class="pullquote-left">&laquo;&nbsp;Le joueur ne connaît pas l&#8217;angoisse de la liberté&nbsp;&raquo;</span> En nous donnant des objectifs clairs et bien définis, les jeux nous épargnes la tâche difficile de définir ce qu&#8217;est la réussite; avec les points, les classements, les indicateurs, ils nous disent exactement quand nous avons réussis. Les êtres humains sont friands de ce genre de structure, probablement parce qu&#8217;il en existe bien peu dans la vie réelle.</p>
<p style="text-align: justify;">Les jeux exploitent cette insécurité fondamentale. Ils sont conçus comme une succession de cycles courts, chaque actions constituant une petite expérience qui se conclut en quelques minutes, voire en quelques secondes, avec des conséquences concrètes: on gagne des points ou en perd. Ces cycles dynamiques nous maintiennent constamment engagés. On ne peut s&#8217;empêcher de continuer encore et encore, de progresser dans le jeu, l&#8217;oeil rivé à son score &#8230;</p>
<h3>Des exemples de gamification</h3>
<p><strong><a href="http://mindbloom.com" target="_blank">Mindbloom</a> </strong>est un site censé améliorer votre qualité de vie grâce à des objectifs de bien-être personnel classés selon différentes catégories (travail, créativité, santé, relations &#8230;). L&#8217;exécution de ces tâches débloque des récompenses, points, badges.<br />
<a href="http://www.mindbloom.com"><img class="alignleft size-full wp-image-456" title="mind" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/mind.jpg" alt="" width="536" height="111" /></a><br />
<strong></strong></p>
<p>&nbsp;</p>
<p><strong><a href="https://fr.foursquare.com/">Foursquare</a></strong> est un des premiers sites à avoir utiliser le concept de gamification, il permet de transformer votre environnement réel en un &laquo;&nbsp;plateau de jeu&nbsp;&raquo;. Le but est simple: vous êtes dans un bar sympa, un simple &laquo;&nbsp;check-in&nbsp;&raquo; sur Foursquare permet de signaler votre position à votre réseaux Foursquare. Mais ce-dernier propose de remplir des objectifs, par exemple &laquo;&nbsp;Effectuer 5 check-in après 3 heures du matin&nbsp;&raquo; débloquera le badge &laquo;&nbsp;Fêtard&nbsp;&raquo; &#8230;</p>
<p><a href="https://fr.foursquare.com/"><img class="alignleft size-full wp-image-458" title="four" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/four.jpg" alt="" width="536" height="111" /></a></p>
<p>&nbsp;</p>
<p><strong><a href="http://emailga.me/">The Email Game</a></strong> facilite la gestion de vos mails. S&#8217;appuyant sur Gmail, il permet d&#8217;obtenir le &laquo;&nbsp;<strong>Boite de réception (0)&nbsp;&raquo;</strong>, en proposant régulièrement d&#8217;effectuer un petit clean de votre bal grâce à une interface gamifiée (points, jauge de temps &#8230;). Par exemple la suppression d&#8217;un message non-lu vous fera perdre un certain nombre de points, en revanche y répondre vous en fera gagner &#8230;</p>
<p><a href="http://emailga.me/"><img class="alignleft size-full wp-image-459" title="teg" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/10/teg.jpg" alt="" width="536" height="111" /></a><br />
Pour finir voici une vidéo TED où Seth Priebatsch présente les 4 caractéristiques vitales du processus de gamification:</p>
<p><object width="526" height="374">
<param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param>
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always"/>
<param name="wmode" value="transparent"></param>
<param name="bgColor" value="#ffffff"></param>
<param name="flashvars" value="vu=http://video.ted.com/talk/stream/2010X/Blank/SethPriebatsch_2010X-320k.mp4&su=http://images.ted.com/images/ted/tedindex/embed-posters/SethPriebatsch-2010X.embed_thumbnail.jpg&vw=512&vh=288&ap=0&ti=936&lang=eng&introDuration=15330&adDuration=4000&postAdDuration=830&adKeys=talk=seth_priebatsch_the_game_layer_on_top_of_the_world;year=2010;theme=a_taste_of_tedx;theme=what_s_next_in_tech;theme=the_creative_spark;theme=tales_of_invention;theme=the_rise_of_collaboration;theme=ted_under_30;event=TEDxBoston+2010;tag=Business;tag=Entertainment;tag=entrepreneur;tag=gaming;tag=money;tag=psychology;&preAdTag=tconf.ted/embed;tile=1;sz=512x288;" />
<embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="526" height="374" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2010X/Blank/SethPriebatsch_2010X-320k.mp4&su=http://images.ted.com/images/ted/tedindex/embed-posters/SethPriebatsch-2010X.embed_thumbnail.jpg&vw=512&vh=288&ap=0&ti=936&lang=eng&introDuration=15330&adDuration=4000&postAdDuration=830&adKeys=talk=seth_priebatsch_the_game_layer_on_top_of_the_world;year=2010;theme=a_taste_of_tedx;theme=what_s_next_in_tech;theme=the_creative_spark;theme=tales_of_invention;theme=the_rise_of_collaboration;theme=ted_under_30;event=TEDxBoston+2010;tag=Business;tag=Entertainment;tag=entrepreneur;tag=gaming;tag=money;tag=psychology;&preAdTag=tconf.ted/embed;tile=1;sz=512x288;"></embed>
</object><br />
Si vous souhaitez approfondir le sujet, je vous recommande vivement la lecture de <a href="http://www.internetactu.net/2011/03/01/les-ambiguites-de-la-gamification/">l&#8217;article d&#8217;Internet-Actu.</a></p>
<p>Sources: Courrier International, fredcavazza.com<br />
Image <a href="http://www.threadless.com/submission/79488/This_is_not_a_pipe" target="_blank">Threadless</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.adrienbaptiste.com/2011/10/la-gamification/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ajouter le HP TouchPad sur RueDuCommerce</title>
		<link>http://www.adrienbaptiste.com/2011/08/pn/</link>
		<comments>http://www.adrienbaptiste.com/2011/08/pn/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 10:16:13 +0000</pubDate>
		<dc:creator>Baptiste</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[HP TouchPad]]></category>

		<guid isPermaLink="false">http://www.adrienbaptiste.com/wordpress/?p=283</guid>
		<description><![CDATA[L&#8217;astuce qui va lorsqu&#8217;il s&#8217;agira de mettre votre HP TouchPad dans le panier du site rueducommerce.com &#8230; Vous vous êtes déjà logué sur le site, vous avez copié vos coordonnées bancaires dans le bloc-note, il ne vous manque plus que l&#8217;optimisation ultime pour choper la TouchPad avant tout le monde ! En regardant le code du [...]]]></description>
			<content:encoded><![CDATA[<p><a href="wordpress/2011/08/pn/"><img class="full-width" title="touchpad" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/08/touchpad.jpg" alt="" width="620" height="340" /></a></p>
<h3>L&#8217;astuce qui va<span class="highlight-1"> vous faire gagner 2s</span> lorsqu&#8217;il s&#8217;agira de mettre votre HP TouchPad dans le panier du site <a title="rueducommerce.com" href="http://rueducommerce.com">rueducommerce.com</a> &#8230;</h3>
<p>Vous vous êtes déjà logué sur le site, vous avez copié vos coordonnées bancaires dans le bloc-note, il ne vous manque plus que l&#8217;optimisation ultime pour choper la TouchPad avant tout le monde ! En regardant le code du site j&#8217;ai trouvé une petite bidouille afin d&#8217;ajouter les articles &#8230;</p>
<p><span id="more-283"></span></p>
<p><strong>1/</strong> Rendez-vous sur <a title=" la fiche produit du TouchPad 16Go" href="http://www.rueducommerce.fr/Ordinateurs/Tablette-et-iPad/Tablette-tactile/HP/4848681-HP-TOUCHPAD-WiFi-16Go-WebOs.htm" target="_blank">la fiche produit du TouchPad 16Go</a></p>
<p><strong>2/</strong> Activer l&#8217;extension Firebug</p>
<p><strong>3/</strong> Dans la console javascript de Firebug rentrez le code suivant:<br />
<code>var cidsBase = "30";var pidsBase ="4848681";var qtysBase = "1";var rba = "";var BAId = "30-4848681-38983051469A926F37E29766A886A428";var pp = "30|4848681";purchaseProductServices(2)</code></p>
<p>Le produit est alors dans votre panier !</p>
<p><strong><span class="highlight-1">Voici le code pour le Pre3</span></strong><br />
<code>var cidsBase = "4";<br />
var pidsBase = "4847983";<br />
var qtysBase = "1";<br />
var rba = "";<br />
var BAId = "4-4847983-443FA0B0944FEB779729EE0C43380594";<br />
var pp = "4|4847983";<br />
purchaseProductServices(2)</code></p>
<p><strong><span class="highlight-1">Pour le 32Go</span></strong><br />
<code>var cidsBase = "30";var pidsBase ="4849308";var qtysBase = "1";var rba = "";var BAId = "30-4849308-38983051469A926F37E29766A886A428";var pp = "30|4849308";purchaseProductServices(2)</code></p>
<p><img class="full-width" title="sss" src="http://www.adrienbaptiste.com/wp-content/uploads/2011/08/sss1.jpg" alt="" width="620" height="340" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.adrienbaptiste.com/2011/08/pn/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Vacances</title>
		<link>http://www.adrienbaptiste.com/2011/08/vacances/</link>
		<comments>http://www.adrienbaptiste.com/2011/08/vacances/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 12:48:18 +0000</pubDate>
		<dc:creator>Baptiste</dc:creator>
				<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false">http://www.adrienbaptiste.com/wordpress/?p=98</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://www.adrienbaptiste.com/2011/08/vacances/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

