<?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/"
	>

<channel>
	<title>Le blog perso de Sam</title>
	<atom:link href="http://blog-perso.onzeweb.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog-perso.onzeweb.info</link>
	<description>Parce-que je le vaux bien</description>
	<pubDate>Wed, 23 May 2012 07:45:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>gmate</title>
		<link>http://blog-perso.onzeweb.info/2010/05/13/gmate/</link>
		<comments>http://blog-perso.onzeweb.info/2010/05/13/gmate/#comments</comments>
		<pubDate>Thu, 13 May 2010 11:05:03 +0000</pubDate>
		<dc:creator>Sam.</dc:creator>
		
		<category><![CDATA[Général]]></category>

		<category><![CDATA[Informatique]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog-perso.onzeweb.info/?p=277</guid>
		<description><![CDATA[D&#8217;un côté je suis un utilisateur de Netbeans que je trouve très pratique pour développer avec Rails. Mais la bête est gourmande en ressources et demande de la place à l&#8217;écran pour être pleinement exploitée (mais je le trouve plus pratique qu&#8217;Eclipse quand la place est réduite). Pour éditer un petit script, ou pour travailler [...]]]></description>
			<content:encoded><![CDATA[<p>D&#8217;un côté je suis un utilisateur de Netbeans que je trouve très pratique pour développer avec Rails. Mais la bête est gourmande en ressources et demande de la place à l&#8217;écran pour être pleinement exploitée (mais je le trouve plus pratique qu&#8217;Eclipse quand la place est réduite). Pour éditer un petit script, ou pour travailler sur un netbook ça n&#8217;est pas l&#8217;idéal. Par ailleurs si Netbeans permet de travailler de manière très productive avec Subversion, il n&#8217;en est pas de même pour Git à ce jour.</p>
<p>D&#8217;un autre côté, je suis aussi un utilisateur de Vi. Dès que j&#8217;ai une console ouverte je vais automatiquement l&#8217;utiliser, quitte à &#8230; ouvrir une autre console pour vi ! Mais pour travailler sur un projet qui demande de naviguer beaucoup entre les fichiers je trouve que ça n&#8217;est pas très pratique. Je ne suis pas non plus un expert de cet outil.</p>
<p>Entre les deux il y a les éditeurs de texte en mode graphique, mais souvent il leur manque des petites choses bien pratiques pour être productif. Par exemple j&#8217;apprécie beaucoup <a title="Scintilla Edidor" href="http://www.scintilla.org/SciTE.html" target="_blank">SciTe</a> pour sa légèreté, il est notamment très efficace pour ouvrir de très gros fichiers, mais on est loin d&#8217;un IDE.</p>
<p>Longtemps j&#8217;ai négligé Gedit, lui préférant justement SciTe pour sa rapidité. Mais il existe une solution pour le rendre plus pratique : <a title="gmate" href="http://github.com/gmate/gmate" target="_blank">gmate</a> . C&#8217;est un mélange de plugins, de thèmes, et un exécutable permettant de lancer gedit à partir d&#8217;un répertoire donné et rendant la main.</p>
<p>L&#8217;essentiel des explications est ici : <a title="gmate : gedit prend des allures de textmate" href="http://github.com/gmate/gmate" target="_blank">http://github.com/gmate/gmate</a> . Le problème est ensuite de faire le tri entre les différents plugins pour voir ceux qui sont pratique ou non (selon les habitudes de chacun), ainsi que faire le tri pour éviter ceux qui ne semblent pas fonctionner correctement.</p>
<p>Très rapidement, l&#8217;installation sous Ubuntu 10.04 :</p>
<ul>
<li>sudo add-apt-repository ppa:ubuntu-on-rails/ppa</li>
<li>sudo apt-get update</li>
<li>sudo apt-get install gedit-gmate</li>
</ul>
<p>Pour adapter l&#8217;usage à Ruby et Rails, il faut modifier la gestion des espaces dans les préférences : choisir &#8220;Insérer des espaces au lieu des tabulations&#8221; et indiquer &#8220;2&#8243; pour la largeur.</p>
<p>Après l&#8217;installation il y a un choix important de thèmes. Choisir celui qui convient est une activité chronophage !</p>
<p>Voici les plugins que j&#8217;ai retenu (en plus ceux activés par défaut) et qui semblent fonctionner correctement. C&#8217;est un choix à faire en fonction de ses propres habitudes de travail :</p>
<ul>
<li>Extraits de code : permet de saisir rapidement en tapant quelques caractères puis TAB et zou&#8230;</li>
<li>Find in Files : ajoute un onglet dans la barre latéral permettant d&#8217;effectuer une recherche dans l&#8217;ensemble des fichiers à partir du répertoire du projet.</li>
<li>Rails File Loader : détecte les fichiers lié à RoR et adapte la coloration syntaxique. Pas forcément indispensable.</li>
<li>Regex Search and Replace : permet d&#8217;effectuer une recherche/remplacement dans le fichier courant en utilisant des expressions régulières, s&#8217;active avec Ctrl-Alt-H.</li>
<li>Save without trailing space : pour éviter le gaspillage en supprimant les espaces en fin de ligne et les sauts de lignes vides en fin de fichier.</li>
<li>Smart Indent : indentation automatique lors de la frappe.</li>
<li>Snap Open : permet d&#8217;ouvrir rapidement un fichier avec Ctrl-Alt-O et en ne saisissant qu&#8217;une partie du nom.</li>
<li>TabSwitch : permet de naviguer entre les onglets avec Ctrl-Tab comme dans la plupart des IDE, Firefox, &#8230;</li>
</ul>
<p>Quelques informations complémentaires ici : <a title="gmate" href="http://blog.siverti.com.br/gmate/" target="_blank">http://blog.siverti.com.br/gmate/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog-perso.onzeweb.info/2010/05/13/gmate/feed/</wfw:commentRss>
		</item>
		<item>
		<title>mongoDB</title>
		<link>http://blog-perso.onzeweb.info/2010/03/30/mongodb/</link>
		<comments>http://blog-perso.onzeweb.info/2010/03/30/mongodb/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 06:00:05 +0000</pubDate>
		<dc:creator>Sam.</dc:creator>
		
		<category><![CDATA[Informatique]]></category>

		<category><![CDATA[mongodb]]></category>

		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://blog-perso.onzeweb.info/?p=197</guid>
		<description><![CDATA[Allez, un sujet à la mode : mongoDB, et plus largement le NoSQL.
Pourquoi ? Les RDBMS remplissent souvent bien leurs rôles, mais la manière d&#8217;aborder le problème est toujours la même. L&#8217;approche d&#8217;une base de données orientée document comme mongoDB est différente, tester en prenant du recul c&#8217;est s&#8217;intéresser à une autre manière de faire, [...]]]></description>
			<content:encoded><![CDATA[<p>Allez, un sujet à la mode : <a title="mongodb" href="http://www.mongodb.org">mongoDB</a>, et plus largement le <a title="NoSQL" href="http://fr.wikipedia.org/wiki/NoSQL">NoSQL</a>.</p>
<p>Pourquoi ? Les RDBMS remplissent souvent bien leurs rôles, mais la manière d&#8217;aborder le problème est toujours la même. L&#8217;approche d&#8217;une base de données orientée document comme mongoDB est différente, tester en prenant du recul c&#8217;est s&#8217;intéresser à une autre manière de faire, de voir les choses sous un autre angle.</p>
<p>Développer avec un ORM (comme  avec ActiveRecord) c&#8217;est déjà avoir &#8220;le cul entre deux chaises&#8221;, poussons les choses encore un peu plus loin&#8230;</p>
<p><span id="more-197"></span></p>
<p><strong>=== Différents besoins, différents outils ===<br />
</strong></p>
<p>Avant d&#8217;aller plus loin, je tiens à mettre en avant un point important : il n&#8217;est pas question ici de remplacer aveuglément une base de données relationnelle. Cela pourra se faire dans certains cas, dans d&#8217;autre un outil comme mongoDB sera un complément, et bien souvent une bonne vieille base de données traditionnelle sera la seule réponse. A chaque problème sa solution, chaque outil ayant ses avantages et ses inconvénients.</p>
<p>Côté avantages, mongoDB est simple à utiliser, pas de migration, pas de schéma à définir, mais surtout c&#8217;est très rapide et prévu dès l&#8217;origine pour une forte croissance du volume et de la charge.</p>
<p>Le principal inconvénient de mongoDB est l&#8217;absence de gestion de transaction, pas tant pour des problématiques d&#8217;atomicité, d&#8217;isolation ou de cohérence dont on peut se passer dans certains cas, mais plus pour l&#8217;absence de durabilité. Pour plus de détails voir <a title="ACID" href="http://www.journaldunet.com/developpeur/tutoriel/theo/060615-theo-db-acid.shtml">Les propriétés ACID d&#8217;une base de données</a> et  <a title="durability and repairs with mongodb" href="http://www.mongodb.org/display/DOCS/Durability+and+Repair">Durability and Repairs</a>.</p>
<p>En d&#8217;autres termes, pour &#8230;</p>
<ul>
<li>stocker un volume important de données non critiques et structurées par une approche &#8220;document&#8221; plutôt que &#8220;relationnelle&#8221;, &#8230;</li>
<li>ET pouvoir manipuler les données rapidement malgré une charge et un volume important, &#8230;</li>
<li>ET manipuler les données sans avoir besoin des apports d&#8217;une gestion de transaction, &#8230;</li>
</ul>
<p>&#8230; alors mongoDB peut présenter un intérêt.</p>
<p>En suivant le reste de ce sujet, vous réaliserez quelques commandes simples dans un &#8220;shell&#8221; mongoDB. Mais l&#8217;outil cohabite très bien avec bon nombre de langages : C, C++, Java, Ruby, PHP, &#8230; Pour avoir une liste complète : <a title="drivers pour mongoDB" href="http://www.mongodb.org/display/DOCS/Drivers">http://www.mongodb.org/display/DOCS/Drivers</a></p>
<p><strong>=== Installation (de test) et démarrage de mongoDB ===<br />
</strong></p>
<p>Il est possible de faire fonctionner mongDB sous Windows, mais pour ma part, ce sera un exemple utilisé sous Linux (ce qui ne changera pas grand chose) :</p>
<ul>
<li>Identifier la version de mongoDB correspondant à votre environnement, ça se passe ici : <a href="http://www.mongodb.org/display/DOCS/Downloads">http://www.mongodb.org/display/DOCS/Downloads</a> .</li>
<li>Télécharger, exemple : <strong>wget http://downloads.mongodb.org/linux/mongodb-linux-i686-1.4.0.tgz</strong></li>
<li>Décompresser : <strong>tar xzf  mongodb-linux-i686-1.4.0.tgz</strong></li>
<li>Créer un répertoire pour les données, pour un simple de test j&#8217;ai fait le sauvage en la plaçant dans mon répertoire de test de mongoDB. C&#8217;est pas bien je sais&#8230;. mais c&#8217;est une simple prise de contact : <strong>cd mongodb-linux-i686-1.4.0</strong> puis <strong>mkdir -p data/db</strong></li>
<li>Démarrer le serveur de mongoDB : <strong>bin/mongod &#8211;dbpath data/db</strong></li>
</ul>
<p>Et c&#8217;est tout.</p>
<p><strong>=== Premières commandes ===<br />
</strong></p>
<p>Le serveur ayant rendu la console indisponible (c&#8217;est du test, ne râlez pas <img src='http://blog-perso.onzeweb.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ), en ouvrir une autre, et se placer dans le même répertoire qu&#8217;au démarrage du serveur.</p>
<p>Démarrer un &#8220;shell&#8221; client de mongoDB : <strong>bin/mongo</strong></p>
<p>A noter que <strong>mongo</strong> et <strong>mongod</strong> peuvent avoir divers arguments et qu&#8217;il suffit d&#8217;y ajouter <strong>-h</strong> pour en avoir un résumé.</p>
<p>Quelques commandes a essayer juste pour tâter le terrain  :</p>
<ul>
<li><strong>use meuh</strong></li>
<li><strong>db.vache.save({nom:&#8221;La Noiraude&#8221;})</strong></li>
<li><strong>db.vache.save({nom:&#8221;Azalee&#8221;})</strong></li>
<li><strong>db.vache.find()</strong></li>
<li><strong>n=db.vache.findOne({nom:&#8221;Azalee&#8221;})</strong></li>
<li><strong>n.amis=["Zebulon","Margotte","Pollux"]</strong></li>
<li><strong>db.vache.save(n)</strong></li>
<li><strong>db.vache.find({amis:&#8221;Zebulon&#8221;})</strong></li>
</ul>
<p>Nous n&#8217;avons pas créé de bases, ni de tables (appelées ici &#8220;collections&#8221;), ni aucun champ. Les enregistrements ne se ressemblent pas tous, et ne sont pas &#8220;à plat&#8221; mais peuvent avoir une structure plus complexe, beaucoup plus que dans cet exemple.</p>
<p>La syntaxe utilisée est à base de Javascript, nous sommes loin du SQL. La manière de travailler est très différente. Dans certain cas on sera agréablement surpris, dans d&#8217;autres on regrettera son &#8220;bon vieux SQL&#8221;. Tout dépend de la manière dont seront structurées les données, ainsi que des opérations à réaliser. Ce n&#8217;est pas mieux ou moins bien c&#8217;est différent.</p>
<p><strong>=== Scripts et requêtes ===<br />
</strong></p>
<p>Il est possible d&#8217;écrire des scripts :</p>
<ul>
<li><strong>use test</strong> <em>(puisque ça n&#8217;a aucun rapport avec les vaches&#8230;)</em></li>
<li><strong>for(i=0;i&lt;1000;i++) db.carres.save({x:i,y:i*i});</strong></li>
</ul>
<p>Et nous voilà avec un millier de documents. Si vous voulez tester avec 100000 itérations, pas de soucis, ça répondra dans un délai raisonnable.</p>
<p>Quelques requêtes sur ces enregistrements :</p>
<ul>
<li>Le nombre de documents avec x&gt;500 : <strong>db.carres.find({x:{$gt:500}}).count()</strong></li>
<li>Uniquement des valeurs de y pour x&lt;10 : <strong>db.carres.find({x:{$lt:10}},{y:true})</strong></li>
<li>Les documents ayant des valeurs paires de x : <strong>db.carres.find({$where:&#8221;(this.x%2)==0&#8243;})</strong></li>
</ul>
<p>La dernière requête est intéressant car elle montre comment effectuer des requêtes contenant du code Javascript ce qui permet de réaliser  des filtres complexes. Par ailleurs elle est loin d&#8217;afficher l&#8217;ensemble des résultats et termine l&#8217;affichage par &#8220;has more&#8221;, mongoDB ne renvoyant pas des valeurs mais un curseur pour itérer sur le  résultat. Pour voir la suite il suffit d&#8217;utiliser la commande :</p>
<ul>
<li><strong>it</strong></li>
</ul>
<p>Pour plus d&#8217;information sur les requêtes : <a title="Requêtes avec mongoDB" href="http://www.mongodb.org/display/DOCS/Querying">http://www.mongodb.org/display/DOCS/Querying</a></p>
<p><strong>=== Les indexes n&#8217;ont pas été oublies ===<br />
</strong></p>
<p>Optimisons un peu tout ça avec un index croissant et unique  sur x :</p>
<ul>
<li><strong>db.carres.ensureIndex({x:1},{unique:true})</strong></li>
</ul>
<p>Les indexes peuvent être composés, mais il peuvent aussi utiliser les valeurs d&#8217;un tableau (souvenez vous des amis d&#8217;Azalée) :</p>
<ul>
<li><strong>use meuh</strong></li>
<li><strong>db.vache.find({amis:&#8221;Pollux&#8221;})</strong></li>
<li><strong>db.vache.find({amis:&#8221;Pollux&#8221;}).explain()</strong></li>
<li><strong>db.vache.ensureIndex({amis:1})</strong></li>
<li><strong>db.vache.find({amis:&#8221;Pollux&#8221;}).explain()</strong></li>
</ul>
<p>Le résultat de la fonction explain n&#8217;est pas évident à lire à première vue, mais en y regardant de plus près :</p>
<ul>
<li>sans index on constate que dans la première requête (sans index) il y a eu un parcours séquentiel de la collection et deux documents ont été lu.</li>
<li>avec index un Btree a été utilisé pour trouver le résultat, et un seul document a été lu.</li>
</ul>
<p>Pour plus d&#8217;information sur les indexes : <a title="Indexes avec mongoDB" href="http://www.mongodb.org/display/DOCS/Indexes">http://www.mongodb.org/display/DOCS/Indexes</a></p>
<p><strong>=== Le mot de la fin ===<br />
</strong></p>
<p>Le but de ce sujet n&#8217;est pas de vous &#8220;convertir&#8221; à mongoDB, pas plus qu&#8217;il ne s&#8217;agit d&#8217;un cours. Je serais d&#8217;ailleurs bien mal placé pour cela, étant également en pleine découverte de cet outil. J&#8217;ai simplement voulu donner un aperçu de son utilisation, et montrer à quel point il est facile de procéder à quelques tests.</p>
<p>Comme indiqué au début du sujet, ce qui compte, c&#8217;est d&#8217;élargir son horizon. Il y a un peu de gymnastique cérébrale en vue pour celui qui compte approfondir le sujet, mais depuis le &#8220;professeur kawachéplukoi&#8221; et son jeu sur une console de jeu très connue c&#8217;est à la mode <img src='http://blog-perso.onzeweb.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog-perso.onzeweb.info/2010/03/30/mongodb/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PostgreSQL et la connexion locale</title>
		<link>http://blog-perso.onzeweb.info/2010/03/01/postgresql-connexion-locale/</link>
		<comments>http://blog-perso.onzeweb.info/2010/03/01/postgresql-connexion-locale/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 11:52:14 +0000</pubDate>
		<dc:creator>Sam.</dc:creator>
		
		<category><![CDATA[Informatique]]></category>

		<category><![CDATA[postgresql]]></category>

		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://blog-perso.onzeweb.info/?p=178</guid>
		<description><![CDATA[Voici un petit casse tête qui a du arriver à plus d&#8217;une personne concernant PostgreSQL. Il s&#8217;agit de se connecter à une base de données locale avec un compte utilisateur fraîchement créé. Le contexte est ici Ubuntu 9.10 et PostgreSQL 8.4.
Vous créez une base de données et un utilisateurs (en étant superutilisateur bien entendu) :
create [...]]]></description>
			<content:encoded><![CDATA[<p>Voici un petit casse tête qui a du arriver à plus d&#8217;une personne concernant PostgreSQL. Il s&#8217;agit de se connecter à une base de données locale avec un compte utilisateur fraîchement créé. Le contexte est ici Ubuntu 9.10 et PostgreSQL 8.4.</p>
<p>Vous créez une base de données et un utilisateurs (en étant superutilisateur bien entendu) :</p>
<blockquote><p>create role toto login password &#8216;pwtoto&#8217;;</p>
<p>create database dbtoto with owner=toto encoding=&#8217;UTF8&#8242;;</p></blockquote>
<p>Puis vous essayez de vous connecter à la base depuis un shell :</p>
<blockquote><p>psql dbtoto -U toto</p>
<p>psql dbtoto -U toto -W</p></blockquote>
<p>Et à chaque fois, c&#8217;est un échec&#8230; &#8220;psql: FATAL:  authentification Ident échouée pour l&#8217;utilisateur &lt;&lt; toto &gt;&gt;&#8221;</p>
<p>Maintenant il y a de quoi perdre par mal de temps en contrôlant tout ce qu&#8217;on a pu faire, en ré-essayent, en consultant le &#8220;man&#8221; de psql, etc&#8230; Pourtant le message d&#8217;erreur contient ici un début de réponse : &#8220;Ident&#8221;.</p>
<p>En voulant se connecter de cette manière, le client va utiliser une connexion via socket Unix (et pas via TCP/IP). Or dans le fichier <strong>/etc/postgresql/8.4/main/pg_ident.conf</strong> il est indiqué que pour ce type de connexion le méthode d&#8217;authentification sera &#8220;ident&#8221;. Pour faire court, l&#8217;authentification de l&#8217;utilisateur est effectuée par le système d&#8217;exploitation, ce qui ici échouera puisque &#8220;toto&#8221; est inconnu en tant qu&#8217;utilisateur du système. Le détail de l&#8217;explication ici : <a title="Authentification fondée sur ident " href="http://docs.postgresql.fr/8.4/auth-methods.html#auth-ident">Authentification fondée sur ident</a></p>
<p>Par contre en utilisant un socket IPv4 l&#8217;authentification sera &#8220;md5&#8243;, c&#8217;est à dire qu&#8217;il utilisera le mot de passe crypté envoyé par le client. Et là l&#8217;authentification sera effectuée en impliquant uniquement PostgreSQL. Pour forcer l&#8217;utilisation d&#8217;un socket IPv4 (et régler le problème) :</p>
<blockquote><p>psql dbtoto -U toto -h localhost</p></blockquote>
<p>Pour plus d&#8217;explication, se reporter au chapitre <a title="Authentification du client de PostgreSQL" href="http://docs.postgresql.fr/8.4/client-authentication.html">Authentification du client</a> de la documentation de PostgreSQL, et prendre la peine de regarder ce qu&#8217;il y a dans son propre fichier pg_ident.conf.</p>
<p>Cette subtilité étant au niveau de la liaison entre client et serveur PostgreSQL, la problématique sera la même pour un processus tel qu&#8217;un serveur Web. Par exemple dans le fichier database.yml de Rails il faudra ajouter une entrée &#8220;host&#8221;, sans quoi la connexion échouera (Rails n&#8217;ajoute pas cette entrée par défaut).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog-perso.onzeweb.info/2010/03/01/postgresql-connexion-locale/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ubuntu 8.04 et Ruby Enterprise Edition</title>
		<link>http://blog-perso.onzeweb.info/2010/02/21/ubuntu-804-ruby-enterprise-edition/</link>
		<comments>http://blog-perso.onzeweb.info/2010/02/21/ubuntu-804-ruby-enterprise-edition/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 11:12:28 +0000</pubDate>
		<dc:creator>Sam.</dc:creator>
		
		<category><![CDATA[Informatique]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog-perso.onzeweb.info/?p=119</guid>
		<description><![CDATA[Bien qu&#8217;utilisant Passenger depuis un moment en production, je n&#8217;avais jamais testé  Ruby Enterprise Edition (REE). L&#8217;envie était là, mais pas le besoin, la version standard de Ruby packagée avec les distributions Linux étant largement suffisante dans bien des cas.
Cette option peut devenir intéressante pour utiliser Ruby 1.8.7 sur Ubuntu LTS 8.04. Ce n&#8217;est [...]]]></description>
			<content:encoded><![CDATA[<p>Bien qu&#8217;utilisant <a title="Passenger (ex Mod Rails)" href="http://www.modrails.com/">Passenger </a>depuis un moment en production, je n&#8217;avais jamais testé  <a title="Ruby Enterprise Edition" href="http://www.rubyenterpriseedition.com/">Ruby Enterprise Edition</a> (REE). L&#8217;envie était là, mais pas le besoin, la version standard de Ruby packagée avec les distributions Linux étant largement suffisante dans bien des cas.</p>
<p>Cette option peut devenir intéressante pour utiliser Ruby 1.8.7 sur Ubuntu LTS 8.04. Ce n&#8217;est pas la seule option, mais ça peut être l&#8217;occasion de faire d&#8217;une pierre deux coups en bénéficiant des apports de REE. Cette version d&#8217;Ubuntu sera encore maintenue pendant 3 ans, migrer vers la prochaine LTS (à venir) uniquement pour mettre à niveau la version de Ruby peut-être une opération lourde (selon le contexte) qu&#8217;il est possible d&#8217;éviter à court terme.</p>
<p>Pourquoi remplacer Ruby 1.8.6 par Ruby 1.8.7 ? Il peut-être souhaitable de ne pas avoir à valider ses développements sur plusieurs version même si le déploiement est effectuée sur des plateformes différentes. Une autre raison est qu&#8217;à court terme cette version risque d&#8217;être le minimum requis pour certains gems.</p>
<p><span id="more-119"></span>L&#8217;objectif de ce petit billet est simplement de décrire l&#8217;installation de REE sur un système Ubuntu 8.04 vierge à des fins de test. Il n&#8217;y aura qu&#8217;une et une seule version de Ruby installée : REE. Aucun package relatif à Ruby ne sera installé. Une intervention sur un serveur en production sera une autre histoire, il faudra éviter toute confusion entre les versions, réinstaller l&#8217;ensemble des gems (et cela nécessitera l&#8217;installation de paquets supplémentaires sur le système). Mieux vaut avoir validé le maximum de chose <img src='http://blog-perso.onzeweb.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Pour ce genre de test, un système virtualisé est l&#8217;idéal, les utilisateurs de Linux ou Windows trouveront leurs bonheur avec <a title="VirtualBox" href="http://www.virtualbox.org/">VirtualBox</a> ou <a title="VMWare Server" href="http://www.vmware.com/fr/products/server/">VMWare Server</a> sans que ça ne coute rien.</p>
<p><strong>Installation de Ruby Enterprise Edition sur Ubuntu LTS 8.04</strong></p>
<p>Voici la recette de cuisine, en cas de problème consultez la documentation disponible sur <a title="Ruby Enterprise Edition" href="http://www.rubyenterpriseedition.com/">http://www.rubyenterpriseedition.com/</a></p>
<p>Effectuer une installation de base d&#8217;une 8.04 Server, sans aucune option particulière. Mettre à jour le système et rebooter.</p>
<p>Installer les paquets suivants (sudo apt-get install &#8230;)  :</p>
<ul>
<li>ssh (parce-que c&#8217;est pratique)</li>
<li>build-essential</li>
<li>zlib1g-dev</li>
<li>libssl-dev</li>
<li>libreadline5-dev</li>
</ul>
<p>NE PAS installer un paquet relatif à Ruby !</p>
<p>Télécharger le code source de REE : wget http://rubyforge.org/frs/download.php/68719/ruby-enterprise-1.8.7-2010.01.tar.gz</p>
<p>Décompresser :  tar xzvf ruby-enterprise-1.8.7-2010.01.tar.gz</p>
<p>Installer :</p>
<ul>
<li>cd ruby-enterprise-1.8.7-2010.01</li>
<li>sudo ./installer</li>
</ul>
<p>Accepter d&#8217;installer dans un sous répertoire de /opt , mais changer le nom du répertoire cible. En cas de mise à jour mineure il faudra recompiler et installer vers le même répertoire, autant avoir un nom simple et significatif (la partie représentant la date de release n&#8217;aura plus de sens après une mise à jour). Par exemple ne garder que &#8220;/opt/ruby-enterprise-1.8.7&#8243;.</p>
<p>L&#8217;installation prend un petit moment, et à la fin, une mauvaise surprise : certains gems installés par défaut par REE posent problème (MySQL, &#8230;). Ce n&#8217;est pas une anomalie, simplement il manque certains paquets au niveau du système pour compiler les gems. Ce point est abordé un peu plus bas.</p>
<p>Après avoir installé REE, quelques tests s&#8217;imposent</p>
<ul>
<li>/opt/ruby-enterprise-1.8.7/bin/ruby -v</li>
<li>/opt/ruby-enterprise-1.8.7/bin/irb</li>
<li>&#8230; ce qui vous amuse &#8230;</li>
</ul>
<p>Si comme moi vous êtes un gros fainéant (c&#8217;est une qualité, ça pousse à avoir des idée pour être efficace <img src='http://blog-perso.onzeweb.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ), vous voudrez avoir le répertoire &#8220;bin&#8221; de l&#8217;installation dans votre PATH. Par ailleurs ce sera probablement utile lors de l&#8217;utilisation de Rails (rake, la console, &#8230;). Pour cela il suffit de modifier le fichier /etc/environment (sudo vi &#8230; ) et ajouter au début du PATH &#8220;/opt/ruby-enterprise-1.8.7/bin:&#8221; . Cela ne prendra effet qu&#8217;après s&#8217;être reconnecté. Pour vérifier il suffit de taper &#8220;ruby -v&#8221; sans préfixer par le chemin complet.</p>
<p><strong>Installer des gems</strong></p>
<p>L&#8217;installation de gems implique l&#8217;utilisation de &#8220;sudo&#8221;, mais cela pose un léger problème : le PATH n&#8217;est pas la même sur celui du shell utilisateur, et dans ce cas précis il faudra utiliser le chemin complet : &#8220;sudo /opt/ruby-enterprise-1.8.7/bin/gem install &#8230;&#8221;</p>
<p>Comme indiqué plus haut, il n&#8217;est pas question d&#8217;installer des paquets relatifs à Ruby pour les utiliser avec REE. Donc absolument tout passera par Rubygems. Et si aucun paquet relatif à Ruby ne sera installé, il faudra en revanche installer des paquets de développements pour pouvoir compiler certains gems.</p>
<p>Pour MySQL :</p>
<ul>
<li>sudo apt-get install mysql-client libmysqlclient15-dev</li>
<li>sudo /opt/ruby-enterprise-1.8.7/bin/gem install mysql</li>
</ul>
<p>Pour PostgreSQL :</p>
<ul>
<li>sudo apt-get install postgresql-client libpq-dev</li>
<li>sudo /opt/ruby-enterprise-1.8.7/bin/gem install pg</li>
</ul>
<p>Finalement c&#8217;est simple et sans histoire, à priori pas de quoi faire un billet dans un blog. Mais ayant pris des notes, autant les publier <img src='http://blog-perso.onzeweb.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog-perso.onzeweb.info/2010/02/21/ubuntu-804-ruby-enterprise-edition/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Picoozite aïgue</title>
		<link>http://blog-perso.onzeweb.info/2009/02/24/picoozite-aigue/</link>
		<comments>http://blog-perso.onzeweb.info/2009/02/24/picoozite-aigue/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 22:00:49 +0000</pubDate>
		<dc:creator>Sam.</dc:creator>
		
		<category><![CDATA[Loisirs]]></category>

		<category><![CDATA[hélicoptère]]></category>

		<category><![CDATA[picooz]]></category>

		<guid isPermaLink="false">http://blog-perso.onzeweb.info/?p=92</guid>
		<description><![CDATA[L&#8217;été dernier, un petit jouet m&#8217;a été offert : un tout petit hélicoptère que l&#8217;on peut piloter avec une commande à infra-rouge. Et c&#8217;est là que tout à commancé : j&#8217;ai contracté un Picoozite ! &#8220;Qu&#8217;est-ce donc&#8221; me direz-vous ? C&#8217;est une maladie (mentale) qui conduit à passer du temps et dépenser de plus ne [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;été dernier, un petit jouet m&#8217;a été offert : un tout petit hélicoptère que l&#8217;on peut piloter avec une commande à infra-rouge. Et c&#8217;est là que tout à commancé : j&#8217;ai contracté un Picoozite ! &#8220;Qu&#8217;est-ce donc&#8221; me direz-vous ? C&#8217;est une maladie (mentale) qui conduit à passer du temps et dépenser de plus ne plus d&#8217;argent dans ces petits jouets. Le terme vient de Picooz qui est le nom donné à certains de ces engins les plus connus, fabriqués par Silverlit.</p>
<p><img class="aligncenter size-full wp-image-93" title="Picooz de Silverlit" src="http://blog-perso.onzeweb.info/wp-content/uploads/2009/02/picooz_plus_vs_picooz_2.jpg" alt="Picooz de Silverlit" width="500" height="195" /></p>
<p><span id="more-92"></span></p>
<p>Au début on s&#8217;amuse un peu, et on se prend beaucoup les murs, les meubles, le plafond. Une catastrophe ! Heureusement que c&#8217;est solide. Avec de la pratique et un tout petit morceau de patafix pour lester le nez, on fini par arriver à guider cet enfin que l&#8217;on croyait indomptable. A ce stade c&#8217;est déjà trop tard pour la plupart des gens, et pour deux raisons :</p>
<ul>
<li>premièrement on s&#8217;amuse comme un fou, voler devient de plus en plus simple, plus amusant, on oublie les petits soucis du quotidien durant les quelques minutes que vous accorde la petite batterie.</li>
<li>deuxièmement étant perdu face à cet hélicoptère tout fou on sera allé sur un forum chercher des informations, voir une solution à un problème particulier. Une communauté probablement chaleureuse aura été intégrée, et les yeux grands ouverts on découvre qu&#8217;il y a d&#8217;autres modèles, pour toutes les tailles, tout les âges et toutes les bourses.</li>
</ul>
<p>Ensuite c&#8217;est l&#8217;escalade&#8230; on achète d&#8217;autres modèles, d&#8217;abord des petits, très simples et économiques. Certains les modifient : un petit truc pour améliorer le vol, des autocollants personnalisés, une peinture excentrique, et pour les plus courageux un coque complète faite maison. En ce qui me concerne, ce n&#8217;est pas le cas. Par contre des hélicoptères j&#8217;en ai acheté !</p>
<p>La picoozite peut connaitre des périodes de rémission passagère, mais on en guéri rarement (jamais ?). Et bien souvent on finit par acheté plus gros, plus perfectionné. Pour beaucoup la prochaine étape est le bi-rotor, c&#8217;est mon cas&#8230;. depuis plusieurs mois déjà ! Mais ça c&#8217;est une autre histoire, qui donnera peut-être lieu à une autre prose de ma part.</p>
<p>Bref, à part cette forme d&#8217;aliénation mentale, piloter ces petits engins est un vrai bonheur. Concernant la communauté, je vous invite à aller voir le <strong><a title="Le forum des Picooz" href="http://picooz.fr/forum" target="_blank">forum de picooz.fr</a></strong> . On y trouve beaucoup d&#8217;information utile et plein de gens très sympas.</p>
<p>Vous pouvez achetez un de ces petits engins&#8230; mais vous ne pourrez pas dire que vous n&#8217;étiez pas prévenu <img src='http://blog-perso.onzeweb.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog-perso.onzeweb.info/2009/02/24/picoozite-aigue/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ubuntu : interfaces réseaux disponibles</title>
		<link>http://blog-perso.onzeweb.info/2008/05/13/ubuntu-interfaces-reseaux-disponibles/</link>
		<comments>http://blog-perso.onzeweb.info/2008/05/13/ubuntu-interfaces-reseaux-disponibles/#comments</comments>
		<pubDate>Tue, 13 May 2008 13:54:50 +0000</pubDate>
		<dc:creator>Sam.</dc:creator>
		
		<category><![CDATA[Général]]></category>

		<guid isPermaLink="false">http://blog-perso.onzeweb.info/?p=91</guid>
		<description><![CDATA[Jouant allègrement avec Ubuntu 8.04 et VMWare, j&#8217;ai fini par avoir un problème réseau qui m&#8217;a fait perdre pas mal de temps. Comme je l&#8217;avais déjà expliqué sur ce blog, le fait de copier une machine virtuelle peut demander de modifier le fichier /etc/network/interfaces pour retrouver une connexion réseau perdue suite au clonage. Mais à [...]]]></description>
			<content:encoded><![CDATA[<p>Jouant allègrement avec Ubuntu 8.04 et VMWare, j&#8217;ai fini par avoir un problème réseau qui m&#8217;a fait perdre pas mal de temps. Comme <a title="Problèmes réseaux avec ubuntu et vmware" href="http://blog-perso.onzeweb.info/2006/07/14/vmware-ubuntu-pb-reseau/">je l&#8217;avais déjà expliqué sur ce blog</a>, le fait de copier une machine virtuelle peut demander de modifier le fichier <strong>/etc/network/interfaces</strong> pour retrouver une connexion réseau perdue suite au clonage. Mais à force de cloner on fini par ne plus savoir où on en est et passer pour un clown.</p>
<p>Et là on peut se dire qu&#8217;il suffit d&#8217;aller voir le contenu de <strong>/dev/net</strong> , histoire de savoir quelles interfaces sont disponibles. Erreur ! Car elles n&#8217;y figurent pas (pas les interfaces physiques du moins), et on part sur une mauvaise piste croyant la carte réseau virtuelle non détectée.</p>
<p>Pour être certain de connaitre les interfaces réseaux disponibles sur le système, il suffit de demander à voir le contenu du fichier <strong>/proc/net/dev</strong> (un simple <strong>cat</strong> fera l&#8217;affaire).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog-perso.onzeweb.info/2008/05/13/ubuntu-interfaces-reseaux-disponibles/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Déclaration de revenus et Firefox 3</title>
		<link>http://blog-perso.onzeweb.info/2008/05/10/declaration-de-revenus-et-firefox-3/</link>
		<comments>http://blog-perso.onzeweb.info/2008/05/10/declaration-de-revenus-et-firefox-3/#comments</comments>
		<pubDate>Sat, 10 May 2008 16:50:45 +0000</pubDate>
		<dc:creator>Sam.</dc:creator>
		
		<category><![CDATA[Général]]></category>

		<category><![CDATA[firefox]]></category>

		<category><![CDATA[impôt]]></category>

		<guid isPermaLink="false">http://blog-perso.onzeweb.info/?p=90</guid>
		<description><![CDATA[Comme chaque année à la même période, c&#8217;est la corvée de la déclaration de revenus. L&#8217;année dernière j&#8217;ai eu un petit souci de certificat qui ne fut par insurmontable et pour lequel j&#8217;avais indiqué la solution sur mon modeste blog. Cette année les choses se présentent moins bien suite à ma migration vers Ubuntu 8.04. [...]]]></description>
			<content:encoded><![CDATA[<p>Comme chaque année à la même période, c&#8217;est la corvée de la déclaration de revenus. L&#8217;année dernière j&#8217;ai eu un petit souci de certificat qui ne fut par insurmontable et pour lequel <a title="certificat et déclaration de revenus" href="http://blog-perso.onzeweb.info/2007/05/05/impots-firefox-certificat/">j&#8217;avais indiqué la solution sur mon modeste blog</a>. Cette année les choses se présentent moins bien suite à ma migration vers Ubuntu 8.04. Le Hardy Heron est livré avec Firefox 3 béta 5, pas encore officiellement supporté par les sites de l&#8217;administration française. Pas question de faire preuve de mauvais esprit vis-à-vis de l&#8217;Etat, ce dernier n&#8217;est pas en retard, c&#8217;est Ubuntu qui est en avance.</p>
<p>Concrètement tout se passe bien presque jusqu&#8217;au bout. J&#8217;ai du résilier mon ancien certificat et demander un nouveau, sans problème. Il y a eu un avertissement relatif au navigateur, mais aucun blocage. La déclaration de revenu se passe plutôt bien, j&#8217;ai pu saisir l&#8217;incroyable fortune que je gagne(*) et avoir une douloureuse estimation de mon impôt à payer. Vers la fin du processus il est indispensable de signer sa déclaration avec son certificat, et c&#8217;est à ce moment que les choses se gâtent. Là où des informations utiles devraient être affichées, et où des actions sont à réaliser, il n&#8217;y a que du gris. Un triste et inutile gris.</p>
<p>En ce qui me concerne je pense revenir pour cette année à la décralation papier. Si quelqu&#8217;un a une solution a proposer, qu&#8217;il laisse un commentaire ou un lien vers la solution son blog, ça pourra servir aux visiteurs de ces lieux.</p>
<p>Par contre le calendrier pour rendre sa copie n&#8217;est pas le même selon que l&#8217;on fasse sa déclaration par internet ou à l&#8217;ancienne, alors surtout <strong>ne vous y prenez pas au dernier moment !</strong></p>
<p><em>(*) ok ok&#8230; on peut rêver non ?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog-perso.onzeweb.info/2008/05/10/declaration-de-revenus-et-firefox-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ubuntu 8.04 et RubyGems</title>
		<link>http://blog-perso.onzeweb.info/2008/05/01/hardy-heron-rubygems/</link>
		<comments>http://blog-perso.onzeweb.info/2008/05/01/hardy-heron-rubygems/#comments</comments>
		<pubDate>Thu, 01 May 2008 12:33:00 +0000</pubDate>
		<dc:creator>Sam.</dc:creator>
		
		<category><![CDATA[Général]]></category>

		<guid isPermaLink="false">http://blog-perso.onzeweb.info/?p=88</guid>
		<description><![CDATA[Voici un petit soucis que beaucoup de personnes utilisant Ruby vont rencontrer avec Ubuntu 8.04 (Hardy Heron pour les intimes) : si vous utilisez une version récente de RubyGems, ce dernier va grossièrement vous répondre pour tout tentative d&#8217;utilisation :
/usr/bin/gem:23: uninitialized constant Gem::GemRunner (NameError)
Personnellement j&#8217;ai rencontré ce problème après ma mise à jour d&#8217;Ubuntu alors [...]]]></description>
			<content:encoded><![CDATA[<p>Voici un petit soucis que beaucoup de personnes utilisant Ruby vont rencontrer avec Ubuntu 8.04 (Hardy Heron pour les intimes) : si vous utilisez une version récente de RubyGems, ce dernier va grossièrement vous répondre pour tout tentative d&#8217;utilisation :</p>
<blockquote><p>/usr/bin/gem:23: uninitialized constant Gem::GemRunner (NameError)</p></blockquote>
<p>Personnellement j&#8217;ai rencontré ce problème après ma mise à jour d&#8217;Ubuntu alors que j&#8217;utilisais Ruby depuis des mois. D&#8217;autres semblent l&#8217;avoir rencontré en installant RubyGems avec le gestionnaire de paquet puis en effectuant une mise à jour via <strong>gem update  - - system</strong>. Dans les deux cas la solution est simple :</p>
<ol>
<li>Editer le script /usr/bin/gem , ce fichier n&#8217;est pas modifiable par tout le monde, donc : <strong>sudo vi /usr/bin/gem</strong></li>
<li>Chercher la ligne avec <strong>require &#8216;rubygems&#8217;</strong></li>
<li>Ajouter en dessous une nouvelle ligne avec <strong>require &#8216;rubygems/gem_runner&#8217;</strong></li>
<li>Sauver, tester le résultat et amusez-vous bien.</li>
</ol>
<p>Je ne suis pas le premier à écrire un mot à ce sujet, mais l&#8217;important est que l&#8217;information soit disponible.</p>
<p>Juste après cette manipulation j&#8217;ai ouvert Netbeans 6.1 installé peu avant ma mise à jour, démarré une application en cours de développement basée sur Rails 2.0.2 utilisant énormément ajax, et testé sous Firefox 3 encore en béta à ce jour. Ca se présente très bien, aucun problème à déplorer. Idem pour Subversion, Openvpn, le plugin Web Developer&#8230;. C&#8217;est un essai rapide, mais à première vue rien n&#8217;empêche de travailler correctement. Le problème avec RubyGems doit être considéré comme anecdotique.</p>
<p>A noter que le plugin MySpell Français n&#8217;est pas disponible pour Firefox 3, ce qui pourrait expliquer d&#8217;éventuelles fautes dans ce post <img src='http://blog-perso.onzeweb.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog-perso.onzeweb.info/2008/05/01/hardy-heron-rubygems/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ruby et opérateurs : qui a la priorité ?</title>
		<link>http://blog-perso.onzeweb.info/2008/04/11/ruby-operateurs-priorite/</link>
		<comments>http://blog-perso.onzeweb.info/2008/04/11/ruby-operateurs-priorite/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 16:35:25 +0000</pubDate>
		<dc:creator>Sam.</dc:creator>
		
		<category><![CDATA[Informatique]]></category>

		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog-perso.onzeweb.info/?p=86</guid>
		<description><![CDATA[Il y a un petit piège dans Ruby avec les opérateurs booléens utilisés conjointement avec une affectation. Le côté très intuitif du langage fini pas nous faire oublier quelques règles simples&#8230;
Dans une expression booléenne nil est considéré de la même manière que false. Ce qui amène quelquefois à utiliser une syntaxe du type :
machin or [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a un petit piège dans Ruby avec les opérateurs booléens utilisés conjointement avec une affectation. Le côté très intuitif du langage fini pas nous faire oublier quelques règles simples&#8230;</p>
<p>Dans une expression booléenne <strong>nil</strong> est considéré de la même manière que <strong>false</strong>. Ce qui amène quelquefois à utiliser une syntaxe du type :</p>
<pre>machin or truc</pre>
<p>Au lieu de (parmis d&#8217;autres solutions) :</p>
<pre>if machin.nil?
# utiliser truc
else
# utiliser machin
end</pre>
<p>Mais&#8230; il y a un piège. L&#8217;expression suivante ne se comporte absolument pas comme on pourrait le supposer :</p>
<pre>toto = machin or truc # ca sent le bug ici</pre>
<p>En fait l&#8217;opérateur d&#8217;affectation <strong>=</strong> a une priorité suppérieure à celle de l&#8217;opérateur <strong>or</strong>. Pour s&#8217;en convaincre il suffit de faire le test suivant avec l&#8217;interpréteur <strong>irb</strong> :</p>
<pre>irb(main):001:0&gt; toto = false or true
=&gt; true
irb(main):002:0&gt; toto
=&gt; false</pre>
<p>L&#8217;expression saisie est évaluée de la manière suivante : <strong>(toto = false) or true</strong>. Donc l&#8217;expression vaut bien <strong>true</strong>, mais la variable <strong>toto</strong> se voit affecté la valeur <strong>false</strong>.</p>
<p>Il y a deux solutions : soit utiliser des parenthèses, soit utiliser l&#8217;opérateur <strong>||</strong> qui a une priorité supérieure à celle de l&#8217;affectation :</p>
<pre># deux solutions correctes
toto = (machin or truc)
toto = machin || truc</pre>
<p>Ca a l&#8217;air tout bête, une boulette de débutant allez-vous me dire&#8230; mais lorsque l&#8217;on ne connait pas correctement la priorité des opérateurs, ou que l&#8217;on est pas concentré, on fini par avoir quelques bugs par forcément évident à identifier.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog-perso.onzeweb.info/2008/04/11/ruby-operateurs-priorite/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows&#8230; dehors !</title>
		<link>http://blog-perso.onzeweb.info/2007/10/29/migration-vers-ubuntu/</link>
		<comments>http://blog-perso.onzeweb.info/2007/10/29/migration-vers-ubuntu/#comments</comments>
		<pubDate>Mon, 29 Oct 2007 17:53:12 +0000</pubDate>
		<dc:creator>Sam.</dc:creator>
		
		<category><![CDATA[Informatique]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog-perso.onzeweb.info/2007/10/29/migration-vers-ubuntu/</guid>
		<description><![CDATA[Cela faisait longtemps que ça me démangeait. J&#8217;avais envie de le faire, je m&#8217;y préparais, mais finalement ne sautait pas le pas. De quoi je parle ? Devenir prêtre ? Changer de sexe ? Nooon !!! Faire prendre la porte à la fenêtre : virer Windows ! Et mettre un manchot aux commandes du hardware.
Maintenant [...]]]></description>
			<content:encoded><![CDATA[<p>Cela faisait longtemps que ça me démangeait. J&#8217;avais envie de le faire, je m&#8217;y préparais, mais finalement ne sautait pas le pas. De quoi je parle ? Devenir prêtre ? Changer de sexe ? Nooon !!! Faire prendre la porte à la fenêtre : virer Windows ! Et mettre un manchot aux commandes du hardware.</p>
<p>Maintenant c&#8217;est fait. J&#8217;avais acquis un portable au printemps dernier, avec l&#8217;intention d&#8217;installer <a title="Site officil de Ubuntu" href="http://www.ubuntu.com/" target="_blank">Ubuntu</a> dessus. Mais difficile de trouver un PC qui convienne, portable, sans OS, au bon tarif&#8230; J&#8217;avais finalement du me résigner à acheter un PC avec Vista. C&#8217;est joli, mais qu&#8217;est ce que c&#8217;est lent. Un Dual Core T7300 , 2Go de RAM et on a &#8230; une brouette. OK le disque est lent comme sur la plupart des portables, mais globalement c&#8217;est comme avoir une grosse voiture qui peine à la première montée. Donc j&#8217;ai découvert Vista, j&#8217;ai râlé, pesté (et pas qu&#8217;après la vitesse&#8230;)  et puis trop&#8230; c&#8217;est trop !</p>
<p align="center"><img src="http://blog-perso.onzeweb.info/wp-content/uploads/2007/10/ubuntulogo.png" alt="Logo Ubuntu" /></p>
<p>J&#8217;attendais Ubuntu 7.10 afin de garantir une bonne reconnaissance de mon matériel. A peine disponible, il est venu coller un grand coup de pied dans le c.. de Windows pour prendre sa place. Et les choses se sont même mieux passé que prévu ! Il faut dire que je connais Ubuntu l&#8217;utilisant en mode &#8220;texte&#8221; comme serveur dans mon activité professionnelle. Par ailleurs j&#8217;avais déjà testé la bête souvent sous VMWare. Le changement se faisait en connaissance de cause.</p>
<p>Mais dans le fond ce qui facilite le plus la migration, mis à part une connaissance préalable du système, c&#8217;est l&#8217;utilisation des logiciels libres. Cela fait bien longtemps qu&#8217;OpenOffice est mon outil de travail bureautique, Firefox mon navigateur, Thunderbird mon client de messagerie, GIMP mon logiciel de retouches, Grisbi fait très bien son travail pour compter les brouzoufs, &#8230;</p>
<p>Donc changer de système n&#8217;a absolument pas été synonyme de changement radical, puisque j&#8217;ai retrouvé une grande partie de mon univers familier. Il a fallu s&#8217;adapter un peu à Gnome pour pouvoir personnaliser son environnement et le rendre pratique (en 1280&#215;800 on économise la place en hauteur !), mais cela a plus relevé du plaisir de la découverte que de la corvée.</p>
<p>Et puis que j&#8217;aime la console ! C&#8217;est vraiment un truc insupportable sous Windows (faites vraiment un effort là dessus les gars), mais là quel bonheur ! Oui je sais, je suis peut-être un peu malade, mais quand on peut installer un (ou plusieurs) logiciel(s) en tapant une seule commande, c&#8217;est productif. Et puis j&#8217;aime ça, c&#8217;est tout <img src='http://blog-perso.onzeweb.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Cela fait plus d&#8217;une semaine, et mon manchot et moi sommes toujours copain <img src='http://blog-perso.onzeweb.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Si je devais donner trois conseil :</p>
<ul>
<li>passer progressivement aux logiciels libres, déjà sous windows</li>
<li>préparer sérieusement l&#8217;installation : tester avec le livecd, prendre le temps de comprendre, lire et poser des questions sur <a title="Communauté francophone des utilisateurs d'Ubuntu" href="http://ubuntu-fr.org/" target="_blank">ubuntu-fr.org</a></li>
<li>faire une sauvegarde sérieuse avant de tout réinstaller !</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog-perso.onzeweb.info/2007/10/29/migration-vers-ubuntu/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
