<?xml
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>Guillaume Orsal</title>
	<link>https://www.orsal.fr/</link>
	<description>Ing&#233;nieur informatique, d&#233;veloppeur Web Freelance, cr&#233;ation site Internet, conseil en r&#233;f&#233;rencement, expert Laravel, SEO, Intelligence Artificielle</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://www.orsal.fr/spip.php?id_rubrique=4&amp;page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>SMS+ sur Android</title>
		<link>https://www.orsal.fr/SMS-sur-Android</link>
		<guid isPermaLink="true">https://www.orsal.fr/SMS-sur-Android</guid>
		<dc:date>2011-02-04T08:11:37Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Guillaume Orsal</dc:creator>



		<description>
&lt;p&gt;J'ai un besoin depuis longtemps, concernant la gestion des SMS. Les applications pr&#233;sentes sur l'Android Market, et m&#234;me sur l'AppStore ne me satisfont pas. Elles font toutes la m&#234;me chose. Je vais donc d&#233;velopper ma version pour r&#233;pondre &#224; mon besoin.&lt;/p&gt;


-
&lt;a href="https://www.orsal.fr/Projets" rel="directory"&gt;Projets&lt;/a&gt;


		</description>


 <content:encoded>&lt;img class='spip_logos' alt=&quot;&quot; align=&quot;right&quot; src='https://www.orsal.fr/local/cache-vignettes/L71xH71/arton28-a01bb.png' width='71' height='71' onmouseover=&quot;this.src='local/cache-vignettes/L71xH71/artoff28-bd82b.png'&quot; onmouseout=&quot;this.src='local/cache-vignettes/L71xH71/arton28-a01bb.png'&quot; style='height:71px;width:71px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Depuis quelques semaines je m'int&#233;resse au d&#233;veloppement d'application Android. Le passage de mon t&#233;l&#233;phone XPeria X10 en version 2.1 du syst&#232;me d'exploitation de Google n'y ai pas pour rien, Android devient ainsi tr&#232;s performant.&lt;/p&gt; &lt;p&gt;J'ai un besoin depuis longtemps, concernant la gestion des SMS. Les applications pr&#233;sentes sur l'Android Market, et m&#234;me sur l'AppStore ne me satisfont pas. Elles font toutes la m&#234;me chose. Je vais donc d&#233;velopper ma version pour r&#233;pondre &#224; mon besoin.&lt;/p&gt; &lt;p&gt;Je pense qu'il y a un r&#233;el potentiel d'innovation dans ce domaine. Je vais donc chercher &#224; l'exploiter.&lt;/p&gt; &lt;p&gt;Cela me permettra de monter en comp&#233;tence sur le d&#233;veloppement Android en Java et XML, et de travailler &#224; la r&#233;alisation d'API, avec un site en PHP, et une interface utilisant du jQuery, de l'Ajax, bien dans l'esprit Web 2.0. Bref tout ce sur quoi j'ai envie de travailler.&lt;/p&gt; &lt;p&gt;Update 2022 : Depuis il y a Whatsapp qui est sortie... comme quoi l'id&#233;e avait du potentiel &lt;img alt=&quot;;-)&quot; title=&quot;;-)&quot; class=&quot;no_image_filtrer format_png&quot; src=&quot;https://www.orsal.fr/plugins/auto/couteau_suisse/img/smileys/clin_d-oeil.png&quot; width=&quot;19&quot; height=&quot;19&quot;/&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Spip my place : plugin Spip de g&#233;olocalisation pour la g&#233;olocalisation des articles</title>
		<link>https://www.orsal.fr/Spip-my-place-plugin-Spip-de</link>
		<guid isPermaLink="true">https://www.orsal.fr/Spip-my-place-plugin-Spip-de</guid>
		<dc:date>2011-02-04T07:48:35Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Guillaume Orsal</dc:creator>



		<description>
&lt;p&gt;Apr&#232;s mes recherches sur les techniques de g&#233;olocalisation, j'ai commenc&#233; &#224; d&#233;velopper un plugin SPIP qui permettrait de g&#233;olocaliser les articles et d'afficher uniquement ceux pertinents g&#233;ographiquement. Ce projet a &#233;t&#233; initi&#233; mais jamais finalis&#233;. Concept du projet L'id&#233;e &#233;tait de cr&#233;er un plugin SPIP qui permettrait de g&#233;olocaliser les articles et d'afficher uniquement ceux pertinents d'un point de vue g&#233;ographique. Un filtre SPIP aurait automatiquement affich&#233; les articles &#171; locaux &#187; en fonction de la (...)&lt;/p&gt;


