<?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>Nicolas James - weblog</title>
	<atom:link href="http://njames.trevize.net/weblog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://njames.trevize.net/weblog</link>
	<description>it's a weblog, what else?</description>
	<lastBuildDate>Thu, 09 Sep 2010 17:23:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Quick shell script for recursive add and delete svn commands and commit.</title>
		<link>http://njames.trevize.net/weblog/?p=3001</link>
		<comments>http://njames.trevize.net/weblog/?p=3001#comments</comments>
		<pubDate>Tue, 17 Aug 2010 10:08:14 +0000</pubDate>
		<dc:creator>njames</dc:creator>
				<category><![CDATA[Au fond du labo à droite]]></category>

		<guid isPermaLink="false">http://njames.trevize.net/weblog/?p=3001</guid>
		<description><![CDATA[#!/bin/bash &#160; echo &#34;processing files to add...&#34; svn status &#124; grep &#34;^?&#34; &#124; sed -r 's/^\?[ ]+//' &#124; xargs -r svn add &#160; echo &#34;processing files to delete...&#34; svn status &#124; grep &#34;^!&#34; &#124; sed -r 's/^\![ ]+//' &#124; xargs -r svn delete &#160; echo &#34;processing commit...&#34; svn commit]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">#!/bin/bash
&nbsp;
echo &quot;processing files to add...&quot;
svn status | grep &quot;^?&quot; | sed -r 's/^\?[ ]+//' | xargs -r svn add
&nbsp;
echo &quot;processing files to delete...&quot;
svn status | grep &quot;^!&quot; | sed -r 's/^\![ ]+//' | xargs -r svn delete
&nbsp;
echo &quot;processing commit...&quot;
svn commit</pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://njames.trevize.net/weblog/?feed=rss2&amp;p=3001</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualize the PascalVOC data using Galatee / Jmagine</title>
		<link>http://njames.trevize.net/weblog/?p=2921</link>
		<comments>http://njames.trevize.net/weblog/?p=2921#comments</comments>
		<pubDate>Thu, 01 Jul 2010 11:37:51 +0000</pubDate>
		<dc:creator>njames</dc:creator>
				<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://njames.trevize.net/weblog/?p=2921</guid>
		<description><![CDATA[Galatee is my Java library for visualizing image collection, and Jmagine is my other Java library for displaying images with annotated polygons using the SVG specification and Apache Batik. Using this two libraries it's easy to code a quick browser for a specific image collection with a specific annotation file format and annotation model. In [...]]]></description>
			<content:encoded><![CDATA[<a href="http://njames.trevize.net/wiki/projects:galatee">Galatee</a> is my Java library for visualizing image collection, and Jmagine is my other Java library for displaying images with annotated polygons using the <acronym title="Scalable Vector Graphics">SVG</acronym> specification and Apache Batik.<br/>
Using this two libraries it's easy to code a quick browser for a specific image collection with a specific annotation file format and annotation model.<br/>
In the case of PascalVOC, since the challenge of 2007 the annotation files are <acronym title="eXtensible Markup Language">XML</acronym> files, so with the help of an XSD grammar related to the <acronym title="eXtensible Markup Language">XML</acronym> files and using JAXB it's easy to retrieve all the data contained in the annotation files that we want. Considering this, using the Galatee and Jmagine libraries, browse and visualize the PascalVOC data need less than 300 lines of codes!

<ul>
	<li><a href='http://njames.trevize.net/weblog/wp-content/uploads/2010/07/PascalVOCBrowser.java'>PascalVOCBrowser.java</a></li>
	<li><a href='http://njames.trevize.net/weblog/wp-content/uploads/2010/07/GListenerImpl.java'>GListenerImpl.java</a></li>
</ul>

<p>
<a href="http://njames.trevize.net/weblog/wp-content/uploads/2010/07/PascalVOCBrowser.jpg"><img src="http://njames.trevize.net/weblog/wp-content/uploads/2010/07/PascalVOCBrowser-300x225.jpg" alt="" title="PascalVOCBrowser" width="300" height="225" class="alignleft size-medium wp-image-2942" /></a>
</p>

<p>
Obviously the browser takes much time for starting (the time for JAXB to parse all the annotation files that are <acronym title="eXtensible Markup Language">XML</acronym> files), but using a serialization of the inputs needed by the Galatee library, this time is needed only at the first launch of the program.
</p>

<p>
The archive of the project: <a href="http://njames.trevize.net/docs-repo/public/Galatee/PascalVOC-0.2-2010.07.01.tar.gz">PascalVOC-0.2-2010.07.01.tar.gz</a> (18.9 <acronym title="Megabyte">MB</acronym>, it's heavy but the archive includes the Galatee, Jmagine, Apache Batik, Lucene and JAI libraries).<br/>
The archive contains java code and classes, a shell script <code>PascalVOC.sh</code> for GNU/Linux and a batch file <code>PascalVOC.bat</code> for <acronym title="Microsoft">MS</acronym>-Windows.
</p>

<p/>

<div class="pch1">NOTE: How to make the <acronym title="eXtensible Markup Language">XML</acronym> binding generated by JAXB serializable?</div>
<ol>
	<li>add <code>xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0"</code> to the namespaces declaration of the XSD schema element</li>
	<li>add this element in the schema body:


<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">&lt;xs:annotation&gt;
  &lt;xs:appinfo&gt;
    &lt;jaxb:bindings xmlns:jaxb=&quot;http://java.sun.com/xml/ns/jaxb&quot;&gt;
      &lt;jaxb:bindings schemaLocation=&quot;/home/nicolas/dev/eclipse-java-workspace/PascalVOC/pascalvoc_annotation.xsd&quot;&gt;
        &lt;jaxb:globalBindings&gt;
          &lt;jaxb:serializable /&gt;
        &lt;/jaxb:globalBindings&gt;
      &lt;/jaxb:bindings&gt;
    &lt;/jaxb:bindings&gt;
  &lt;/xs:appinfo&gt;
&lt;/xs:annotation&gt;</pre></div></div>



</li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://njames.trevize.net/weblog/?feed=rss2&amp;p=2921</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Supprimer une révision sur un repository SVN</title>
		<link>http://njames.trevize.net/weblog/?p=2914</link>
		<comments>http://njames.trevize.net/weblog/?p=2914#comments</comments>
		<pubDate>Wed, 30 Jun 2010 13:06:29 +0000</pubDate>
		<dc:creator>njames</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://njames.trevize.net/weblog/?p=2914</guid>
		<description><![CDATA[Dans l'arsenal de commandes de SVN il n'y a pas de commande pour supprimer une révision, la façon la plus simple de faire est de créer un dump du repository incriminé, supprimer le repository, créer un repository avec le même nom, et y importer le dump précédemment crée. $tar czf cbiaproto3.tar.gz ./cbiaproto3 $svnadmin dump -r1:13 [...]]]></description>
			<content:encoded><![CDATA[Dans l'arsenal de commandes de <acronym title="Subversion">SVN</acronym> il n'y a pas de commande pour supprimer une révision, la façon la plus simple de faire est de créer un dump du repository incriminé, supprimer le repository, créer un repository avec le même nom, et y importer le dump précédemment crée.


<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">$tar czf cbiaproto3.tar.gz ./cbiaproto3
$svnadmin  dump -r1:13 cbiaproto3 &gt; cbiaproto3.dump
$rm -fr cbiaproto3
$svnadmin create cbiaproto3
$svnadmin load cbiaproto3 &lt; cbiaproto3.dump</pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://njames.trevize.net/weblog/?feed=rss2&amp;p=2914</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Jaunty, algorithm2e et IEEETran</title>
		<link>http://njames.trevize.net/weblog/?p=2836</link>
		<comments>http://njames.trevize.net/weblog/?p=2836#comments</comments>
		<pubDate>Wed, 05 May 2010 16:42:35 +0000</pubDate>
		<dc:creator>njames</dc:creator>
				<category><![CDATA[Desktop environment]]></category>

		<guid isPermaLink="false">http://njames.trevize.net/weblog/?p=2836</guid>
		<description><![CDATA[Sous Ubuntu Jaunty la dernière version du package Latex algorithm2e est 3.9, alors que la version 4.01 est disponible. Dans cette dernière version certaines commandes ont changées notamment \SetLine devient \SetalgoLined (voir la documentation). Plutôt que d'écraser le fichier apporté par le paquet ubuntu (i.e. /usr/share/texmf-texlive/tex/latex/algorithm2e/algorithm2e.sty), une façon simple d'utiliser la dernière version est de [...]]]></description>
			<content:encoded><![CDATA[Sous Ubuntu Jaunty la dernière version du package Latex <a href="http://www.lirmm.fr/~fiorio/miscellaneous/algorithm2e.html">algorithm2e</a> est 3.9, alors que la version 4.01 est disponible. Dans cette dernière version certaines commandes ont changées notamment <code>\SetLine</code> devient <code>\SetalgoLined</code> (voir la <a href="http://www.lirmm.fr/~fiorio/files/misc/Algorithm2e-4.01/algorithm2e.pdf">documentation</a>).<br/>
<br/>
Plutôt que d'écraser le fichier apporté par le paquet ubuntu (i.e. <code>/usr/share/texmf-texlive/tex/latex/algorithm2e/algorithm2e.sty</code>), une façon simple d'utiliser la dernière version est de se créer un répertoire <code>~/texmf</code> (texmf pour <em>tex macros &#038; fonts</em>), d'y copier le fichier <code>algorithm2e</code> en version 4.01, et de positionner la variable d'environnement <code>TEXINPUTS</code> avant de lancer la compilation de son latex:


<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">$export TEXINPUTS=.:/home/nicolas/texmf:</pre></div></div>




<b>NOTES:</b><br/>
<ul>
	<li>le positionnement <code>[H]</code> sur un algorithm (i.e. <code>\begin{algorithm}[H]</code>) n'est pas autorisé en mode deux colonnes comme dans la classe IEEETran.</li>
	<li>la <a href="http://www.springer.com/computer/lncs?SGWID=0-164-6-793341-0">classe Latex LLNCS</a> a été mise à jour, et le package hyperref est (enfin! ) supporté (<a href="http://constraints.wordpress.com/2010/04/01/hyperref-with-llncs-bug/#more-263">lien</a>).</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://njames.trevize.net/weblog/?feed=rss2&amp;p=2836</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validation xhtml de trevize.net et njames.trevize.net</title>
		<link>http://njames.trevize.net/weblog/?p=2661</link>
		<comments>http://njames.trevize.net/weblog/?p=2661#comments</comments>
		<pubDate>Sat, 06 Mar 2010 23:50:00 +0000</pubDate>
		<dc:creator>njames</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://njames.trevize.net/weblog/?p=2661</guid>
		<description><![CDATA[Le temps passant, j'ai fait beaucoup de modifications et d'ajouts sur ce site. La validation xhtml des pages n'est plus depuis belle lurette! Pour remédier à cela, je me suis mis à cette fastidieuse tâche: A propos de contenu html embedded dans une page dokuwiki: (i.e. ma homepage personnelle), il existe en fait deux façon [...]]]></description>
			<content:encoded><![CDATA[Le temps passant, j'ai fait beaucoup de modifications et d'ajouts sur ce site. La validation xhtml des pages n'est plus depuis belle lurette! Pour remédier à cela, je me suis mis à cette fastidieuse tâche:
<ul>
	<li>A propos de contenu html embedded dans une page dokuwiki: (i.e. ma homepage personnelle), il existe en fait deux façon d'encapsuler du html dans une page dokuwiki:
<ol>
	<li>avec le tag <code>&lt;html&gt;</code> et le contenu html doit être uniquement inline</li>
	<li>avec le tag <code>&lt;<acronym title="HyperText Markup Language">HTML</acronym>&gt;</code> et le code html peut contenir des éléments block</li>
</ol>
La différence est qu'avec le premier, le code html est à l'intérieur d'un un tag <code>&lt;p&gt;</code> donc si le code html imbriqué contient des éléments blocks alors la validation html est impossible !<br/>
C'est un problème qui m'agaçait depuis longtemps, mais je ne connaissais pas l'existence du tag <code>&lt;<acronym title="HyperText Markup Language">HTML</acronym>&gt;</code>.</li>
	<li>Pour la validation des pages WordPress: ce moteur de weblog à la très sale habitude de formater le contenu des billets, notamment en ajoutant des balises <code>&lt;p&gt;</code> un peu partout. Il est possible de désactiver cela via le plugin <a href="http://urbangiraffe.com/plugins/disable-wpautop/">disable-wpautop</a>. Une fois ce plugin activé, la validation xhtml 1.0 transitional est à portée de main...<br/>
<strong>Un petit souci cependant:</strong> le plugin désactive aussi l'ajout des balises <code>&lt;br&gt;</code>, ce qui est embêtant pour la rédaction.</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://njames.trevize.net/weblog/?feed=rss2&amp;p=2661</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
