<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Jrialland&#039;s Blog</title>
	<atom:link href="http://jrialland.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jrialland.wordpress.com</link>
	<description></description>
	<lastBuildDate>Mon, 26 Dec 2011 10:21:24 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='jrialland.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Jrialland&#039;s Blog</title>
		<link>http://jrialland.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://jrialland.wordpress.com/osd.xml" title="Jrialland&#039;s Blog" />
	<atom:link rel='hub' href='http://jrialland.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Installation de virtualbox chez OVH</title>
		<link>http://jrialland.wordpress.com/2011/12/26/installation-de-virtualbox-chez-ovh/</link>
		<comments>http://jrialland.wordpress.com/2011/12/26/installation-de-virtualbox-chez-ovh/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 10:20:04 +0000</pubDate>
		<dc:creator>jrialland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ovh]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://jrialland.wordpress.com/?p=190</guid>
		<description><![CDATA[Voici comment j&#8217;ai installé virtualbox, ainsi qu&#8217;une excellent appli d&#8217;aministration par le web nommée phpVirtualBox, sur un serveur kimsufi chez OVH. Avant tout, mauvaise nouvelle, il faut recompiler le noyau de linux (procedure ici), en effet l&#8217;installation de virtualbox induit l&#8217;installation de modules noyau, et le support des modules est désactivé par défaut. J&#8217;utilise le [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=190&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Voici comment j&#8217;ai installé virtualbox, ainsi qu&#8217;une excellent appli d&#8217;aministration par le web nommée <a title="phpVitualbox" href="http://code.google.com/p/phpvirtualbox/">phpVirtualBox</a>, sur un serveur kimsufi chez OVH.</p>
<p><a href="http://jrialland.files.wordpress.com/2011/12/sshot.png"><img class="aligncenter size-medium wp-image-191" title="sshot" src="http://jrialland.files.wordpress.com/2011/12/sshot.png?w=300&#038;h=212" alt="" width="300" height="212" /></a></p>
<p>Avant tout, mauvaise nouvelle, il faut <a title="recompilation du noyau linux chez OVH" href="http://jrialland.wordpress.com/2011/12/26/recompilation-du-noyau-linux-chez-ovh/">recompiler le noyau de linux (procedure ici),</a> en effet l&#8217;installation de virtualbox induit l&#8217;installation de modules noyau, et le support des modules est désactivé par défaut.</p>
<p>J&#8217;utilise le paquet pour Ubuntu (Oneiric Ocelot) plus récent fournit par Oracle (4.1.8), et non pas le paquet packagé par ubuntu (4.1.2) car il me semble que la partie &#8216;démon&#8217; manque dans le paquet d&#8217;Ubuntu.</p>
<p>1) Téléchargement et installation depuis le site de virtualbox<br />
<code></p>
<p>http://download.virtualbox.org/virtualbox/4.1.8/virtualbox-4.1_4.1.8-75467~Ubuntu~oneiric_amd64.deb</p>
<p>dpkg -i virtualbox-4.1_4.1.8-75467~Ubuntu~oneiric_amd64.deb<br />
</code></p>
<p>2) On crée un utilisateur non privilégier pour lancer virtualbox en mode démon (on évite d&#8217;utiliser root)<br />
<code>useradd vbox</code></p>
<p>Puis on Crée/édite le fichier /etc/default/virtualbox (fichier de conf du démon):<br />
<code>VBOXWEB_USER=vbox</code></p>
<p>Par défaut le serveur écoute sur le port 18083, uniquement en local. D&#8217;autres paramètres sont documentés ici : http://code.google.com/p/phpvirtualbox/wiki/vboxwebServiceConfigLinux</p>
<p>3) le démon vboxweb-service permet de lancer virtualbox en mode &#8216;démon&#8217;, pilotable par une interface soap.<br />
<code><br />
#lancement automatique au démarrage<br />
update-rc.d vboxweb-service defaults<br />
#et on le démarre dans la foulée<br />
/etc/init.d/vboxweb-service restart<br />
</code></p>
<p>4) Oracle fournit un &#8220;extension pack&#8221; non open-source pour le support du protocole rdp, d&#8217;USB 2.0, etc&#8230;<br />
J&#8217;ai installé cette extension pour pouvoir par la suite utiliser le client rdp en flash dans phpVbox, et ansi afficher les &#8220;écrans&#8221; des<br />
machines virtuelles via le client web.<br />
<code><br />
#Installation extensions Oracle (pour rdp, support usb 2.0, ...)<br />
wget http://download.virtualbox.org/virtualbox/4.1.8/Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack<br />
vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack<br />
</code></p>
<p>5) Installation de phpVirtualBox</p>
<p>Il s&#8217;agit d&#8217;une excellente interface web pour virtualbox : http://code.google.com/p/phpvirtualbox/.</p>
<p>Si apache n&#8217;est pas installé sur votre serveur :<br />
<code><br />
apt-get install apache2 php5 php5-suhosin php5-xcache php5-gd<br />
</code></p>
<p>Puis l&#8217;installation de l&#8217;application propement dite :<br />
<code><br />
wget http://phpvirtualbox.googlecode.com/files/phpvirtualbox-4.1-5.zip<br />
unzip phpvirtualbox-4.1-5.zip -d /var/www<br />
ln -s /var/www/phpvirtualbox-4.1-5 /var/www/vbox</code></p>
<p>#on ajoute la petite icone pour navigateur<br />
wget https://www.virtualbox.org/favicon.ico -O /var/www/favicon.ico</p>
<p>Renommer le fichier vbox/config.php-example =&gt; config.php<br />
Dans ce fichier, renseigner le mot de passe de l&#8217;utilisateur vbox</p>
<p>Puis on accéde simplement au serveur l&#8217;adresse http://ksxxxxxx.kimsufi.com/vbox<br />
Le login par défaut est admin/admin, et doit être changé dés que possible dans le menu File/change password de l&#8217;application</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jrialland.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jrialland.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jrialland.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jrialland.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jrialland.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jrialland.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jrialland.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jrialland.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jrialland.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jrialland.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jrialland.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jrialland.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jrialland.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jrialland.wordpress.com/190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=190&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jrialland.wordpress.com/2011/12/26/installation-de-virtualbox-chez-ovh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8017ce98d45596e8e2e2eedad040553?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jrialland</media:title>
		</media:content>

		<media:content url="http://jrialland.files.wordpress.com/2011/12/sshot.png?w=300" medium="image">
			<media:title type="html">sshot</media:title>
		</media:content>
	</item>
		<item>
		<title>recompilation du noyau linux chez OVH</title>
		<link>http://jrialland.wordpress.com/2011/12/26/recompilation-du-noyau-linux-chez-ovh/</link>
		<comments>http://jrialland.wordpress.com/2011/12/26/recompilation-du-noyau-linux-chez-ovh/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 09:47:18 +0000</pubDate>
		<dc:creator>jrialland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ovh]]></category>

		<guid isPermaLink="false">http://jrialland.wordpress.com/?p=188</guid>
		<description><![CDATA[Voici une recette pour recompiler le noyau linux sur votre serveur OVH. Pourquoi mutiler son pauvre serveur a ce point ? Et bien dans mon cas c&#8217;est simplement pour avoir accés au support des modules. En effet les modules sont désactivés par défaut dans les images d&#8217;OS fournies par OVH. Même si j&#8217;ai toujours aimé [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=188&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Voici une recette pour recompiler le noyau linux sur votre serveur OVH.<br />
Pourquoi mutiler son pauvre serveur a ce point ? Et bien dans mon cas c&#8217;est simplement pour avoir accés au support des modules.</p>
<p>En effet les modules sont désactivés par défaut dans les images d&#8217;OS fournies par OVH. Même si j&#8217;ai toujours aimé<br />
un bon troll de temps en temps, je vous laisse cette fois si seul juge des vraies raisons qui poussent les ingénieurs d&#8217;OVH à faire ça.<br />
La raison souvent invoquée est la sécurité (!)</p>
<p>La procédure est testée pour Ubuntu, mais devrait marcher sans problème si vous avez opté pour Debian.<br />
si vous avez opté pour autre chose, désolé mais je ne peux pas vous aider <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>1) Les ingrédients : Installer les paquets nécessaire pour compiler linux :<br />
<code><br />
sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5-dev lzma<br />
</code></p>
<p>2) Récuperer les sources de linux patchées OVH.<br />
<code><br />
cd /usr/src/<br />
wget ftp://ftp.ovh.net/made-in-ovh/bzImage/old/2.6.38.2/linux-2.6.38.2-ovh.tar.bz2<br />
tar -jxvf linux-2.6.38.2-ovh.tar.bz2<br />
ln -s /usr/src/linux-2.6.38.2-ovh /usr/src/linux<br />
</code><br />
3) récuperer également la configuration du noyau<br />
<code><br />
wget ftp://ftp.ovh.net/made-in-ovh/bzImage/old/2.6.38.2/2.6-config-xxxx-std-ipv6-64-hz1000<br />
cp 2.6-config-xxxx-std-ipv6-64-hz1000 linux-2.6.38.2-ovh/.config<br />
</code><br />
J&#8217;ai choisi la configuration avec timer 1000Hz,<br />
4) Dans mon cas, je suis allé re-cocher l&#8217;option de support des modules,<br />
<code><br />
cd linux-2.6.38.2-ovh<br />
make menuconfig   #et réactiver le support des modules<br />
</code></p>
<p>5) Il faut reconfigurer grub pour prendre en compte notre nouveu kernel :<br />
<code><br />
update-grub2<br />
</code><br />
Attention cela ne marchera bien sur que si grub2 est le bootloader ! Si ce n&#8217;est pas le cas je ne saurais que vous conseiller de l&#8217;installer : apt-get install grub2 devrait suffir&#8230;</p>
<p>5) et ensuite mixer le tout. Cette méthode permet d&#8217;obtenir un magnifique fichier .deb qu&#8217;il suffit d&#8217;installer grâce à la commande dpkg.<br />
<code><br />
make-kpkg --rootcmd fakeroot --initrd modules kernel-image #allez boire un café<br />
dpkg -i /usr/src/linux-image-2.6.38.2-xxxx-std-ipv6-64-hz1000_2.6.38.2-xxxx-std-ipv6-64-hz1000-10.00.Custom_amd64.deb<br />
</code></p>
<p>Cette commande génère une configuration pour notre nouveau kernel, ensuite il faut modifier l&#8217;ordre de chargement de grub pour prendre en compte notre<br />
noyau a la place de l&#8217;ancien. Il faut pour cela reperer le fichier dans /etc/grub.d qui correspond a notre nouvelle configuration(xx_linux), et lui attribuer un numero<br />
plus faible que xx_OVHKernel en déplaçant les fichiers, ce qui donne au final un truc du genre :<br />
<code><br />
root@ks313xxx:/# ls /etc/grub.d/<br />
00_header        10_linux      40_custom     README<br />
05_debian_theme  15_OVHkernel  30_os-prober  41_custom<br />
</code></p>
<p>Enfin la meilleure partie, il faut bien sûr rebooter sur votre nouveau kernel.<br />
<code><br />
shutdown -r now<br />
</code></p>
<p>La machine devrait redevenir accessible par ssh au bout de quelques minutes.<br />
Vous pouvez vérifier que le nouveau noyeau est bien installé sur le serveur :<br />
<code><br />
root@ks313xxx:~# uname -a<br />
Linux ks313xxx.kimsufi.com 2.6.38.2-xxxx-std-ipv6-64-hz1000 #4 SMP Fri Nov 18 10:53:35 CET 2011 x86_64 x86_64 x86_64 GNU/Linux<br />
</code><br />
Chic alors ! et les modules ?<br />
<code><br />
lsmod<br />
</code></p>
<p>Magie de la technique.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jrialland.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jrialland.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jrialland.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jrialland.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jrialland.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jrialland.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jrialland.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jrialland.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jrialland.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jrialland.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jrialland.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jrialland.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jrialland.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jrialland.wordpress.com/188/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=188&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jrialland.wordpress.com/2011/12/26/recompilation-du-noyau-linux-chez-ovh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8017ce98d45596e8e2e2eedad040553?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jrialland</media:title>
		</media:content>
	</item>
		<item>
		<title>Liferay daemon script</title>
		<link>http://jrialland.wordpress.com/2011/12/05/liferay-daemon-script/</link>
		<comments>http://jrialland.wordpress.com/2011/12/05/liferay-daemon-script/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 13:46:14 +0000</pubDate>
		<dc:creator>jrialland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[liferay]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://jrialland.wordpress.com/?p=123</guid>
		<description><![CDATA[I&#8217;ve googled around looking for a good daemon script for Liferay,&#8230; and I finally wrote mine. Here is the script I use for running a Liferay 6.0.6 instance as a sysv daemon under linux. The script has been tested on an Ubuntu 10.04 LTS server. It just the runs a normal liferay-tomcat bundle, unzipped in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=123&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve googled around looking for a good daemon script for Liferay,&#8230; and I finally wrote mine.</p>
<p>Here is the script I use for running a Liferay 6.0.6 instance as a sysv daemon under linux. The script has been tested on an Ubuntu 10.04 LTS server.<br />
It just the runs a normal liferay-tomcat bundle, unzipped in the /var/liferay6 directory.</p>
<pre>
#!/bin/bash
### BEGIN INIT INFO
# Provides:          liferay
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Should-Start:      $named
# Should-Stop:       $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Liferay portal daemon.
# Description:       Starts the Liferay portal.
# Author:            Julien Rialland &lt;julien.rialland@gmail.com&gt;
### END INIT INFO

#Display name of the application
APP_NAME="Liferay 6.0.6"

#Location of Liferay installation
export LIFERAY_HOME=/var/liferay6

#unprivileged user that runs the daemon. The group/user should have been created separately,
#using groupadd/useradd
USER=liferay
GROUP=liferay

###This is end of the configurable section for most cases, other variable definitions follow :

#Only root user may run this script
if [ `id -u` -ne 0 ]; then
	echo "You need root privileges to run this script"
	exit 1
fi

#tomcat directory
#detection of the tomcat directory within liferay
TOMCAT_DIR=`ls "$LIFERAY_HOME" | grep tomcat | head -1`
export CATALINA_HOME="$LIFERAY_HOME/$TOMCAT_DIR"

#location of pid file
export CATALINA_PID=/var/run/liferay.pid

# guess where is JAVA_HOME if needed (when then environment variable is not defined)
JVM_DIRS="/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/default-java /usr/lib/jvm/java-1.5.0-sun /usr/usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"
if [ -z "$JAVA_HOME" ]; then
        for jdir in $JVM_DIRS; do
                if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
                        export JAVA_HOME="$jdir"
                fi
        done
fi

#if JAVA_HOME is still undefined, try to get it by resolving the path to the java program
if [ -z "$JAVA_HOME" ]; then
        javaexe=`which java`
        if [ ! -z "$javaexe" ]; then
                javaexe=`readlink -m "$javaexe"`
                jdir="$javaexe/.."
                export JAVA_HOME=`readlink -m "$jdir"`
        fi
fi

#if JAVA_HOME is still undefined, crash the script
if [ -z "$JAVA_HOME" ]; then
	echo 'The JAVA_HOME environment variable could not be determined !'
	exit 1
fi

#extra jvm configuration : enable jmx
#export JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

#extra jvm configuration : enable remote debugging
#export JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9998" 

################################################################################

#verify that the user that will run the daemon exists
id "$USER" &gt; /dev/null 2&gt;&amp;1
if [ "$?" -ne "0" ]; then
	echo "User $user does not exist !"
	exit 1
fi

#load utility functions from Linux Standard Base
. /lib/lsb/init-functions

#starts the daemon service
function start {
        log_daemon_msg "Starting $APP_NAME"

        #create work directory if non-existent
        mkdir $CATALINA_HOME/work 2&gt;/dev/null

        #clear temp directory
        rm -rf "$CATALINA_HOME/temp/*" 2&gt;/dev/null
        mkdir $CATALINA_HOME/temp 2&gt;/dev/null

        #fix user rights on liferay home dir
        chown -R "$GROUP":"$USER" "$LIFERAY_HOME"
        chmod -R ug=rwx "$LIFERAY_HOME"

        #ensure that pid file is writeable
        mkdir `dirname "$CATALINA_PID"` 2&gt;/dev/null
        chmod ugo=rw `dirname "$CATALINA_PID"`

        su "$USER" -c "$CATALINA_HOME/bin/catalina.sh start"
        status=$?

        log_end_msg $status
        exit $status
}

#stops the daemon service
function stop {
        log_daemon_msg "Stopping $APP_NAME"
        if [ ! -f "$CATALINA_PID" ];then
            echo "file $CATALINA_PID is missing !"
            unset CATALINA_PID
        fi
        su "$USER" -c "$CATALINA_HOME/bin/catalina.sh stop 10 -force"
        status=$?
        log_end_msg $status
        if [ "$status" = "0" ];then
            rm -f "$CATALINA_PID"
        fi
        exit $status
}

#restarts the daemon service
function restart {
        stop
        sleep 3s
        start
}

#prints service status
function status {
  if [ -f "$CATALINA_PID" ]; then
    pid=`cat "$CATALINA_PID"`
    echo "$APP_NAME is running with pid $pid"
    exit 0
  else
    echo "$APP_NAME is not running (or $CATALINA_PID is missing)"
    exit 1
  fi
}

case "$1" in
	start|stop|restart|status)
		$1
	;;
	*)
		echo $"Usage: $0 {start|stop|restart|status}"
		exit 1
	;;