-
&lt;a href="https://www.orsal.fr/Projets" rel="directory"&gt;Projets&lt;/a&gt;


		</description>


 <content:encoded>&lt;img class='spip_logos' alt=&quot;&quot; align=&quot;right&quot; src='https://www.orsal.fr/local/cache-vignettes/L71xH71/arton12-10920.png' width='71' height='71' onmouseover=&quot;this.src='local/cache-vignettes/L71xH71/artoff12-a0ac7.png'&quot; onmouseout=&quot;this.src='local/cache-vignettes/L71xH71/arton12-10920.png'&quot; style='height:71px;width:71px;' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Apr&#232;s mes recherches sur les techniques de g&#233;olocalisation, j'ai commenc&#233; &#224; d&#233;velopper un plugin SPIP qui permettrait de g&#233;olocaliser les articles et d'afficher uniquement ceux pertinents g&#233;ographiquement. Ce projet a &#233;t&#233; initi&#233; mais jamais finalis&#233;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class='h3 spip'&gt;Concept du projet&lt;/h2&gt;
&lt;p&gt;L'id&#233;e &#233;tait de cr&#233;er un plugin SPIP qui permettrait de g&#233;olocaliser les articles et d'afficher uniquement ceux pertinents d'un point de vue g&#233;ographique. Un filtre SPIP aurait automatiquement affich&#233; les articles &#171; locaux &#187; en fonction de la position de l'utilisateur.&lt;/p&gt; &lt;h2 class='h3 spip'&gt;Fonctionnalit&#233;s envisag&#233;es&lt;/h2&gt;
&lt;p&gt;La r&#233;alisation du projet se d&#233;composait en trois &#233;tapes :
&lt;br /&gt;&lt;img src='https://www.orsal.fr/local/cache-vignettes/L8xH11/puce-32883.gif' width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; Ins&#233;rer le script de g&#233;olocalisation sur les pages
&lt;br /&gt;&lt;img src='https://www.orsal.fr/local/cache-vignettes/L8xH11/puce-32883.gif' width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; Adapter la structure des articles pour pouvoir les g&#233;olocaliser
&lt;br /&gt;&lt;img src='https://www.orsal.fr/local/cache-vignettes/L8xH11/puce-32883.gif' width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; Ajouter un filtre qui met en relation les informations de g&#233;olocalisation&lt;/p&gt; &lt;h2 class='h3 spip'&gt;&#201;tat d'avancement&lt;/h2&gt;
&lt;p&gt;Le script de g&#233;olocalisation &#233;tait pr&#234;t et s'ins&#233;rait correctement dans la page, mais le reste du projet n'a jamais &#233;t&#233; finalis&#233;. Cet effort visait principalement &#224; progresser dans mes comp&#233;tences SPIP plut&#244;t que de r&#233;pondre &#224; un r&#233;el besoin.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>G&#233;olocalisation Web : API W3C et alternatives cross-plateforme</title>
		<link>https://www.orsal.fr/Geolocalisation-Web-API-W3C-et</link>
		<guid isPermaLink="true">https://www.orsal.fr/Geolocalisation-Web-API-W3C-et</guid>
		<dc:date>2009-12-10T22:57:16Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Guillaume Orsal</dc:creator>



		<description>
&lt;p&gt;Note importante : Cet article a &#233;t&#233; publi&#233; en 2009. Google Gears est obsol&#232;te depuis, et l'API W3C Geolocation est maintenant le standard universellement support&#233;. Cet article conserve une valeur historique et p&#233;dagogique. Introduction La g&#233;olocalisation par navigateur web s'est impos&#233;e comme une technologie incontournable pour les applications modernes. Contrairement au d&#233;veloppement natif limit&#233; &#224; des plateformes sp&#233;cifiques, elle offre une portabilit&#233; universelle et une accessibilit&#233; accrue aupr&#232;s (...)&lt;/p&gt;


