<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>PoXd &#187; dev</title>
	<atom:link href="http://poxd.wordpress.com/category/dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://poxd.wordpress.com</link>
	<description>Pollux world</description>
	<lastBuildDate>Thu, 20 Mar 2008 07:46:03 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='poxd.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/b1877578f1de26bf0b2d2ea88eeb5115?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>PoXd &#187; dev</title>
		<link>http://poxd.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://poxd.wordpress.com/osd.xml" title="PoXd" />
		<item>
		<title>L&#8217;union fait la force</title>
		<link>http://poxd.wordpress.com/2008/01/28/lunion-fait-la-force/</link>
		<comments>http://poxd.wordpress.com/2008/01/28/lunion-fait-la-force/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 21:05:52 +0000</pubDate>
		<dc:creator>pollux</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[conception]]></category>
		<category><![CDATA[struts]]></category>

		<guid isPermaLink="false">http://poxd.wordpress.com/?p=41</guid>
		<description><![CDATA[Il est toujours intéressant de parcourir du code source créé par d&#8217;autres personnes, c&#8217;est à mes yeux une excellente formation pour devenir un bon développeur. Je peux le vérifier en ce moment puisque je travaille sur la résolutions d&#8217;incidents sur une application web ayant pour base principale Struts.
J&#8217;ai été vraiment impressionné par le nombre de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=41&subd=poxd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Il est toujours intéressant de parcourir du code source créé par d&#8217;autres personnes, c&#8217;est à mes yeux une excellente formation pour devenir un bon développeur. Je peux le vérifier en ce moment puisque je travaille sur la résolutions d&#8217;incidents sur une application web ayant pour base principale <a href="http://struts.apache.org">Struts</a>.</p>
<p>J&#8217;ai été vraiment impressionné par le nombre de classes utilisées simplement pour supporter les opérations ajout, récupération,mise à jour et suppression de données (<a href="http://en.wikipedia.org/wiki/Create%2C_read%2C_update_and_delete">CRUD</a>). A la décharge de l&#8217;équipe ayant créé cette application, il faut avouer que le modèle de Struts encourage à créer une classe par <b>action</b>.</p>
<p>Personnellement, je pense que la philosophie objet est respectée si l&#8217;on décide de regrouper les opérations CRUD dans une seule et même classe. Le nombre de classes va ainsi diminuer et rendre plus de clarté à l&#8217;environnement et l&#8217;objectif de chaque classe sera toujours bien défini.</p>
<p>De plus pour ne rien gâcher, Struts propose lui-même cette solution! La classe <a href="http://struts.apache.org/1.3.8/apidocs/org/apache/struts/actions/DispatchAction.html">DispatchAction</a> permet en effet au développeur de regrouper plusieurs actions en une-seule. Cette classe se trouvant dans la hiérarchie de la standard <a href="http://struts.apache.org/1.3.8/apidocs/org/apache/struts/action/Action.html">Action</a> n&#8217; est donc pas très différente de celle-ci.</p>
<p>En reprenant ce qu&#8217;explique la javadoc de cette nouvelle recrue, voici comment doter davantage de fonctionnalités à une action:</p>
<ul>
<li>la déclaration de la classe dans le fichier struts-config est quelque peu différente:<code>&lt;action<br />
path="/saveSubscription"<br />
type="org.apache.struts.actions.DispatchAction"<br />
name="subscriptionForm"<br />
scope="request"<br />
input="/subscription.jsp"<br />
parameter="method"/&gt;</code> Le type de l&#8217;action correspond à la nouvelle classe et l&#8217;attribut <i>parameter</i> tient également un rôle particulier dans cette situation. C&#8217;est ce paramètre qui va être utilisé afin de définir quelle action sera exécutée.</li>
<li>définir une méthode par action suivant le modèle suivant:<code>public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception</code></li>
<li>la dernière chose à faire est de faire passer le paramètre &#8216;method&#8217; (la valeur de l&#8217;attribut <i>parameter</i> de la 1ère étape) avec comme valeur le nom de l&#8217;action. Pour ce faire il n&#8217;y a qu&#8217;à passer par un lien ou un champ caché dans un formulaire!</li>
</ul>
<p>Le résultat devient tout de même beaucoup plus agréable! La productivité va également sûrement être favorisée du fait qu&#8217;il n&#8217;y aura plus à jongler entre plusieurs classes pour changer d&#8217;opération sur un certain objet&#8230; Et le développeur qui devra passer plus tard sur un code plus compact en sera très reconnaissant <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/poxd.wordpress.com/41/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/poxd.wordpress.com/41/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/poxd.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/poxd.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/poxd.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/poxd.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/poxd.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/poxd.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/poxd.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/poxd.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/poxd.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/poxd.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=41&subd=poxd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://poxd.wordpress.com/2008/01/28/lunion-fait-la-force/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ea8d012e0d5bd4bb81db079243d943b?s=96&#38;d=identicon" medium="image">
			<media:title type="html">pollux</media:title>
		</media:content>
	</item>
		<item>
		<title>Amazon Web Service</title>
		<link>http://poxd.wordpress.com/2007/12/12/amazon-web-service/</link>
		<comments>http://poxd.wordpress.com/2007/12/12/amazon-web-service/#comments</comments>
		<pubDate>Wed, 12 Dec 2007 21:13:09 +0000</pubDate>
		<dc:creator>pollux</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://poxd.wordpress.com/2007/12/12/amazon-web-service/</guid>
		<description><![CDATA[Les applications aujourd&#8217;hui connectées à Internet peuvent interroger des services web afin d&#8217;obtenir des données externes aux objets de l&#8217;application. Il est ainsi possible d&#8217;interroger des miliers de bases de données en ligne.
Nous avions par exemple vu l&#8217;application Delicious Library. L&#8217;appel d&#8217;un service web se fait au moment où on lance une recherche à propos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=31&subd=poxd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p align="justify">Les applications aujourd&#8217;hui connectées à Internet peuvent interroger des services web afin d&#8217;obtenir des données externes aux objets de l&#8217;application. Il est ainsi possible d&#8217;interroger des miliers de bases de données en ligne.</p>
<p align="justify">Nous avions par exemple vu l&#8217;application Delicious Library. L&#8217;appel d&#8217;un service web se fait au moment où on lance une recherche à propos d&#8217;un média. En entrant un simple mot vous obtenez une liste de livre, cd, dvd ou encore de jeux vidéos correspondant à votre recherche. L&#8217;application utilise le service web de la plateforme amazon et par cet article je vais démontrer la facilité avec laquelle il est possible d&#8217;interroger se service web en Java. C&#8217;est parti!</p>
<p align="justify"><span id="more-31"></span><br />
Il faut tout d&#8217;abord créer un compte sur la plateforme depuis cet url : <a href="http://www.amazon.com/gp/browse.html?node=3435361">http://www.amazon.com/gp/browse.html?node=3435361</a></p>
<p align="justify">Après inscription il est possible d&#8217;obtenir un identifiant (acces key id) nécessaire à l&#8217;interrogation du service web. Il nous manque plus que le lien reliant notre application et le service web. L&#8217;utilitaire en ligne de commande wsimport va nous créer ce lien. Cet outil est intégré au JDK. Donc si l&#8217;environnement est bien configuré il sera possible de directement lancer cet utilitaire depuis le prompt. Sinon il faudra vérifier que le répertoire JDK est bien référencé dans le <em>PATH </em>de l&#8217;environnement.</p>
<p align="justify">Utilisons donc cet utilitaire pour nous créer les classes nécessaires à l&#8217;interrogation du service web. Pour cela rien de plus simple :<br />
<code>wsimport http://www.amazon.com/gp/browse.html?node=3435361 -d src -p org.poxd.gen</code><br />
Après exécution de cette ligne dans le shell (prompt DOS ou shell unix) un ensemble de classes sont créées. Celles-ci feront tout le travail d&#8217;interrogation sur le service web.</p>
<p align="justify">Suite à la création de ces classes, nous allons les utiliser afin d&#8217;interroger amazon pour nous retourner les résultats de livres pour un auteur renseigné par l&#8217;utilisateur dans une application graphique. L&#8217;aspect graphique peut en rebuter plus d&#8217;un lorsqu&#8217;il faut s&#8217;attaquer à la librairie swing qui a mauvaise réputation. Cependant en utilisant Netbeans il devient très facile d&#8217;arranger des composants ensembles grâce à Matisse son <em>GUI Builder. </em>En 2 minutes on peut se créer une fenêtre contenant une liste, un champ de texte, un bouton, une barre de menu et une gestion complète du positionnement et de la taille de la fenêtre qui vont être mémorisées à la fermeture de l&#8217;application pour les restaurer au prochain démarrage. Voici le rendu de mon application :</p>
<p style="text-align:center;"><img src="http://poxd.files.wordpress.com/2007/12/sans-titre.jpg" alt="aws-gui" /></p>
<p align="justify"> Netbeans s&#8217;appuie sur l&#8217;Application framework développé par Sun ce qui tend à rendre les choses plus facile pour ce genre de développement. Tout ce qui est de la gestion de l&#8217;internationalisation, des actions, du modèle de Swing est plus accessible à tout développeur.</p>
<p align="justify">Maintenant si nous retournons à notre application nous allons y intégrer l&#8217;appel au service web d&#8217;amazon en passant par nos classes générées par wsimport. Pour récupérer donc une liste de livres correspondant à un auteur le tout est aussi simple que ça:</p>
<p><code>AWSECommerceService service = new AWSECommerceService();<br />
AWSECommerceServicePortType portType = service.getAWSECommerceServicePort();<br />
ItemSearchRequest request = new ItemSearchRequest();<br />
Holder&lt;OperationRequest&gt; operationrequest = new Holder&lt;OperationRequest&gt;();<br />
Holder&lt;java.util.List&lt;Items&gt;&gt; items = new Holder&lt;java.util.List&lt;Items&gt;&gt;();<br />
request.setSearchIndex("Books");<br />
request.setAuthor("tevis");<br />
ItemSearch search = new ItemSearch();<br />
search.setAWSAccessKeyId(AWSID);<br />
search.getRequest().add(request);<br />
List result = new ArrayList();<br />
portType.itemSearch("", AWSID, AWSID, "", "", "", request, search.getRequest(), operationrequest, items);</code></p>
<p>La variable AWSID étant la clé fournie par amazon après création d&#8217;un compte.</p>
<p>A ce moment-là, la liste <em>result </em>contient toutes les informations dont on peut avoir besoin! Tout est accessible depuis son membre <em>value</em>. Pour de plus amples informations sur ce qui est possible et comment je vous laisse consulter le centre de ressources d&#8217;amazon. Voici en quelques minutes ce que l&#8217;on peut obtenir conjointement avec les services web d&#8217;Amazon et Netbeans 6.</p>
<p align="center"><img src="http://poxd.files.wordpress.com/2007/12/result.jpg" alt="result-aws" /></p>
<p>Vous pouvez trouver les sources <a href="http://digitalbucket.net/Public/Download.ashx?q=9f5316edbe182634c7f80eb879642cda">ici</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/poxd.wordpress.com/31/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/poxd.wordpress.com/31/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/poxd.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/poxd.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/poxd.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/poxd.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/poxd.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/poxd.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/poxd.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/poxd.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/poxd.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/poxd.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=31&subd=poxd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://poxd.wordpress.com/2007/12/12/amazon-web-service/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ea8d012e0d5bd4bb81db079243d943b?s=96&#38;d=identicon" medium="image">
			<media:title type="html">pollux</media:title>
		</media:content>

		<media:content url="http://poxd.files.wordpress.com/2007/12/sans-titre.jpg" medium="image">
			<media:title type="html">aws-gui</media:title>
		</media:content>

		<media:content url="http://poxd.files.wordpress.com/2007/12/result.jpg" medium="image">
			<media:title type="html">result-aws</media:title>
		</media:content>
	</item>
		<item>
		<title>Java et le web 2.0</title>
		<link>http://poxd.wordpress.com/2007/11/19/java-et-le-web-20/</link>
		<comments>http://poxd.wordpress.com/2007/11/19/java-et-le-web-20/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 13:42:37 +0000</pubDate>
		<dc:creator>pollux</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[comet]]></category>
		<category><![CDATA[pattern]]></category>
		<category><![CDATA[web 2]]></category>

		<guid isPermaLink="false">http://poxd.wordpress.com/2007/11/19/java-et-le-web-20/</guid>
		<description><![CDATA[Un article intéressante concernant java et les appels asynchrones est consultable sur developerwors.
 Il met bien à l&#8217;index les lacunes de l&#8217;architecture Servlet de Java en ce qui concerne le buzz du moment : le web 2.0. Mais ce qu&#8217;il y a d&#8217;intéressant c&#8217;est que l&#8217;article propose des pistes sur lesquelles se diriger lorsque l&#8217;on veut [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=29&subd=poxd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Un <a href="http://www.ibm.com/developerworks/web/library/wa-aj-web2jee/?S_TACT=105AGX54&amp;S_CMP=A1109&amp;ca=dnw-843">article intéressante</a> concernant java et les appels asynchrones est consultable sur developerwors.</p>
<p align="justify"> Il met bien à l&#8217;index les lacunes de l&#8217;architecture Servlet de Java en ce qui concerne le buzz du moment : le web 2.0. Mais ce qu&#8217;il y a d&#8217;intéressant c&#8217;est que l&#8217;article propose des pistes sur lesquelles se diriger lorsque l&#8217;on veut créer une gestion asynchrones de requêtes. Il est parlé entre autre de du projet <a href="http://mina.apache.org/">Apache MINA</a> , <a href="http://www.eecs.harvard.edu/~mdw/proj/seda/">SEDA</a>, mais également du pattern <a href="http://www.webtide.com/downloads/whitePaperWhyAjax.html">COMET</a>. Très bon tour d&#8217;horizon et d&#8217;idées à consulter. Un benchmark est de plus utilisé afin de prouver l&#8217;apport des appels asynchrones par rapport à la démarche synchrone traditionnelle à Java. Il propose de nombreuses ressources; à aller consulter!</p>
<p align="justify"> Pour info l&#8217;article parle également de 2 solutions proposées par les conteneurs Tomcat et Jetty qui permettent une communication asynchrone : <a href="http://tomcat.apache.org/tomcat-6.0-doc/aio.html">Apache Tomcat 6 Comet API</a> et <a href="http://docs.codehaus.org/display/JETTY/Continuations">Jetty Continuations</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/poxd.wordpress.com/29/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/poxd.wordpress.com/29/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/poxd.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/poxd.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/poxd.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/poxd.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/poxd.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/poxd.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/poxd.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/poxd.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/poxd.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/poxd.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=29&subd=poxd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://poxd.wordpress.com/2007/11/19/java-et-le-web-20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ea8d012e0d5bd4bb81db079243d943b?s=96&#38;d=identicon" medium="image">
			<media:title type="html">pollux</media:title>
		</media:content>
	</item>
		<item>
		<title>GMAIL supporte IMAP &#8211; y parrait&#8230;.</title>
		<link>http://poxd.wordpress.com/2007/10/24/gmail-supporte-imap-y-parrait/</link>
		<comments>http://poxd.wordpress.com/2007/10/24/gmail-supporte-imap-y-parrait/#comments</comments>
		<pubDate>Wed, 24 Oct 2007 17:03:23 +0000</pubDate>
		<dc:creator>pollux</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[divers]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[f1]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[MAX]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://poxd.wordpress.com/2007/10/24/gmail-supporte-imap-y-parrait/</guid>
		<description><![CDATA[Plusieurs news parlent aujourd&#8217;hui du support IMAP par GMAIL (qui en est à 4 go d&#8217;espace dispo en ce moment). Malheureusement, perso je n&#8217;ai pas l&#8217;option d&#8217;activation (j&#8217;ai l&#8217;interface en anglais par défaut). Cela fait maintenant un bon bout de temps que cette fonctionnalité est réclamée&#8230; Des solutions alternatives ont été proposées et une pétition [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=25&subd=poxd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p align="justify"><a href="http://fr.techcrunch.com/2007/10/24/gmail-bientot-compatible-imap/">Plusieurs</a> <a href="http://www.pcinpact.com/actu/news/39631-gmail-google-imap.htm">news</a> <a href="http://slashdot.org/article.pl?sid=07/10/24/0249257&amp;from=rss">parlent</a> aujourd&#8217;hui du support <a href="http://fr.wikipedia.org/wiki/Imap">IMAP</a> par <a href="http://gmail.com">GMAIL</a> (qui en est à 4 go d&#8217;espace dispo en ce moment). Malheureusement, perso je n&#8217;ai pas l&#8217;option d&#8217;activation (j&#8217;ai l&#8217;interface en anglais par défaut). Cela fait maintenant un bon bout de temps que cette fonctionnalité est réclamée&#8230; Des <a href="http://www.mikeindustries.com/blog/archive/2006/04/how-to-use-gmail-over-imap">solutions alternatives</a> ont été proposées et une <a href="http://www.petitiononline.com/igmail/petition.html">pétition</a> a même circulé pour que Google ajoute la fonctionnalité.</p>
<hr />La <a href="http://www.mozilla.org/projects/calendar/sunbird/l10n_download.html#pre-release">pré-release 0.7 RC2</a> de <a href="http://www.mozilla.org/projects/calendar/sunbird/">Sunbird</a> (la solution agenda de la fondation Mozilla) est sortie et la RC3 est <a href="http://weblogs.mozillazine.org/calendar/2007/10/07_status_update_october_20.html">prévue pour très prochainement</a> (début de la semaine prochaine). Autrement dit, le projet s&#8217;active bien! Et c&#8217;est une bonne nouvelle car ce projet est un bon espoir de pouvoir synchroniser facilement votre agenda avec par exemple Google calendar et donc votre assistant personnel.</p>
<p align="justify">A noter qu&#8217;il est possible de l&#8217;intégrer à Thunderbird pour avoir une application tout-en-un &#8211; concurrent à Outlook. Ceci au travers du projet <a href="http://www.mozilla.org/projects/calendar/lightning/download.html">Lighting</a>.</p>
<hr />L&#8217;Adobe MAX s&#8217;est déroulé en Espagne cette semaine et voici <a href="http://www.tv4it.net/permalink/3455/adobe-max-le-media-player-ou-comment-adobe-se-lance-sur-le-marche-de-la-monetisation-de-contenus-videos.aspx">2</a> <a href="http://www.tv4it.net/permalink/3456/adobe-max-mark-anders-fondateur-de-flex-presente-thermo.aspx">vidéos</a> certainement très intéressantes. Adobe fait vraiment un bel effort pour rapprocher designer et développeur. C&#8217;est bien sympa!<br />
<hr />
<p align="justify">Après la saison de F1 palpitante que l&#8217;on vient de passer, le calendrier de la saison prochaine est sorti, si ca intéresse quelqu&#8217;un et que vous ne l&#8217;avez pas encore vu, c&#8217;est <a href="http://www.edicom.ch/fr/news/sport/1185_4440534.html?xtor=RSS-5">par là</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/poxd.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/poxd.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/poxd.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/poxd.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/poxd.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/poxd.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/poxd.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/poxd.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/poxd.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/poxd.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/poxd.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/poxd.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=25&subd=poxd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://poxd.wordpress.com/2007/10/24/gmail-supporte-imap-y-parrait/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ea8d012e0d5bd4bb81db079243d943b?s=96&#38;d=identicon" medium="image">
			<media:title type="html">pollux</media:title>
		</media:content>
	</item>
		<item>
		<title>Bee</title>
		<link>http://poxd.wordpress.com/2007/10/10/bee/</link>
		<comments>http://poxd.wordpress.com/2007/10/10/bee/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 14:47:21 +0000</pubDate>
		<dc:creator>pollux</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[divers]]></category>

		<guid isPermaLink="false">http://poxd.wordpress.com/2007/10/10/bee/</guid>
		<description><![CDATA[Bee est une application AIR (j&#8217;ai décidé de m&#8217;y plonger donc). Une fois de plus, l&#8217;intégration se fait très simplement. Une fois sur le site proposant l&#8217;application un clic et l&#8217;application est installé sur votre machine après avoir accepté la licence ainsi que l&#8217;accès à vos données.
 
Cette application vous permet d&#8217;éditer votre blog à [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=21&subd=poxd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Bee est une application AIR (j&#8217;ai décidé de m&#8217;y plonger donc). Une fois de plus, l&#8217;intégration se fait très simplement. Une fois sur le site proposant l&#8217;application un clic et l&#8217;application est installé sur votre machine après avoir accepté la licence ainsi que l&#8217;accès à vos données.</p>
<p align="center"><img src="///Users/pollux/Desktop/bee.png" /> <img src="http://poxd.files.wordpress.com/2007/10/bee.png" alt="bee" /></p>
<p>Cette application vous permet d&#8217;éditer votre blog à la manière d&#8217;ecto. Bee est moins évolué que celui-ci en fonctionnalités mais au niveau interface ca poutre comme on dit! Des effets de transparences, de fade in/out, d&#8217;animation&#8230; Tout y est et ca donne vraiment bien!</p>
<p>Je continue mon exploration, j&#8217;espère bientot créer ma première applic.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/poxd.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/poxd.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/poxd.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/poxd.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/poxd.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/poxd.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/poxd.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/poxd.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/poxd.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/poxd.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/poxd.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/poxd.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=21&subd=poxd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://poxd.wordpress.com/2007/10/10/bee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ea8d012e0d5bd4bb81db079243d943b?s=96&#38;d=identicon" medium="image">
			<media:title type="html">pollux</media:title>
		</media:content>

		<media:content url="///Users/pollux/Desktop/bee.png" medium="image" />

		<media:content url="http://poxd.files.wordpress.com/2007/10/bee.png" medium="image">
			<media:title type="html">bee</media:title>
		</media:content>
	</item>
		<item>
		<title>Adobe AIR</title>
		<link>http://poxd.wordpress.com/2007/10/08/adobe-air/</link>
		<comments>http://poxd.wordpress.com/2007/10/08/adobe-air/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 10:10:25 +0000</pubDate>
		<dc:creator>pollux</dc:creator>
				<category><![CDATA[dev]]></category>

		<guid isPermaLink="false">http://poxd.wordpress.com/2007/10/08/adobe-air/</guid>
		<description><![CDATA[Un article très intéressant concernant les applications desktop riches (RIA) est parru sur DevX.com
Cet article compare 3 technologies ayant pour but la création de ce genre d&#8217;application. Silverlight, Adobe AIR (anciennement connu sous le nom Apollo) et JavaFX sont mis côte à côte pour la création d&#8217;un même widget, un chronomètre.
Il est comme toujours évident [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=19&subd=poxd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Un article très intéressant concernant les <a href="http://www.devx.com/RichInternetApps/Article/35208/">applications desktop riches</a> (RIA) est parru sur DevX.com</p>
<p style="text-align:justify;">Cet article compare 3 technologies ayant pour but la création de ce genre d&#8217;application. Silverlight, Adobe AIR (anciennement connu sous le nom Apollo) et JavaFX sont mis côte à côte pour la création d&#8217;un même widget, un chronomètre.</p>
<p style="text-align:justify;">Il est comme toujours évident qu&#8217;une technologie ne répondra pas à tous les besoins. Mais concernant le développement d&#8217;application riche je me dis que je vais peut-être bien me pencher davantage sur Adobe AIR quant on voit le résultat du chronomètre sous cette technologie et le développement y ayant mené. Ainsi le widget n&#8217;a aucune décoration et supporte la transparence. C&#8217;est la différence principale mise en avant dans l&#8217;article. Peut-être qu&#8217;il y a possibilité d&#8217;y arriver avec les autres technologies (en Java c&#8217;est possible d&#8217;ôter la décoration donc en JavaFX sûrement aussi) mais AIR le fait très simplement. Au niveau du déploiement les 3 technologies me semblent défendables; il n&#8217;est en tout cas pas difficile d&#8217;effectuer cette opération sur aucune des 3 technologies.</p>
<p><!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">Technorati Tags: <a href="http://www.technorati.com/tag/developpement" rel="tag">developpement</a></p>
<p><!-- technorati tags end --></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/poxd.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/poxd.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/poxd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/poxd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/poxd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/poxd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/poxd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/poxd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/poxd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/poxd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/poxd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/poxd.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=19&subd=poxd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://poxd.wordpress.com/2007/10/08/adobe-air/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ea8d012e0d5bd4bb81db079243d943b?s=96&#38;d=identicon" medium="image">
			<media:title type="html">pollux</media:title>
		</media:content>
	</item>
		<item>
		<title>Les objets de conditions</title>
		<link>http://poxd.wordpress.com/2007/09/26/les-objets-de-conditions/</link>
		<comments>http://poxd.wordpress.com/2007/09/26/les-objets-de-conditions/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 11:52:53 +0000</pubDate>
		<dc:creator>pollux</dc:creator>
				<category><![CDATA[dev]]></category>

		<guid isPermaLink="false">http://poxd.wordpress.com/2007/09/26/les-objets-de-conditions/</guid>
		<description><![CDATA[La JDK 5 a apporté de nombreuses fonctionnalités au niveau du développement multi-threading. Aujourd&#8217;hui j&#8217;aimerais discuter un peu des objets de conditions.
Un objet de condition permet de définir une condition (non pas vrai?) à remplir avant de continuer le processus définit par votre programme. Imaginons que vous développiez une application de gestion de stock pour [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=7&subd=poxd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:justify;">La JDK 5 a apporté de nombreuses fonctionnalités au niveau du développement multi-threading. Aujourd&#8217;hui j&#8217;aimerais discuter un peu des objets de conditions.</p>
<p style="text-align:justify;">Un objet de condition permet de définir une condition (non pas vrai?) à remplir avant de continuer le processus définit par votre programme. Imaginons que vous développiez une application de gestion de stock pour le garage Marielo du centre du patelin. Angelo, le gérant, veut pouvoir gérer son stock depuis la maison mais également que ses employés puissent le mettre à jour directement avec les clients lors d&#8217;un devis ou d&#8217;une commande spécifique. Maintenant passons par-dessus toute l&#8217;analyse, que vous avez d&#8217;ailleurs parfaitement effectuée avec Angelo lui-même, pour arriver au coeur de votre application: la méthode <em>removePieceFromStock(Piece p, int quantity)</em>. Dans cette méthode l&#8217;utilisation d&#8217;objets de conditions devient évidente. En effet dans le cas ou plusieurs clients (de votre application donc) appellent cette méthode il vous faudra vérifier que votre stock contient bien le nombre de pièces à commander. S&#8217;il s&#8217;avère que le nombre de pièces est suffisant vous pouvez alors les retirer. Avant de vérifier le nombre de pièces en stock vous aurez obtenu un verrou sur l&#8217;objet courant du fait que cette méthode modifie l&#8217;état de votre stock. Maintenant si vous obtenez le verrou pour l&#8217;objet et que votre condition échoue&#8230; Vous devez libérer le verrou de l&#8217;objet afin que le stock puisse à nouveau être fourni en pièce(s) qu&#8217;il vous faut.</p>
<p style="text-align:justify;">Avant la JDK 5 la seule possibilité d&#8217;utiliser un objet de condition était d&#8217;en créer soi-même et de gérer les accès depuis plusieurs threads. Autant dire que sans être un expert du genre les erreurs de conception ou du moins les performances pouvaient s&#8217;en ressentir très facilement.</p>
<p style="text-align:justify;">Le package java.util.concurrent.lock fournit 2 classes particulièrement utiles dans notre situation. Je veux parler de Lock et de Condition. L&#8217;interface Lock définit un objet de verrou (plusieurs implémentations existent au sein du JDK). La classe Condition quant à elle représente un objet de condition. Un objet Lock comporte de nombreux avantages par rapport à une conception mettant en oeuvre uniquement des méthodes ou des blocs <em>synchronized</em> mais la définition de ces avantages n&#8217;est pas le but de ce post. Je vous laisse vous référer à la javadoc pour obtenir une description complète sur ces éléments de la librairie. Sommairement, il faut savoir qu&#8217;un objet Lock peut avoir plusieurs Conditions et que ces Conditions permettent de stopper le déroulement de votre programme lorsqu&#8217;une condition n&#8217;est pas remplie et de reprendre à cet endroit lorsqu&#8217;un autre thread signale que la condition peut avoir changé. Le principe est le même que celui des méthodes wait/notify de la classe Thread. Le premier avantage est pour ma part une meilleure lisibilité du code de l&#8217;application puisque l&#8217;on connaît directement l&#8217;objet de la condition à remplir.</p>
<p style="text-align:justify;">Pour finir, voici une solution possible au développement pour Angelo:</p>
<p><code>public void removePieceFromStock(Piece p, int quantity)<br />
{<br />
try<br />
{<br />
lock.lock(); //acquiert le verrou<br />
while(getQuantity(p) &lt; quantity)<br />
insuffisantCondition.await(); //libère le verrou<br />
//retire le nombre de pièces du stock<br />
}<br />
finally<br />
{<br />
lock.unlock(); //libère le verrou<br />
}<br />
}<br />
//une autre méthode permettra de rajouter des pièces au stock; dans cette méthode il faudra signaler que la condition change en appelant la méthode insuffisantCondition.signalAll() ou insuffisantCondition.signal() ce qui permettra de relancer un thread en attente sur cette condition - à noter qu'il est impératif d'obtenir le verrou qui possède la condition afin de signaler un changement d'état</code><br />
<!-- technorati tags start --></p>
<p style="text-align:right;font-size:10px;">Technorati Tags: <a href="http://www.technorati.com/tag/developpement" rel="tag">developpement</a>, <a href="http://www.technorati.com/tag/java" rel="tag">java</a></p>
<p><!-- technorati tags end --></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/poxd.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/poxd.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/poxd.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/poxd.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/poxd.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/poxd.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/poxd.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/poxd.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/poxd.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/poxd.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/poxd.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/poxd.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=poxd.wordpress.com&blog=1796024&post=7&subd=poxd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://poxd.wordpress.com/2007/09/26/les-objets-de-conditions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ea8d012e0d5bd4bb81db079243d943b?s=96&#38;d=identicon" medium="image">
			<media:title type="html">pollux</media:title>
		</media:content>
	</item>
	</channel>
</rss>