esac
</pre>
<p>Just name the script &#8216;liferay&#8217; and put in in /etc/init.d, If you want it to run automatically when the server starts up, you just have to run the following commands :</p>
<p><code><br />
sudo chmod u+x /etc/init.d/liferay<br />
sudo update-rc.d liferay defaults<br />
</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jrialland.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jrialland.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jrialland.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jrialland.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jrialland.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jrialland.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jrialland.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jrialland.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jrialland.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jrialland.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jrialland.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jrialland.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jrialland.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jrialland.wordpress.com/123/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=123&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jrialland.wordpress.com/2011/12/05/liferay-daemon-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8017ce98d45596e8e2e2eedad040553?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jrialland</media:title>
		</media:content>
	</item>
		<item>
		<title>WTP Eclipse project generation from Maven configuration</title>
		<link>http://jrialland.wordpress.com/2011/11/07/wtp-eclipse-project-generation-from-maven-configuration/</link>
		<comments>http://jrialland.wordpress.com/2011/11/07/wtp-eclipse-project-generation-from-maven-configuration/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 09:06:25 +0000</pubDate>
		<dc:creator>jrialland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jrialland.wordpress.com/?p=119</guid>
		<description><![CDATA[The maven &#8216;eclipse&#8217; plugin is a bit outdated, but very useful. I had some issues when generating eclipse configuration specifically for web projects. Here is a description on how I managed to configure the plugin finally ! This configuration generates an Eclipse project configuration when you run mvn eclipse:eclipse. All you have to do then [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=119&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The <a title="Maven Eclipse plugin" href="http://maven.apache.org/plugins/maven-eclipse-plugin/">maven &#8216;eclipse&#8217; plugin</a> is a bit outdated, but very useful. I had some issues when generating eclipse configuration specifically for web projects.<br />
Here is a description on how I managed to configure the plugin finally !</p>
<p>This configuration generates an Eclipse project configuration when you run <code>mvn eclipse:eclipse</code>. All you have to do then is to import the project into Eclipse by running the File&gt;Import menu entry in Eclipse</p>
<p><a href="http://jrialland.files.wordpress.com/2011/11/import_eclipse_project.png"><img class="aligncenter size-medium wp-image-121" title="import_eclipse_project" src="http://jrialland.files.wordpress.com/2011/11/import_eclipse_project.png?w=254&#038;h=300" alt="" width="254" height="300" /></a></p>
<p>This configuration fixes some issues I used to have with mvn-generated Eclipse projects :</p>
<ul>
<li>utf-8 encoding for all text files</li>
<li>good versions in project&#8217;s facets (servlet 3.0, java 1.6, javascript 1.0)</li>
<li>Correct web-specific settings (web root directory location, and use of the jar dependencies in the webapp)</li>
<li>Spring-enabled project nature</li>
</ul>
<p>The plugins section of the pom.xml looks like that :</p>
<pre>    &lt;properties&gt;
		&lt;java.version&gt;1.6&lt;/java.version&gt;
		&lt;servlet-api.version&gt;3.0&lt;/servlet-api.version&gt;
		&lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
	&lt;/properties&gt;

	&lt;plugins&gt;

	    ...

		&lt;plugin&gt;
		    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
			&lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
			&lt;version&gt;2.3.2&lt;/version&gt;
			&lt;configuration&gt;
				&lt;source&gt;${java.version}&lt;/source&gt;
				&lt;target&gt;${java.version}&lt;/target&gt;
			&lt;/configuration&gt;
		&lt;/plugin&gt;

		&lt;!-- Settings for generating eclipse project --&gt;
		&lt;plugin&gt;
			&lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
			&lt;artifactId&gt;maven-eclipse-plugin&lt;/artifactId&gt;
			&lt;version&gt;2.8&lt;/version&gt;
			&lt;configuration&gt;
				&lt;wtpversion&gt;2.0&lt;/wtpversion&gt;
				&lt;downloadSources&gt;false&lt;/downloadSources&gt;
				&lt;downloadJavadocs&gt;false&lt;/downloadJavadocs&gt;
				&lt;additionalConfig&gt;
					&lt;file&gt;
						&lt;name&gt;.settings/org.eclipse.wst.common.project.facet.core.xml&lt;/name&gt;
						&lt;content&gt;&lt;![CDATA[
							&lt;faceted-project&gt;
							  &lt;fixed facet="jst.java"/&gt;
							  &lt;fixed facet="jst.web"/&gt;
							  &lt;installed facet="jst.java" version="${java.version}"/&gt;
							  &lt;installed facet="jst.web" version="${servlet-api.version}"/&gt;
							  &lt;installed facet="wst.jsdt.web" version="1.0"/&gt;
							&lt;/faceted-project&gt;
						]]&gt;&lt;/content&gt;
					&lt;/file&gt;
					&lt;file&gt;
						&lt;name&gt;.settings/org.eclipse.core.resources.prefs&lt;/name&gt;
						&lt;content&gt;&lt;![CDATA[eclipse.preferences.version=1
encoding/&lt;project&gt;=${project.build.sourceEncoding}]]&gt;
						&lt;/content&gt;
					&lt;/file&gt;
				&lt;/additionalConfig&gt;
				&lt;additionalProjectnatures&gt;
				   &lt;projectnature&gt;org.springframework.ide.eclipse.core.springnature&lt;/projectnature&gt;
				&lt;/additionalProjectnatures&gt;
			&lt;/configuration&gt;
		&lt;/plugin&gt;

	&lt;/plugins&gt;</pre>
<p>You may also have to ensure that you gave a value to the M2_REPO variable in the Eclipse settings points to your local .m2/repository.</p>
<p><a href="http://jrialland.files.wordpress.com/2011/11/variable_selection.png"><img class="aligncenter size-medium wp-image-120" title="variable_selection" src="http://jrialland.files.wordpress.com/2011/11/variable_selection.png?w=300&#038;h=212" alt="" width="300" height="212" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jrialland.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jrialland.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jrialland.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jrialland.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jrialland.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jrialland.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jrialland.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jrialland.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jrialland.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jrialland.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jrialland.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jrialland.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jrialland.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jrialland.wordpress.com/119/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=119&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jrialland.wordpress.com/2011/11/07/wtp-eclipse-project-generation-from-maven-configuration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8017ce98d45596e8e2e2eedad040553?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jrialland</media:title>
		</media:content>

		<media:content url="http://jrialland.files.wordpress.com/2011/11/import_eclipse_project.png?w=254" medium="image">
			<media:title type="html">import_eclipse_project</media:title>
		</media:content>

		<media:content url="http://jrialland.files.wordpress.com/2011/11/variable_selection.png?w=300" medium="image">
			<media:title type="html">variable_selection</media:title>
		</media:content>
	</item>
		<item>
		<title>From zero to Liferay portlet in less that 5 minutes (depending on your network connection)</title>
		<link>http://jrialland.wordpress.com/2011/10/13/from-zero-to-liferay-portlet-in-less-that-5-minutes-depending-on-your-network-connection/</link>
		<comments>http://jrialland.wordpress.com/2011/10/13/from-zero-to-liferay-portlet-in-less-that-5-minutes-depending-on-your-network-connection/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 12:53:12 +0000</pubDate>
		<dc:creator>jrialland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jrialland.wordpress.com/?p=105</guid>
		<description><![CDATA[Following this recipe, i can write a new portlets (for demoing purpose) in a very short time ! 1) Create a the repertory structure and download a fresh bundle distribution: mkdir $HOME/liferay mkdir $HOME/liferay/portlets mkdir $HOME/liferay/bundles cd $HOME/liferay/bundles wget http://sunet.dl.sourceforge.net/project/lportal/Liferay%20Portal/6.0.6/liferay-portal-jetty-6.0.6-20110225.zip unzip liferay-portal-jetty-6.0.6-20110225.zip (you may know want to run liferay : just run the script &#8216;$HOME/liferay/liferay-portal-6.0/jetty-6.1.24/bin/run.sh&#8216; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=105&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Following this recipe, i can write a new portlets (for demoing purpose) in a very short time !</p>
<p>1) Create a the repertory structure and download a fresh bundle distribution:<br />
<code><br />
mkdir $HOME/liferay<br />
mkdir $HOME/liferay/portlets<br />
mkdir $HOME/liferay/bundles<br />
cd $HOME/liferay/bundles<br />
wget http://sunet.dl.sourceforge.net/project/lportal/Liferay%20Portal/6.0.6/liferay-portal-jetty-6.0.6-20110225.zip<br />
unzip liferay-portal-jetty-6.0.6-20110225.zip<br />
</code></p>
<p>(you may know want to run liferay : just run the script &#8216;<i>$HOME/liferay/liferay-portal-6.0/jetty-6.1.24/bin/run.sh</i>&#8216;</p>
<p>3) Create a new portlet project using the liferay archetype<br />
<code><br />
cd $HOME/liferay/portlets<br />
mvn archetype:generate \<br />
-DarchetypeGroupId=com.liferay.maven.archetypes \<br />
-DarchetypeArtifactId=liferay-portlet-archetype \<br />
-DarchetypeVersion=6.0.6 \<br />
-DgroupId=net.jr.testapp \<br />
-DartifactId=test-portlet<br />
</code></p>
<p>You just have to modify the liferay.auto.deploy.dir property at the end of the generated pom.xml :<br />
<code><br />
	&lt;properties&gt;<br />
		&lt;liferay.auto.deploy.dir&gt;../../bundles/liferay-portal-6.0.6/deploy&lt;/liferay.auto.deploy.dir&gt;<br />
		&lt;liferay.version&gt;6.0.6&lt;/liferay.version&gt;<br />
	&lt;/properties&gt;<br />
</code></p>
<p>The portlet can be recompiled/deployed easily by running the following command :<br />
<code><br />
 mvn clean package liferay:deploy<br />
</code></p>
<p>4) The only things that are needed to customize the portlet is to modify the main.js and view.jsp files&#8230;</p>
<p>5) More fancy things may be done by turning the project into an Eclipe project, and then import it using Eclipe :<br />
<code><br />
   mvn eclipse:eclipse<br />