-
&lt;a href="https://www.orsal.fr/Projets" rel="directory"&gt;Projets&lt;/a&gt;


		</description>


 <content:encoded>&lt;img class='spip_logos' alt=&quot;&quot; align=&quot;right&quot; src='https://www.orsal.fr/local/cache-vignettes/L117xH150/arton5-77495.png' width='117' height='150' style='height:150px;width:117px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;strong&gt;Note importante :&lt;/strong&gt; Cet article a &#233;t&#233; publi&#233; en 2009. Google Gears est obsol&#232;te depuis, et l'API W3C Geolocation est maintenant le standard universellement support&#233;. Cet article conserve une valeur historique et p&#233;dagogique.&lt;/p&gt; &lt;h2 class='h3 spip'&gt;Introduction&lt;/h2&gt;
&lt;p&gt;La g&#233;olocalisation par navigateur web s'est impos&#233;e comme une technologie incontournable pour les applications modernes. Contrairement au d&#233;veloppement natif limit&#233; &#224; des plateformes sp&#233;cifiques, elle offre une portabilit&#233; universelle et une accessibilit&#233; accrue aupr&#232;s des utilisateurs.&lt;/p&gt; &lt;p&gt;Bien que le d&#233;veloppement sur iPhone soit entrav&#233; par des barri&#232;res d'acc&#232;s significatives, les approches bas&#233;es sur le navigateur web contournent ces limitations et fonctionnent sur l'ensemble des appareils connect&#233;s, du smartphone &#224; l'ordinateur de bureau.&lt;/p&gt; &lt;p&gt;Cet article synth&#233;tise les technologies de g&#233;olocalisation disponibles et les techniques d'impl&#233;mentation cross-plateforme, pour vous faire gagner le temps de recherche qu'a n&#233;cessit&#233; cette exploration technique.&lt;/p&gt; &lt;h2 class='h3 spip'&gt;Objectif&lt;/h2&gt;
&lt;p&gt;Cet article pr&#233;sente les deux technologies majeures de g&#233;olocalisation : le standard W3C impl&#233;ment&#233; par les navigateurs modernes, et la solution Google Gears comme alternative pour les environnements non compatibles. Nous examinerons les principes techniques communs &#224; ces deux approches, puis verrons comment les unifier dans une impl&#233;mentation unique et robuste.&lt;/p&gt; &lt;h2 class='h3 spip'&gt;Technologies existantes et techniques de localisation&lt;/h2&gt;
&lt;p&gt;Il existe deux principaux standards de g&#233;olocalisation web. Le &lt;a href=&quot;http://www.w3.org/&quot; class='spip_out' rel='external'&gt;W3C&lt;/a&gt;, consortium international en charge de l'&#233;laboration des standards du web, a d&#233;fini une &lt;a href=&quot;http://www.w3.org/TR/geolocation-API/&quot; class='spip_out' rel='external'&gt;API de g&#233;olocalisation&lt;/a&gt; que les navigateurs modernes commencent &#224; impl&#233;menter massivement. Google a parall&#232;lement d&#233;velopp&#233; sa propre solution en int&#233;grant des fonctionnalit&#233;s de g&#233;olocalisation &#224; &lt;a href=&quot;https://fr.wikipedia.org/wiki/Gears&quot; class='spip_out' rel='external'&gt;Google Gears&lt;/a&gt;, une suite logicielle enrichissant les capacit&#233;s du navigateur.&lt;/p&gt; &lt;p&gt;Malgr&#233; ces diff&#233;rences technologiques, le principe fondamental reste identique dans les deux cas. Apr&#232;s l'autorisation explicite de l'utilisateur, le navigateur communique au serveur de localisation l'ensemble des donn&#233;es disponibles : adresse IP, r&#233;seaux wifi d&#233;tect&#233;s, &lt;a href=&quot;https://fr.wikipedia.org/wiki/Base_Transceiver_Station&quot; class='spip_out' rel='external'&gt;BTS&lt;/a&gt;, informations &lt;a href=&quot;https://fr.wikipedia.org/wiki/A-GPS&quot; class='spip_out' rel='external'&gt;A-GPS&lt;/a&gt;, etc. Le serveur croise ces donn&#233;es avec ses bases de connaissances pour en d&#233;duire les coordonn&#233;es g&#233;ographiques pr&#233;cises.&lt;/p&gt; &lt;h2 class='h3 spip'&gt;Standard W3C&lt;/h2&gt;
&lt;p&gt;L'API W3C de g&#233;olocalisation repr&#233;sente l'approche standardis&#233;e et recommand&#233;e pour la localisation web. Impl&#233;ment&#233;e nativement par les navigateurs contemporains, elle offre une interface coh&#233;rente et s&#233;curis&#233;e pour acc&#233;der aux donn&#233;es de localisation.&lt;/p&gt; &lt;h2 class='h3 spip'&gt;Google Gears&lt;/h2&gt;
&lt;p&gt;Google Gears fournit une impl&#233;mentation alternative de la g&#233;olocalisation, particuli&#232;rement utile pour les navigateurs ne supportant pas encore le standard W3C. Cette approche garantit la compatibilit&#233; r&#233;troactive et l'universalit&#233; de vos applications.&lt;/p&gt; &lt;h2 class='h3 spip'&gt;Approche multi-plateforme&lt;/h2&gt;
&lt;p&gt;Une v&#233;ritable impl&#233;mentation robuste doit fonctionner quel que soit l'environnement disponible sur le client. Voici comment unifier les deux technologies :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;head&gt;&lt;br /&gt; // Inclusion de la librairie javascript Google Gears&lt;br /&gt; &lt;script type=&quot;text/javascript&quot; src=&quot;gears_init.js&quot;&gt;&lt;/script&gt;&lt;br /&gt; &lt;br /&gt; // Inclusion de la librairie javascript pour l'API Google Maps avec la cl&#233; d'utilisation&lt;br /&gt; &lt;script type=&quot;text/javascript&quot; src=&quot;http://maps.google.com/maps?file=api&amp;v=2&amp;key=MaCleGoogleMaps&quot;&gt;&lt;/script&gt;&lt;br /&gt; &lt;br /&gt; // Inclusion de la librairie javascript pour l'API AJAX pour Google Maps&lt;br /&gt; &lt;script type=&quot;text/javascript&quot; src=&quot;gmap.js&quot;&gt;&lt;/script&gt;&lt;br /&gt; &lt;br /&gt; // D&#233;but de la partie pour la g&#233;olocalisation&lt;br /&gt; &lt;script type=&quot;text/javascript&quot;&gt;&lt;br /&gt; // Test de la compatibilit&#233; de navigateur avec l'api google maps&lt;br /&gt; if ( ! GBrowserIsCompatible() ) return false ;&lt;br /&gt; &lt;br /&gt; // Initialisation de la variable pour connaitre la m&#233;thode de localisation utilis&#233;e&lt;br /&gt; var methodo = &quot;Pas encore localis&#233;.&quot;;&lt;br /&gt; &lt;br /&gt; // Fonction fournissant un outil de localisation compatible avec la plateforme o&#249; est ex&#233;cut&#233; le script&lt;br /&gt; function outilGeoloc() {&lt;br /&gt; // Teste si le navigateur impl&#233;mente le standard W3C&lt;br /&gt; if ( navigator.geolocation ) {&lt;br /&gt; // Si ok, on utilise le localiseur standard&lt;br /&gt; methodo = &quot;Location API&quot; ;&lt;br /&gt; return navigator.geolocation ;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; // Sinon on teste si Google Gears est accessible&lt;br /&gt; var geogears = google.gears.factory.create('beta.geolocation') ;&lt;br /&gt; if ( geogears ) {&lt;br /&gt; methodo = &quot;Google Gears&quot; ;&lt;br /&gt; return geogears ;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; // Ajouter un cas par d&#233;faut pour les environnements sans g&#233;olocalisation&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; // Fonction de recherche des coordonn&#233;es g&#233;ographiques&lt;br /&gt; function trouvePosition() {&lt;br /&gt; // R&#233;cup&#233;rer un outil de g&#233;olocalisation disponible sur la plateforme client&lt;br /&gt; var localiseur = outilGeoloc();&lt;br /&gt; &lt;br /&gt; // Appel &#224; la fonction de g&#233;olocalisation, heureusement standard elle...&lt;br /&gt; localiseur.getCurrentPosition(trouve, pasTrouve);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; // Fonction a ex&#233;cuter si la position a &#233;t&#233; trouv&#233;e&lt;br /&gt; function trouve(position) {&lt;br /&gt; var lat = position.coords.latitude;&lt;br /&gt; var long = position.coords.longitude;&lt;br /&gt; document.getElementById(&quot;map_lng&quot;).value = long;&lt;br /&gt; document.getElementById(&quot;map_lat&quot;).value = lat;&lt;br /&gt; document.getElementById(&quot;methodo&quot;).value = methodo;&lt;br /&gt; gmap_load('map', long, lat, 17);&lt;br /&gt; &lt;br /&gt; point = new GLatLng(48.838338, 2.280073);&lt;br /&gt; markerOptions = {clickable:true, draggable:false };&lt;br /&gt; marker = new GMarker(point, markerOptions);&lt;br /&gt; map.addOverlay(marker);&lt;br /&gt; marker.info_window_content ='&lt;strong&gt;Home&lt;/strong&gt;&lt;p&gt;Paris&lt;/p&gt;'&lt;br /&gt; marker.bindInfoWindowHtml(marker.info_window_content, {maxWidth:200});&lt;br /&gt; GEvent.addListener(marker, &quot;click&quot;, function() {&lt;br /&gt; map.panTo(point, 2);&lt;br /&gt; });&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; // Fonction a ex&#233;cuter si la position n'a pas &#233;t&#233; trouv&#233;e&lt;br /&gt; function pasTrouve() {&lt;br /&gt; document.getElementById(&quot;map_lng&quot;).value = '';&lt;br /&gt; document.getElementById(&quot;map_lat&quot;).value = '';&lt;br /&gt; document.getElementById(&quot;methodo&quot;).value = 'Impossible de vous localiser.';&lt;br /&gt; gmap_load('map', 2.294351, 48.858844, 17);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; // Fonction de d&#233;tection du type de navigateur web utilis&#233; par le client&lt;br /&gt; function detectBrowser() {&lt;br /&gt; var useragent = navigator.userAgent;&lt;br /&gt; var mapdiv = document.getElementById(&quot;map&quot;);&lt;br /&gt; &lt;br /&gt; // Si le client est un mobile, on adapte l'affichage &#224; la taille du support&lt;br /&gt; if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1 ) {&lt;br /&gt; mapdiv.style.width = '320px';&lt;br /&gt; mapdiv.style.height = '200px';&lt;br /&gt; } else {&lt;br /&gt; mapdiv.style.width = '600px';&lt;br /&gt; mapdiv.style.height = '400px';&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; // Fonction d'initialisation de la g&#233;olocation, appel&#233;e une fois la page charg&#233;e&lt;br /&gt; function initialisation() {&lt;br /&gt; trouvePosition();&lt;br /&gt; detectBrowser();&lt;br /&gt; }&lt;br /&gt; &lt;/script&gt;&lt;br /&gt; &lt;br /&gt; // Quelques meta tags pour contraindre / parametrer l'affichage sur support mobile&lt;br /&gt; &lt;meta content=&quot;width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=1;&quot; name=&quot;viewport&quot;&gt;&lt;br /&gt; &lt;/head&gt;&lt;/code&gt;&lt;/div&gt;
&lt;h2 class='h3 spip'&gt;Exemple de mise en &#339;uvre&lt;/h2&gt;
&lt;p&gt;En attendant une d&#233;monstration compl&#232;te en ligne, ce code illustre l'impl&#233;mentation pratique de la d&#233;tection et de l'utilisation transparente des deux technologies. Le script teste d'abord la disponibilit&#233; de l'API W3C, puis bascule vers Google Gears si n&#233;cessaire, garantissant ainsi le fonctionnement sur tous les environnements.&lt;/p&gt; &lt;h2 class='h3 spip'&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;La g&#233;olocalisation web s'est impos&#233;e comme une fonctionnalit&#233; essentielle des applications modernes. En ma&#238;trisant les deux approches principales et leur int&#233;gration transparente, vous disposez des outils n&#233;cessaires pour d&#233;velopper des solutions robustes et universellement accessibles.&lt;/p&gt; &lt;p&gt;L'approche pr&#233;sent&#233;e ici, testant d'abord le standard W3C avant de basculer sur Google Gears, garantit la meilleure exp&#233;rience utilisateur sur l'ensemble des navigateurs et des appareils. Cette strat&#233;gie de fallback progressif est la meilleure pratique actuelle pour les applications de g&#233;olocalisation web.&lt;/p&gt; &lt;h2 class='h3 spip'&gt;Pour aller plus loin...&lt;/h2&gt;
&lt;p&gt;Pour approfondir ces concepts, consultez la documentation officielle du W3C et explorez les &#233;volutions r&#233;centes des API de g&#233;olocalisation. Les impl&#233;mentations modernes tendent &#224; abandonner Google Gears au profit du standard W3C, d&#233;sormais massivement support&#233;. Cependant, la compr&#233;hension de ces deux approches reste pr&#233;cieuse pour la maintenance de codes h&#233;rit&#233;s et la compr&#233;hension historique de l'&#233;volution des technologies web.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
