<?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>Nicolas&#039; Blog</title>
	<atom:link href="http://nicolas.vanwambeke.net/wp/feed/" rel="self" type="application/rss+xml" />
	<link>http://nicolas.vanwambeke.net/wp</link>
	<description>Blog of Nicolas Van Wambeke</description>
	<lastBuildDate>Sun, 08 May 2011 08:06:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bonjour/ZeroConf/Rendezvous/mDNS across multiple subnets</title>
		<link>http://nicolas.vanwambeke.net/wp/2011/05/08/bonjourzeroconfrendezvousmdns-across-multiple-subnets/</link>
		<comments>http://nicolas.vanwambeke.net/wp/2011/05/08/bonjourzeroconfrendezvousmdns-across-multiple-subnets/#comments</comments>
		<pubDate>Sun, 08 May 2011 08:04:28 +0000</pubDate>
		<dc:creator>nicolas</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[networking zeroconf]]></category>

		<guid isPermaLink="false">http://nicolas.vanwambeke.net/wp/?p=177</guid>
		<description><![CDATA[Avahi, Zeroconf, mDNS, Bonjour, whatever you want to call it, is great for dealing with service discovery on your LAN where all hosts are located in the same broadcast domain. Indeed, the zeroconf protocol relies heavily on multicast for advertising and discovering services.
Sometimes, however, it is not possible to have a flat configuration and you [...]]]></description>
			<content:encoded><![CDATA[<p>Avahi, Zeroconf, mDNS, Bonjour, whatever you want to call it, is great for dealing with service discovery on your LAN where all hosts are located in the same broadcast domain. Indeed, the zeroconf protocol relies heavily on multicast for advertising and discovering services.</p>
<p>Sometimes, however, it is not possible to have a flat configuration and you have built different subnets for administrative purposes. Still, you think it would be cool to have services advertised by machines on a given subnet, available to machines on any other subnet. </p>
<p>One way of dealing with this is to use multicast routing and have your interconnection equipment pass multicast traffic from one subnet to another around your organisation. The zeroconf protocol uses only a few group addresses so this is not a big hassle to implement. </p>
<p>However, routing multicast is not always possible. As crazy as it may seem, even in the 21st century, some routers or wireless access points don&#8217;t support multicast routing :( In this case, another solution that exists is the use of service proxies.</p>
<p>A zeroconf proxy is a server software that will advertise services which are not hosted on the same machine. In this way, you could have one machine on subnet 1 advertising all the services that are provided by machines on subnet 2 and vice-versa. </p>
<p>For OS X there is the excellent <a href="http://www.chaoticsoftware.com/ProductPages/NetworkBeacon.html">network beacon</a> from chaotic software available which should help you solve almost any problem with subnets and bonjour, zeroconf. </p>
<p>When it comes to linux, the avahi deamon is the way to go, twenty seconds, a simple file in /etc is all it takes to advertise a service.</p>
<p>On Windows on the other hand, the search can be quite longer. Indeed, you might find <a href="http://ileech.sourceforge.net/index.php?content=RendezvousProxy-Download">Rendezvous Proxy</a> from iLeech to be quite nice until you start playing with multi-field TXT records (for any elaborated service such as Airfoil Speakers for example). At that point you&#8217;ll find out it is broken and generates malformed packets so you&#8217;ll search a little more and eventually come across a google code project named <a href="http://code.google.com/p/bonjour-beacon/">Bonjour Beacon</a> and voilà, you&#8217;re all set!</p>
<p>To summarize a long post, bonjour, rendezvous, zeronconf, avahi, mDNS are the name of the protocol and the software implementations of it but they all do the same thing (and play nice with one another).</p>
<p>If you subnet, you can route multicast or use a proxy.</p>
<p>Good proxies are, avahi on Linux, <a href="http://code.google.com/p/bonjour-beacon/">Bonjour Beacon</a> on Windows and <a href="http://www.chaoticsoftware.com/ProductPages/NetworkBeacon.html">network beacon</a> on OS X.</p>
]]></content:encoded>
			<wfw:commentRss>http://nicolas.vanwambeke.net/wp/2011/05/08/bonjourzeroconfrendezvousmdns-across-multiple-subnets/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A clear view of the question: &#8220;why doesn&#8217;t Belgium have a government yet?&#8221;</title>
		<link>http://nicolas.vanwambeke.net/wp/2011/01/16/a-clear-view-of-the-question-why-doesnt-belgium-have-a-government-yet/</link>
		<comments>http://nicolas.vanwambeke.net/wp/2011/01/16/a-clear-view-of-the-question-why-doesnt-belgium-have-a-government-yet/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 22:01:55 +0000</pubDate>
		<dc:creator>nicolas</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://nicolas.vanwambeke.net/wp/?p=170</guid>
		<description><![CDATA[This is a great video, I&#8217;d be more than happy to be the &#8220;francophone&#8221; that M. Janssens refers to as his marching buddy. 

]]></description>
			<content:encoded><![CDATA[<p>This is a great video, I&#8217;d be more than happy to be the &#8220;francophone&#8221; that M. Janssens refers to as his marching buddy. </p>
<p><object width="430" height="365"><param name="movie" value="http://www.youtube.com/v/7RaJJCrIQLw?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7RaJJCrIQLw?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="430" height="365"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://nicolas.vanwambeke.net/wp/2011/01/16/a-clear-view-of-the-question-why-doesnt-belgium-have-a-government-yet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sharing a same disk image between various Xen domU virtual machines using aufs</title>
		<link>http://nicolas.vanwambeke.net/wp/2010/08/22/sharing-a-same-disk-image-between-various-virtual-machines-using-aufs/</link>
		<comments>http://nicolas.vanwambeke.net/wp/2010/08/22/sharing-a-same-disk-image-between-various-virtual-machines-using-aufs/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 11:31:20 +0000</pubDate>
		<dc:creator>nicolas</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[aufs]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://nicolas.vanwambeke.net/wp/?p=165</guid>
		<description><![CDATA[Xen virtualization can be a very effective method for large scale deployment of software agents in a virtualized network environment for testing applications&#8217; scalability.
The first step you&#8217;d go if you were in the process of massively generating Xen domU would be to create a master virtual disk image and xen config file. A script that [...]]]></description>
			<content:encoded><![CDATA[<p>Xen virtualization can be a very effective method for large scale deployment of software agents in a virtualized network environment for testing applications&#8217; scalability.</p>
<p>The first step you&#8217;d go if you were in the process of massively generating Xen domU would be to create a master virtual disk image and xen config file. A script that would clone this disk and configuration could then easily be written like this:<br />
- Copy configuration file and disk image to a specific directory<br />
- Edit configuration in order to adapt it to the new machines<br />
- Launch the newly created domU</p>
<p>However, this process is suboptimal in many ways. First, each of the virtual machines that you&#8217;ve created will be using a copy of the master Xen drive image so a change to the system (i.e. software or distribution upgrade) would need to be performed on each domU individually. Also, the disk space requirements for such a setup can quickly become quite high, indeed, each domU needs a copy of the master disk image (typical Ubuntu deboostrap is around 700Mb).</p>
<p>One solution would be to use the same image file for all of the domU disks. However, a system, upon boot, needs a disk to which it can write. This is where things like a ramdisk or a second (smaller) virtual disk come handy. Yes but, how can you tell the system to write to this ramdisk instead of the shared disk image? Well, this is where unionfs (or aufs) filesystems come in handy. With these file systems, you can actually make two different partitions appear as a single one to the kernel. </p>
<p>For example; setups like the following can be achieved:<br />
/dev/sda1 is 3Gb<br />
/dev/sda2 is 300Mb</p>
<p>You can actually make it so that / is the union of both filesystems. For example, if either /dev/sda1 or /dev/sda2 contain the file /etc/fstab, then the resulting aufs file system will contain /etc/fstab. Furthermore, you can set it so that /dev/sda1 is read only and /dev/sda2 is read write. The hierarchy of aufs allows you to make it so that, if a file from /dev/sda1 is modified, it is written to /dev/sda2 and if a file is present on /dev/sda2, it has priority over the same file on /dev/sda1.</p>
<p>Now, how do you set that up for / ? As you know, the root of your system can hardly be remounted while the system has been booted. The idea is thus to prepare it (having / composed of two overlaid filesystems, one read only, the other read write) before that happens in an initramfs.</p>
<p>What follows works for Ubuntu 10.04 using the 2.6.32-24 kernel (as the latest one does not include the aufs module). I suppose that you have already deboostrapped a lucid ubuntu into a loop mounted filesystem image, chroot to the directory you mounted the image and do the following:</p>
<p><code><br />
apt-get install aufs-tools<br />
echo aufs >> /etc/initramfs-tools/modules<br />
</code></p>
<p>Next, you&#8217;ll need to add the script that will create the aufs hierarchy as<br />
/etc/initramfs-tools/scripts/init-bottom/__rootaufs and chmod it as 755</p>
<p>This comes from <a href="https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash">the Ubuntu community wiki</a>, I&#8217;ve adapted the script a little so that the read write parition is /dev/sda2</p>
<p><code><br />
#  Copyright 2008 Nicholas A. Schembri State College PA USA<br />
#<br />
#  This program is free software: you can redistribute it and/or modify<br />
#  it under the terms of the GNU General Public License as published by<br />
#  the Free Software Foundation, either version 3 of the License, or<br />
#  (at your option) any later version.<br />
#<br />
#  This program is distributed in the hope that it will be useful,<br />
#  but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br />
#  GNU General Public License for more details.<br />
#<br />
#    You should have received a copy of the GNU General Public License<br />
#    along with this program.  If not, see<br />
#    <http://www.gnu.org/licenses/>.</p>
<p>case $1 in<br />
prereqs)<br />
    exit 0<br />
    ;;<br />
esac</p>
<p>export aufs</p>
<p>for x in $(cat /proc/cmdline); do<br />
    case $x in<br />
    root=*)<br />
        ROOTNAME=${x#root=}<br />
        ;;<br />
    aufs=*)<br />
        aufs=${x#aufs=}<br />
        case $aufs in<br />
        tmpfs-debug)<br />
            aufs=tmpfs<br />
            aufsdebug=1<br />
            ;;<br />
        esac<br />
        ;;<br />
    esac<br />
done</p>
<p>if [ "$aufs" != "tmpfs" ]; then<br />
    #not set in boot loader<br />
    #I'm not loved. good bye<br />
    exit 0<br />
fi</p>
<p>modprobe -q --use-blacklist aufs<br />
if [ $? -ne 0 ]; then<br />
    echo    root-aufs error:      Failed to load aufs.ko<br />
    exit 0<br />
fi</p>
<p>#make the mount points on the init root file system<br />
mkdir /aufs<br />
mkdir /rw<br />
mkdir /ro</p>
<p># mount the temp file system and move real root out of the way<br />
mount -t ext3 /dev/sda2 /rw<br />
mount --move ${rootmnt} /ro<br />
if [ $? -ne 0 ]; then<br />
    echo    root-aufs error:    ${rootmnt}  failed to move to /ro<br />
    exit 0<br />
fi</p>
<p>mount -t aufs -o dirs=/rw:/ro=ro aufs /aufs<br />
if [ $? -ne 0 ]; then<br />
    echo    root-aufs error:      Failed to mount /aufs files system<br />
    exit 0<br />
fi</p>
<p>#test for mount points on aufs file system<br />
[  -d /aufs/ro ] || mkdir /aufs/ro<br />
[  -d /aufs/rw ] || mkdir /aufs/rw</p>
<p># the real root file system is hidden on /ro of the init file system.  move it to /ro<br />
mount --move /ro /aufs/ro<br />
if [ $? -ne 0 ]; then<br />
    echo    root-aufs error:      Failed to move /ro /aufs/ro<br />
    exit 0<br />
fi</p>
<p># tmpfs file system is hidden on /rw<br />
mount --move /rw /aufs/rw<br />
if [ $? -ne 0 ]; then<br />
    echo    root-aufs error:      Failed to move /rw /aufs/rw<br />
    exit 0<br />
fi</p>
<p>cat <<EOF >/aufs/etc/fstab<br />
#  This fstab is in ram and the real fstab can be found /ro/etc/fstab<br />
#  the root file system ' / ' has been removed.<br />
#  All Swap files have been removed. </p>
<p>EOF</p>
<p>#remove root and swap from fstab<br />
cat /aufs/ro/etc/fstab|grep -v ' / ' | grep -v swap >>/aufs/etc/fstab<br />
if [ $? -ne 0 ]; then<br />
    echo    root-aufs error:      Failed to create /aufs/etc/fstab<br />
    #exit 0<br />
fi</p>
<p># add the read only file system to fstab<br />
ROOTTYPE=$(cat /proc/mounts|grep ${ROOT}|cut -d' ' -f3)<br />
ROOTOPTIONS=$(cat /proc/mounts|grep ${ROOT}|cut -d' ' -f4)<br />
echo ${ROOT} /ro $ROOTTYPE $ROOTOPTIONS 0 0 >>/aufs/etc/fstab</p>
<p># S22mount on debian systems is not mounting  /ro correctly after boot<br />
# add to rc.local to correct what you see from df<br />
#replace last case of exit with #exit<br />
cat /aufs/ro/etc/rc.local|sed 's/\(.*\)exit/\1\#exit/' >/aufs/etc/rc.local<br />
echo mount -f  /ro >>/aufs/etc/rc.local </p>
<p># add back the root file system. mtab seems to be created by one of the init proceses.<br />
echo "echo aufs / aufs rw,xino=/rw/.aufs.xino,br:/rw=rw:/ro=ro 0 0 >>/etc/mtab" >>/aufs/etc/rc.local<br />
echo "echo aufs-tmpfs /rw tmpfs rw 0 0 >>/etc/mtab" >>/aufs/etc/rc.local<br />
echo exit 0 >>/aufs/etc/rc.local </p>
<p>mount --move /aufs ${rootmnt}<br />
exit 0<br />
</code></p>
<p>Once this is done, update the initramfs using:<br />
<code>update-initramfs -u</code></p>
<p>Exit the chroot and copy the newly generated initrd as well as the corresponding kernel outside the chroot (so you can have it available to xen on its filesystem).</p>
<p>Now, in the xenconfig for the domU you generate, you&#8217;ll need to pass aufs=tmpfs on the kernel line and reference the initrd that you copied out of the chroot. Be sure that the domU has two disks, sda1 (read-only) pointing to the disk image that will be shared by all, and sda2 which is a small (100Mb ?) disk image to which changes will be written. Also, you&#8217;ll want sda1 to be attached read-only to the machine so it can be attached to several domU simultaneously.</p>
<p>Depending on the number of machine instances you want, you&#8217;ll also want to increase the maximum number of loop mounted file systems on the host, this can be done by editing /etc/modules and adding options loop max_loop=64 (or any other value you like). Be sure to rmmod and modprobe loop again or reboot the host so the change is effective.</p>
<p>There you go, you should now have multiple domU virtual machines as Xen guests fully functional but sharing the same core disk image. Also, you might want to have IP addresses distributed by a dhcp server in a coherent way by generating the MAC address of the domU config file, the machine hostname can easily be customized by a kernel parameter that you add (following the aufs=tmpfs parameter) and as you certainly might want to have an ssh server running on each host, be sure that you remove the ssh host keys and add a dpkg-reconfigure openssh-server at the end of /etc/rc.local so they are generated on first boot (they&#8217;ll be stored on the read write partition).</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://nicolas.vanwambeke.net/wp/2010/08/22/sharing-a-same-disk-image-between-various-virtual-machines-using-aufs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing the timezone of cacti graphs using rrdtool</title>
		<link>http://nicolas.vanwambeke.net/wp/2010/04/06/changing-the-timezone-of-cacti-graphs-using-rrdtool/</link>
		<comments>http://nicolas.vanwambeke.net/wp/2010/04/06/changing-the-timezone-of-cacti-graphs-using-rrdtool/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 18:58:29 +0000</pubDate>
		<dc:creator>nicolas</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[cacti]]></category>
		<category><![CDATA[rrdtool]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://nicolas.vanwambeke.net/wp/?p=152</guid>
		<description><![CDATA[I&#8217;ve recently come accross an interesting problem while trying to use a cacti install running on a server located in Europe in order to monitor, generate and export statistics to be read by people in Central America. Indeed, the generated graphs indicated CET time while the people for whom the graphs were interested expected UTC-6 [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently come accross an interesting problem while trying to use a cacti install running on a server located in Europe in order to monitor, generate and export statistics to be read by people in Central America. Indeed, the generated graphs indicated CET time while the people for whom the graphs were interested expected UTC-6 time.</p>
<p>While there has been a support request in cacti for this particular feature and I&#8217;ve come across a patch for 0.8.6 on cacti forums, I haven&#8217;t found a solution that is integrated into cacti. So I went for an external graph generation script.</p>
<p>Cacti generates graphs by invoking rrdtool which <a href="http://www.vandenbogaerdt.nl/rrdtool/timezone.php">itself</a> relies on the value of the TZ environment variable to determine the offset that it must apply to variables stored inside the database. Indeed, the time stored in an rrd is UTC by default and an offset is applied during graph generation in order to transpose this to any local time according to the value of the TZ variable.</p>
<p>The script I&#8217;ve created simply uses the command line I got from cacti by turning graph debugging on in the graph management for the particular graph I wanted to export.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 245px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">TZ=&#8221;America/El_Salvador&#8221; /usr/bin/rrdtool graph &#8211; &#8211;imgformat=PNG &#8211;start=-86400 &#8211;end=-300 &#8211;title=&#8221;Radio Clasica&#8221; &#8211;base=1000 &#8211;height=120 &#8211;width=500 &#8211;alt-autoscale-max &#8211;lower-limit=0 &#8211;vertical-label=&#8221;" &#8211;slope-mode &#8211;font TITLE:12: &#8211;font AXIS:8: &#8211;font LEGEND:10: &#8211;font UNIT:8: DEF:a=&#8221;/var/lib/cacti/rra/paris_clasica_91.rrd&#8221;:clasica:AVERAGE AREA:a#AFECEDFF:&#8221;" &gt; clasica_1.png</div>
<pre>TZ="America/El_Salvador" /usr/bin/rrdtool graph -
--imgformat=PNG --start=-86400 --end=-300
--title="My graph title" --base=1000 --height=120
--width=500 --alt-autoscale-max --lower-limit=0
--vertical-label="" --slope-mode --font TITLE:12:
--font AXIS:8: --font LEGEND:10: --font UNIT:8:
DEF:a="/var/lib/cacti/rra/my_file.rrd":somefield:AVERAGE
AREA:a#AFECEDFF:"" &gt; somefield_1.png</pre>
<p>The TZ=&#8221;America/El_Salvador&#8221; part of the command line redefines the value of the TZ environment variable before executing rrdtool. This modification is only local to the process from which rrdtool is launched and does not affect the current shell. The TZ variable is part of the zoneinfo package, the full list of possible values for this variable can be found under the /usr/share/zoneinfo directory of any linux machine.</p>
<div>Notice the &#8211;start=-86400 &#8211;end=-300 part in the above command, these indicate respectively the start and end time for the graph to be generated. The values above correspond to a full 24 hours (the day view in cacti). For the week, month and year view, the values are as follows:</div>
<pre>--start=-604800 --end=-1800
--start=-2678400  --end=-7200
--start=-33053184  --end=-86400</pre>
<div>The last step for me was to add this to crontab, I&#8217;ve created a file in /etc/cron.d which I named graphExport with the following contents:</div>
<div>
<pre>MAILTO=myusername
*/5 * * * * www-data /path/to/myscript.sh &gt;/dev/null 2&gt;&amp;1</pre>
</div>
<div>www-data is the user who owns the rrd that is used for generating the graphs by myscript.sh.</div>
<div></div>
<p>Using this trick, I can now generate graphs that make sense to the people they&#8217;re intended for without asking them to perform the conversion from UTC by themselves.</p>
]]></content:encoded>
			<wfw:commentRss>http://nicolas.vanwambeke.net/wp/2010/04/06/changing-the-timezone-of-cacti-graphs-using-rrdtool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 10.04 Lucid Lynx Beta 2 on April 8th</title>
		<link>http://nicolas.vanwambeke.net/wp/2010/04/03/ubuntu-10-04-lucid-lynx-beta-2-on-april-8th/</link>
		<comments>http://nicolas.vanwambeke.net/wp/2010/04/03/ubuntu-10-04-lucid-lynx-beta-2-on-april-8th/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 08:48:55 +0000</pubDate>
		<dc:creator>nicolas</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://nicolas.vanwambeke.net/wp/?p=147</guid>
		<description><![CDATA[The next ubuntu release, 10.04 is planned to be released on April 29th 2010. While the date is closing by rapidly, the development process is right on its track.
With a first beta release mid-March which allowed to spot some nasty bugs of all kind, the community is now working towards a second beta. Beta 2 [...]]]></description>
			<content:encoded><![CDATA[<p>The next ubuntu release, 10.04 is planned to be released on April 29th 2010. While the date is closing by rapidly, the development process is right on its track.</p>
<p>With a first beta release mid-March which allowed to spot some nasty bugs of all kind, the community is now working towards a second beta. Beta 2 is already past &#8220;freeze&#8221;, the point at which any additional change to the core packages of the distribution is subject to a process known as &#8220;freeze exception&#8221; for which good motivations must exist and thorough review is performed  by the release managers to make sure nothing that works is affected by the proposed change.</p>
<p>Needless to say, Lucid Lynx beta 2 will be a much more stable version with many bugfixes when its released on April 8th.</p>
<p>Areas in which you can still help at this points are:</p>
<ul>
<li>installing beta 2 and reporting bugs which are not yet reported or adding information to the existing report that might help track it down</li>
<li>participating in the translation process through the translators groups until April 22nd.</li>
</ul>
<p>The next step is to get a release candidate version on the 22nd for a final release of Lucid Lynx 10.04 LTS on April 29th! Get involved!</p>
]]></content:encoded>
			<wfw:commentRss>http://nicolas.vanwambeke.net/wp/2010/04/03/ubuntu-10-04-lucid-lynx-beta-2-on-april-8th/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 10.04 &#8211; LL for Lucid Lynx</title>
		<link>http://nicolas.vanwambeke.net/wp/2009/09/24/ubuntu-1004-ll-for-lucid-lynx/</link>
		<comments>http://nicolas.vanwambeke.net/wp/2009/09/24/ubuntu-1004-ll-for-lucid-lynx/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 10:12:09 +0000</pubDate>
		<dc:creator>nicolas</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://nicolas.vanwambeke.net/wp/?p=12</guid>
		<description><![CDATA[Mark Shuttleworth made the announcement a few days ago already that the next Ubuntu version will be named Lucid Lynx. It&#8217;s going to be an LTS which will superseed to the Hardy Heron and there will be a direct upgrade path from 8.04 as there always is between LTS releases. Lucid Lynx development will begin [...]]]></description>
			<content:encoded><![CDATA[<p>Mark Shuttleworth made the announcement a few days ago already that the next Ubuntu version will be named Lucid Lynx. It&#8217;s going to be an LTS which will superseed to the Hardy Heron and there will be a direct upgrade path from 8.04 as there always is between LTS releases. Lucid Lynx development will begin in November 2009 and the release is due in April 2010. However, Hardy will be supported through 2011 to allow for organization to upgrade in a smooth fashion!</p>
<p>Below is a video of Mark Shuttleworth who was in Atlanta at the time announcing, among other things, the codename and release goals.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/l02bhwofEqw&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=fr&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/l02bhwofEqw&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=fr&amp;feature=player_embedded&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>As always with Ubuntu, things such as codename and release goals are defined by the community through discussion and white papers. All of this takes places between Launchpad.net, IRC and mailing lists as well as some quality websites, blogs and the community wiki.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://nicolas.vanwambeke.net/wp/2009/09/24/ubuntu-1004-ll-for-lucid-lynx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Terminator: The revolutionary terminal</title>
		<link>http://nicolas.vanwambeke.net/wp/2009/09/23/terminator-the-revolutionary-terminal/</link>
		<comments>http://nicolas.vanwambeke.net/wp/2009/09/23/terminator-the-revolutionary-terminal/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 17:51:44 +0000</pubDate>
		<dc:creator>nicolas</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://nicolas.vanwambeke.net/wp/?p=11</guid>
		<description><![CDATA[When doing stuff on the console, I often find it tremendously useful to have multiple terminals open. In the old days, I used to log in several times in tty1 through tty4. This way, I could have BitchX and later irssi in one terminal, have my SSH session running in another terminal while still having [...]]]></description>
			<content:encoded><![CDATA[<p>When doing stuff on the console, I often find it tremendously useful to have multiple terminals open. In the old days, I used to log in several times in tty1 through tty4. This way, I could have BitchX and later irssi in one terminal, have my SSH session running in another terminal while still having a quick hand on the local machine. After this came <em>screen</em> which revolutionized the multi-terminal world by allowing the same schemas (BitchX, remote, local&#8230;) to be implemented on remote machines and detached so you could keep your sessions alive even while you&#8217;re not connected.</p>
<p>In the world of X and graphical frontends, terminals are still very useful. I&#8217;m having a hard time thinking of a day during the past year in which I didn&#8217;t fire one up for some task or the other. I often found myself with many terminals windows open at the same time which quickly became quite hard to manage. Luckily enough, I came across Terminator, a small utility that made my life alot easier.</p>
<p><img class="alignleft size-full wp-image-79" title="terminator" src="http://nicolas.vanwambeke.net/wp/wp-content/uploads/2009/10/terminator.png" alt="terminator" width="250" height="177" />Terminator is a gnome app which is an extension of the gnome-terminal application in order to integrate features that screen has. You start with a plain terminal, when you need another one, you go for a quick CTRL+SHIFT+o or CTRL+SHIFT+e to split it in half either horizontally or vertically. After opening a few you navigate between them by using CTRL+SHIFT+p and CTRL+SHIFT+n for respectively going to the <em>previous</em> and <em>next</em> one. Should you need extra space for a few moments to focus on something, you can expand the current terminal so it occupies the whole window by simply doing a CTRL+SHIFT+x, and there is a ton of other great features which I use less often.</p>
<p>Terminator can be installed by a simple apt-get install terminator in both debian and ubuntu ;) That rocks.</p>
<p>The official homepage can be found here: <a hreflang="en" href="http://www.tenshu.net/terminator/"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://nicolas.vanwambeke.net/wp/2009/09/23/terminator-the-revolutionary-terminal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cities I&#8217;ve Visited Application on Facebook</title>
		<link>http://nicolas.vanwambeke.net/wp/2009/09/22/cities-i-ve-visited-application-on-facebook/</link>
		<comments>http://nicolas.vanwambeke.net/wp/2009/09/22/cities-i-ve-visited-application-on-facebook/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 21:18:33 +0000</pubDate>
		<dc:creator>nicolas</dc:creator>
				<category><![CDATA[Tourism]]></category>

		<guid isPermaLink="false">http://nicolas.vanwambeke.net/wp/?p=32</guid>
		<description><![CDATA[I&#8217;ve recently come across this neath application on Facebook, it&#8217;s called Cities I&#8217;ve Visited. Indeed; I&#8217;ve traveled quite a bit during the last few years for work and it would have been great to have something like that back then.
 Not only does the application allow you to pinpoint the places where you&#8217;ve been and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently come across this neath application on Facebook, it&#8217;s called Cities I&#8217;ve Visited. Indeed; I&#8217;ve traveled quite a bit during the last few years for work and it would have been great to have something like that back then.</p>
<p><img style="float:left; margin: 0 1em 1em 0;" src="http://www.tripadvisor.com/CommunityMapImage?id=13155310&amp;type=TRIPADVISOR&amp;size=LARGE" alt="My Map" /> Not only does the application allow you to pinpoint the places where you&#8217;ve been and hence about which you&#8217;d be able to give advice to your friends, it also allows you to let people know of your upcoming trips, find friends who&#8217;ve already been there in order to get tips. Really nice ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://nicolas.vanwambeke.net/wp/2009/09/22/cities-i-ve-visited-application-on-facebook/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>French people generally &#8220;try to speak englisch&#8221;!</title>
		<link>http://nicolas.vanwambeke.net/wp/2009/06/14/french-people-generally-try-to-speak-englisch/</link>
		<comments>http://nicolas.vanwambeke.net/wp/2009/06/14/french-people-generally-try-to-speak-englisch/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 12:45:49 +0000</pubDate>
		<dc:creator>nicolas</dc:creator>
				<category><![CDATA[Tourism]]></category>

		<guid isPermaLink="false">http://nicolas.vanwambeke.net/wp/?p=6</guid>
		<description><![CDATA[
Traveling around the Toulouse region, in a path directed by hunger and satisfaction, I came across the most sincere door label I&#8217;d ever seen :)
The sign is displayed on the door to a &#8220;boulangerie&#8221; (bakery) and obviously is a call for the hungry tourist to come in and enjoy the region&#8217;s specialty. Although you can [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-94" title="102_4222" src="http://nicolas.vanwambeke.net/wp/wp-content/uploads/2009/06/102_4222.JPG" alt="102_4222" width="200" height="80" /></p>
<p>Traveling around the Toulouse region, in a path directed by hunger and satisfaction, I came across the most sincere door label I&#8217;d ever seen :)</p>
<p>The sign is displayed on the door to a &#8220;boulangerie&#8221; (bakery) and obviously is a call for the hungry tourist to come in and enjoy the region&#8217;s specialty. Although you can also find &#8220;calissons&#8221; which are not specially typical of the region in there too.</p>
<p>Anyway, I think the sing says it all.</p>
]]></content:encoded>
			<wfw:commentRss>http://nicolas.vanwambeke.net/wp/2009/06/14/french-people-generally-try-to-speak-englisch/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Trac : A great project management tool !</title>
		<link>http://nicolas.vanwambeke.net/wp/2009/06/14/trac-a-great-project-management-tool/</link>
		<comments>http://nicolas.vanwambeke.net/wp/2009/06/14/trac-a-great-project-management-tool/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 12:08:55 +0000</pubDate>
		<dc:creator>nicolas</dc:creator>
				<category><![CDATA[Java & Eclipse]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://nicolas.vanwambeke.net/wp/?p=15</guid>
		<description><![CDATA[<p><img src="/dotclear/images/trac_logo.png" alt="Trac Logo" style="float:left; margin: 0 1em 1em 0;" /> @Work, I've worked on several software projects. First, I was a plain programmer not caring for the "where are we now?" question but rater quickly, I was assigned managerial responsibilities and the only thing that I had on my mind was "where are we now!?". I've found <a href="http://trac.edgewall.org/">the Trac project</a> to be just what I needed in order to successfully calm my stress by providing a constant answer to the big question.</p>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-80" title="trac_logo" src="http://nicolas.vanwambeke.net/wp/wp-content/uploads/2009/10/trac_logo.png" alt="trac_logo" width="214" height="61" /></p>
<p>@Work, I&#8217;ve worked on several software projects. First, I was a plain programmer not caring for the &#8220;where are we now?&#8221; question but rater quickly, I was assigned managerial responsibilities and the only thing that I had on my mind was &#8220;where are we now!?&#8221;. I&#8217;ve found <a href="http://trac.edgewall.org/">the Trac project</a> to be just what I needed in order to successfully calm my stress by providing a constant answer to the big question.</p>
<p><span id="more-15"></span></p>
<p>Trac is a great peace of software that allows you to keep track of everything that&#8217;s going on with your software project. More than a simple Bugzilla which only tracks bugs, the Trac project also allows you to manage things such as documentation, tasks, milestones, bugs, source code, &#8230;</p>
<p>Installing Trac on a linux server is quite straightforward, packages exist for most of the major linux distributions out there. On Ubuntu, a simple apt-get install trac does the trick. If you use version control on your project, you&#8217;ll be happy to know that trac supports almost all the tools out there such as CVS and SVN if you evolve in the entreprise world as I do, or Mercurial, git and Bazaar through plugins for those who don&#8217;t have the central repository constraint.</p>
<p>Once installed and linked to your version control system, you can start using Trac. As an administrator, you&#8217;ll want to give your users some rights and restrict some usages (maybe you don&#8217;t want everyone to be able to edit the wiki documentation). Also, an important aspect is that you&#8217;ll want to define some milestones for your project. Once you&#8217;re done doing that, you can start using the most powerful aspect of Trac, the tickets.</p>
<p>Tickets are an abstract representation of the task concept, a ticket can be about a bug, a feature request, a discussion on the evolution of the software, &#8230; Tickets can be assigned to the milestones you previously defined and when that&#8217;s done, the meaning of a ticket becomes: if it&#8217;s open then it represents an &#8220;issue&#8221; that has to be addressed before the milestone to which it is attached, otherwise, if it&#8217;s closed, it belongs to the past.</p>
<p>One of the powerful features of Trac is the ability to link commit messages to tickets using post-commit-hooks (very easy to setup using SubVersion for example). This allows for changes made to the source code to be referenced from the ticket that describes the problem that they address and vice-versa. This feature is great for the developers working on the source so they can be aware of previous changes made towards solving an issue of improving an aspect of the software.</p>
<p>For the manager, Trac is great as it will show changes as they are made and summarize what&#8217;s left to be done in order to reach this or that milestone. For the developer, this aspect is also great as it provides a constant answer to the questions &#8220;where are we now? what&#8217;s to be done next?&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://nicolas.vanwambeke.net/wp/2009/06/14/trac-a-great-project-management-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