</code></p>
<p>It doesn&#8217;t take more than 5 minutes, counting the time it needs to download the Liferay bundle !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jrialland.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jrialland.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jrialland.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jrialland.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jrialland.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jrialland.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jrialland.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jrialland.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jrialland.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jrialland.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jrialland.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jrialland.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jrialland.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jrialland.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=105&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jrialland.wordpress.com/2011/10/13/from-zero-to-liferay-portlet-in-less-that-5-minutes-depending-on-your-network-connection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8017ce98d45596e8e2e2eedad040553?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jrialland</media:title>
		</media:content>
	</item>
		<item>
		<title>OVH minicloud</title>
		<link>http://jrialland.wordpress.com/2011/09/11/ovh-minicloud/</link>
		<comments>http://jrialland.wordpress.com/2011/09/11/ovh-minicloud/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 18:50:31 +0000</pubDate>
		<dc:creator>jrialland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jrialland.wordpress.com/?p=102</guid>
		<description><![CDATA[J&#8217;ai testé il y a quelques temps l&#8217;offre minicloud d&#8217;OVH. J&#8217;ai trouvé la possibilité d&#8217;avoir une machine sur le net pour moins de 8 euros/mois vraiment géniale, mais un peu plus de stockage n&#8217;aurait pas été du luxe. Création de l&#8217;image, première connexion : Il faut d&#8217;abord créer un compte et se connecter au ManagerV5 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=102&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai testé il y a quelques temps l&#8217;offre minicloud d&#8217;OVH. J&#8217;ai trouvé la possibilité d&#8217;avoir une machine sur le net pour moins de 8 euros/mois vraiment géniale, mais un peu plus de stockage n&#8217;aurait pas été du luxe.</p>
<h2>Création de l&#8217;image, première connexion :</h2>
<p>Il faut d&#8217;abord créer un compte et se connecter au  <a href="https://www.ovh.com/managerv5/">ManagerV5</a> d&#8217;ovh.</p>
<p>Créer une paire de clés ssh grace à l&#8217;interface web, puis télécharger la clé privée (j&#8217;utilise openssh, je choisit donc le format pem), ensuite il faut donner les bons droits à la clé : <code>chmod go-rx sshkey.pem</code></p>
<p>Ensuite on peut créer son &#8220;cloud&#8221; via l&#8217;interface web, j&#8217;ai choisi Ubuntu (32bits et 64bits sont proposés, j&#8217;ai choisi 64bits).</p>
<p>Ensuite on peut se connecter à la machine une fois démarrée, La somme d&#8217;argent mise sur le &#8220;compte&#8221; est débité à raison d&#8217;un centime d&#8217;euro par heure, jusqu&#8217;a ce que le compte soit épuisé ou que l&#8217;on éteigne la machine depuis l&#8217;interface web. </p>
<p><strong>NOTE : </strong>L&#8217;Ip / nom de domaine n&#8217;est valide qu&#8217;au cours d&#8217;une seule &#8216;session&#8217;, une nouvelle ip est attribuée a chaque démarrage de l&#8217;image !</p>
<p>On se connecte en ssh : <code> ssh -i sshkey.pem root mc-xxx.ovh.net </code></p>
<h2>Installation de paquets</h2>
<p>Pour mon confort:</p>
<pre>
vim
sysvinit-util
sysv-rc-conf
</pre>
<p>Pour Apache et Php :</p>
<pre>
apache2
libapache2-mod-php5
php5-suhosin
php5-xcache
php5-gd
</pre>
<h2>Installation de Tomcat7</h2>
<p>J&#8217;ai décidé d&#8217;installer Tomcat7, il n&#8217;y a pas (encore) de paquet apt correspondant. J&#8217;installe donc à la main :</p>
<p><code><br />
mkdir /usr/local/tomcat7<br />
cd /usr/local<br />
wget http://apache.cict.fr/tomcat/tomcat-7/v7.0.16/bin/apache-tomcat-7.0.16.tar.gz<br />
tar zxvf apache-tomcat-7.0.16.tar.gz<br />
mv apache-tomcat-7.0.16 tomcat7<br />
rm apache-tomcat-7.0.16.tar.gz<br />
</code></p>
<p>Tomcat ne sera jamais accédé directement, mais toujours via le serveur Apache grâce à mod_proxy_ajp. Donc je commente le Connector http dans le fichier conf/server.xml.</p>
<h2>Démarrage de Tomcat en tant que service</h2>
<p>Je dispose d&#8217;un script de service &#8216;maison&#8217; nommé <a href="http://jrcloud.dyndns.org/misc/scripts/tomcat">tomcat</a>, je le place dans /etc/init.d</p>
<p>Ensuite : <code>update-rc.d tomcat defaults</code></p>
<h2>Configuration d&#8217;Apache</h2>
<p>Activation des modules proxy et proxy_ajp<br />
<code><br />
a2enmod proxy<br />
a2enmod proxy_ajp<br />
</code></p>
<p>Ensuite on vient modifier le ficher /etc/apache2/mods_available/proxy.conf :<br />
<code></p>
<p>        ProxyRequests Off</p>
<p>                AddDefaultCharset off<br />
                Order deny,allow<br />
                Deny from all<br />
                #Allow from .example.com</p>
<p>        # Enable/disable the handling of HTTP/1.1 "Via:" headers.<br />
        # ("Full" adds the server version; "Block" removes all outgoing Via: headers)<br />
        # Set to one of: Off | On | Full | Block</p>
<p>        ProxyVia Off</p>
<p>        #redirect to tomcat<br />
        ProxyPass / ajp://localhost:8009/<br />
        ProxyPassReverse / ajp://localhost:8009/</p>
<p></code></p>
<h2>Mise en place d&#8217;un VirtualHost</h2>
<p>1) Achetez votre nom de domaine !<br />
2) Créer le dossier dans /var/www :<br />
<code><br />
mkdir /var/www/domaine.com<br />
</code><br />
3) Ajouter la conf dans /etc/apache2/sites_available :</p>
<p>/etc/apache2/sites-available/www.la-bonneterie.fr:<br />
<code></p>
<p>        DocumentRoot /var/www/www.domaine.fr<br />
        ServerName www.domaine.fr</p>
