<?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>Sp.Blog &#187; php</title>
	<atom:link href="http://blog.stephanepouyllau.org/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.stephanepouyllau.org</link>
	<description>le blog de Stéphane Pouyllau</description>
	<lastBuildDate>Sat, 07 Jan 2012 18:07:33 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Tout ce qu&#8217;il reste à faire&#8230;</title>
		<link>http://blog.stephanepouyllau.org/327</link>
		<comments>http://blog.stephanepouyllau.org/327#comments</comments>
		<pubDate>Sun, 21 Feb 2010 09:25:06 +0000</pubDate>
		<dc:creator>Stéphane POUYLLAU</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.stephanepouyllau.org/?p=327</guid>
		<description><![CDATA[Le développement de l&#8217;archive ouverte MédiHAL fut court, 3 mois en tout et avec une toute petite équipe (3 personnes). Même si nous avons largement utilisé le framework HAL, il reste plein de choses à faire, à améliorer, à reprendre, à redessiner et à écouter les chercheurs, documentalistes et bibliothécaires qui déjà par dizaines nous [...]]]></description>
			<content:encoded><![CDATA[<p>Le développement de l&#8217;archive ouverte MédiHAL fut court, 3 mois en tout et avec une toute petite équipe (3 personnes). Même si nous avons largement utilisé le framework HAL, il reste plein de choses à faire, à améliorer, à reprendre, à redessiner et à écouter les chercheurs, documentalistes et bibliothécaires qui déjà par dizaines nous ont écrit pour nous encourager, nous demander conseil avant de se lancer. Ils nous ont aussi dit que MédiHAL est une bonne chose à l&#8217;heure des départs massifs en retraite dans le monde de la recherche. Certains nous ont demandé des choses précises, d&#8217;autre nous ont signalé des bugs, etc.<br />
Je suis très heureux de voir que des développeurs nous ont demandé l&#8217;accès à l&#8217;api de HAL pour développer des widgets de chargement de masse et de visualisation. Au cours des prochains mois, MédiHAL trouvera petit à petit son rythme et je tiens à remercier toutes les personnes qui nous ont contactées. Elles ont exprimé leurs critiques, positives ou négatives, et leurs doutes et/ou un soutien. Certains déposeront dans quelques semaines ou quelques mois, ils sont les bienvenues.</p>
<p>Bon dimanche.</p>
<p>Stéphane.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/327/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ca, mais si souviens toi, c&#8217;était où déjà ? ou le geocaching scientifique</title>
		<link>http://blog.stephanepouyllau.org/189</link>
		<comments>http://blog.stephanepouyllau.org/189#comments</comments>
		<pubDate>Fri, 26 Dec 2008 17:44:03 +0000</pubDate>
		<dc:creator>Stéphane POUYLLAU</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[informatique]]></category>
		<category><![CDATA[géolocalisation]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[métadonnées]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xmp]]></category>

		<guid isPermaLink="false">http://blog.stephanepouyllau.org/?p=189</guid>
		<description><![CDATA[Pour noël, j&#8217;ai eu un GPS ! Ceux qui me connaissent me diront que n&#8217;ayant pas de voiture à Paris, ce n&#8217;est pas très utile. Et pourtant, si l&#8217;ont veut géo-référencer les photos de noël et le déballage des cadeaux par les enfants, cet outil devient très pratique, testons un peu&#8230; J&#8217;ai donc un GPS [...]]]></description>
			<content:encoded><![CDATA[<p>Pour noël, j&#8217;ai eu un GPS ! Ceux qui me connaissent me diront que n&#8217;ayant pas de voiture à Paris, ce n&#8217;est pas très utile. Et pourtant, si l&#8217;ont veut géo-référencer les photos de noël et le déballage des cadeaux par les enfants, cet outil devient très pratique, testons un peu&#8230;</p>
<p><a title="D90+GP-1 de stephane.pouyllau, sur Flickr" href="http://www.flickr.com/photos/stephanepouyllau/3137994093/"><img src="http://farm4.static.flickr.com/3263/3137994093_23ef642c62.jpg" alt="D90+GP-1" width="500" height="375" /></a></p>
<p>J&#8217;ai donc un GPS pour mon <a href="http://imaging.nikon.com/products/imaging/lineup/d90/fr" target="_blank">D90</a> : il s&#8217;agit de l&#8217;unité GP-1, qui se place à la place du flash ou sur le coté. Pour info, dans le <a href="http://www.europe-nikon.com/product/fr_FR/products/broad/1635/overview.html" target="_blank">Nikon P.6000</a>, un compact, le GPS est en standard.</p>
<p>Mes grands-parents, s&#8217;ils étaient en vie, diraient : &laquo;&nbsp;Mais que fait Stéphane, dans le jardin, avec un appareil photographique pointant vers le ciel ?&nbsp;&raquo; Au début, la première capture des satellites est un peu longue : plus de 5 s., c&#8217;est déjà embêtant si vous devez déclencher tout de suite&#8230; passons. En laissant l&#8217;appareil en veille, ça va mieux. Ensuite cela semble assez précis (même dans le jardin), l&#8217;altitude aussi (testé avec un bon vieil altimètre).</p>
<p><a title="D90+GP-1 de stephane.pouyllau, sur Flickr" href="http://www.flickr.com/photos/stephanepouyllau/3137992033/"><img src="http://farm4.static.flickr.com/3124/3137992033_3cc8639363.jpg" alt="D90+GP-1" width="500" height="375" /></a></p>
<p>Clic-clac, les coordonnées et l&#8217;altitude sont bien capturées et incluses dans les méta-données EXIF de l&#8217;image. Avec Exiftool (et tous les outils qui tourne autour), par exemple, il est facile de voir et d&#8217;exporter ces valeurs de positionnement (extrait) dans ExiftoolGUI&#8230;</p>
<p><a title="D90+GPS_1 de stephane.pouyllau, sur Flickr" href="http://www.flickr.com/photos/stephanepouyllau/3138640188/"><img src="http://farm4.static.flickr.com/3210/3138640188_3e1408c5cd.jpg" alt="D90+GPS_1" width="450" height="500" /></a></p>
<p>De les sortir sous la forme d&#8217;un tableau HTML (voir plus bas)&#8230;</p>
<table border="1">
<tbody>
<tr>
<td>EXIF</td>
<td style="text-align: left;">GPSVersionID</td>
<td>2.2.0.0</td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSLatitudeRef</td>
<td>North</td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSLongitudeRef</td>
<td>West</td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSAltitudeRef</td>
<td>Above Sea Level</td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSTimeStamp</td>
<td>11:24:24</td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSSatellites</td>
<td>05</td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSMapDatum</td>
<td></td>
</tr>
<tr>
<td>EXIF</td>
<td>GPSDateStamp</td>
<td>2008:12:25</td>
</tr>
<tr>
<td>Composite</td>
<td>GPSAltitude</td>
<td>36 m Above Sea Level</td>
</tr>
<tr>
<td>Composite</td>
<td>GPSDateTime</td>
<td>2008:12:25 11:24:24</td>
</tr>
<tr>
<td>Composite</td>
<td>GPSLatitude</td>
<td>44 deg 45&#8242; 15.21&#8243; N</td>
</tr>
<tr>
<td>Composite</td>
<td>GPSLongitude</td>
<td>0 deg 34&#8242; 31.58&#8243; W</td>
</tr>
<tr>
<td>Composite</td>
<td>GPSPosition</td>
<td>44 deg 45&#8242; 15.21&#8243; N, 0 deg 34&#8242; 31.58&#8243; W</td>
</tr>
<tr>
<td>Composite</td>
<td>SubSecDateTimeOriginal</td>
<td>2008:12:25 13:21:45.00</td>
</tr>
</tbody>
</table>
<p></p>
<p>&#8230;Et bien entendu, il est très facile d&#8217;exploiter cela avec un outil cartographique en local, tel que l&#8217;excellent <a href="http://www.geosetter.de/en/" target="_blank">GeoSetter</a> dont une version en français est disponible :</p>
<p><a title="D90+GPS_2 de stephane.pouyllau, sur Flickr" href="http://www.flickr.com/photos/stephanepouyllau/3138641032/"><img src="http://farm4.static.flickr.com/3291/3138641032_f12609b930.jpg" alt="D90+GPS_2" width="500" height="313" /></a></p>
<p><a title="D90+GPS_3 de stephane.pouyllau, sur Flickr" href="http://www.flickr.com/photos/stephanepouyllau/3138641916/"><img src="http://farm4.static.flickr.com/3104/3138641916_15b5d686b5.jpg" alt="D90+GPS_3" width="500" height="313" /></a><br />
ou bien via <a href="http://www.flickr.com/photos/stephanepouyllau/3137816926/map/?view=everyones" target="_blank">l&#8217;outil carte de Flickr</a> (là, rien à faire de particulier, les photos sont positionnées par défaut lors du chargement).</p>
<p>Tout cela peut aussi ce faire via son Firefox avec IExif, Dans la monde Google avec Picasa et Google Earth, etc.</p>
<p>Si <a href="http://en.wikipedia.org/wiki/Exchangeable_image_file_format#Problems" target="_blank">le format EXIF vous pose un problème</a>, il est possible de stocker ces données dans du <a href="http://www.loc.gov/standards/mix/" target="_blank">MIX</a>. C&#8217;est évidement plus complexe pour l&#8217;exploitation, du moins pour le grand public.</p>
<p>Extraire ce type de méta-données avec du Perl est très facile : le programme <a href="http://www.sno.phy.queensu.ca/~phil/exiftool/" target="_blank">perl exiftool de Phil Harvey</a> est très bien pour cela : une petit ligne du type <em>&laquo;&nbsp;Exiftool -exif:GPSAltitude -h  img &gt; mes_exifs.html&nbsp;&raquo;</em> et l&#8217;on récupère l&#8217;altitude d&#8217;une série d&#8217;images dans un tableau HTML.</p>
<p>Avec du PHP c&#8217;est possible aussi : <a href="http://fr2.php.net/manual/fr/book.exif.php" target="_blank">il faut charger les extensions php_mbstring et exif (dans cet ordre)</a> dans le php.ini ; ensuite il est possible d&#8217;utiliser la fonction <em><span class="methodname"><a href="http://fr2.php.net/manual/fr/book.exif.php" target="_blank">exif_read_data</a>.</span></em></p>
<p>Bref, bientôt TOUS les appareils géo-tagueront en automatique et l&#8217;on ne comprendra pas pourquoi les photos anciennes ne le sont pas (les documentalistes vont avoir du travail) : ainsi les interfaces d&#8217;intérogations vont évoluer : un fond de carte, des outils de sélection (ronds, carrés, etc.), des plots de couleurs, des requêtes externes, des réponses aux questions qui s&#8217;afficheront sous la forme d&#8217;un chapelet de marqueurs. Au CN2SV, nous avons commencé à le faire des cartes et des atlas anciens, j&#8217;imagine ce que nous allons faire dans quelques années !</p>
<p><a title="Capture d'écran de l'application CN2SV pour les géodonnées de stephane.pouyllau, sur Flickr" href="http://www.flickr.com/photos/stephanepouyllau/1613039316/"><img src="http://farm3.static.flickr.com/2377/1613039316_a1d82ab446.jpg" alt="Capture d'écran de l'application CN2SV pour les géodonnées" width="500" height="313" /></a></p>
<p>Mais j&#8217;y pense&#8230; le temps d&#8217;écrire ce billet et tout cela doit déjà exister, j&#8217;en suis sûr (et en open-source ?). En attendant la suite, j&#8217;espère que <a href="http://www.flickr.com/photos/jacquesperconte/sets/72157610731032923/" target="_blank">les artistes vont trouver des applications moins &laquo;&nbsp;utiles&nbsp;&raquo; que celles décrites ici</a>. Je m&#8217;en retourne à mon mash-up de noël.</p>
<p>Joyeuses fêtes,</p>
<p>Stéphane.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/189/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Frises chronologiques sur le web : utilisation de Timeline pour faire un mashup AJAX avec PHP et MySQL</title>
		<link>http://blog.stephanepouyllau.org/99</link>
		<comments>http://blog.stephanepouyllau.org/99#comments</comments>
		<pubDate>Sun, 02 Dec 2007 11:36:34 +0000</pubDate>
		<dc:creator>Stéphane POUYLLAU</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[informatique]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.stephanepouyllau.org/frises-chronologiques-sur-le-web-utilisation-de-timeline-un-mashup-ajax-avec-php-et-mysql</guid>
		<description><![CDATA[Bonsoir, Je profite d&#8217;un week-end loin de Paris et d&#8217;un long voyage en train pour décrire (mais avec beaucoup de retard) un petit mashup que j&#8217;ai réalisé pour le site @.ampère et l&#8217;histoire de l&#8217;électricité. L&#8217;idée de départ était de développer des chronologies avec l&#8217;outil Timeline mis au point par le MIT et que pas [...]]]></description>
			<content:encoded><![CDATA[<p>Bonsoir,</p>
<p>Je profite d&#8217;un week-end loin de Paris et d&#8217;un long voyage en train pour décrire (mais avec beaucoup de retard) un petit mashup que j&#8217;ai réalisé pour le site <a href="http://www.ampere.cnrs.fr" target="_blank">@.ampère et l&#8217;histoire de l&#8217;électricité</a>. L&#8217;idée de départ était de développer des chronologies avec <a href="http://simile.mit.edu/timeline/" title="Timeline" target="_blank">l&#8217;outil Timeline</a> mis au point par le <a href="http://www.mit.edu/" title="MIT, Boston, US." target="_blank">MIT</a> et que pas mal de développeurs connaissent et utilisent. Timeline permet de créer des frises chronologiques à l&#8217;image de celles encore présentes dans les livres scolaires d&#8217;histoire (nous avons tous rêvés devant ces frises en couleurs présentant l&#8217;histoire de l&#8217;Homme par exemple). C&#8217;est outil utilise des éléments en javascript et du XML : c&#8217;est donc un système basé sur AJAX. Dans le site @.ampère nous voulions faire une frise avec des éléments historiques différents le tout devant être synchronisé :</p>
<ul>
<li>une sous-frise sur les grands personnages de l&#8217;histoire de l&#8217;électricité</li>
<li>une sous-frise sur les grandes découvertes de ce même domaine</li>
</ul>
<p>Dans Timeline, les évènements (events) sont stockés dans un fichier XML très simple. Dans le but d&#8217;inclure Timeline dans le système d&#8217;information (SI) du site, nous avons utilisé deux tables MySQL pour mettre les données brutes (date, contenu de l&#8217;évènement, etc.). Un script PHP utilisant DOM réalise alors une présentation XML de ces données : en sortie, nous avons deux fichiers XML, un pour chaque sous-frise, qui sont normés suivant le schéma des fichier nécessaire au fonctionnement de Timeline. Nos deux tables MySQL sont indépendantes du système AJAX de Timeline : c&#8217;est PHP/DOM qui formate les données en XML suivant la grammaire Timeline. Nous avons d&#8217;ailleurs un autre programme PHP qui présente ces même données sous la forme d&#8217;une page web classique. Le schéma suivant en résume le modèle :</p>
<p><a href="http://www.flickr.com/photos/stephanepouyllau/2079757325/" title="Modèle informatique de frise chronologique (site www.ampere.cnrs.fr) de stephane.pouyllau, sur Flickr"><img src="http://farm3.static.flickr.com/2275/2079757325_35b1f4a0ca.jpg" alt="Modèle informatique de frise chronologique (site www.ampere.cnrs.fr)" border="0" height="375" width="500" /></a></p>
<p>Les deux fichiers XML sont stockés dans un répertoire du serveur et chargé dans l&#8217;application AJAX qui gère Timeline. Le XML resemble à ceci :<br />
<code><br />
</code></p>
<pre id="line1"><span class="pi">&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;</span>&lt;<span class="start-tag">data</span>&gt;

&lt;<span class="start-tag">event</span><span class="attribute-name"> start</span>=<span class="attribute-value">"Jan 00 1544 00:00:00 GMT" </span><span class="attribute-name">end</span>=<span class="attribute-value">"Jan 00 1603 00:00:00 GMT" </span><span class="attribute-name"></span></pre>
<pre id="line1"><span class="attribute-name">image</span>=<span class="attribute-value">"AMP_1015.jpg" </span><span class="attribute-name">isDuration</span>=<span class="attribute-value">"true" </span><span class="attribute-name"></span><span class="attribute-value"></span><span class="attribute-name">title</span>=<span class="attribute-value">"William GILBERT"</span>&gt;(1544-1603)&lt;/<span class="end-tag">event</span>&gt;&lt;<span class="start-tag">event</span><span class="attribute-name"> start</span>=<span class="attribute-value">"Jan 00 1666 00:00:00 GMT" </span><span class="attribute-name">end</span>=<span class="attribute-value">"Jan 00 1736 00:00:00 GMT" </span><span class="attribute-name"></span><span class="attribute-value"></span><span class="attribute-name"></span></pre>
<pre id="line1"><span class="attribute-name">isDuration</span>=<span class="attribute-value">"true" </span><span class="attribute-name"></span><span class="attribute-value"></span><span class="attribute-name">title</span>=<span class="attribute-value">"Stephen GRAY"</span>&gt;(1666-1736)&lt;/<span class="end-tag">event</span>&gt; ...</pre>
<pre id="line1">&lt;/data&gt;</pre>
<p>Pour le tout fonctionne, il nous a fallu ajouter un petit programme php de vérification de la forme des dates/heures histoire de ne pas avoir de bug dans l&#8217;une des deux sous-frises. Pour terminer nous avons ajouté, dans le fichier javascript de la frise (main.js) qui pilote l&#8217;affichage écran, les instructions suivantes :</p>
<pre><font color="#99cc00">bandInfos[1]</font>.eventPainter.setLayout(bandInfos[1].eventPainter.getLayout());

tl = Timeline.create(document.getElementById("my-timeline"), bandInfos, Timeline.HORIZONTAL);

Timeline.loadXML(<font color="#993366">"kronos1.xml"</font>, function(xml, url) { <font color="#ff6600">eventSourceA</font>.loadXML(xml, url); });

Timeline.loadXML(<font color="#993366">"kronos2.xml"</font>, function(xml, url) { <font color="#ff6600">eventSourceB</font>.loadXML(xml, url); });</pre>
<p>Nous avons une <font color="#99cc00">&laquo;&nbsp;bandInfos&nbsp;&raquo;</font> dans laquelle nous &laquo;&nbsp;chargeons&nbsp;&raquo; les deux fichier XML : <font color="#993366">kronos1.xml et kronos2.xml</font>. Ce chargement est réalisé au sein des deux <font color="#ff6600">eventSource (A et B)<font color="#000000">. Ce fichier, main.js, qui est un fichier javascript pur est chargé dans une page HTML (ou PHP dans notre cas) par l&#8217;utilisation d&#8217;une simple balise &lt;script&gt; dans l&#8217;entête. La frise &laquo;&nbsp;double&nbsp;&raquo; est ensuite affiché dans le code HTML via un &laquo;&nbsp;id&nbsp;&raquo; de balise &lt;div&gt; : </font></font></p>
<pre id="line10">&lt;<span class="start-tag">div</span><span class="attribute-name"> id</span>=<span class="attribute-value">"my-timeline" </span><span class="attribute-name">style</span>=<span class="attribute-value">"height:800px; width:100%;"</span>&gt;&lt;/<span class="end-tag">div</span>&gt;</pre>
<pre id="line10"></pre>
<p>Le tour est joué, nous avons une belle frise chronologique présentant de façon synoptique ces deux types d&#8217;évènements.  Voici le résultat :</p>
<p><a href="http://www.flickr.com/photos/stephanepouyllau/2079807147/" title="FriseChronoAmpere de stephane.pouyllau, sur Flickr"><img src="http://farm3.static.flickr.com/2088/2079807147_ae47b09cb8.jpg" alt="FriseChronoAmpere" border="0" height="375" width="500" /></a></p>
<p>Bonne fin de week-end,</p>
<p>Stéphane.</p>
<p>PS : Merci à Marie-Hélène Wronecki pour le travail sur la base de données MySQL.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/99/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trancodage de dates informatiques</title>
		<link>http://blog.stephanepouyllau.org/100</link>
		<comments>http://blog.stephanepouyllau.org/100#comments</comments>
		<pubDate>Sat, 01 Dec 2007 16:37:53 +0000</pubDate>
		<dc:creator>Stéphane POUYLLAU</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[OAI-PMH]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.stephanepouyllau.org/trancodage-de-dates-informatiques</guid>
		<description><![CDATA[Bonsoir, Un petit script php très simple pour convertir une date du type AAAA-MM-JJ HH:MM:SS en date normée suivant RFC 822 utilisée dans les flux RSS ou dans le monde OAI-PMH : $datedepart = '2007-09-10 00:00:00'; // on entre la date (qui peut venir d'un champ de type datetime de SGBDR : MySQL, PostgreSQL, etc.) [...]]]></description>
			<content:encoded><![CDATA[<p>Bonsoir,</p>
<p>Un petit script php très simple pour convertir une date du type AAAA-MM-JJ HH:MM:SS en date normée suivant RFC 822 utilisée dans les flux RSS ou dans le monde OAI-PMH  :</p>
<pre>$datedepart = '2007-09-10 00:00:00'; // on entre la date (qui peut venir d'un champ de type datetime de SGBDR : MySQL, PostgreSQL, etc.)</pre>
<pre>list($date, $hours) = split(' ', $datedepart);
list($year,$month,$day) = split('-',$date);
list($hour,$min,$sec) = split(':',$hours);

$date = date(r,mktime($hour, $min, $sec, $month, $day, $year));
print "$date";</pre>
<p>Stéphane.</p>
<address><font color="#999999">Source : http://www.phpfreaks.com/quickcode/from-MySQL-datetime-to-RFC-822-for-RSS/597.php </font></address>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/100/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KML simple et géodonnées (partie 1)</title>
		<link>http://blog.stephanepouyllau.org/96</link>
		<comments>http://blog.stephanepouyllau.org/96#comments</comments>
		<pubDate>Thu, 18 Oct 2007 08:06:12 +0000</pubDate>
		<dc:creator>Stéphane POUYLLAU</dc:creator>
				<category><![CDATA[archives numériques]]></category>
		<category><![CDATA[kml]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.stephanepouyllau.org/kml-simple-et-geodonnees-au-service-darchives-de-science-partie-1</guid>
		<description><![CDATA[Il est possible de construire rapidement de petites applications simples permettant d&#8217;exploiter des documents issus d&#8217;archives visuelles (cartes, photos, plans) en les connectant a des données bibliographiques. Ces applications utilisent de plus en plus les langages du web (et, depuis 2005, ceux du web 2.0) et elles se développent autour d&#8217;XML. Voici une première partie/introduction [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0cm">Il est possible de construire rapidement de petites applications simples permettant d&#8217;exploiter des documents issus d&#8217;archives visuelles (cartes, photos, plans) en les connectant a des données bibliographiques.  Ces applications utilisent de plus en plus les langages du web (et, depuis 2005, ceux du web 2.0) et elles se développent autour d&#8217;XML. Voici une première partie/introduction au KML et le début d&#8217;un exemple avec le géo-référencement 2D de cartes anciennes via Google Maps, du KML et du XML.</p>
<p style="margin-bottom: 0cm">Le KML (Keyhole Markup Language) est une grammaire XML permettant d&#8217;afficher et de gérer des données dans Google Maps et Earth. Il offre la possibilité de poser des points, tracer des lignes, des polygones. Dans Google Earth, s&#8217;y ajoute les angles de vue, les objets 3D simples ou texturés. Mais l&#8217;une des fonctionnalités les plus intéressante pour la recherche reste l&#8217;enrichissement en données externes. KML peut diffuser des données XHTML riches (textes, images, videos), des images plaquées sur la photo satellitaire, etc&#8230;</p>
<p style="margin-bottom: 0cm">Il existe une version compressé du KML, le KMZ. Pour ceux qui ont utilisé comme moi du VRML (Virtual Reality Modeling Language), nous avions aussi une version &laquo;&nbsp;Gzipé&nbsp;&raquo; du langage  : le .wrz (à la place du .wrl). le KMZ encapsule aussi les images qui peuvent être liées au fichier KML. Il est possible de fabriquer du KMZ avec un simple compresseur : WinZip, Gzip, etc.</p>
<p style="margin-bottom: 0cm">Sur le plan syntaxique, le KML se présente comme du XML :</p>
<p>&lt;?xml version=&nbsp;&raquo;1.0&#8243; encoding=&nbsp;&raquo;UTF-8&#8243;?&gt;<br />
&lt;kml xmlns=&nbsp;&raquo;http://earth.google.com/kml/2.2&#8243;&gt;<br />
&lt;Placemark&gt;<br />
&lt;name&gt;Siège du CNRS&lt;/name&gt;<br />
&lt;description&gt;Paris, le siège du CNRS.&lt;/description&gt;<br />
&lt;LookAt&gt;<br />
&lt;longitude&gt;2.264605600614077&lt;/longitude&gt;<br />
&lt;latitude&gt;48.84727288728012&lt;/latitude&gt;<br />
&lt;altitude&gt;0&lt;/altitude&gt;<br />
&lt;range&gt;171.6689944655567&lt;/range&gt;<br />
&lt;tilt&gt;-6.848248640637841e-011&lt;/tilt&gt;<br />
&lt;heading&gt;0.0004740658326556625&lt;/heading&gt;<br />
&lt;/LookAt&gt;<br />
&lt;Point&gt;<br />
&lt;coordinates&gt;2.264605600614077,48.84727288728013,0&lt;/coordinates&gt;<br />
&lt;/Point&gt;<br />
&lt;/Placemark&gt;<br />
&lt;/kml&gt;</p>
<p style="margin-bottom: 0cm"> Ce petit fichier KML permet de placer dans Google Earth ou Maps, un point localisé sur le siège du CNRS, l&#8217;élément &lt;LookAt/&gt; correspondant au point de vue de la caméra qui « regarde » ce point. &lt;Placemark/&gt; encapsule le &lt;Point/&gt; géocodé présentant la latitude et la longitude. Dans le monde Earth / Maps de Google, les coordonnées géographiques sont en degrés décimaux (comptés positivement vers le Nord pour la latitude, et vers l&#8217;Est pour la longitude). Ici, le géocodage est très précis (2.264605600614077), mais si vous utilisez l&#8217;API de Maps, la précision est de l&#8217;ordre du mètre.  Autre limite, dans Google Maps, seuls certains éléments peuvent être utilisés : les points, les lignes, les polygones, les styles, les icônes et les liens et l&#8217;application de couches multiple (placage d&#8217;images), mise en œuvre de dossiers et types de vues. Pour le moment (version 2.2 du KML) la 3D n&#8217;est pas utilisée (nous sommes dans Maps, donc le royaume de la 2D).</p>
<p style="margin-bottom: 0cm">Ce petit exemple, permet de ce lancer dans la construction de fichiers KML et ainsi enrichir en information de toutes sortes de cartes dans le vaste &laquo;&nbsp;bac à sable&nbsp;&raquo; que peut être Google Maps ou Earth. De nombreux scientifiques, les géographes principalement, utilisent déjà ce format. J&#8217;ai découvert aussi <a href="http://www.discip.ac-caen.fr/histgeo/geoportail/comparaison.htm">ce site qui présente Google Earth et le KML pour les enseignants du secondaire</a>.  Le KML n&#8217;est pas le seul format XML dans le domaine des &laquo;&nbsp;géo-formats/2D/3D&nbsp;&raquo; : il y a le WMS, WFS et GML venant du monde de la géographie, les formats pour &laquo;&nbsp;services web&nbsp;&raquo; : AtomPub, GeoRSS et le KML/Z (avec <a href="http://www.rajsingh.org/blog/2007/09/19/kml-is-about-maps-not-data/">d&#8217;autres limites cependant</a>).</p>
<p style="margin-bottom: 0cm">Dans le cadre du <a href="http://www.arch.cn2sv.cnrs.fr/ead/">CN2SV</a>, nous avons publié l&#8217;inventaire d&#8217;un fonds de cartes topographiques anciennes (XIXe-XXe siècle) de la cartothèque du <a href="http://www.regards.cnrs.fr">centre de documentation REGARDS-CNRS</a>. Nous avons décidé de coupler ce fonds de cartes, après numérisation, avec une base de données bibliographique/documentaire classique. Pour cela, nous avons utilisé une base de données intermédiaire qui, à partir des données lat./long. des quatres angles d&#8217;une carte, a pour mission de stocker des données pour produire à la fois du KML (pour l&#8217;instant sous la forme de petit fichier, donc nous sommes en mode asynchrone) qui peut être utilisé dans Google Earth pour visualiser l&#8217;emprise de la carte, ces villes importantes, etc. Mais aussi du XML compatible avec l&#8217;API de Google Maps (qui est légèrement différent du KML natif, du moins dans sa version 2.2 ).</p>
<p style="margin-bottom: 0cm">Dans un second temps, j&#8217;ai développé une petit programme PHP qui exploite ces fichiers XML (pour l&#8217;API&#8230;) dans un contexte l&#8217;application riche. Du KML simple, nous passons dans un micro format XML propre (mais nous pourrions faire cela avec du KML directement, c&#8217;est juste une histoire d&#8217;optimisation du fichier pour l&#8217;API de Google Maps), ainsi pour chacune des cartes nous avons ceci :</p>
<p><a href="http://www.flickr.com/photos/stephanepouyllau/1613039316/" title="Capture d'écran de l'application CN2SV pour les géodonnées de stephane.pouyllau, sur Flickr"><img src="http://farm3.static.flickr.com/2377/1613039316_139531b4e0_o.png" width="550" height="344" alt="Capture d'écran de l'application CN2SV pour les géodonnées" /></a></p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p>&lt;?xml version=&nbsp;&raquo;1.0&#8243; encoding=&nbsp;&raquo;UTF-8&#8243;?&gt;<br />
&lt;mygeod xmlns=&nbsp;&raquo;http://www.cn2sv.cnrs.fr/xml/mygeoc/0.1&#8243;&gt;</p>
<p>&lt;markers&gt;<br />
&lt;marker lat=&nbsp;&raquo;-20.53105&#8243; lng=&nbsp;&raquo;47.24332&#8243; label=&nbsp;&raquo;Ville d&#8217;Ambositra&nbsp;&raquo; html=&nbsp;&raquo;Informations sur la ville d&#8217;Ambositra &lt;br&gt;avec la base de données REGARDS-ADES-CNRS&nbsp;&raquo; infolink=&nbsp;&raquo;query.php?value=Ambositra&nbsp;&raquo;/&gt;<br />
&lt;marker lat=&nbsp;&raquo;-20.62105&#8243; lng=&nbsp;&raquo;47.20332&#8243; label=&nbsp;&raquo;Carte de Madagascar&nbsp;&raquo; html=&nbsp;&raquo;Informations sur la ville d&#8217;Ivato &lt;br&gt;avec la base de données REGARDS-ADES-CNRS&nbsp;&raquo; infolink=&nbsp;&raquo;query.php?value=Ivato+Madagascar&nbsp;&raquo;/&gt;<br />
&lt;marker lat=&nbsp;&raquo;-19.871795326377995&#8243; lng=&nbsp;&raquo;47.03521728515625&#8243; label=&nbsp;&raquo;Carte de Madagascar&nbsp;&raquo; html=&nbsp;&raquo;Informations sur la ville d&#8217;Antsirabe &lt;br&gt;avec la base de données REGARDS-ADES-CNRS&nbsp;&raquo; infolink=&nbsp;&raquo;query.php?value=Antsirabe&nbsp;&raquo;/&gt;<br />
&lt;marker lat=&nbsp;&raquo;-20.27137605095937&#8243; lng=&nbsp;&raquo;44.31661605834961&#8243; label=&nbsp;&raquo;Carte de Madagascar&nbsp;&raquo; html=&nbsp;&raquo;Une carte est disponible&nbsp;&raquo; infolink=&nbsp;&raquo;?id=R_MADA11_04_00014&#8243;/&gt;<br />
&lt;line colour=&nbsp;&raquo;#ff0000&#8243; width=&nbsp;&raquo;5&#8243;&gt;<br />
&lt;point lat=&nbsp;&raquo;-19.40&#8243; lng=&nbsp;&raquo;45.32&#8243;/&gt;<br />
&lt;point lat=&nbsp;&raquo;-19.40&#8243; lng=&nbsp;&raquo;48.11&#8243;/&gt;<br />
&lt;point lat=&nbsp;&raquo;-21.20&#8243; lng=&nbsp;&raquo;48.11&#8243;/&gt;<br />
&lt;point lat=&nbsp;&raquo;-21.20&#8243; lng=&nbsp;&raquo;45.32&#8243;/&gt;<br />
&lt;point lat=&nbsp;&raquo;-19.40&#8243; lng=&nbsp;&raquo;45.32&#8243;/&gt;<br />
&lt;/line&gt;<br />
&lt;center lat=&nbsp;&raquo;-20.33&#8243; lng=&nbsp;&raquo;46.90&#8243; zoom=&nbsp;&raquo;8&#8243;/&gt;<br />
&lt;/markers&gt;</p>
<p>&lt;/mygeod&gt;</p>
<p>Ce fichier XML permet de délimiter la couverture de carte et de pointer des lieux (les &laquo;&nbsp;markers&nbsp;&raquo; de Google Maps). Les attributs sont très simples :</p>
<ul>
<li>label : titre de la vignette/popup</li>
<li>html : contenu de la vignette/popup</li>
<li>lat : latitude</li>
<li>lng : longitude</li>
<li>zoom (pour &lt;center/&gt;) : facteur du zoom d&#8217;entrée dans la carte</li>
<li>infolink : lien vers le connecteur de/des bases de données à interroger (mais on pourrait imaginer une chose avec  du xlink et xpointer si l&#8217;on veut rester dans le monde XML)</li>
</ul>
<p style="margin-bottom: 0cm">Il suffit d&#8217;utiliser de <a href="http://www.google.com/apis/maps/">l&#8217;API de Google Map</a> pour monter l&#8217;application. Mais cela sera pour le prochain billet&#8230;</p>
<p style="margin-bottom: 0cm">Stéphane.</p>
<p style="margin-bottom: 0cm">PS : Le format KML est relativement simple, mais un ouvrage de référence en français manque (à moins qu&#8217;il soit sous presse).</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/96/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework : un nouveau site pour la communauté française des utilisateurs.</title>
		<link>http://blog.stephanepouyllau.org/81</link>
		<comments>http://blog.stephanepouyllau.org/81#comments</comments>
		<pubDate>Sat, 18 Aug 2007 10:56:51 +0000</pubDate>
		<dc:creator>pouyllau</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.stephanepouyllau.org/wp/?p=81</guid>
		<description><![CDATA[Bonjour, De retour de vacances, je mets au propre quelques notes informatiques glanées tout au long de l&#8217;été. Utilisateur du Zend Framework depuis quelques semaines (pour une application en test pour le moment), j&#8217;ai découvert dernièrement que la communauté française des utilisateurs du Zend Framework s&#8217;organisait autour d&#8217;un nouveau site web, très bien fait et [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour,<br />
De retour de vacances, je mets au propre quelques notes informatiques glanées tout au long de l&#8217;été. Utilisateur du Zend Framework depuis quelques semaines (pour une application en test pour le moment), j&#8217;ai découvert dernièrement que <a href="http://www.z-f.fr/" hreflang="fr">la communauté française des utilisateurs du Zend Framework</a> s&#8217;organisait autour d&#8217;un nouveau site web, très bien fait et plein d&#8217;informations. <a href="http://www.z-f.fr/forum/" hreflang="fr">Un très bon forum</a>, très professionnel, permet de poser des questions simples ou complexes suivant son niveau de pratique du Zend Framework.<br />
Le Zend Framework (ZF) est un projet PHP créé par la société <a href="http://www.zend.com/fr/" hreflang="fr">Zend</a>, grande prêtresse du langage PHP dans le monde. Le ZF est un ensemble de librairies permettant d&#8217;accélérer le développement d&#8217;applications PHP professionnel. Il permet aux entreprises d&#8217;appuyer leurs outils sur une infrastructure robuste orienté MVC (modèle, vue, contrôleur). En terme de sécurité, l&#8217;utilisation du ZF entraine des gains importants, notamment au niveau des injections SQL. Comme tous les frameworks, ZF n&#8217;est cependant pas très simple au début, il faut bien comprendre le système MVC avant tout.<br />
Mais un signe ne trompe pas, la communauté ZF augmente et en mai 2007, l&#8217;association française des utilisateurs de PHP, a organisé une présentation ZF dont la vidéo (amateur ?) est en ligne <a href="http://php.developpez.tv/zend-framework-andi-2007/" hreflang="fr">sur http://php.developpez.tv</a>. Certaines applications &laquo;&nbsp;grand public&nbsp;&raquo; utilisent ZF et un premier CMS vient de voir le jour : <a href="http://zfcms.tebe.ch" hreflang="de">http://zfcms.tebe.ch</a> (démonstration de l&#8217;outil de gestion : http://zfcms.tebe.ch/admin/ avec identifiant/mot de passe : admin/admin).<br />
ZF est un framework à suivre dans l&#8217;environnement PHP.</p>
<p>Stéphane.<br />
PS : un tutoriel plutôt bien fait existe sur le site : <a href="http://g-rossolini.developpez.com/tutoriels/php/zend-framework/debuter/" hreflang="fr">developpez.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/81/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un moteur de recherche de codes source ?</title>
		<link>http://blog.stephanepouyllau.org/80</link>
		<comments>http://blog.stephanepouyllau.org/80#comments</comments>
		<pubDate>Sat, 07 Jul 2007 09:27:32 +0000</pubDate>
		<dc:creator>pouyllau</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.stephanepouyllau.org/wp/?p=80</guid>
		<description><![CDATA[Bonjour, Le moteur de recherche Krugle annonce pour septembre 2007 une version entreprise de son moteur de recherche. Il s&#8217;agit donc d&#8217;un moteur de recherche qui indexe le contenu des codes sources déposés dans un forum ou dans des pages web (il y en aurait 20 millions de fichiers de code source sur le web [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour,<br />
<a href="http://corp.krugle.com/product/" hreflang="en">Le moteur de recherche Krugle</a> annonce pour septembre 2007 une version entreprise de son moteur de recherche. Il s&#8217;agit donc d&#8217;un moteur de recherche qui indexe le contenu des codes sources déposés dans un forum ou dans des pages web (il y en aurait 20 millions de fichiers de code source sur le web selon Krugle, source : <a href="http://www.01net.com/article/350441.html" hreflang="fr">01net</a>). Il existe aussi <a href="http://www.google.fr/codesearch" hreflang="fr">Google Code Search</a> (version en français) issu du &laquo;&nbsp;Labs&nbsp;&raquo; Californien de Google. Encore en développement il pourrait s&#8217;agir d&#8217;une sources non négligeable pour les développeurs. Si l&#8217;on veut recherche des bouts de code sur la commande addslashes en <a href="http://www.php.net/" hreflang="en">PHP</a>, il suffit de taper <a href="http://www.google.fr/codesearch?q=lang%3Aphp+addslashes&amp;hl=fr&amp;btnG=Rechercher+du+code" hreflang="fr">lang:php addslashes</a>. Dans les résultats de recherche, le type de licence du source trouvé est indiqué (GPL, LGPL, BSD, etc.). A vos codes&#8230;et bonne fin de semaine. Stéphane.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/80/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un peu de javascript</title>
		<link>http://blog.stephanepouyllau.org/79</link>
		<comments>http://blog.stephanepouyllau.org/79#comments</comments>
		<pubDate>Sat, 30 Jun 2007 13:27:54 +0000</pubDate>
		<dc:creator>pouyllau</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.stephanepouyllau.org/wp/?p=79</guid>
		<description><![CDATA[Bonjour, Il est important, parfois, de revenir à la programmation directe : dans le &#171;&#160;coeur du code&#160;&#187; (utilisez Zend, PDO&#8230;, c&#8217;est super mais bon l&#8217;assemblage au bout d&#8217;un moment&#8230;). Au cours d&#8217;un développement ou plutôt d&#8217;un patchage d&#8217;ICEberg, j&#8217;ai du surmonter le problème du document.getSelection(); en javascript qui ne fonctionne qu&#8217;avec les navigateurs Mozilliesque (Firefox, [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour,<br />
Il est important, parfois, de revenir à la programmation directe : dans le &laquo;&nbsp;coeur du code&nbsp;&raquo; (utilisez Zend, PDO&#8230;, c&#8217;est super mais bon l&#8217;assemblage au bout d&#8217;un moment&#8230;). Au cours d&#8217;un développement ou plutôt d&#8217;un patchage d&#8217;ICEberg, j&#8217;ai du surmonter le problème du <strong>document.getSelection();</strong> en javascript qui ne fonctionne qu&#8217;avec les navigateurs Mozilliesque (Firefox, Netscape, Mozilla). document.getSelection(); n&#8217;est donc pas compatible avec IE. Je suis dans une application en <a href="http://php.net/fr" hreflang="fr">PHP</a> et j&#8217;ai besoin du document.getSelection(); pour transmettre via des variables une selection de texte éffectuée par l&#8217;internaute sur la page consultée pour l&#8217;injecter ensuite dans un formulaire. Si IE n&#8217;existait pas, nous pourrions nous contenter de :</p>
<p><code>location.href='formAK.php/user?action=add&amp; description='+encodeURIComponent(document.getSelection())+';</code></p>
<p>Seulement voilà, il y a IE et document.getSelection(); renvoit une belle erreur javascript. Mais il y a une petite solution très simple qui permet de rendre cette action compatible quelque soit votre navigateur préféré (sous MacOS X, cela fonctionne aussi). Plutôt que de détecter le navigateur (son nom via : navigator.appName), il plus intéressant de détecter la méthode (ou l&#8217;objet) dont le fonctionement avec les navigateurs n&#8217;est pas possible (ou mal gérée). Ainsi, avec un système conditionnel classique et une nouvelle variable &laquo;&nbsp;methodeselection&nbsp;&raquo; :</p>
<p><code><br />
if (document.getSelection) methodeselection = document.getSelection();<br />
else if (document.selection) methodeselection = document.selection.createRange().text;<br />
else return;</code></p>
<p>Préparé pour une page web, nous pouvons écrire :</p>
<p><code>function envoyer_une_selection_quelquepart() {<br />
if (document.getSelection) sel = document.getSelection();<br />
else if (document.selection) sel = document.selection.createRange().text;<br />
else return;<br />
location.href='http://www.monsite.fr/?action=ajouteramonforumulaire&amp;<br />
description='+encodeURIComponent(sel)+';<br />
}</code></p>
<p>Bonne fin de semaine,<br />
Stéphane.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/79/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilisation massive de la librairie GD pour PHP : les lettres de Stephen Gray dans le site @.ampere</title>
		<link>http://blog.stephanepouyllau.org/68</link>
		<comments>http://blog.stephanepouyllau.org/68#comments</comments>
		<pubDate>Thu, 30 Nov 2006 08:01:24 +0000</pubDate>
		<dc:creator>pouyllau</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[métadonnées]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.stephanepouyllau.org/wp/?p=68</guid>
		<description><![CDATA[Bonjour, Dans le site @.ampere (direction ; C. Blondel, CNRS) dont je suis le webmaster, j&#8217;ai placé des lettres de Stephen Gray (voir dans Wikipedia), pour le zoom j&#8217;utilise la GD de PHP, cette librairie est connue mais elle rend bien des services quoiqu&#8217;un peu lente. Je l&#8217;utilise pour le zoom 100% 75% 50% 25% [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour,<br />
Dans le site <a href="http://www.ampere.cnrs.fr" hreflang="fr">@.ampere</a> (direction ; C. Blondel, CNRS) dont je suis le webmaster, j&#8217;ai placé <a href="http://www.ampere.cnrs.fr/ice/ice_book_detail-fr-img-ampere-ampere_text-73-4.html" hreflang="fr">des lettres de Stephen Gray</a> (voir dans <a href="http://fr.wikipedia.org/wiki/Stephen_Gray" hreflang="fr">Wikipedia</a>), pour le zoom j&#8217;utilise la GD de PHP, cette librairie est connue mais elle rend bien des services quoiqu&#8217;un peu lente. Je l&#8217;utilise pour le zoom 100% 75% 50% 25% mais aussi dans le site du <a href="http://www.cn2sv.fr" hreflang="fr">CN2SV</a> pour le génération d&#8217;images &laquo;&nbsp;vignettes&nbsp;&raquo; à la volée. La GD a été intégré à PHP depuis la version 4.3 et commence à faire du JPEG2000. En complément, il y a surtout la fonction &laquo;&nbsp;iptcparse&nbsp;&raquo; qui permet de lire les méta-données IPTC et même de les mettre à jour avec &laquo;&nbsp;iptcembed&nbsp;&raquo;.<br />
Stéphane.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/68/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ICEberg 4 sur les rails.</title>
		<link>http://blog.stephanepouyllau.org/57</link>
		<comments>http://blog.stephanepouyllau.org/57#comments</comments>
		<pubDate>Wed, 23 Aug 2006 23:36:36 +0000</pubDate>
		<dc:creator>pouyllau</dc:creator>
				<category><![CDATA[digital humanities]]></category>
		<category><![CDATA[informatique]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[ICEberg]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.stephanepouyllau.org/wp/?p=57</guid>
		<description><![CDATA[Bonsoir, Je profite des vacances pour avancer la mise en place d&#8217;ICEberg 4 ! Les tests avancent plutôt bien : il est sûr que préparer la nouvelle version de mon gestionnaire de corpus numériques au bord d&#8217;une piscine c&#8217;est assez génial : un plouf entre deux class php. Mes deux compagnons de programmation de cette [...]]]></description>
			<content:encoded><![CDATA[<p>Bonsoir,</p>
<p>Je profite des vacances pour avancer la mise en place d&#8217;ICEberg 4 ! Les tests avancent plutôt bien : il est sûr que préparer la nouvelle version de mon gestionnaire de corpus numériques au bord d&#8217;une piscine c&#8217;est assez génial : un plouf entre deux class php. Mes deux compagnons de programmation de cette nouvelle version : Romain et Frédéric ont maintenant terminé leur travail, j&#8217;ai pris la suite pour assembler les blocs, débuguer, relire, reprendre, améliorer le tout. ICEberg 4 s&#8217;appuyera sur MySQL et PHP 4 ou PHP 5 (nous avons prévu les deux versions au cas ou&#8230;la version &laquo;&nbsp;tout XML&nbsp;&raquo; : ICEbergXML reste toujours disponible&#8230;). La partie &laquo;&nbsp;berg&nbsp;&raquo; est nettement plus opérationnelle : les chercheurs maitrisant l&#8217;informatisation de leurs propres corpus vont être contents ! la partie ICE reste dans la même idée que celle de la version 3 : nous n&#8217;avons changé que de petites choses sur le plan de l&#8217;interface. Cependant, le code a été totalement ré-écrit par Frédéric avec des class en PHP 5.</p>
<p>L&#8217;autre jour, un chercheur me demandait pourquoi j&#8217;avais fait un outil &laquo;&nbsp;propre&nbsp;&raquo; alors qu&#8217;il en existe plein sur le web tel que PLEADE, ARCANE, etc. Je lui est dit qu&#8217;il arrive un moment ou il faut développer un outil dédié pour répondre à une demande forte qui apparaît. Il existe Photoshop, pourtant des programmeurs ont développé GIMP ! ICEberg répond à un besoin : la mise en ligne et la gestion de paquets de documents numériques (d&#8217;archives, issus de documents actuels, des photos, bref tout  type de documents numérisés) en utilisant un gestionnaire de base de données &laquo;&nbsp;libre&nbsp;&raquo; ou du XML, rien de plus. J&#8217;ajoutais qu&#8217;il n&#8217;y a pas de moteur recherche puissant dans ICEberg, j&#8217;en prépare un avec l&#8217;aide du CNRS mais il ne sera pas dans ICEberg, mais il fonctionnera au-dessus ; balayant ainsi l&#8217;ensemble des corpus numériques, même chose pour le module OAI d&#8217;ICEberg.<br />
Ainsi, ICEberg tend toujours vers le plus simple : des modules y sont ajoutés, mais toujours de façon annexe, sans toucher au noyau. Mais de temps en temps, nous réécrivons une nouvelle version de la partie &laquo;&nbsp;dure&nbsp;&raquo; d&#8217;ICEberg : nous y sommes.</p>
<p>Je m&#8217;en retour à mon <code>code</code> :-). Bonne soirée, Stéphane.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.stephanepouyllau.org/57/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

