<?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>blog ntic de revolunet &#187; General</title>
	<atom:link href="http://blog.revolunet.com/index.php/conseil.intranet/general/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.revolunet.com</link>
	<description>Blog des Nouvelles Technologies de l'Information et de la Communication</description>
	<lastBuildDate>Thu, 05 Jan 2012 11:03:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Le point sur ExtJs 4</title>
		<link>http://blog.revolunet.com/index.php/general/le-point-sur-extjs-4</link>
		<comments>http://blog.revolunet.com/index.php/general/le-point-sur-extjs-4#comments</comments>
		<pubDate>Thu, 05 Jan 2012 11:03:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[actu informatique]]></category>
		<category><![CDATA[sencha]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=533</guid>
		<description><![CDATA[Ca fait deja quelques années qu’ExtJS fait le bonheur des développeurs d’applications web complexes. Depuis sa premiere version ce framework javascript a su tirer le meilleur de nos browsers web, permettant à ses utilisateurs le développement d’interfaces riches, robustes et évolutives. Pour ceux qui ne connaissent pas encore cette technologie, je vous invite à aller [...]]]></description>
			<content:encoded><![CDATA[<p>Ca fait deja quelques années qu’ExtJS fait le bonheur des <strong>développeurs d’applications web complexes</strong>. Depuis sa premiere version ce framework javascript a su tirer le meilleur de nos browsers web, permettant à ses utilisateurs le développement d’interfaces riches, robustes et évolutives. Pour ceux qui ne connaissent pas encore cette technologie, je vous invite à aller <a href="http://www.sencha.com/products/extjs/examples/" target="_blank">jeter un oeil au site de Sencha</a> qui présente parfaitement les différents produits réalisés par cette companie.</p>
<p>Aujourd’hui la version 4 d’ExtJS est disponible, stable et remplie de nouveautés faisant toute la différence avec la version 3 qui était deja tres appréciées des codeurs de webapps.</p>
<p>Chez REVOLUNET ça fait deja quelques mois que nous utilisons cette version et il est temps pour nous de vous faire un petit retour d’expérience.</p>
<h4><strong>SO WHAT’S NEW ?</strong></h4>
<p><strong> </strong>Les nouveautés implémentées dans ExtJS 4 sont nombreuses, nous n’allons pas les lister ici mais simplement parler de ce qui nous parait comme une avancée notable par rapport aux versions précédentes.</p>
<p><strong>1) The MVC model</strong><br />
Le but d’architecturer sont code selon le modèle MVC est une avancée importante. Auparavant le code métier (controlleurs) etait souvent mélangé avec la description de l’interface et des données (views and models), les actions concernant les éléments du design étant déclarées au meme niveau que les attributs influants sur l’affichage.</p>
<p>Exemple avec ExtJS 3 : un bouton et sa fonction s’exécutant lors du clic.</p>
<div class="codesnip-container" >var button = new Ext.Button({<br />
iconCls: ‘my-icon-class’,<br />
handler: function() {<br />
// on my button click a form is submitted&#8230;<br />
}<br />
});</div>
<p>Bien sûr cette facon de déclarer un bouton dans ExtJS 4 est encore valide mais lors du développement d’interfaces complexes cette méthode peut s’avérer assez inefficace. Imaginons que notre bouton soit perdu au milieu de l’imbrication de plusieurs widgets et que le clic sur ce dernier doit déclencher différentes actions un peu partout dans l’application. Et bien notre seule facon de faire les choses proprement était de déclencher des évenement personnalisés et de les relayer “à la main” (bubble, cascade, relayEvent&#8230;) pour qu’ils soient pris en compte dans les autres éléments de l’interface.</p>
<p>Désormais ExtJS 4 nous propose une alternative à cette architecture que nous avions l’habitude d’avoir avec ExtJS 3. Il suffit pour cela de séparer les deux codes, la déclaration de notre bouton dans une “vue” et les actions le concernant dans un &#8220;controlleur&#8221;.</p>
<p>Exemple avec ExtJS 4 :</p>
<p>myView.js</p>
<div class="codesnip-container" >var button = Ext.create(‘Ext.Button’, {<br />
iconCls: ‘my-icon-class’,<br />
action: ‘submit_a_form’<br />
});</div>
<p>myControlleur.js</p>
<div class="codesnip-container" >// …</p>
<p>init: function() {<br />
this.control({<br />
&#8216;viewport button[action=submit_a_form]&#8216;: {<br />
click: function() {<br />
// on my button click a form is submitted&#8230;<br />
}<br />
}<br />
});<br />
}</p></div>
<p>Dans cet exemple on peut voir l’utilisation du nouveau concept de “ComponentQuery” qui a la maniere des selecteurs CSS permet d’obtenir une référence à n’importe quel composant de notre interface. Ici &#8216;viewport button[action=submit_a_form]&#8216; signifie “le bouton du viewport qui comporte un attribut action égal à submit_a_form”.<br />
Il suffit ensuite d’associer les évènements a notre bouton sans ce soucier des son imbrication dans les widgets de notre application. Cerise sur le gateau grace à cette technique, les évènement peuvent etre déclarés avant que les widgets (ici notre bouton) n’aient été “render”.<br />
Si un nouveau bouton faisant parti de notre viewport et ayant un attribut action égal à submit_a_form est créé il repondra au meme fonctionnement, meme s’il n’est pas rendu au load initial de l’application.</p>
<p>Dans cet exemple on peut aussi apprécier l’utilisation de Ext.create qui évite d’avoir un code truffé de “new Ext.Button” qui étaient interprétés au run time. Cela a pour effet d’accélérer grandement le chargement de l’application.</p>
<p><strong>2) Ext.loader</strong></p>
<p>Ce n’est pas à proprement dit une nouveauté d’ExtJS 4 car cette fonctionnalité existait deja en partie dans la version 3 du framework. Disons simplement que le load dynamique des ressources de votre application est désormais induite pour peu qu’on en ai envie.</p>
<p>Si nous reprenons les projets que nous avons développer chez REVOLUNET avec ExtJS 3, on peut voir des fichiers “index.html” démesurément grands car ils comportent toutes les inclusions des differents scripts necessaires au bon fonctionnement de l’application, meme si ces resources ne sont pas utilisées au load de la page.</p>
<p>Aujourd’hui la donne a changée, ExtJS se chargeant d’aller chercher les ressources nécessaires au fur et a mesure de leur utilisation. Ceci comporte deux avantages a nos yeux, le premier etant de ne plus se soucier de savoir si les bons fichiers sont inclus dans l’index, le deuxième est que cette technique nous force a organiser notre projet d’un facon bien spécifique afin qu’ExtJS soit en mesure de trouver le code qu’il souhaite charger quand il le juge necessaire.</p>
<p>Afin de bien comprendre le fonctionnement du chargement dynamique de vos scripts nous vous invitons à lire cet article: http://www.sencha.com/blog/using-ext-loader-for-your-application</p>
<p><strong>SO WHAT’S THE POINT ?</strong></p>
<p>Il aurait beaucoup de choses a dire sur la nouvelle version d’ExtJS 4, la gestion des données, la configuration des objets complexes comme les grids ou les forms, les améliorations de performances&#8230; les avancées apportées par le nouvelles version de ce framework sont nombreuses.</p>
<p>En ce qui nous concerne il est évident qu’ExtJS a fait un réel bon en avant avec la sortie de la version 4. Concrètement notre point de vue de développeurs spécialisés dans les applications web est qu’ExtJS 4 va nous faire gagner un temps precieux lors du développement de nos nouveaux projets. Et ca, ca vaut de l’or <img src='http://blog.revolunet.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>De plus, de nombreuses améliorations ont également été portées dans Sencha Touch 2 (gestion des classes, loader&#8230;), ce qui nous permet de capitaliser en compétence sur les projets basés sur les frameworks Sencha, que ce soit pour les applis Desktop, ou mobiles.</p>
<p>N&#8217;hésitez pas à nous consulter pour vos besoins en<a href="http://revolunet.com"> développement d&#8217;applications web riches</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/le-point-sur-extjs-4/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django internationalisation made easy with i18n</title>
		<link>http://blog.revolunet.com/index.php/general/django-internationalisation-with-i18n</link>
		<comments>http://blog.revolunet.com/index.php/general/django-internationalisation-with-i18n#comments</comments>
		<pubDate>Wed, 08 Sep 2010 20:12:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=431</guid>
		<description><![CDATA[Ok so now you have your new django based killer app you&#8217;d like to translate it into several languages. Here&#8217;s a quick memo to get all this running quickly.
Django provides all the tools you need to do this effectively. You can use simple string translations or create more advanced rules with various plurals forms, variable [...]]]></description>
			<content:encoded><![CDATA[<p>Ok so now you have your new django based killer app you&#8217;d like to translate it into several languages. Here&#8217;s a quick memo to get all this running quickly.</p>
<p>Django provides all the tools you need to do this effectively. You can use simple string translations or create more advanced rules with various <a href="http://docs.djangoproject.com/en/dev/topics/i18n/internationalization/#pluralization" target="_blank">plurals forms, variable interpolations</a>&#8230;</p>
<p>First, be sure to use UTF-8 encode anywhere in your project :</p>
<ul>
<li>Save your file as UTF-8 (check your text editor)</li>
<li>Declare python files encoding with this at the top of each python file (see <a href="http://www.python.org/dev/peps/pep-0263/" target="_blank">PEP 263</a>) :<br />
# -*- encoding: UTF-8 -*-</li>
<li><a href="http://www.python.org/dev/peps/pep-0263/" target="_blank">Define your strings as unicode</a> if needed</li>
<li>Be warned : mixing encodings and charsets in a project can cause hasardous/mystical issues then massive headaches</li>
</ul>
<p>Django provides several builtin tools to help you internationalise :</p>
<ul>
<li><strong>makemessages</strong> command : scan your code to extract definition and create a .po file</li>
<li><strong>compilemessages </strong>command : compile your translations in the .po files to .mo</li>
<li><strong>django.middleware.locale.LocaleMiddleWare </strong>: Autodetect user language (from browser) or use session defined language (or fallback to project default)</li>
<li><strong>django.core.context_processors.i18n</strong>: add LANGUAGE_CODE and LANGUAGES variables to your templates</li>
<li><strong>django.conf.urls.i18n </strong>: a view that accepts a language POST parameter to change session language</li>
<li><strong>django.views.i18n.javascript_catalog </strong>: provides a javascript array with the translations and helpers functions gettext&#8230;</li>
</ul>
<p><b>So lets internationalise our project :</b><br />
<br />
Django make it easier to work with app level localisations and not project-global files.<br />
So you must create a ‘locale’ subfolder for each app you want to localize.<br />
Create a ‘fr’ and ‘en’ folder inside each ‘locale’ folder. (or more if needed)<br />
Try first to translate a first app in a second language before going on.<br />
</p>
<h2>Activate django.middleware.locale.LocaleMiddleWare and tweak your settings.py :</h2>
<pre class="brush: python">
# -*- encoding: UTF-8 -*-

TIME_ZONE = &#039;Europe/Paris&#039;
LANGUAGE_CODE = &#039;fr-FR&#039;
USE_I18N = True

# see http://code.djangoproject.com/browser/django/trunk/django/conf/global_settings.py
gettext = lambda s: s
LANGUAGES = (
(&#039;fr&#039;, gettext(u&#039;French&#039;)),
(&#039;en&#039;, gettext(&#039;English&#039;)),
)

MIDDLEWARE_CLASSES = (
&#039;django.contrib.sessions.middleware.SessionMiddleware&#039;,
&#039;django.middleware.locale.LocaleMiddleware&#039;,
&#039;django.middleware.common.CommonMiddleware&#039;,
&#039;django.contrib.auth.middleware.AuthenticationMiddleware&#039;,
)

TEMPLATE_CONTEXT_PROCESSORS = (
&quot;django.core.context_processors.auth&quot;,
&quot;django.core.context_processors.debug&quot;,
&quot;django.core.context_processors.i18n&quot;,
&quot;django.core.context_processors.media&quot;,
&quot;django.core.context_processors.debug&quot;,
)
</pre>
<h2>Add a lang toolbar to your template and connect to the django.conf.urls.i18n view :</h2>
<p>Add a simple lang bar to your base template :</p>
<pre class="brush: html">
   {% load i18n %}
    &lt;div id=&#039;langbar&#039; style=&#039;text-align:right;padding-top:5px;&#039;&gt;
        &lt;form name=&#039;langform&#039; style=&#039;margin:0px;display:inline;width:200px&#039; action=&#039;/i18n/setlang/&#039; method=&#039;POST&#039;&gt;
            {% for LANG in LANGUAGES  %}
                &lt;img src=&#039;{{ MEDIA_URL }}img/flags/{{ LANG.0 }}.png&#039; title=&quot;{% trans LANG.1 %}&quot; style=&#039;margin:5px;cursor:pointer&#039; onclick=&quot;document.langform.language.value=&#039;{{ LANG.0 }}&#039;;document.langform.submit();&quot;&gt;
            {% endfor %}
            &lt;input name=&#039;language&#039; type=hidden value=&quot;{{ LANGUAGE_CODE }}&quot;&gt;
            current LANG : {{ LANGUAGE_CODE }}
        &lt;/form&gt;
    &lt;/div&gt;
</pre>
<p>As you can see, when you enable i18n context processor, your templates can acces <a target="_blank" href="http://docs.djangoproject.com/en/dev/ref/templates/api/#django-core-context-processors-i18n">new variables</a> like LANGUAGE_CODE or LANGUAGES</p>
<p>Now add the /i18n/setlang/ view in your urls.py.<br />
This view accepts language POST parameter then redirect user to REFERER page (or one designed with ?next GET parameter). Selected language is then kept in session.</p>
<pre class="brush: python">
urlpatterns += patterns(&#039;&#039;,
    (r&#039;^i18n/&#039;, include(&#039;django.conf.urls.i18n&#039;)),
)
</pre>
<p>Now, check if when you submit the form, the selected language is kept in session. If not check your database (need the session table), restart your dev server or enable settings.DEBUG  <img src='http://blog.revolunet.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you can submit your lang and LANGUAGE_CODE is kept in session, <strong>bravo</strong>, your django is multilingual ready. </p>
<h2>Internationalise your code</h2>
<p>In your templates : just load i18n then replace every string with a <a target="_blank" href="http://docs.djangoproject.com/en/dev/topics/i18n/internationalization/#trans-template-tag">trans tag</a></p>
<pre class="brush: html">
{% load i18n %}
&lt;div class=&quot;main&quot;&gt;{% trans &quot;Welcome to our new website&quot; %}&gt;&lt;/div&gt;
{% block contents %}&lt;img src=&quot;/img/intro-{{ LANGUAGE_CODE }}&quot;/&gt;{% trans &quot;This is the intro&quot; %}{% block %}
</pre>
<p>In your views : just import django.utils.translation.gettext then replace every string with gettext(thestring)</p>
<pre class="brush: python">
from django.utils.translation import gettext as _ # just a shortcut
def view(request):
    hello = _(&#039;Hello, World&#039;)
    return HttpResponse(&#039;&lt;b&gt;%s&lt;/b&gt;&#039; % hello)
</pre>
<p>Now each time you run the makemessages command for this app, it will detect these string and update this app django.po files accordingly.</p>
<h2>Generate the .po, traduct then compile to .mo</h2>
<ol>
<li><strong>From this app folder</strong>, run
<pre class="brush: bash">python ../manage.py makemessages --all</pre>
<p>This will scan this app .py and .html files for gettext/trans calls and generate or update a django.po file for each lang.</li>
<li>Now you can edit (manually) this old-fashionned-style .po file with your favorite  text editor.<br />
If your site default is English, edit app/locale/fr/LC_MESSAGES/django.po (and djangojs.po if needed)</li>
<li>Once all your strings are translated, run
<pre class="brush: bash">python ../manage.py compilemessages</pre>
<p>from the <strong>app root</strong>. This will generate .mo files from the .po</li>
</ol>
<p>Now your templates and views should be automagically translated.</p>
<p>run makemessages/compilemessages commands to update the .po and .mo when you change some code. restart the web server.</p>
<h2>Javascript internationalisation</h2>
<p>Now your templates and views are correctly translated, you may also need  to internationalise jour javascript files.</p>
<p>Django provide a simple solution that you can use in your projects</p>
<ul>
<li>the <b>makemessages</b> command takes a -d djangojs parameter to parse .js files and create a djangojs.po</li>
<li>The <b>django.views.i18n.javascript_catalog</b> provides a way to acces the .po files from javascript</li>
<li>This view serves a javascript file containing a &#8216;catalog&#8217; array with translations and utilities functions such as <strong>gettext</strong></li>
</ul>
<p><b>Activate the view in your urls.py</b> :<br />
<br />I tweaked the <a target="_blank" href="http://docs.djangoproject.com/en/dev/topics/i18n/internationalization/#module-django.views.i18n">official rule</a> a bit.</p>
<pre class="brush: python">
# urls.py
def jsi18n(request, packages = None, domain = None):
    if not domain:
        domain = &#039;djangojs&#039;
    from django.views.i18n import javascript_catalog
    return javascript_catalog(request, domain, packages)

urlpatterns += patterns(&#039;&#039;,
    (r&#039;^jsi18n/?(?P&lt;packages&gt;[^/]+)?/?(?P&lt;domain&gt;[^/]+)?/?$&#039;, jsi18n ),                                          # serves the javascript data
)
</pre>
<p>Add a javascript include in your template ( be sure to include it before any other javascript localised file) :</p>
<pre class="brush: html">
	&lt;script type=&quot;text/javascript&quot; src=&quot;/jsi18n/main/djangojs&quot;&gt;&lt;/script&gt;
</pre>
<p>This url will serves you a javascript file from project/main/locale/fr/LC_MESSAGES/djangojs.po (if user lang is fr)<br />
<br />
By default, this language definition returns the user LANGUAGE_CODE but you can override using ?language GET parameter</p>
<p>Now you just need to replace each string in your javascript files with a call to gettext.</p>
<pre class="brush: javascript">
alert( gettext(&quot;Ready to start ?&quot;) );
</pre>
<h2>Maintain</h2>
<p>When you add new code, always use calls to gettext instead of strings.<br />
run makemessages to update the .po definitions<br />
translate new strings in the .po files<br />
run compilemessages to update</p>
<p></p>
<p><b>Voila</b> Now your app can speak any UTF-8 lang, which is more than 600 languages <img src='http://blog.revolunet.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>These are just the basics, check out for the full story <a target="_blank" href="http://docs.djangoproject.com/en/dev/topics/i18n/internationalization/">http://docs.djangoproject.com/en/dev/topics/i18n/internationalization/</a></p>
<p><strong>Notes/Gotchas</strong> :</p>
<ul>
<li>Using builtin dev server, you need to restart after a compilemessages</li>
<li>Use <a href="http://www.famfamfam.com/lab/icons/flags/" target="_blank">famfamfam flag icons</a></li>
<li>You must add your app to settings.INSTALLED_APPS if you want to use jsi18n view for this app</li>
<li>Double check middlewares order, and session tables</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/django-internationalisation-with-i18n/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recrutement développeur PHP sur Paris</title>
		<link>http://blog.revolunet.com/index.php/general/recrutement-developpeur-php-sur-paris</link>
		<comments>http://blog.revolunet.com/index.php/general/recrutement-developpeur-php-sur-paris#comments</comments>
		<pubDate>Mon, 07 Jun 2010 08:38:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[emploi]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=419</guid>
		<description><![CDATA[Nous recherchons, pour l&#8217;un de nos clients, un développeur PHP experimenté, connaissant bien PHP5 objet. Vous intégrerez une équipe d&#8217;une dizaine de développeurs située dans le quartier de l&#8217;Opera à Paris et serez en relation avec revolunet qui développe des applications webs de dernière génération.
Contrat CDI, salaire en fonction des compétences et embauche dès que possible.
Transmettez nous [...]]]></description>
			<content:encoded><![CDATA[<p>Nous recherchons, pour l&#8217;un de nos clients, un développeur PHP experimenté, connaissant bien PHP5 objet. Vous intégrerez une équipe d&#8217;une dizaine de développeurs située dans le quartier de l&#8217;Opera à Paris et serez en relation avec revolunet qui développe des applications webs de dernière génération.</p>
<p>Contrat CDI, salaire en fonction des compétences et embauche dès que possible.</p>
<p>Transmettez nous votre CV par email : <a href="mailto:contact@revolunet.com">contact@revolunet.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/recrutement-developpeur-php-sur-paris/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symbian : l&#8217;open source comme ultime recours ?</title>
		<link>http://blog.revolunet.com/index.php/general/symbian-lopen-source-comme-ultime-recours</link>
		<comments>http://blog.revolunet.com/index.php/general/symbian-lopen-source-comme-ultime-recours#comments</comments>
		<pubDate>Mon, 08 Feb 2010 11:04:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[actu informatique]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=412</guid>
		<description><![CDATA[Nokia aura mis près de 10 ans à se décider à open sourcer le code de son OS mobile : Symbian. Bousculé par l&#8217;arrivée de l&#8217;iPhone, puis par la déferlante de produits sous Android à partir de 2009, Nokia décide enfin d&#8217;ouvrir intégralement le code source de Symbian, pour booster le développement de l&#8217;OS et des d&#8217;applications [...]]]></description>
			<content:encoded><![CDATA[<p>Nokia aura mis près de 10 ans à se décider à open sourcer le code de son OS mobile : Symbian. Bousculé par l&#8217;arrivée de l&#8217;iPhone, puis par la déferlante de produits sous Android à partir de 2009, Nokia décide enfin d&#8217;ouvrir intégralement le code source de Symbian, pour booster le développement de l&#8217;OS et des d&#8217;applications tierces par les développeurs.</p>
<p>Car la donne a changé depuis l&#8217;arrivée de l&#8217;iPhone et des mobiles sous Android : aujourd&#8217;hui, le logiciel du téléphone, et surtout les applications que l&#8217;on peut installer, comptent tout autant que le le mobile lui-même. A quoi sert un matériel très évolué si le logiciel interne ne l&#8217;est pas ou est trop fermé ? En arrivant sur un marché ou déjà deux géants s&#8217;affrontent déjà depuis plusieurs années, avec 100000 applications dans l&#8217;AppStore et près de 50000 dans l&#8217;android market, et un android qui s&#8217;impose chez tous les fabricants, comment pourra faire Nokia pour lutter ?</p>
<p>Nokia fait d&#8217;excellents téléphones (6230, N900&#8230;), mais Symbian, qui équipe la plupart de leur gamme, n&#8217;est pas à la hauteur et aura beaucoup de mal a conquérir les développeurs. Je ne vois plus qu&#8217;une alliance Google-Nokia pour sauver cette marque et lui offrir enfin un OS digne de ce nom.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/symbian-lopen-source-comme-ultime-recours/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bien démarrer avec django</title>
		<link>http://blog.revolunet.com/index.php/general/bien-demarrer-avec-django</link>
		<comments>http://blog.revolunet.com/index.php/general/bien-demarrer-avec-django#comments</comments>
		<pubDate>Wed, 02 Dec 2009 11:21:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[developpement]]></category>
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=381</guid>
		<description><![CDATA[Cela fait maintenant presque deux ans que j&#8217;utilise intensivement le framework Django pour toutes mes applications web, et j&#8217;ai enfin réuni assez d&#8217;éléments pour pouvoir vous livrer un petit &#8216;QuickStart&#8217; qui vous permettra de démarrer rapidement.
Contrairement à d&#8217;autres frameworks web, Django n&#8217;est pas orienté CMS ou HTML. Vous pouvez tout autant créer un site HTML/Ajax, une [...]]]></description>
			<content:encoded><![CDATA[<p>Cela fait maintenant presque deux ans que j&#8217;utilise intensivement le framework <a href="http://www.djangoproject.com/" target="_blank">Django</a> pour toutes mes applications web, et j&#8217;ai enfin réuni assez d&#8217;éléments pour pouvoir vous livrer un petit &#8216;QuickStart&#8217; qui vous permettra de démarrer rapidement.</p>
<p>Contrairement à d&#8217;<a href="http://drupal.org/" target="_blank">autres</a> <a href="http://www.zope.org/" target="_blank">frameworks</a> <a href="http://www.symfony-project.org/doc/1_4/" target="_blank">web</a>, Django n&#8217;est pas orienté CMS ou HTML. Vous pouvez tout autant créer un site HTML/Ajax, une API RESTFUL http ou une application en ligne de commande.</p>
<p>Django permet de coder toute la partie serveur de votre application, mais pour la partie &#8216;client&#8217;, c.a.d. le HTML par exemple, vous devrez vous débrouiller tout seul ou utiliser un autre framework, <a href="http://jquery.com/" target="_blank">jQuery</a> par exemple, ou <a href="http://extjs.com/" target="_blank">ExtJs</a>.</p>
<p><img class="alignleft size-full wp-image-389" title="django" src="http://blog.revolunet.com/wp-content/uploads/2009/12/django.jpg" alt="django" width="120" height="177" /></p>
<p style="padding-left: 120px;"><strong> Pourquoi Django ? </strong></p>
<p style="padding-left: 120px;">Open Source<br />
Portable<br />
Langage Python<br />
Prototypage rapide<br />
Evolutivité<br />
Abstration <a href="http://fr.wikipedia.org/wiki/Mapping_objet-relationnel" target="_blank">ORM<br />
</a> Supporté par <a href="http://fr.wikipedia.org/wiki/Google_App_Engine" target="_blank">Google AppEngine</a> (avec restrictions)<br />
Excellente <a href="http://docs.djangoproject.com/en/dev/" target="_blank">documentation</a></p>
<p><strong>Fonctionnalités principales :</strong></p>
<ul>
<li><strong>ORM :</strong> permet une abstraction de la base de données et du SQL, ce qui fait que vos applications peuvent tourner sur : SQLlite, MySQL, SQLserver, Oracle, PostGres&#8230;</li>
<li><strong>Admin automatique : </strong>une fois vos modèles définis, ils sont de suite accessible dans l&#8217;interface d&#8217;admin automatique, et vous pouvez toute de suite créer objets</li>
<li><strong>Templates : </strong>une gestion des templates très poussée, avec gestion des héritages, des filtres et &#8216;customs tags&#8217;.</li>
<li><strong>Shell intégré : </strong>Tout votre code est également accessible directement depuis un shell intégré</li>
<li><strong>Gestion des utilisateurs : </strong>Toute la partie utilisateurs, comptes, login, sécurité et permissions est déjà disponible sans efforts</li>
</ul>
<p><strong>Inconvénients :</strong></p>
<ul>
<li>Peu d&#8217;hébergeurs mais cela évolue : <a href="http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts">http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts</a></li>
<li>C&#8217;est surtout  un avantage, mais le projet évoluant très vite, vous devrez coder avec et pour une version spécifique de Django. Et vous ne mettrez à jour django pour tel projet seulement après avoir consulté cette page : <a href="http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges">http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges</a></li>
</ul>
<p>A noter que Django est une librairie python, vous pouvez n&#8217;utiliser que les fonctions dont vous avez besoin, même en &#8217;standalone&#8217;  (hors du web).  Et vous pouvez tout modifier, étendre et améliorer à souhait.</p>
<p>La première chose à faire avant de se lancer dans Django est déjà de connaitre un minimum le langage python et sa &#8216;magie&#8217;. Le livre &#8216;<a href="http://openbookproject.net//thinkCSpy/" target="_blank">Think like a computer scientist</a>&#8216; est à lire, <a href="http://hetland.org/writing/instant-python.html" target="_blank">Instant Python</a> pour les préssés, et &#8220;<a href="http://www.swaroopch.com/notes/Python_fr:Table_des_Mati%C3%A8res" target="_blank">A byte of python</a>&#8221; (en francais).</p>
<h2><strong>C&#8217;est parti</strong></h2>
<p>Installez <a href="http://python.org/download/" target="_blank">python </a>(2.5 ou 2.6) sur votre machine, et récupérez la <a href="http://www.djangoproject.com/download/" target="_blank">dernière version de Django</a>. Le repertoire &#8216;django&#8217; de cette archive doit se trouver dans le dossier &#8216;lib/site-packages&#8217; de votre installation de Python. Si vous souhaitez utiliser MySQL comme serveur, installez <a href="http://sourceforge.net/projects/mysql-python/" target="_blank">python-mysqldb</a>. Sinon, SQLlite fera très bien l&#8217;affaire pour démarrer !</p>
<p>Pour tester si votre installation de python/django est correcte :</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 272px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">juju@devserver:/var/www/django$ python</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 272px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 272px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 272px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Type &#8220;help&#8221;, &#8220;copyright&#8221;, &#8220;credits&#8221; or &#8220;license&#8221; for more information.</div>
<div class="codesnip-container" >juju@xxxxxxx:/home/juju$ python<br />
Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52)<br />
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2<br />
Type &#8220;help&#8221;, &#8220;copyright&#8221;, &#8220;credits&#8221; or &#8220;license&#8221; for more information.<br />
&gt;&gt;&gt;import django<br />
&gt;&gt;&gt;print django.VERSION<br />
(1, 0, 2, &#8216;final&#8217;, 0)<br />
&gt;&gt;&gt;</div>
<p>Si vous avez une erreur lors de l&#8217;import, alors votre dossier &#8216;django&#8217; n&#8217;est pas dans votre dossier python\lib\site-packages, vérifiez.</p>
<p>Si l&#8217;install est correcte, alors vous pouvez créer votre premier projet django.</p>
<p><strong>Exemple sur windows :</strong></p>
<p>Ouvrez un shell, et placez vous dans votre dossier de travail, puis lancez la commande django-admin.py startproject</p>
<div class="codesnip-container" >cd c:\dev\django<br />
c:\dev\django&gt;c:\Python25\lib\site-packages\django\bin\django-admin.py startproject projet1</div>
<p>Un dossier &#8216;projet1&#8242; a été crée et contient les fichier de base :</p>
<ul>
<li><strong>settings.py :</strong> configuration du projt, base de données, emails&#8230;</li>
<li><strong>urls.py : </strong>la configuration des urls de votre projet</li>
<li><strong>manage.py : </strong>la commande qui permet de lancer le serveur, mettre a jour les bases et effectuer des opérations de maintenance.</li>
<li><strong>__init__.py :</strong> ce fichier permet simplement à Python d&#8217;interpréter le dossier en tant que &#8216;module&#8217;</li>
</ul>
<p>Pour développer un projet Django, utilisez le &#8217;serveur de dev&#8217; intégré (commande manage.py runserver), mais pour la production, vous devrez mettre en place <a href="http://code.djangoproject.com/wiki/django_apache_and_mod_wsgi" target="_blank">Apache+WSGI</a>, <a href="http://www.alrond.com/en/2007/mar/01/start-django-with-nginx/" target="_blank">Nginx</a> ou <a href="http://code.djangoproject.com/wiki/ServerArrangements" target="_blank">un autre serveur</a>.</p>
<p>Lancez le serveur pour vérifier que votre projet est bien crée :</p>
<div class="codesnip-container" >cd c:\dev\django<br />
c:\dev\django&gt;manage.py runserver<br />
Validating models&#8230;<br />
0 errors found<br />
Django version 1.0-alpha-SVN-8225, using settings &#8216;projet1.settings&#8217;<br />
Development server is running at http://127.0.0.1:8000/<br />
Quit the server with CTRL-BREAK.</div>
<p>Maintenant vous pouvez ouvrir votre browser à cette adresse : <a href="http://127.0.0.1:8000/" target="_blank">http://127.0.0.1:8000/</a></p>
<p>Modifiez le fichier settings.py, puis suivez le <a href="http://docs.django-fr.org/intro/tutorial01.html#creation-des-modeles" target="_blank">premier tutorial</a> pour commencer à faire joujou.</p>
<p>Je reviens prochainement  pour <a href="http://blog.revolunet.com/index.php/developpement/astuces-django">la suite</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/bien-demarrer-avec-django/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Test du Sanyo Xacti CA9</title>
		<link>http://blog.revolunet.com/index.php/general/test-du-sanyo-xacti-ca9</link>
		<comments>http://blog.revolunet.com/index.php/general/test-du-sanyo-xacti-ca9#comments</comments>
		<pubDate>Fri, 03 Jul 2009 10:07:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[actu informatique]]></category>
		<category><![CDATA[geek style]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=327</guid>
		<description><![CDATA[Si vous êtes à la recherche d&#8217;un camescope pratique, économique et performant, alors le nouveau Xacti CA9 est peut etre fait pour vous. Principal point fort de cette gamme : la simplicité d&#8217;utilisation, la polyvalence et la robustesse. Le nouveau Xacti CA9 de Sanyo conserve le mode &#8216;torche&#8217; propre à la série des Xacti et [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_329" class="wp-caption alignleft" style="width: 210px"><img class="size-full wp-image-329" title="Sanyo Xacti CA9" src="http://blog.revolunet.com/wp-content/uploads/2009/07/clipboard01.jpg" alt="Sanyo Xacti CA9" width="200" height="197" /><p class="wp-caption-text">Sanyo Xacti CA9</p></div>
<p>Si vous êtes à la recherche d&#8217;un camescope pratique, économique et performant, alors le nouveau Xacti CA9 est peut etre fait pour vous. Principal point fort de cette gamme : la simplicité d&#8217;utilisation, la polyvalence et la robustesse. Le nouveau Xacti CA9 de Sanyo conserve le mode &#8216;torche&#8217; propre à la série des Xacti et apporte son lot de nouveautés :</p>
<ul>
<li>Films en HD 720p, MP4, AVC, h264  (jusqu&#8217;a 9mbit/s)</li>
<li>Photos en 9MP</li>
<li>Etanche jusqu&#8217;à 1.5m !</li>
<li>Simplicité d&#8217;utilisation</li>
<li>Cartes SD ou SDHC jusqu&#8217;a 32Go</li>
<li>Zoom optique 5x</li>
<li>Prises de photos possible pendant que l&#8217;on filme</li>
<li>Flash pour les photos (uniquement)</li>
<li>Stabilisateur (assez décevant)</li>
<li>Détection des visages</li>
</ul>
<p>Camescope idéal pour les geeks et autres bloggers, il enregistre directement en MP4/h264, ce qui permet de produire des films directement  lisibles dans un player Flash comme<a href="http://flowplayer.org/" target="_blank"> FlowPlayer</a> sans aucun conversion. Récupérez la carte SD, transférez sur votre FTP et la vidéo sera directement lisible par vos amis sur Internet.</p>
<p>L&#8217;utilisation est simple et intuitive, très peu de boutons et un petit joystick permettent d&#8217;accéder à toutes les fonctions et réglages, notamment le montage, découpage et assemblage de scènes si besoin. L&#8217;appareil est petit et léger, robuste et étanche, ce qui permet de l&#8217;emmener à la plage sans se soucier des grains de sable ! La qualité de la finition et des materiaux est excellente, il faudra simplement faire attention à l&#8217;écran rotatif qui est le seul point fragile.</p>
<p>La qualité des images est bonne sans être exceptionnelle et vous n&#8217;avez le choix pour la vidéo qu&#8217;entre 3 résolutions : 640&#215;480 en 30 ou 60 images/seconde et 1280&#215;720 en 30 img/secondes. Différents modes et filtres vous permettront d&#8217;adapter votre prise de vue à la scene si besoin.</p>
<p>Enfin, à 450€ environ, cet appareil bien pensé rassemble toutes les qualités d&#8217;un bon camescope de base, avec en plus l&#8217;érgonomie et la solidité des Xacti. Seul point noir, l&#8217;autonomie, d&#8217;environ 70 minutes, qui vous obligera à investir dans une batterie supplémentaire au cas ou. (40 € environ). Si vous avez besoin d&#8217;une qualité d&#8217;image plus professionnelle ou d&#8217;un zoom plus puissant, les modèles Xacti supérieurs comme le <a href="http://www.sanyo.de/products/digital_imaging/digital_movie/fullHD/product.asp?lg=F&amp;PID=19&amp;product=VPC-HD1010" target="_blank">HD1010</a> ou le <a href="http://www.sanyo.de/products/digital_imaging/digital_movie/fullHD/product.asp?lg=F&amp;PID=21&amp;product=HD2000" target="_blank">HD2000</a> vous l&#8217;offriront pour un peu plus cher.</p>
<p>Vous pouvez voir une <a title="Xacti CA9 video example" href="/wp-content/uploads/flowplayer/example/index.html" target="_blank">vidéo de test ici en cliquant ici</a> (HD 720p, dans FlowPlayer)</p>
<p>Et quelques photos : le <a href="/wp-content/uploads/2009/07/sany0018.jpg" target="_blank">chat</a>, la <a href="/wp-content/uploads/2009/07/sany0036.jpg" target="_blank">macro</a>, un <a href="/wp-content/uploads/2009/07/sany0095.jpg" target="_blank">paysage</a>, une <a href="/wp-content/uploads/2009/07/sany0117.jpg" target="_blank">cascade</a>. (non je ne donnerai pas l&#8217;adresse de ceslieux magiques)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/test-du-sanyo-xacti-ca9/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Outrage</title>
		<link>http://blog.revolunet.com/index.php/general/outrage</link>
		<comments>http://blog.revolunet.com/index.php/general/outrage#comments</comments>
		<pubDate>Fri, 22 May 2009 14:31:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Iliad - Free]]></category>
		<category><![CDATA[actu informatique]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=323</guid>
		<description><![CDATA[Alors que dans les médias la classe politique s&#8217;insurge contre la baisse du pouvoir d&#8217;achat, certaines décisions, comme celle de bloquer la concurrence dans le secteur de la téléphonie mobile, vont à contre-sens.
En plus d&#8217;enrichir les actionnaires plutôt que les consommateurs, fermer un marché freine la stimulation économique et le développement de nouveaux services, toujours [...]]]></description>
			<content:encoded><![CDATA[<p>Alors que dans les médias la classe politique s&#8217;insurge contre la baisse du pouvoir d&#8217;achat, certaines décisions, comme celle de bloquer la concurrence dans le secteur de la téléphonie mobile, vont à contre-sens.</p>
<p>En plus d&#8217;enrichir les actionnaires plutôt que les consommateurs, fermer un marché freine la stimulation économique et le développement de nouveaux services, toujours au détriment du consommateur.</p>
<p>Depuis des années, Free se bat pour enfin obtenir une licence de téléphonie mobile 3G, dont l&#8217;obtention est <a href="http://www.numerama.com/magazine/9195-Free-pourrait-etre-prive-de-licence-3G.html" target="_blank">retardée</a>, <a href="http://www.numerama.com/magazine/9210-La-4eme-licence-3G-serait-cedee-par-blocs-sur-decision-de-l-Elysee.html" target="_blank">refusée</a>, et <a href="http://www.numerama.com/magazine/9431-Pas-de-licence-3G-pour-Free-avant-2009.html" target="_blank">re-retardée</a> maintes fois. Or <a href="http://www.numerama.com/magazine/10557-Telephonie-mobile-Free-veut-diviser-la-facture-par-deux-en-2011.html" target="_blank">Free s&#8217;est engagé à faire économiser</a> jusqu&#8217;a 30% de leur facture annuelle de téléphone mobile à 40 Millions d&#8217;utilisateurs Francais.</p>
<p>Et on a vu ce que Free a réussi dans l&#8217;ADSL en France : développer un marché extraordinaire en un temps record, innover, apporter de nouveaux services et usages, démocratiser internet et stimuler la concurrence. On peut se demander ce que serait aujourdhui  l&#8217;Internet en France sans Free ? </p>
<p>Il est donc plus que nécessaire pour le consommateur que Free obtienne enfin cette licence pour enfin rendre le téléphone mobile plus accessible, faire baisser les couts, notamment ceux, scandaleux, des SMS.</p>
<p>D&#8217;après Numerama, le dossier de l&#8217;attribution des licences pourrait trainer jusqu&#8217;en Juin 2010, date à partir de laquelle le cout de déploiement technique triplera, car les 3 opérateurs actuels n&#8217;auraient alors plus à céder une partie de leurs fréquences au nouvel entrant : <a href="http://www.numerama.com/magazine/12970_3-4eme-licence-3G-le-dossier-Free-bientot-enterre.html" target="_blank">http://www.numerama.com/magazine/12970_3-4eme-licence-3G-le-dossier-Free-bientot-enterre.html</a></p>
<p>Suivez bien ce dossier !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/outrage/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Test QNAP TS409 Pro</title>
		<link>http://blog.revolunet.com/index.php/general/test-qnap-ts409-pro</link>
		<comments>http://blog.revolunet.com/index.php/general/test-qnap-ts409-pro#comments</comments>
		<pubDate>Fri, 03 Apr 2009 10:37:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[actu informatique]]></category>
		<category><![CDATA[geek style]]></category>
		<category><![CDATA[hardware]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=293</guid>
		<description><![CDATA[Afin de centraliser et sécuriser mes données, j&#8217;ai investi dans un NAS QNAP TS409 Pro qui n&#8217;est plus une nouveauté mais qui a maintenant un rapport qualité prix assez raisonnable (550€TTC). Ce boitier permet de connecter quatres disque durs SATA, pour moi 4 Seagate de 1.5Tb chacun et  permet de créer tout type de RAID [...]]]></description>
			<content:encoded><![CDATA[<p>Afin de centraliser et sécuriser mes données, j&#8217;ai investi dans un<a href="http://www.qnap.com/fr/pro_detail_feature.asp?p_id=85" target="_blank"> NAS QNAP TS409 Pro</a> qui n&#8217;est plus une nouveauté mais qui a maintenant un rapport qualité prix assez raisonnable (550€TTC). Ce boitier permet de connecter quatres disque durs SATA, pour moi 4 Seagate de 1.5Tb chacun et  permet de créer tout type de RAID logiciel, pour moi ce sera du RAID5 ce qui porte la capacité à 4.3To pour un prix final proche des 1000€ TTC quand même. La base du système est un linux optimisé sur lequel on peut se connecter très facilement si besoin, ce qui en fait une solution très ouverte et évolutive.</p>
<p>La série de disques durs seagate utilisés, des &#8216;Barracuda&#8217;, a posé de nombreux problèmes, à <a href="http://techreport.com/discussions.x/16276" target="_blank">Seagate</a>, qui a <a href="http://seagate.custkb.com/seagate/crm/selfservice/search.jsp?DocId=207957&amp;NewLang=en&amp;Hilite=" target="_blank">changé non-stop de firmware</a> mais aussi aux fabricant de NAS comme <a href="http://www.qnap.fr" target="_blank">QNAP</a>. J&#8217;ai du attendre presque 2 mois pour qu&#8217;un<a href="http://forum.qnap.com/viewtopic.php?f=144&amp;t=12586" target="_blank"> firmware compatible soit enfin releasé</a> mais cela a finalement été fait et bien fait grâce au support technique très réactif  de QNAP. Une fois ces problèmes materiels résolus, la création du RAID5 a duré près de 30h, entre le formatage et la synchronisation. Il faut dire que le CPU de ce QNAP est assez misérable (500Mhz) ce qui vous pénalisera si vous avez par exemple de gros rsync a faire.</p>
<p><a href="http://www.xbitlabs.com/articles/networking/display/qnap-ts109proii_6.html" target="_blank">L&#8217;interface web de gestion du QNAP</a> est claire et efficace, on yretrouve toutes les fonctions de configuration, mais aussi une section &#8220;Download Station&#8221; qui permet de lancer directement sur le NAS des téléchargements http/ftp/BT. Le boitier est également compatible DLNA pour ceux qui ont des consoles XBOX 360 ou PS3 et souhaitent partager les fichiers. Les principaux protocoles de partage de fichier son supportés : Samba/AFS/NFS/FTP&#8230; D&#8217;autres fonctions sont interessantes : réplication entre plusieurs NAS à distance, serveur Web et MySQL intégrés, bouton &#8220;hotcopy&#8221; pour copier rapidement le contenu d&#8217;un disque USB externe sur le NAS, gestion imprimantes USB (comme la freebox), Corbeille réseau, iTunes station&#8230; </p>
<p>Au niveau des performances, le bilan est assez mitigé :</p>
<ul>
<li>Transfert avec rsync du port USB du QNAP d&#8217;un disque en NTFS vers le RAID5 : 2.5mb/s (cpu a fond)</li>
<li>Transfert avec cp du port USB du QNAP d&#8217;un disque en NTFS vers le RAID5 : 6.5mb/s</li>
<li>Transfert avec rsync entre un linux et le QNAP via ssh : 2.5mb/s (cpu a fond)</li>
<li>Transfert avec rsync entre un linux et le QNAP via NFS : 7.5mb/s</li>
<li>Transfert entre un explorateur windows et le QNAP via samba : 6mb/s</li>
</ul>
<p>Points positifs :</p>
<ul>
<li>Configuration facile et rapide</li>
<li>Fonctionnalités multiples</li>
<li>Linux</li>
</ul>
<p>Point négatifs :</p>
<ul>
<li>Pas de support du ReiserFS</li>
<li>CPU trop lent</li>
<li>seulement 256 de RAM</li>
</ul>
<p>Conclusion : Le QNAP reste un bon NAS, accessible et fonctionnel. Idéal pour le stockage sécurisé, les sauvegardes et le partage réseau.</p>
<p>CF comparatif des NAS 2009 sur clubic : <a href="http://www.clubic.com/article-151126-17-stockage-reseau-nas.html">http://www.clubic.com/article-151126-17-stockage-reseau-nas.html</a> avec tests complets et comparatif des performances. On voit que le TS509, nouveau modele avec un CPU plus puissant et 1Go de RAM est largement devant. donc si vous avez les moyens, foncez sur le TS-509 Pro (environ 800€ TTC sans les disques).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/test-qnap-ts409-pro/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NeufBox = catastrophe</title>
		<link>http://blog.revolunet.com/index.php/general/neufbox-catastrophe</link>
		<comments>http://blog.revolunet.com/index.php/general/neufbox-catastrophe#comments</comments>
		<pubDate>Tue, 31 Mar 2009 10:14:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[actu informatique]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=287</guid>
		<description><![CDATA[J&#8217;ai malheureusement décidé de m&#8217;inscrire à Neuf ADSL pour ma nouvelle ligne de téléphone; j&#8217;habite en plein Paris et pourtant le service est déplorable&#8230; Petit temoignage pour vous éviter de vivre la même chose :

Le téléphone est inutilisable, il se désactive régulièrement, il faut carrément RESET la box pour le relancer
Impossible d&#8217;envoyer/recevoir des fax, la [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai malheureusement décidé de m&#8217;inscrire à Neuf ADSL pour ma nouvelle ligne de téléphone; j&#8217;habite en plein Paris et pourtant le service est déplorable&#8230; Petit temoignage pour vous éviter de vivre la même chose :</p>
<ul>
<li>Le téléphone est inutilisable, il se désactive régulièrement, il faut carrément RESET la box pour le relancer</li>
<li>Impossible d&#8217;envoyer/recevoir des fax, la ligne est totalement instable. retour a l&#8217;envoi manuel à la Poste :/</li>
<li>Le débit est minable, même en download</li>
<li>Impossible d&#8217;avoir une IP fixe avec neuf, même pas en option !</li>
<li>Les conseillers au téléphone font des RESET à distance sur la box, sans même vous prévenir, et en effacant votre configuration, obligé de tout reconfigurer&#8230;</li>
</ul>
<p>Dire que j&#8217;avais souscrit à leur offre &#8216;Pros&#8217; <img src='http://blog.revolunet.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Bref, fuyez Neuf (SFR) pour un opérateur plus fiable, FREE par exemple voir Orange si vous êtes pret à payer le prix fort.</p>
<p>Resil et migration en vue pour moi.</p>
<p><strong>EDIT: </strong>Suite à plusieurs appels à la hotline, Neuf a décidé de brider la ligne en question à 5mbits/s. Et depuis c&#8217;est vrai, le telephone est plus stable et le fax marche en envoi/reception. (uptime 24h). Mais 5mb/s en plein Paris c&#8217;est bien décevant pour un service vendu comme du &#8220;Très haut débit&#8221;. Vivement la fibre.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/neufbox-catastrophe/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Fin de la passerelle MSN de jabber.fr</title>
		<link>http://blog.revolunet.com/index.php/general/fin-de-la-passerelle-msn-de-jabberfr</link>
		<comments>http://blog.revolunet.com/index.php/general/fin-de-la-passerelle-msn-de-jabberfr#comments</comments>
		<pubDate>Fri, 27 Feb 2009 16:22:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Jabber]]></category>
		<category><![CDATA[actu informatique]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=282</guid>
		<description><![CDATA[A mon grand regret, les admins de jabber.fr ont décidé de mettre fin aux services des passerelles propriétaires sur le serveur jabber.fr.  Cela concerne bien sur MSN, mais aussi ICQ et AIM.
Cette décision, surtout politique, va obliger tous ceux qui ont migré sur jabber à changer de client (pour un client multi-protocoles) ou à s&#8217;inscrire [...]]]></description>
			<content:encoded><![CDATA[<p>A mon grand regret, les admins de jabber.fr ont <a href="http://jabber.apinc.org/news/?p=48" target="_blank">décidé de mettre fin aux services des passerelles propriétaires</a> sur le serveur jabber.fr.  Cela concerne bien sur MSN, mais aussi ICQ et AIM.</p>
<p>Cette décision, surtout politique, va obliger tous ceux qui ont migré sur jabber à changer de client (pour un client multi-protocoles) ou à s&#8217;inscrire sur une autre passerelle.</p>
<p>Si comme moi vous êtes un fan de <a href="http://psi-im.org/" target="_blank">PSI</a> , vous pouvez tout de même utiliser d&#8217;autres passerelles, comme par exemple celle de jabber.gnubox.net tout en gardant votre compte jabber actuel. </p>
<p>La passerelle MSN aura en tous cas rendu de bons et loyaux services pendant plusieurs années, meme s&#8217;il fallait la relancer 1 à 2 fois par semaine, ce qui est tout de meme toujours mieux que de faire tourner Live Messenger.</p>
<p>AMEN</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/fin-de-la-passerelle-msn-de-jabberfr/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