<p></code><br />
Puis activer la conf <code>a2ensite www.domaine.fr</code></p>
<h2>Sécurisation du serveur : Script de Firewall</h2>
<p>Un script de firewall est a mon sens une bonne mesure de sécurité :<br />
J&#8217;utilise un script tout simple que je range dans /etc/init.d/firewall (que j&#8217;active ensuite avec updaterc.d firewall defaults)<br />
<code><br />
#!/bin/bash<br />
### BEGIN INIT INFO<br />
# Provides: firewall<br />
# Required-Start:  $remote fs $syslog $network<br />
# Required-Stop: $remote fs $syslog $network<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
# Short-Description: firewall<br />
# Description : iptables-based firewall script<br />
# Author : Julien Rialland<br />
### END INIT INFO</p>
<p>IPT=`which iptables`</p>
<p>#firewall rules installation<br />
#note that the order in which rules are appended is very important. For example, if your first rule is<br />
#to deny everything... then no matter what you specifically allow, it will be denied.<br />
function start {<br />
        echo 'Installing new firewall rules...'<br />
        $IPT -F</p>
<p>        #default policy for the predefined chains<br />
        $IPT -P INPUT ACCEPT<br />
        $IPT -P OUTPUT ACCEPT<br />
        $IPT -P FORWARD DROP</p>
<p>        #accept ssh connections<br />
        $IPT -A INPUT -p tcp --dport 22 -j ACCEPT</p>
<p>        #accept http and https connections (80,443)<br />
        $IPT -A INPUT -p tcp --dport 80 -j ACCEPT<br />
        $IPT -A INPUT -p tcp --dport 443 -j ACCEPT</p>
<p>        #accept  anything from localhost<br />
        $IPT -A INPUT -i lo -j ACCEPT</p>
<p>        #Accept related or established connections so ftp can work, for example<br />
        $IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT</p>
<p>        #everything else is dropped<br />
        $IPT -A INPUT -j DROP</p>
<p>        echo '...done.'<br />
}</p>
<p>function stop {<br />
        echo 'Flushing all firewall rules...'<br />
        $IPT -F<br />
        echo '...done.'<br />
}</p>
<p>function restart {<br />
   stop<br />
   start<br />
}</p>
<p>function status {<br />
        $IPT -L -n -v<br />
}</p>
<p>case "$1" in<br />
  start|stop|restart|status)<br />
    $1<br />
  ;;<br />
  *)<br />
    echo "Usage : $0 (start|stop|restart|status)"<br />
  ;;<br />
