<?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>spaceinvade.rs</title>
	<atom:link href="http://www.spaceinvade.rs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.spaceinvade.rs</link>
	<description></description>
	<lastBuildDate>Sat, 27 Aug 2011 09:25:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Java6 sur Archlinux</title>
		<link>http://www.spaceinvade.rs/dev/java6-sur-archlinux/</link>
		<comments>http://www.spaceinvade.rs/dev/java6-sur-archlinux/#comments</comments>
		<pubDate>Sat, 27 Aug 2011 09:22:15 +0000</pubDate>
		<dc:creator>landry</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.spaceinvade.rs/?p=214</guid>
		<description><![CDATA[L&#8217;un des nombreux avantages de Archlinux, c&#8217;est que l&#8217;on dispose toujours de la dernière version des applications Linux. C&#8217;est aussi son gros inconvénient, comme par exemple avoir le privilège d&#8217;être parmi les premiers à subir l&#8217;immonde Gnome3. Tout récemment, l&#8217;upgrade &#8230; <a href="http://www.spaceinvade.rs/dev/java6-sur-archlinux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>L&#8217;un des nombreux avantages de Archlinux, c&#8217;est que l&#8217;on dispose toujours de la dernière version des applications Linux. C&#8217;est aussi son gros inconvénient, comme par exemple avoir le privilège d&#8217;être parmi les premiers à subir l&#8217;immonde Gnome3.<br />
Tout récemment, l&#8217;upgrade java7 m&#8217;a également causé des soucis, principalement avec le génial <a title="serveur DLNA serviio" href="http://serviio.org/">serveur DLNA serviio</a>, qui n&#8217;est pas encore compatible java7.<br />
Sur les distribs Debian et dérivés, j&#8217;avais l&#8217;habitude d&#8217;utiliser <code>update-java-alternatives</code>, qui permettait d&#8217;installer plusieurs versions de jvm, et de switcher simplement de l&#8217;une à l&#8217;autre en cas de besoin. Malheureusement aucun mécanisme similaire sur Arch. Il existe bien un package &#8216;fake-java&#8217;, censé apporter une réponse, mais je n&#8217;ai pas compris comment l&#8217;utiliser.<br />
Heureusement, Arch permet de <a title="downgrader" href="https://wiki.archlinux.org/index.php/Downgrading_Packages" target="_blank">downgrader</a> des packages.<br />
Pour repasser à la version 6 de java, voici donc la manip :</p>
<pre class="brush:bash">ls /var/cache/pacman/pkg | grep jdk
sudo pacman -U /var/cache/pacman/pkg/jdk-6u26-1-x86_64.pkg.tar.xz</pre>
<p>A ce stade, pacman peut refuser le downgrade, prétextant que le fichier /usr/share/applications/java-policy-settings.desktop existe déjà. Si c&#8217;est le cas, supprimez-le, puis recommencez la manip.<br />
Faites ensuite la même manip pour la jre :</p>
<pre class="brush:bash"> sudo pacman -U /var/cache/pacman/pkg/jre-6u26-1-x86_64.pkg.tar.xz</pre>
<p>Il faut ensuite dire à pacman de ne pas upgrader java. Pour celà, éditez le fichier /etc/pacman.conf et ajoutez la ligne suivante :</p>
<pre class="brush:bash">IgnorePkg = jdk jre</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.spaceinvade.rs/dev/java6-sur-archlinux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Récupérer des données Google Agenda avec Perl</title>
		<link>http://www.spaceinvade.rs/dev/perl/recuperer-des-donnees-google-agenda-avec-perl/</link>
		<comments>http://www.spaceinvade.rs/dev/perl/recuperer-des-donnees-google-agenda-avec-perl/#comments</comments>
		<pubDate>Sun, 05 Jun 2011 19:48:08 +0000</pubDate>
		<dc:creator>landry</dc:creator>
				<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://www.spaceinvade.rs/?p=194</guid>
		<description><![CDATA[Dans la série apprendre en s&#8217;amusant, nous allons voir aujourd&#8217;hui comment récupérer les évènements d&#8217;un agenda public Google, en utilisant Perl et le module Net::Google::Calendar. Plutôt que de longs discours, voici le code ! use Net::Google::Calendar; my $agenda_public_url = 'http://www.google.com/calendar/feeds/foobar@gmail.com/public/full'; &#8230; <a href="http://www.spaceinvade.rs/dev/perl/recuperer-des-donnees-google-agenda-avec-perl/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dans la série apprendre en s&#8217;amusant, nous allons voir aujourd&#8217;hui comment récupérer les évènements d&#8217;un agenda public Google, en utilisant Perl et le module <a href="http://search.cpan.org/~simonw/Net-Google-Calendar-1.0/lib/Net/Google/Calendar.pm">Net::Google::Calendar</a>. Plutôt que de longs discours, voici le code !</p>
<pre class="brush:perl">
use Net::Google::Calendar;
my $agenda_public_url = 'http://www.google.com/calendar/feeds/foobar@gmail.com/public/full';
my $calendar = Net::Google::Calendar-&amp;gt;new( url =&amp;gt; $agenda_public_url );
foreach my $evt ( $calendar-&amp;gt;get_events() ) {
    my $title= $evt-&amp;gt;title;
    my @dates = $evt-&amp;gt;when;
    #when retourne une liste composée ainsi : (date_debut,date_fin,flag evenement_sur_toute_la_journee)
    #Les dates récupérées sont des objets DateTime, on va les formatter en dd/MM/yyyy
    my $start_date= $dates[0]-&amp;gt;strftime('%e/%m/%Y');
    my $end_date= $dates[1]-&amp;gt;strftime('%e/%m/%Y');
    my is_all_day_event= $dates[2];
}</pre>
<p>Si vous souhaitez afficher ces évènements sur une page web, je vous recommande chaudement l&#8217;excellent <a href="http://perldancer.org/">PerlDancer</a>.<br />
L&#8217;exemple suivant utilise Moose, il y avait certes plus simple, mais après m&#8217;être battu pendant des heures avec les tableaux de hashes, j&#8217;ai fini par craquer (mais si quelqu&#8217;un peut m&#8217;expliquer comment faire la même chose avec un tableau de hashes, je suis preneur !)<br />
Nous allons donc créer une classe Event, qui contiendra les données reçues de Google :</p>
<pre class="brush:perl">
package Event;
use Moose;
 has 'title' =&amp;gt; (is =&amp;gt; 'rw', isa =&amp;gt; 'Str');
 has 'date_deb' =&amp;gt; (is =&amp;gt; 'rw', isa =&amp;gt; 'Str');

  1;</pre>
<p>Côté Dancer :</p>
<pre class="brush:perl">
use Net::Google::Calendar;
use DateTime;
use Event;
get '/agenda' =&amp;gt; sub {
	my $url =
'http://www.google.com/calendar/feeds/foobar@gmail.com/public/full';
	my @events;
	my $cal = Net::Google::Calendar-&amp;gt;new( url =&amp;gt; $url );
	foreach my $evt ( $cal-&amp;gt;get_events() ) {
		my $event = Event-&amp;gt;new();
		$event-&amp;gt;title( $evt-&amp;gt;title );
		my @dates = $evt-&amp;gt;when;

		my $date_deb = $dates[0]-&amp;gt;strftime('%e/%m/%Y');
		$event-&amp;gt;date_deb($date_deb);
		push( @events, $event );
	}
	template 'agenda', { title =&amp;gt; 'agenda', events =&amp;gt; [@events] };
};</pre>
<p>Vous noterez les crochets autour de @events, sur la dernière ligne de code, ne les oubliez surtout pas !<br />
Pour la page html, en utilisant <a href="http://template-toolkit.org/">TemplateToolkit</a> :</p>
<pre class="brush:html">&lt;table&gt;
[ FOREACH event IN events ]
&lt;tr&gt;
&lt;td&gt;
&lt;h1&gt;[ event.title ]&lt;/h1&gt;
&lt;/td&gt;
&lt;td&gt;[ event.date_deb ]&lt;/td&gt;
&lt;/tr&gt;
[ END ]
&lt;/table&gt;</pre>
<p>Bon, je n&#8217;ai pas géré le cas de l&#8217;évènement sur une journée complète, mais vous avez l&#8217;idée générale, faites-en bon usage !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spaceinvade.rs/dev/perl/recuperer-des-donnees-google-agenda-avec-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s next Paris</title>
		<link>http://www.spaceinvade.rs/dev/java/whats-next-zenika-paris-mai-2011/</link>
		<comments>http://www.spaceinvade.rs/dev/java/whats-next-zenika-paris-mai-2011/#comments</comments>
		<pubDate>Mon, 30 May 2011 22:25:18 +0000</pubDate>
		<dc:creator>landry</dc:creator>
				<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.spaceinvade.rs/?p=185</guid>
		<description><![CDATA[J&#8217;ai eu la chance d&#8217;assister au What&#8217;s Next organisé par Zenika les 26 et 27 mai, au Grand Rex à Paris. Mon impression générale : une grande réussite ! (Même si je suis déçu de ne pas avoir gagné le &#8230; <a href="http://www.spaceinvade.rs/dev/java/whats-next-zenika-paris-mai-2011/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai eu la chance d&#8217;assister au What&#8217;s Next organisé par <a href="http://www.zenika.com">Zenika</a> les 26 et 27 mai, au Grand Rex à Paris.<br />
Mon impression générale : une grande réussite ! (Même si je suis déçu de ne pas avoir gagné le Ipad2 mis en jeu par Kaazing, mais là n&#8217;est pas le sujet&#8230;)<br />
Le jeudi a commencé par un speech sympa d&#8217;un des fondateurs de Zenika, puis les hostilités ont commencé par du lourd : Adrian Colyer, co-fondateur de <a href="http://www.springsource.com/">SpringSource</a>, présentait &#8220;Enterprise Applications in 2011: Challenges in Development and Deployment, and Spring&#8217;s response&#8221;. Le titre fait un peu peur, je vous l&#8217;accorde, mais il s&#8217;agissait simplement de présenter Cloud Foundry de SpringSource, et au passage expliquer en quoi consiste le Platform as a Service (PaaS). En résumant beaucoup, il s&#8217;agit de définir au départ quels sont les services qui vont être utilisés par ton application (base de données (relationnelle ou objet), messaging, mais aussi langage, framework &#8230;). Tous ces services seront fournis par le cloud, qu&#8217;il ne te reste plus qu&#8217;à alimenter avec du code. L&#8217;équipe de développement peut donc se concentrer sur le code, l&#8217;infrastructure étant gérée par le cloud. Avantages : simplicité de déploiement et scalabilité. Pour l&#8217;instant, sont pris en charge java (of course !) mais aussi Ruby pour les langages, Spring, Ruby on rails et Sinatra pour les frameworks.<br />
L&#8217;après-midi a commencé avec Boris Bokowski, développeur chez IBM Ottawa, venu présenter <a href="http://www.eclipse.org/orion/">Orion</a>. Orion est un IDE web (HTML, javascript et CSS) qui tourne lui aussi en cloud. Le principe est le suivant : tu souscris un compte OrionHub, et ensuite tu peux accéder à ton environnement de développement depuis n&#8217;importe quel browser. Pour l&#8217;instant, les fonctionnalités sont assez basiques, mais il y a pas mal d&#8217;idées sympa.<br />
La présentation suivante m&#8217;a déçu : l&#8217;immense Howard Lewis Ship (créateur de <a href="http://http://tapestry.apache.org/">Tapestry</a>, excusez du peu !) présentait <a href="http://clojure.org/">Clojure</a><br />
Clojure est en fait un Lisp qui tourne sur la JVM et peut donc interagir avec des objets Java. Que ceux qui trouvaient Perl illisible jettent donc un oeil à Clojure, succès garanti ! Je n&#8217;ai pas compris grand chose au speech de Howie, mais je pense que je n&#8217;aurai pas compris beaucoup plus si la présentation avait été en français, tant la syntaxe de Clojure est absconse. Aucune chance donc que je devienne un jour un &#8220;clojure evangelist&#8221;.<br />
La suite a été assurée par Jevgeni Kabanov, fondateur de <a href="http://www.zeroturnaround.com/">ZeroTurnaround</a>, et aussi consommateur fervent de RedBull, visiblement, tant ce garçon était survolté et parlait à toute vitesse. Il présentait JRebel, qui reloade les classes Java à chaud. Et ce produit est miraculeux : plus besoin de relancer Tomcat quand tu modifies une servlet, tu as juste à rafraichir le browser ! Il annonçait 10 minutes de gagnées par heure de développement, et je pense qu&#8217;il n&#8217;exagère pas. Chaque visiteur est reparti avec une licence d&#8217;évaluation valable 3 mois (qui plus est, l&#8217;équipe du stand zeroturnaround était vraiment très sympa).<br />
Jags Ramnarayan a pris le relais pour présenter SQLFabric, une base de données pour le cloud (décidément). Sa présentation avait l&#8217;air super intéressante, mais je parvenais péniblement à saisir au vol un mot sur 20, j&#8217;ai donc rapidement décroché &#8230;<br />
Ce fut ensuite au tour de Brad Drysdale, directeur technique chez <a href="http://kaazing.com/">Kaazing</a>. Il a présenté les websockets. Après un bref rappel sur les technos existantes pour faire du temps réel sur le web, notamment le <a href="http://en.wikipedia.org/wiki/Push_technology">long polling</a>. Il n&#8217;y a pas photo : les websockets enfoncent tout ce qui existe, de par à la fois leur simplicité d&#8217;utilisation, et le gain de bande passante qu&#8217;elles apportent. En effet, les headers http ne sont transmis que lors du handshake qui initialise la connexion. Par la suite, le websocket ne transmet que les données : sur des gros volumes de données, l&#8217;économie est très conséquente. Seul inconvénient : seuls les browsers les plus récents supportent cette technologie. Et c&#8217;est là qu&#8217;intervient Kaazing, en proposant une gateway qui permet d&#8217;ouvrir des websockets avec n&#8217;importe quel browser.<br />
A l&#8217;issue de cette journée bien chargée, <a href="http://www.atlassian.com">Atlassian</a> payait généreusement sa tournée : bière à volonté !!<br />
Le vendredi commença en douceur avec Neal Gafter, un des concepteurs du JDK 5, qui a aujourd&#8217;hui rejoint Microsoft&#8230; Son exposé un peu long sur l&#8217;histoire des versions de Java, et le nombre de visiteurs au Java One, de la création à nos jours, fut heureusement ponctué de colles tirées de son livre <a href="http://www.javapuzzlers.com/">Java Puzzlers</a>, histoire de remettre à leur place ceux qui pensaient avoir fait le tour du langage.<br />
Il a cédé la place à Thomas Conté, de Microsoft France, venu présenter <a href="http://www.microsoft.com/windowsazure/">Windows Azure</a>, la solution cloud made in Microsoft. J&#8217;avoue que je suis parti au bout de 10 minutes, installer une appli sur un serveur Windows étant contraire à mes pratiques religieuses.<br />
Je suis revenu pour écouter Rob Harrop, ingénieur chez <a href="http://www.springsource.com/">SpringSource</a>, qui présentait <a href="http://www.rabbitmq.com/">RabbitMQ</a>, la solution de messaging de SpringSource. Pour m&#8217;être cassé la tête sur ActiveMQ voici quelques mois, je n&#8217;ai pas manqué d&#8217;apprécier la simplicité d&#8217;utilisation de cette solution. Ses avantages : simplicité, pas besoin d&#8217;un serveur d&#8217;applis full JEE, multi langages (Java, Python, Ruby, Perl etc.), tant pour la partie client que serveur, multi protocoles &#8216;AMQP, STOMP, HTTP&#8230;). Couplé à des websockets, je pense que ça peut faire très mal pour l&#8217;affichage de données temps réel, genre cours de bourse.<br />
L&#8217;après-midi fut dominée par Michaêl Chaize, consultant chez <a href="http://www.adobe.com/fr/products/flex/">Adobe France</a>, venu présenter Flex, et notamment les nouveautés de la version 4.5. Ormis le fait que son exposé m&#8217;a furieusement donné envie de me mettre à Flex, l&#8217;outil de développement d&#8217;applis mobiles, compatibles Iphone/Ipad/Android/Blackberry semble vraiment interressant. Par ailleurs, l&#8217;interaction Flex/Java parait assez naturelle, via BlazeDS, ou GraniteDS. Enfin, sa partie sur <a href="http://www.adobe.com/products/livecycle/collaborationservice/">live cycle collaboration service</a> laisse apercevoir pas mal de possibilités pour tout ce qui est communication temps réel (conférences, collaboration&#8230;).<br />
L&#8217;intervenant suivant m&#8217;a beaucoup moins enthousiasmé : Jonas Bonér a présenté <a href="http://akka.io/">Akka</a>. Si un lecteur a compris à quoi ça peut bien servir, qu&#8217;il n&#8217;hésite pas à laisser un commentaire !<br />
En conclusion, je pense que What&#8217;s Next était vraiment l&#8217;endroit où il fallait être si on aime Java et tout ce qui tourne autour. Et même si je ne suis pas convaincu que toutes les technos présentées sont amenées à jouer un rôle important dans les mois à venir, il se dégage quand même une tendance : le cloud !<br />
Merci à Zenika pour avoir organisé un si bel évènement, merci aux intervenants pour la qualité de leurs présentations, et merci à mon chef vénéré, pour m&#8217;avoir permis d&#8217;y assister !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spaceinvade.rs/dev/java/whats-next-zenika-paris-mai-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convertir un fichier de sous-titres</title>
		<link>http://www.spaceinvade.rs/uncategorized/convertir-un-fichier-de-sous-titres/</link>
		<comments>http://www.spaceinvade.rs/uncategorized/convertir-un-fichier-de-sous-titres/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 11:16:53 +0000</pubDate>
		<dc:creator>landry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.spaceinvade.rs/?p=171</guid>
		<description><![CDATA[Toujours énervant de se retrouver avec des caractères bizarres dans les sous-titres de votre film préféré. J&#8217;ai trouvé une solution : Ouvrir le fichier avec VLC, puis regarder dans les propriétés des sous-titre, VLC indique l&#8217;encodage (dans mon cas, windows-cp1252). &#8230; <a href="http://www.spaceinvade.rs/uncategorized/convertir-un-fichier-de-sous-titres/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Toujours énervant de se retrouver avec des caractères bizarres dans les sous-titres de votre film préféré. J&#8217;ai trouvé une solution :</p>
<ul>
<li>Ouvrir le fichier avec VLC, puis regarder dans les propriétés des sous-titre, VLC indique l&#8217;encodage (dans mon cas, windows-cp1252).</li>
<li>Convertir le fichier au format linux :
<pre class="brush:bash">dos2unix le_nom_de_mon_fichier.srt</pre>
</li>
<li>Convertir l&#8217;encodage :
<pre class="brush:bash">iconv -f windows-1252 -t utf-8 mon_fichier_original.srt > mon_fichier_de_sortie.srt</pre>
</li>
<li>Si besoin, on peut changer ensuite l&#8217;encodage du fichier dans les préférences de gnomesubtitles</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.spaceinvade.rs/uncategorized/convertir-un-fichier-de-sous-titres/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problèmes de consommation CPU sur mon serveur&#8230;</title>
		<link>http://www.spaceinvade.rs/admin/problemes-de-consommation-cpu-sur-mon-serveur/</link>
		<comments>http://www.spaceinvade.rs/admin/problemes-de-consommation-cpu-sur-mon-serveur/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 22:24:13 +0000</pubDate>
		<dc:creator>landry</dc:creator>
				<category><![CDATA[admin]]></category>

		<guid isPermaLink="false">http://www.spaceinvade.rs/?p=163</guid>
		<description><![CDATA[Aujourd&#8217;hui, et c&#8217;est la deuxième fois en 10 jours, j&#8217;ai du rebooter mon serveur : il ne répondait plus et le tableau de bord montrait une consommation CPU à 100 %. J&#8217;ai consulté divers logs sans trouver d&#8217;indice, puis une &#8230; <a href="http://www.spaceinvade.rs/admin/problemes-de-consommation-cpu-sur-mon-serveur/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui, et c&#8217;est la deuxième fois en 10 jours, j&#8217;ai du rebooter mon serveur : il ne répondait plus et le tableau de bord montrait une consommation CPU à 100 %.<br />
J&#8217;ai consulté divers logs sans trouver d&#8217;indice, puis une rapide recherche google m&#8217;a indiqué que ça pouvait venir de wordpress/mysql.<br />
Je me suis donc empressé d&#8217;installer l&#8217;excellent <a href="http://www.w3-edge.com/wordpress-plugins/" rel="external">W3 Total Cache</a>, sans trop y croire. Mais au moins, il accèlère l&#8217;affichage des pages de mon blog d&#8217;une façon assez extraordinaire, c&#8217;est toujours ça !<br />
J&#8217;ai du installer le package php-apc, et ai modifié les options W3 en conséquence.<br />
A suivre &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spaceinvade.rs/admin/problemes-de-consommation-cpu-sur-mon-serveur/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grub2 en mode graphique</title>
		<link>http://www.spaceinvade.rs/linux/grub2-en-mode-graphique/</link>
		<comments>http://www.spaceinvade.rs/linux/grub2-en-mode-graphique/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 16:52:09 +0000</pubDate>
		<dc:creator>landry</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.spaceinvade.rs/?p=157</guid>
		<description><![CDATA[Après plusieurs heures de prise de tête, j&#8217;ai enfin récupéré un menu grub avec une résolution d&#8217;écran digne de ce nom, et une image de fond, disparus depuis ma mise à jour ubuntu vers Maverick. Au préalable, il faut bien &#8230; <a href="http://www.spaceinvade.rs/linux/grub2-en-mode-graphique/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Après plusieurs heures de prise de tête, j&#8217;ai enfin récupéré un menu grub avec une résolution d&#8217;écran digne de ce nom, et une image de fond, disparus depuis ma mise à jour ubuntu vers Maverick.<br />
Au préalable, il faut bien sûr avoir installé grub2, ainsi que grub2-splashimages. Pour celà, je vous conseille la lecture de l&#8217;excellent <a href="https://help.ubuntu.com/community/Grub2">article</a> dans la doc ubuntu.<br />
Voici donc le contenu du fichier /etc/default/grub :</p>
<pre class="brush:bash">
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1280x1024-24,mtrr=3,scroll=ywrap"
#GRUB_CMDLINE_LINUX=" splash vga=786"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=1280x1024
GRUB_VIDEO_BACKEND=vbe
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_LINUX_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
</pre>
<p>Il semblerait que la commande GRUB_VIDEO_BACKEND=vbe ai joué un rôle déterminant dans l&#8217;affichage du background.</p>
<p>Fichier /etc/grub.d/05_debian_theme :</p>
<pre class="brush:bash">
#!/bin/bash -e

source /usr/lib/grub/grub-mkconfig_lib

  WALLPAPER="Lake_mapourika_NZ.tga"
  COLOR_NORMAL="black/black"
  COLOR_HIGHLIGHT="magenta/black"

set_mono_theme()
{
  cat << EOF
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
EOF
}

# check for usable backgrounds
use_bg=false
if [ "$GRUB_TERMINAL_OUTPUT" = "gfxterm" ] ; then
for i in {/boot/grub,/usr/share/images/desktop-base,/usr/share/images/grub}/${WALLPAPER} ; do
    if is_path_readable_by_grub $i ; then
      bg=$i
      case ${bg} in
        *.png)		reader=png ;;
        *.tga)		reader=tga ;;
        *.jpg|*.jpeg)	reader=jpeg ;;
      esac
      if test -e /boot/grub/${reader}.mod ; then
        echo "Found background image: `basename ${bg}`" >&#038;2
        use_bg=true
        break
      fi
    fi
  done
fi

# set the background if possible
if ${use_bg} ; then
  prepare_grub_to_access_device `${grub_probe} --target=device ${bg}`
  cat << EOF
insmod ${reader}
if background_image `make_system_path_relative_to_its_root ${bg}` ; then
  set color_normal=${COLOR_NORMAL}
  set color_highlight=${COLOR_HIGHLIGHT}
else
EOF
fi

# otherwise, set a monochromatic theme for Ubuntu
if ${use_bg} ; then
  set_mono_theme | sed -e "s/^/  /g"
  echo "fi"
else
  set_mono_theme
fi
</pre>
<p>Après avoir édité un fichier de config grub2, n'oubliez pas de toujours lancer
<pre class="brush:bash">sudo update-grub</pre>
<p><br/><br />
Par ailleurs, si vous utilisez plymouth (et c'est le cas si vous avez installé une version récente d'Ubuntu), il peut être nécessaire d'installer le package v86d.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spaceinvade.rs/linux/grub2-en-mode-graphique/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment joindre un fichier video en plusieurs parties sous Linux</title>
		<link>http://www.spaceinvade.rs/linux/comment-joindre-un-fichier-video-en-plusieurs-parties-sous-linux/</link>
		<comments>http://www.spaceinvade.rs/linux/comment-joindre-un-fichier-video-en-plusieurs-parties-sous-linux/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 17:21:25 +0000</pubDate>
		<dc:creator>landry</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.spaceinvade.rs/?p=149</guid>
		<description><![CDATA[Problème : Vous avez un fichier video en plusieurs parties, que vous souhaitez reconstituer. Par exemple : mon_film_de_vacances.avi.001 mon_film_de_vacances.avi.002 mon_film_de_vacances.avi.003 Solution : avimerge -i mon_film_de_vacances.avi.* -o /chemin/de/destination/mon_film_de_vacances.avi Pour installer avi merge : sudo aptitude install transcode Attention ! Il arrive &#8230; <a href="http://www.spaceinvade.rs/linux/comment-joindre-un-fichier-video-en-plusieurs-parties-sous-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Problème :</strong><br />
Vous avez un fichier video en plusieurs parties, que vous souhaitez reconstituer. Par exemple : </p>
<pre class="brush:bash">
mon_film_de_vacances.avi.001
mon_film_de_vacances.avi.002
mon_film_de_vacances.avi.003
</pre>
<p><strong>Solution :</strong></p>
<pre class="brush:bash">
avimerge -i mon_film_de_vacances.avi.* -o /chemin/de/destination/mon_film_de_vacances.avi
</pre>
<p>Pour installer avi merge :</p>
<pre class="brush:bash">
sudo aptitude install transcode
</pre>
<p><strong>Attention !</strong><br />
Il arrive que les fichiers reconstitués avec cette méthode soient endommagés, ce qui va occasionner des problèmes avec l&#8217;avance/retour rapide. Pour solutionner ce problème, n&#8217;hésitez pas à utiliser <a href="http://www.divfix.org/">divfix++</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.spaceinvade.rs/linux/comment-joindre-un-fichier-video-en-plusieurs-parties-sous-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enfin des URLs sympas dans WordPress !</title>
		<link>http://www.spaceinvade.rs/wordpress/enfin-des-urls-sympas-dans-wordpress/</link>
		<comments>http://www.spaceinvade.rs/wordpress/enfin-des-urls-sympas-dans-wordpress/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 11:17:46 +0000</pubDate>
		<dc:creator>landry</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.spaceinvade.rs/?p=138</guid>
		<description><![CDATA[Les permalinks sont une autre fonctionnalité géniale de wordpress, qui permet d&#8217;avoir des urls lisibles, et également référençables plus facilement par les moteurs de recherche. Qui plus est, très simple à configurer dans wordpress, mais attention à la configuration Apache. &#8230; <a href="http://www.spaceinvade.rs/wordpress/enfin-des-urls-sympas-dans-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Les permalinks sont une autre fonctionnalité géniale de wordpress, qui permet d&#8217;avoir des urls lisibles, et également référençables plus facilement par les moteurs de recherche.<br />
Qui plus est, très simple à configurer dans wordpress, mais attention à la configuration Apache.<br />
Pour que celà fonctionne, il faut :</p>
<ul>
<li>
activer mod_rewrite
</li>
<li>
mettre à jour .htaccess, avec les données fournies dans la page permalinks de wordpress
</li>
<li>
mettre à jour la config apache (/etc/apache2/sites-enabled/votresite), en remplaçant toutes les directives &#8220;AllowOverride none&#8221;, par &#8220;AllowOverride all&#8221;, <strong>uniquement pour le répertoire contenant votre site</strong>.
</li>
</ul>
<p>Grand merci à  <a href="http://philipoakley.org/2010/07/27/wordpress-2/wordpress-permalinks-not-working-on-ubuntu-10-04-mod_rewrite-issue-requires-a-symlink/">Philip Oakley</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.spaceinvade.rs/wordpress/enfin-des-urls-sympas-dans-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress : installation de plugins et upgrade via SSH</title>
		<link>http://www.spaceinvade.rs/wordpress/wordpress-installation-de-plugins-et-upgrade-via-ssh/</link>
		<comments>http://www.spaceinvade.rs/wordpress/wordpress-installation-de-plugins-et-upgrade-via-ssh/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 22:35:36 +0000</pubDate>
		<dc:creator>landry</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.spaceinvade.rs/?p=122</guid>
		<description><![CDATA[La possibilité d&#8217;installer des plugins, ou de faire des mises à jour WordPress directement par l&#8217;interface d&#8217;administration est un réel bonheur. Toutefois, elle implique d&#8217;installer un serveur FTP, ce qui m&#8217;inquiète toujours un peu. Mais rassurez-vous, il existe une possibilité &#8230; <a href="http://www.spaceinvade.rs/wordpress/wordpress-installation-de-plugins-et-upgrade-via-ssh/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>La possibilité d&#8217;installer des plugins, ou de faire des mises à jour WordPress directement par l&#8217;interface d&#8217;administration est un réel bonheur. Toutefois, elle implique d&#8217;installer un serveur FTP, ce qui m&#8217;inquiète toujours un peu. Mais rassurez-vous, il existe une possibilité beaucoup plus sûre, et qui ne demande que quelques manipulations supplémentaires : passer par SSH.<br/><br />
Sur Ubuntu 10.10, voilà comment ça se passe :<br />
Il vous faut tout d&#8217;abord installer toutes les librairies SSH nécessaires.</p>
<pre class="brush:bash">sudo aptitude install libssh2-1 libssh2-1-dev libssh2-php</pre>
<p>S&#8217;il n&#8217;existe pas, créez le fichier /etc/php5/conf.d/ssh2.ini, et y ajouter la ligne suivante :</p>
<pre class="brush:bash">extension=ssh2.so</pre>
<p>Générez sur votre serveur une clé publique et privée SSH (j&#8217;essaierai de rédiger un article sur cette étape), et copiez-là dans un endroit accessible pour le groupe www-data :</p>
<pre class="brush:bash">
cd /etc
sudo mkdir wordpress
sudo cp /home/user/.ssh/id_rsa* wordpress/
sudo chgrp www-data wordpress/*
sudo chmod 640 wordpress/*</pre>
<p>Il faut ensuite donner des droits appropriés au groupe www-data, sur le dossier wordpress :</p>
<pre class="brush:bash">cd /yourwordpress_dir/
sudo chown -R www-data:www-data * </pre>
<p>Ajoutez dans wp-config.php les lignes suivantes:</p>
<pre class="brush:php">
define('FTP_PUBKEY','/etc/wordpress/id_rsa.pub');
define('FTP_PRIKEY','/etc/wordpress/id_rsa');
define('FTP_USER','user');
define('FTP_PASS','password');
define('FTP_HOST','localhost:22');
</pre>
<p>N&#8217;oubliez pas de relancer apache, et c&#8217;est terminé !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spaceinvade.rs/wordpress/wordpress-installation-de-plugins-et-upgrade-via-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problèmes de caractères accentués dans WordPress</title>
		<link>http://www.spaceinvade.rs/admin/problemes-de-caracteres-accentues-dans-wordpress/</link>
		<comments>http://www.spaceinvade.rs/admin/problemes-de-caracteres-accentues-dans-wordpress/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 08:45:05 +0000</pubDate>
		<dc:creator>landry</dc:creator>
				<category><![CDATA[admin]]></category>

		<guid isPermaLink="false">http://www.spaceinvade.rs/?p=111</guid>
		<description><![CDATA[Je viens de mettre à jour WordPress sur mon serveur, et surprise : j&#8217;ai perdu mon thème (bien fait pour moi, j&#8217;aurai dû sauvegarder correctement ! ), et tous les caractères accentués apparaissent bizarrement. J&#8217;ai trouvé la solution sur ce &#8230; <a href="http://www.spaceinvade.rs/admin/problemes-de-caracteres-accentues-dans-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je viens de mettre à jour WordPress sur mon serveur, et surprise : j&#8217;ai perdu mon thème (bien fait pour moi, j&#8217;aurai dû sauvegarder correctement ! ), et tous les caractères accentués apparaissent bizarrement. J&#8217;ai trouvé la solution sur ce site : <a href="http://www.tipsandtricks-hq.com/how-to-fix-the-character-encoding-problem-in-wordpress-1480">http://www.tipsandtricks-hq.com/how-to-fix-the-character-encoding-problem-in-wordpress-1480</a><br />
Par ailleurs, grosse frayeur tout de suite après la mise à jour : alors que l&#8217;interface d&#8217;admin fonctionnait correctement, le site affichait une page désespérément blanche ! Heureusement, encore une solution très simple. Il a en effet suffit de changer de thème pour retrouver tout mon contenu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spaceinvade.rs/admin/problemes-de-caracteres-accentues-dans-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using apc
Page Caching using apc
Database Caching using apc
Object Caching 621/728 objects using apc

Served from: www.spaceinvade.rs @ 2012-02-23 06:47:03 -->