esac</p>
<p></code></p>
<h2>Mise en place de fail2ban</h2>
<p>ce script surveille les logs de ssh, et bannit les ip qui tentent des connexions repétées sans réussir, ce qui empêche les attaques par dictionnaire par exemple : <code>apt-get install fail2ban</code></p>
<h2>DNS dynamique</h2>
<p>Les machines minicloud n&#8217;ont pas d&#8217;ip fixe, Il faut donc configurer un dns dynamique. Même si on dispose d&#8217;un nom de domaine (en .fr par exemple) il faut pouvoir toujours rediriger vers la même machine, même aprés un redemarrage, sans avoir a reconfigurer les dns. Je me sers dont d&#8217;une adresse en .dyndns.org.</p>
<p>www.domaine.fr (CNAME)=&gt; domaine.dyndns.org =&gt; ip flottante minicloud</p>
<p><code><br />
apt-get install libio-socket-ssl-perl ddclient<br />
</code></p>
<p>Voici ma configuration (/etc/ddclient.conf)<br />
<code><br />
pid=/var/run/ddclient.pid<br />
syslog=yes<br />
protocol=dyndns2<br />
use=if, if=eth0<br />
daemon=300<br />
server=members.dyndns.org<br />
login=jrialland<br />
password='xxxxxxxxxxxxx'<br />
mondomaine.dyndns.org<br />
</code></p>
<h2>Configuration Email</h2>
<p>Ovh empeche l&#8217;utilisation des miniclouds comme serveurs email, in vont même jusqu&#8217;a empécher le traffic vers les ports 25(smtp) d&#8217;autres machines.<br />
Pour pouvoir envoyer des notifications par email depuis mes programmes, je contourne la limitation en configurant postfix pour utiliser mon compte gmail :</p>
<p><code><br />
apt-get install postfix libsasl2-2 ca-certificates libsasl2-modules heirloom-mailx</p>
<p>vi /etc/postfix/main.cf:</p>
<p>relayhost = [smtp.gmail.com]:587<br />
smtp_sasl_auth_enable = yes<br />
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd<br />
smtp_sasl_security_options = noanonymous<br />
smtp_tls_CAfile = /etc/postfix/cacert.pem<br />
smtp_use_tls = yes<br />
--------<br />
vi /etc/postfix/sasl_passwd:<br />
[smtp.gmail.com]:587 user.name@gmail.com:password </p>
<p>chmod 400 /etc/postfix/sasl_passwd<br />
postmap /etc/postfix/sasl_passwd</p>
<p>cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem</p>
<p>ln -s /etc/postfix/sasl_passwd.db /etc/postfix/sasl/sasl_passwd2.db</p>
<p>service postfix restart<br />
</code></p>
<p>La procédure relève un peu du parcours du combattant, mais en tout cas ça me permet de valider le fait qu&#8217;on peut envoyer des emails depuis un minicloud.</p>
<p>L&#8217;autre solution (meilleure a mon avis) serait d&#8217;utiliser le relais smtp d&#8217;ovh, qui permet d&#8217;envoyer 100 mails/heure.</p>
<h2>Installation de subversion</h2>
<p>J&#8217;ai décidé d&#8217;installer un serveur subversion sur cette machine, là encore Je me suis un peu battu, mais j&#8217;ai finalement une configuration qui me convient :</p>
<p>Il faut d&#8217;abord installer/configurer svn :</p>
<p><code><br />
apt-get install subversion libapache2-svn<br />
mkdir /var/svn<br />
mkdir /var/svn/repo<br />
svnadmin create /var/svn/repo<br />
</code></p>
<p>Modifier le fichier /var/svn/repo/conf/svnserve.conf<br />
<code><br />
[general]<br />
anon-access = none<br />
auth-access = write<br />
password-db = passwd<br />
realm = SVN Repository<br />
</code></p>
<p>Modifier le fichier passwd</p>
<p><code><br />
sudo addgroup svn --system<br />
sudo adduser svn --system --home /var/svn --no-create-home --ingroup svn<br />
sudo chown -R svn: /var/svn<br />
</code></p>
<p>Créer un script de démarrage dans /etc/init.d/svnserve :<br />
<code><br />
#!/bin/sh</p>
<p>set -e<br />
if [ -x /usr/bin/svnserve ] ; then<br />
    HAVE_SVNSERVE=1<br />
else<br />
    echo "Svnserve not installed."<br />
    exit 0<br />
fi</p>
<p>. /lib/lsb/init-functions</p>
<p>case "$1" in<br />
    start)<br />
        log_action_begin_msg "Starting SVN server"<br />
        /sbin/start-stop-daemon --start --chuid svn:svn --exec /usr/bin/svnserve -- -d -r /var/svn<br />
        log_action_end_msg $?<br />
        ;;<br />
    stop)<br />
        log_action_begin_msg "Stopping SVN server"<br />
        /sbin/start-stop-daemon --stop --exec /usr/bin/svnserve<br />
        log_action_end_msg $?<br />
        ;;<br />
    force-reload|restart)<br />
        $0 stop<br />
        $0 start<br />
        ;;<br />
    *)<br />
        echo "Usage: /etc/init.d/svnserve {start|stop|restart|force-reload}"<br />
        exit 1<br />
        ;;<br />
esac</p>
<p>exit 0<br />
</code></p>
<p>Configurer le démarrage</p>
<p><code><br />
sudo update-rc.d svnserve defaults<br />
</code></p>
<p>Pour Apache : Ne pas oublier de changer les droits du dossier des dépots :<br />
<code><br />
update-rc.d svnserve defaults<br />
chown -R www-data /var/svn/<br />
</code></p>
<p>J&#8217;ai ajouté une configuration de site dans /etc/apache2/sites_available/svn :</p>
<p><code></p>
<p>        &lt;IfModule dav_svn_module&gt;<br />
                ServerName jrcloud.dyndns.org:443<br />
                SSLEngine On<br />
                SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire<br />
                SSLCertificateFile /etc/pki_custom/certs/jrcloud.dyndns.org.crt<br />
                SSLCertificateKeyFile /etc/pki_custom/private/jrcloud.dyndns.org.key</p>
<p>                &lt;Location /svn&gt;<br />
                        DAV svn<br />
                        SVNParentPath /var/svn<br />
                        SVNListParentPath On<br />
                        AuthType Basic<br />
                        AuthName "SVN Repository"<br />
                        AuthUserFile /etc/apache2/dav_svn.passwd<br />
                        Require valid-user<br />
                &lt;/Location&gt;<br />
        &lt;/IfModule&gt;</p>
<p></code></p>
<p>Puis on active la conf avec : <code>a2ensite svn</code></p>
<p>On crée un certificat SSL pour Apache :<br />
<code><br />
domain=domaine.dyndns.org</p>
<p>mkdir /etc/pki_custom<br />
mkdir /etc/pki_custom/private<br />
mkdir /etc/pki_custom/certs<br />
mkdir /etc/pki_custom/csrs</p>
<p>openssl genrsa -out /etc/pki_custom/private/$domain.key 1024<br />
openssl req -new -key /etc/pki_custom/private/$domain.key -out /etc/pki_custom/csrs/$domain.csr<br />
openssl x509 -req -days 1825 -in /etc/pki_custom/csrs/$domain.csr -signkey /etc/pki_custom/private/$domain.key -out /etc/pki_custom/certs/$domain.crt</p>
<p></code></p>
<p>Pour créer un utilisateur subversion, il faut juste créer un utilisateur pour l&#8217;authentification Apache : </p>
<p><code><br />
sudo htpasswd -s /etc/apache2/dav_svn.passwd utilisateur<br />
sudo chown www-data:www-data /etc/apache2/dav_svn.passwd<br />
</code></p>
<p>Une fois ces étapes passées, le dépot est accessible via https://domaine.dyndns.org/svn/repo </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jrialland.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jrialland.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jrialland.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jrialland.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jrialland.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jrialland.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jrialland.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jrialland.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jrialland.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jrialland.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jrialland.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jrialland.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jrialland.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jrialland.wordpress.com/102/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=102&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jrialland.wordpress.com/2011/09/11/ovh-minicloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8017ce98d45596e8e2e2eedad040553?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jrialland</media:title>
		</media:content>
	</item>
		<item>
		<title>jfastcgi 2.1 is available</title>
		<link>http://jrialland.wordpress.com/2011/09/06/jfastcgi-2-1-is-available/</link>
		<comments>http://jrialland.wordpress.com/2011/09/06/jfastcgi-2-1-is-available/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 21:27:16 +0000</pubDate>
		<dc:creator>jrialland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jfastcgi]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://jrialland.wordpress.com/?p=99</guid>
		<description><![CDATA[jFastCGI 2.1 is available, it features some minor bug corrections. The library is now available through the plublic maven repositories.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=99&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>jFastCGI 2.1 is available, it features some minor bug corrections. The library is now available through the plublic <a href="http://www.jarvana.com/jarvana/inspect-pom/net/sf/jfastcgi/jfastcgi/2.1/jfastcgi-2.1.pom" title="jfastcgi@jarvana">maven repositories</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jrialland.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jrialland.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jrialland.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jrialland.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jrialland.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jrialland.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jrialland.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jrialland.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jrialland.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jrialland.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jrialland.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jrialland.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jrialland.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jrialland.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=99&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jrialland.wordpress.com/2011/09/06/jfastcgi-2-1-is-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8017ce98d45596e8e2e2eedad040553?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jrialland</media:title>
		</media:content>
	</item>
		<item>
		<title>Forwarding X11 through ssh</title>
		<link>http://jrialland.wordpress.com/2011/08/10/forwarding-x11-through-ssh/</link>
		<comments>http://jrialland.wordpress.com/2011/08/10/forwarding-x11-through-ssh/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 21:40:54 +0000</pubDate>
		<dc:creator>jrialland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jrialland.wordpress.com/?p=93</guid>
		<description><![CDATA[This is an information that you might easily find everywhere, this article is mainly a reminder for myself (and eventually for you ). No need for fancy protocols, in order to run graphical programs on a remote machine we might use ssh, and X11. This has prooved to work well since the eighties NOTE : [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=93&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="ssh" src="http://www.jabwebsolutions.co.uk/images/hosting/icon-ssh.png" alt="ssh" width="48" height="48" />This is an information that you might easily find everywhere, this article is mainly a reminder for myself (and eventually for you <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>No need for fancy protocols, in order to run graphical programs on a remote machine we might use ssh, and X11. This has prooved to work well since the eighties <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>NOTE : In my exemple, the client is my Ubuntu 11.04 laptop, and the server runs Debian Squeeze, so my explanation covers the &#8216;debian way&#8217; of doing things.</p>
<p><strong> On the client side :</strong></p>
<p>X11 shall be accessible though tcp.</p>
<p>If you run X directly, which is not my case, Edit the /etc/X11/xinit/xserverrc file, and remove the &#8220;-nolisten tcp&#8221; option. This modification is optional if you, like me, use gdm.</p>
<p>gdm starts X sessions, so you you have to modify its configuration in /etc/gdm/custom.conf :</p>
<p><code><br />
[xdmcp]</p>
<p>[chooser] </p>
<p>[security]<br />
DisallowTCP=false</p>
<p>[debug]<br />
</code></p>
<p>restarting gdm :<br />
close you&#8217;re gnome session, and then crtl+alt+f1 opens a terminal in console mode.<br />
type the following :<br />
<code><br />
service gdm restart<br />
</code></p>
<p>and then ctrl+alt+f7 brings you back to the gdm prompt.</p>
<p>SSH config :<br />
Then edit the /etc/ssh/ssh_conf :<br />
<code><br />
X11Forwarding yes<br />
X11DisplayOffset 10<br />
</code><br />
<strong>On the server side,</strong></p>
<p>edit /etc/ssh/sshd_conf :<br />
<code><br />
Host *<br />
ForwardX11 yes<br />
ForwardX11Trusted yes<br />
</code><br />
and restart the server (fortunately you won&#8217;t be kicked out if you do that through ssh), by doing :<br />
<code><br />
$&gt; /etc/init.d/ssh restart<br />
</code><br />
Connections can now handle X11 forwarding<br />
<code><br />
$&gt; ssh -X user@server<br />
$&gt; echo $DISPLAY<br />
client:10.0<br />
$&gt;xeyes &amp;<br />
</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jrialland.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jrialland.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jrialland.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jrialland.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jrialland.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jrialland.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jrialland.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jrialland.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jrialland.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jrialland.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jrialland.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jrialland.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jrialland.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jrialland.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=93&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jrialland.wordpress.com/2011/08/10/forwarding-x11-through-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8017ce98d45596e8e2e2eedad040553?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jrialland</media:title>
		</media:content>

		<media:content url="http://www.jabwebsolutions.co.uk/images/hosting/icon-ssh.png" medium="image">
			<media:title type="html">ssh</media:title>
		</media:content>
	</item>
		<item>
		<title>Showing kernel modules dependencies graphically using graphviz</title>
		<link>http://jrialland.wordpress.com/2011/07/28/showing-linux-modules-dependencies-graphically-using-graphviz/</link>
		<comments>http://jrialland.wordpress.com/2011/07/28/showing-linux-modules-dependencies-graphically-using-graphviz/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 17:56:12 +0000</pubDate>
		<dc:creator>jrialland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jrialland.wordpress.com/?p=82</guid>
		<description><![CDATA[A few time ago, I had problems with my sound card module on my new linux laptop, I did not understand well how modules were loaded. I finally solved my problem, but I was curious about the modules depency structure, and I started playing with graphviz to have a graphical view of that. I finally [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=82&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://jrialland.files.wordpress.com/2011/07/app.png"><img class="alignleft size-full wp-image-84" title="app" src="http://jrialland.files.wordpress.com/2011/07/app.png?w=600" alt=""   /></a>A few time ago, I had problems with my sound card module on my new linux laptop, I did not understand well how modules were loaded.</p>
<p>I finally solved my problem, but I was curious about the modules depency structure, and I started playing with graphviz to have a graphical view of that.</p>
<p>I finally came with this small &amp; dirty python script :</p>
<pre>#!/usr/bin/python
# -*-coding:utf-8-*-
import os, re
#usual usage is : ./mods_graph.py | dot -Tpng &gt; modules.png

print 'digraph linux_modules {'
lines = [line for line in os.popen('lsmod')]
for line in lines[1:] :
    line = [x for x in re.split('\ |,', line.replace('\n','')) if not len(x)==0]
    for dep in line[3:]:
        print '\t' + line[0] + ' -&gt; ' + dep + ';'
print '}'
exit(0)</pre>
<p>It reads the dependencies between the linux modules by calling <a title="lsmod" href="http://linux.die.net/man/8/lsmod">lsmod(8)</a>, and then formats the output into a file acceptable by the dot utility, from the <a title="Graphviz" href="http://www.graphviz.org/">graphviz</a> package.</p>
<p>The <a title="modules" href="http://jrialland.files.wordpress.com/2011/07/modules.png">png output</a> is quite cool, &#8230; And you can see how complex the sound handling is under linux compared to video !!</p>
<p>The other conclusion is to see how fast and easy it is to generate graphs using graphviz !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jrialland.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jrialland.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jrialland.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jrialland.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jrialland.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jrialland.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jrialland.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jrialland.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jrialland.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jrialland.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jrialland.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jrialland.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jrialland.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jrialland.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=82&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jrialland.wordpress.com/2011/07/28/showing-linux-modules-dependencies-graphically-using-graphviz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8017ce98d45596e8e2e2eedad040553?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jrialland</media:title>
		</media:content>

		<media:content url="http://jrialland.files.wordpress.com/2011/07/app.png" medium="image">
			<media:title type="html">app</media:title>
		</media:content>
	</item>
		<item>
		<title>Freebox Revolution</title>
		<link>http://jrialland.wordpress.com/2011/01/19/freebox-revolution/</link>
		<comments>http://jrialland.wordpress.com/2011/01/19/freebox-revolution/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 19:21:09 +0000</pubDate>
		<dc:creator>jrialland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[freebox]]></category>

		<guid isPermaLink="false">http://jrialland.wordpress.com/?p=67</guid>
		<description><![CDATA[&#8230; Quel est l&#8217;intérêt d&#8217;avoir un navigateur web sur sa télé quand youtube (et les contenus flash en général) ne fonctionne pas !<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=67&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 260px"><img title="freebox" src="http://astucestutos.fr/wp-content/uploads/2010/12/Freebox-Revolution-500x296.png" alt="freebox" width="250" height="148" /><p class="wp-caption-text">freebox</p></div>
<p>&#8230; Quel est l&#8217;intérêt d&#8217;avoir un navigateur web sur sa télé quand youtube (et les contenus flash en général) ne fonctionne pas !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jrialland.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jrialland.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jrialland.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jrialland.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jrialland.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jrialland.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jrialland.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jrialland.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jrialland.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jrialland.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jrialland.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jrialland.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jrialland.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jrialland.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jrialland.wordpress.com&amp;blog=9007252&amp;post=67&amp;subd=jrialland&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jrialland.wordpress.com/2011/01/19/freebox-revolution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8017ce98d45596e8e2e2eedad040553?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jrialland</media:title>
		</media:content>

		<media:content url="http://astucestutos.fr/wp-content/uploads/2010/12/Freebox-Revolution-500x296.png" medium="image">
			<media:title type="html">freebox</media:title>
		</media:content>
	</item>
	</channel>
</rss>
