<?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>The Exploits of Plouj &#187; plouj</title>
	<atom:link href="http://www.plouj.com/blog/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.plouj.com/blog</link>
	<description>A blog by Michael Ploujnikov</description>
	<lastBuildDate>Tue, 01 Feb 2011 13:55:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Usage Based Billing Sucks</title>
		<link>http://www.plouj.com/blog/2011/01/31/usage-based-billing-sucks/</link>
		<comments>http://www.plouj.com/blog/2011/01/31/usage-based-billing-sucks/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 23:56:28 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[activism]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[billing]]></category>
		<category><![CDATA[crtc]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[grandfather]]></category>
		<category><![CDATA[habits]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[isp]]></category>
		<category><![CDATA[law]]></category>
		<category><![CDATA[limit]]></category>
		<category><![CDATA[monopoly]]></category>
		<category><![CDATA[necessity]]></category>
		<category><![CDATA[netflix]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[ridiculous]]></category>
		<category><![CDATA[ubb]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=490</guid>
		<description><![CDATA[I use about 160GB/month of bandwidth on my home Internet connection (3 month average). With Usage Based Billing I will have no choice but to dramatically change my and my family&#8217;s habits (stop watching Netflix, play less COD and forget about using online backup services) or pay about $19 extra to avoid paying the ridiculous [...]]]></description>
			<content:encoded><![CDATA[<p>I use about 160GB/month of bandwidth on my home Internet connection (3 month average). With <a href="http://teksavvy.com/en/faq-ubb_on.asp">Usage Based Billing</a> I will have no choice but to dramatically change my and my family&#8217;s habits (stop watching <a href="http://www.netflix.ca/">Netflix</a>, play less <a href="http://en.wikipedia.org/wiki/Call_of_Duty">COD</a> and forget about using <a href="http://wiki.dreamhost.com/Personal_Backup">online backup services</a>) or pay about $19 extra to avoid paying the <a href="http://arstechnica.com/tech-policy/news/2011/01/canada-gets-first-bitter-dose-of-metered-internet-billing.ars">ridiculous $2/GB fee</a>.</p>
<p>If I signed up for Teksavvy 8 months earlier then the grandfather clause would apply and I could keep using the non-UBB plan.</p>
<p><a href="http://stopthemeter.ca"><img src="http://farm5.static.flickr.com/4149/5190640753_71847619ec_m.jpg" alt="Stand up for the Internet! Sign the petition"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2011/01/31/usage-based-billing-sucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sintel</title>
		<link>http://www.plouj.com/blog/2010/11/06/sintel/</link>
		<comments>http://www.plouj.com/blog/2010/11/06/sintel/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 03:18:47 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[indie]]></category>
		<category><![CDATA[movie]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[shortfilm]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=445</guid>
		<description><![CDATA[Today I&#8217;ve finally received the Sintel movie package in the mail:]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;ve finally received the <a href="http://www.sintel.org/news/dvds-arrived-and-packed-for-shipping/">Sintel movie package</a> in the mail:<a href="http://www.plouj.com/blog/wp-content/uploads/2010/08/sintel.jpg"><img src="http://www.plouj.com/blog/wp-content/uploads/2010/08/sintel-300x225.jpg" alt="" title="sintel" width="300" height="225" class="alignnone size-medium wp-image-488" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2010/11/06/sintel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why did I get addicted to Demon&#8217;s Souls?</title>
		<link>http://www.plouj.com/blog/2010/08/19/why-did-i-get-addicted-to-demons-souls/</link>
		<comments>http://www.plouj.com/blog/2010/08/19/why-did-i-get-addicted-to-demons-souls/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 18:17:59 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[addiction]]></category>
		<category><![CDATA[castle]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[demons]]></category>
		<category><![CDATA[difficult]]></category>
		<category><![CDATA[fantasy]]></category>
		<category><![CDATA[fight]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[knight]]></category>
		<category><![CDATA[medieval]]></category>
		<category><![CDATA[nostalgia]]></category>
		<category><![CDATA[ps3]]></category>
		<category><![CDATA[souls]]></category>
		<category><![CDATA[unexpected]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=443</guid>
		<description><![CDATA[The first time I heard of Deamon&#8217;s Souls game for PS3 was when my co-workers made a joke about the tongue-twister pronunciation of its name: &#8220;Demonses Soulses&#8221;. Other than that, I got the impression that the game had some unique ideas (eg: other players playing the same level showing up as ghosts in real time) [...]]]></description>
			<content:encoded><![CDATA[<p>The first time I heard of <a href="http://www.amazon.ca/gp/product/B002AB7TX8?ie=UTF8&#038;tag=plouj-20&#038;linkCode=as2&#038;camp=15121&#038;creative=330641&#038;creativeASIN=B002AB7TX8">Deamon&#8217;s Souls game for PS3</a><img src="http://www.assoc-amazon.ca/e/ir?t=plouj-20&#038;l=as2&#038;o=15&#038;a=B002AB7TX8" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> was when my co-workers made a joke about the tongue-twister pronunciation of its name: <em>&#8220;Demonses Soulses&#8221;</em>. Other than that, I got the impression that the game had some unique ideas (eg: other players playing the same level showing up as ghosts in real time) and an high difficulty level &#8211; my co-worker hasn&#8217;t beaten the first level before he had to return the rental. Overall, I had pretty low expectations when another friend lent it to me among a stack of other of PS3 games. In fact, I even left playing Demon&#8217;s Souls to the very end, when the other games failed to keep me entertained and the weekend was coming to an end. All that to say, as you can guess from the title, that I ended up getting hooked on this game. I played almost non-stop for 7 hours straight (it was not fun waking up for work early next morning). Since then, I haven&#8217;t had more time to play the game, but I did brainstorm various reasons why I couldn&#8217;t put the controller down. Here is the list I came up with:</p>
<ul>
<li>As the <a href="http://www.gamespot.com/ps3/rpg/demonssoul/review.html">Gamespot review</a> alludes, the fighting mechanics start out simple and smooth, but soon reveal a more complex and rewarding quality. Combat got more and more fun as I learned various tricks and became more proficient at it.</li>
<li>Multiple, intertwined paths through a hand-crafted world</li>
<li>Magnificent views from the tall points in the castle</li>
<li>The ability to retrieve dropped souls at the place of death appealed to greed for more game points and provided a reason to continue playing even after dying numerous times, sometimes even on the way to collect the souls.</li>
<li>Various parts of the game reminded me of other video games I&#8217;ve played:
<ul>
<li>The first thing that popped out to me during the tutorial was the foggy mountain range in the background. It portrayed the same lonely feeling as the <a href="http://toastytech.com/dooma/miscdoom.html">Phobos skyline</a> in Doom 1.</li>
<li>The Boletarian castle with its colour schemes, ambient sounds and zombie-looking bad guys looked like it could be one of the medieval themed Quake 1 levels. The Nexus hub was a more complex version of entrance map in Quake. The <a href="http://demonssouls.wikidot.com/walk1-1-boss">Phalanx</a> enemies were similar to the <a href="http://quake.wikia.com/wiki/Spawn">Spawn</a>.</li>
<li>The only other game I know with an equally unforgiving set of enemies right from the start is <a href="http://www.adventureclassicgaming.com/index.php/site/reviews/44/">Ecstatica</a>.</li>
<li><a href="http://en.wikipedia.org/wiki/The_Elder_Scrolls_IV:_Oblivion">Oblivion</a> was my previous experience playing in a non-linear fantasy world with real-time melee fighting.</li>
<li>The meele fighting on its own reminded me of games like <a href="http://en.wikipedia.org/wiki/Rune_%28video_game%29">Rune</a> and <a href="http://chaos.beyondunreal.com/">ChaosUT2 Duel</a>.</li>
</ul>
</li>
<li>Lastly, I could play as a knight in shining armour!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2010/08/19/why-did-i-get-addicted-to-demons-souls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Concurrency in Practice</title>
		<link>http://www.plouj.com/blog/2010/08/05/java-concurrency-in-practice/</link>
		<comments>http://www.plouj.com/blog/2010/08/05/java-concurrency-in-practice/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 01:54:15 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[concurrency]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[practice]]></category>
		<category><![CDATA[stm]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=428</guid>
		<description><![CDATA[Since I&#8217;m doing quite a bit of Java programming lately I&#8217;ve become curious about the state of writing concurrent code in it. I was fortunate enough to have a colleague let me borrow the following book: Having gone through more than half of it already I&#8217;m rather surprised as to just how many different tools [...]]]></description>
			<content:encoded><![CDATA[<p>Since I&#8217;m doing quite a bit of Java programming lately I&#8217;ve become curious about the state of writing concurrent code in it. I was fortunate enough to have a colleague let me borrow the following book:</p>
<p><a href="http://www.amazon.ca/gp/product/0321349601?ie=UTF8&#038;tag=plouj-20&#038;linkCode=as2&#038;camp=15121&#038;creative=330641&#038;creativeASIN=0321349601"><img border="0" src="/amazon/51AG8p4X7WL._SL160_.jpg" alt="Java Concurrency in Practice" /></a><img src="http://www.assoc-amazon.ca/e/ir?t=plouj-20&#038;l=as2&#038;o=15&#038;a=0321349601" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p>Having gone through more than half of it already I&#8217;m rather surprised as to just how many different tools are available for solving concurrent problems and just how many are a instantly available to Java programmers. Unfortunately, and unsurprisingly, none of these tools in and of themselves are adequate enough for avoiding deadlocks and writing <a href="http://en.wikipedia.org/wiki/Software_transactional_memory#Composable_operations">composable</a> deadlock free code. My next step in the search for that silver bullet is to try writing something interesting in <a href="http://clojure.org/">Clojure</a> or <a href="http://www.haskell.org/">Haskell</a> using <a href="http://en.wikipedia.org/wiki/Software_transactional_memory">STM</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2010/08/05/java-concurrency-in-practice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OANDA</title>
		<link>http://www.plouj.com/blog/2009/12/09/oanda/</link>
		<comments>http://www.plouj.com/blog/2009/12/09/oanda/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 15:00:52 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[career]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[jobsearch]]></category>
		<category><![CDATA[OANDA]]></category>
		<category><![CDATA[permanent]]></category>
		<category><![CDATA[start]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=425</guid>
		<description><![CDATA[Well, after about 3 months of almost full-time job searching I&#8217;ve finally gotten a new permanent job. Today is my first day as a Developer at OANDA.]]></description>
			<content:encoded><![CDATA[<p>Well, after about 3 months of almost full-time job searching I&#8217;ve finally gotten a new permanent job. Today is my first day as a Developer at <a href="http://www.oanda.com/">OANDA</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2009/12/09/oanda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Earth trip video capture in GNU/Linux with Yukon/Seom</title>
		<link>http://www.plouj.com/blog/2009/07/15/google-earth-trip-video-capture-in-gnulinux-with-yukonseom/</link>
		<comments>http://www.plouj.com/blog/2009/07/15/google-earth-trip-video-capture-in-gnulinux-with-yukonseom/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 17:21:55 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[capture]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[googleearth]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[seom]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[yukon]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=385</guid>
		<description><![CDATA[This is documentation of how I used Yukon and Seom to video capture a Google Earth trip for a recent video project in Fedora 10. I used the official installation guide as a starting point. Compile the Seom library I choose to install both Seom and Yukon in a custom prefix /home/plouj/yukon, rather than the [...]]]></description>
			<content:encoded><![CDATA[<p>This is documentation of how I used <a href="https://devel.neopsis.com/projects/yukon/">Yukon and Seom</a> to video capture a <a href="http://earth.google.com/">Google Earth</a> <a href="http://earth.google.com/tour.html#v=4">trip</a> for a recent video project in <a href="http://fedoraproject.org/">Fedora</a> 10. I used the <a href="https://devel.neopsis.com/projects/yukon/wiki/HowTo/Install">official installation guide</a> as a starting point.</p>
<h2>Compile the Seom library</h2>
<p>I choose to install both Seom and Yukon in a custom prefix <em>/home/plouj/yukon</em>, rather than the system wide <em>/usr</em> or <em>/usr/local</em>.</p>
<pre>
$ svn co https://devel.neopsis.com/svn/seom/branches/packetized-stream seom
$ cd seom
$ ./configure --prefix=/home/plouj/yukon --arch="x86" --cflags="-W -Wall" &#038;&#038; \
make CC="gcc -m32" &#038;&#038; make install LIBDIR="lib"
</pre>
<p>Note that &#8220;&#8211;arch=&#8221;x86&#8243; and &#8220;-m32&#8243; are only necessary for me because my operating system is 64bit and I need 32bit versions of seom and yukon (to work with 32bit Google Earth).</p>
<h2>Compile and install Yukon</h2>
<pre>
$ svn co https://devel.neopsis.com/svn/yukon/branches/rewrite yukon
$ cd yukon
$ ./configure --prefix=/home/plouj/yukon/ --libdir="lib" --arch="x86" &#038;&#038; \
make CC="gcc -L/home/plouj/yukon/lib -I/home/plouj/yukon/include -m32" &#038;&#038; \
make install
</pre>
<h2>Install Google Earth for Linux</h2>
<p>Obviously get it here: <a href="http://earth.google.com/">http://earth.google.com/</a></p>
<h2>Modify the Google Earth startup script</h2>
<p>Since I chose <em>/home/plouj/bin/</em> as the &#8220;Binary path&#8221; for Google Earth I was editing <em>/home/plouj/bin/googleearth</em>. All I had to do was to add yukon/seom library and executable paths at the end of the script:</p>
<pre>
...
cd "${GOOGLEEARTH_DATA_PATH}/"
LD_LIBRARY_PATH=/home/plouj/yukon/lib/:$LD_LIBRARY_PATH \
PATH=/home/plouj/yukon/bin:$PATH exec yukon "./googleearth-bin" "$@"
</pre>
<p>instead of the original:</p>
<pre>
cd "${GOOGLEEARTH_DATA_PATH}/"
exec "./googleearth-bin" "$@"
</pre>
<h2>Capture</h2>
<p>Finally, the <a href="https://devel.neopsis.com/projects/yukon/wiki/HowTo/Capture">capture</a> process is well documented on the Yukon website.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2009/07/15/google-earth-trip-video-capture-in-gnulinux-with-yukonseom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO increase Blender&#8217;s memory cache limit for command line renders</title>
		<link>http://www.plouj.com/blog/2009/06/08/howto-increase-blenders-memory-cache-for-command-line-renders/</link>
		<comments>http://www.plouj.com/blog/2009/06/08/howto-increase-blenders-memory-cache-for-command-line-renders/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 03:23:37 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[command-line]]></category>
		<category><![CDATA[commit]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[render]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=308</guid>
		<description><![CDATA[Blender sequencer gives the ability to optimize rendering of repeated frames by keeping the first result in memory cache and re-using it. Depending on the project, it might be necessary to increase this limit beyond the default 32MB. If the limit is surpassed while rendering a single frame, Blender clears the cache before proceeding to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.blender.org/">Blender</a> sequencer gives the ability to optimize rendering of repeated frames by keeping the first result in memory cache and re-using it. Depending on the project, it might be necessary to increase this limit beyond the default 32MB. If the limit is surpassed while rendering a single frame, Blender clears the cache before proceeding to the next frame and the re-renders everything from scratch.</p>
<p>Increasing the cache limit is easy to do in the UI:<br />
<img class="alignnone size-full wp-image-315" title="blender-cache-limit" src="http://www.plouj.com/blog/wp-content/uploads/2009/06/blender-cache-limit.png" alt="blender-cache-limit"/><br />
This setting is stored in the user&#8217;s preference file (<em>~/.B.blend</em> on Linux systems) and, therefore, applies to all projects. However, rendering from the command line requires using the <a href="http://wiki.blender.org/index.php/Doc:Manual/Render/Command_Line_Options">-b argument</a>, which explicitly ignores the user&#8217;s preference file. Apart from editing and re-compiling the Blender source code, I found only one way to increase the memory cache limit.</p>
<p>The trick is to use a Python script, like below, to change the user preferences before rendering the scene:</p>
<pre>import sys
import bpy

def main():
	bpy.config.sequenceMemCacheLimit=4096

if __name__ == '__main__':
	main()</pre>
<p>Add the script to the command line like this:</p>
<pre>./bin/blender -b sample-static-text.blend -P render_settings.py -a</pre>
<p>Note that the order of arguments matters because first we need to load the scene (with <em>-b</em>), then change settings through Pythons (using the <em>-P</em> option) and finally render the animation (with <em>-a</em>). Also, you need at least version <strong>2.49a</strong> of Blender for this to work.</p>
<p>For reference, here&#8217;s is the the source file which hardcodes the 32MB limit:</p>
<p><a href="http://projects.blender.org/plugins/scmsvn/viewcvs.php/branches/blender2.5/blender/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp?annotate=17433&#038;root=bf-blender">intern/memutil/intern/MEM_CacheLimiterC-Api.cpp:</a></p>
<pre>...
static intptr_t &#038; get_max()
{
        static intptr_t m = 32*1024*1024;
        return m;
}
...</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2009/06/08/howto-increase-blenders-memory-cache-for-command-line-renders/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenDNS in Fedora with corporate DHCP and DNS with NetworkManager</title>
		<link>http://www.plouj.com/blog/2009/04/20/opendns-in-fedora-with-corporate-dhcp-and-dns/</link>
		<comments>http://www.plouj.com/blog/2009/04/20/opendns-in-fedora-with-corporate-dhcp-and-dns/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 22:24:00 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[DHCP]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[nameserver]]></category>
		<category><![CDATA[networkmanager]]></category>
		<category><![CDATA[opendns]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=279</guid>
		<description><![CDATA[Here is how to configure a Fedora workstation to use OpenDNS nameservers in a network with corporate DNS and DHCP servers without loosing access to their services. This was done on a Fedora 9 machine with dnsmasq being the local DNS server. It should also work on newer Fedora versions and even other GNU/Linux distributions. [...]]]></description>
			<content:encoded><![CDATA[<p>Here is how to configure a Fedora workstation to use <a href="http://www.opendns.com/">OpenDNS</a> nameservers in a network with corporate DNS and DHCP servers without loosing access to their services.<br />
This was done on a Fedora 9 machine with <a href="http://www.thekelleys.org.uk/dnsmasq/doc.html">dnsmasq</a> being the local DNS server. It should also work on newer Fedora versions and even other GNU/Linux distributions.</p>
<p>The setup is actually very simple and unobtrusive. It is only necessary to properly configure a local DNS server and then force 127.0.0.1 to be used as the only nameserver instead of the corporate DNS servers.</p>
<p>First you need to configure dnsmasq as follows:</p>
<h2>/etc/dnsmasq.conf</h2>
<pre>
# don't use the /etc/resolv.conf file anymore
no-resolv

# OpenDNS nameservers:
server=208.67.222.222
server=208.67.220.220

# Force corporate nameservers for corporate.domain.com lookups
# OpenDNS wouldn't be able to answer such queries correctly
# adjust to suit your network
server=/corporate.domain.com/10.1.1.1
server=/corporate.domain.com/10.1.1.2

# only respond to queries from the local machine
listen-address=127.0.0.1
bind-interfaces

conf-dir=/etc/dnsmasq.d
</pre>
<p>Then you need to go into NetworkManager and set 127.0.0.1 as the DNS server to be used:<br />
<img src="http://www.plouj.com/blog/wp-content/uploads/2009/04/nm-localhost-dns-server.png" alt="nm-localhost-dns-server" title="nm-localhost-dns-server" width="439" height="522" class="alignnone size-full wp-image-423" /></p>
<p>This will result in the following important settings added to your network scripts:</p>
<pre>
DNS1=127.0.0.1
PEERDNS=no
</pre>
<p>I&#8217;ve noticed two minor problems with this setup:</p>
<ol>
<li>the corporate DNS server names are hardcoded in the configuration. Usually they are determined automatically by the DHCP client.</li>
<li>restarting the dnsmasq service sometimes shows this error:
<pre>dnsdomainname: Host name lookup failure</pre>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2009/04/20/opendns-in-fedora-with-corporate-dhcp-and-dns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO build DXX-Rebirth for Windows with MSYS/MinGW</title>
		<link>http://www.plouj.com/blog/2009/03/07/howto-build-dxx-rebirth-for-windows-with-msysmingw/</link>
		<comments>http://www.plouj.com/blog/2009/03/07/howto-build-dxx-rebirth-for-windows-with-msysmingw/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 00:07:32 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[descent]]></category>
		<category><![CDATA[dxx-rebirth]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[mingw]]></category>
		<category><![CDATA[msys]]></category>
		<category><![CDATA[physfs]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[scons]]></category>
		<category><![CDATA[sdl]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[toolchain]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=243</guid>
		<description><![CDATA[Introduction In this post I&#8217;ll document the steps I had to take to build DXX-Rebirth (a modernized Descent game engine) for Windows using MSYS and MinGW. MinGW, MSYS From  Pantokrator&#8217;s blog: install MinGW choose a lowercase install path: c:\mingw choose to download and install current version enable g++ (for physfs) install MSYS install msysDTK SDL [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>In this post I&#8217;ll document the steps I had to take to build <a href="http://www.dxx-rebirth.com/">DXX-Rebirth</a> (a modernized <a href="http://en.wikipedia.org/wiki/Descent_(computer_game)">Descent</a> game engine) for Windows using <a href="http://www.mingw.org/wiki/msys">MSYS</a> and <a href="http://www.mingw.org/">MinGW</a>.</p>
<h2>MinGW, MSYS</h2>
<p>From  <a href="http://blog.pantokrator.net/2006/08/08/setting-up-msysmingw-build-system-for-compiling-sdlopengl-applications/">Pantokrator&#8217;s blog</a>:</p>
<ul>
<li>install <a href="http://prdownloads.sf.net/mingw/MinGW-5.0.2.exe">MinGW</a>
<ul>
<li>choose a lowercase install path: c:\mingw</li>
<li>choose to download and install current version</li>
<li>enable g++ (for physfs)</li>
</ul>
</li>
<li>install <a href="http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe">MSYS</a></li>
<li>install <a href="http://prdownloads.sf.net/mingw/msysDTK-1.0.1.exe">msysDTK</a></li>
</ul>
<h2>SDL and SDL_mixer</h2>
<p>Also from  <a href="http://blog.pantokrator.net/2006/08/08/setting-up-msysmingw-build-system-for-compiling-sdlopengl-applications/">Pantokrator&#8217;s blog</a>:</p>
<ul>
<li>download the <a href="http://www.libsdl.org/release/SDL-1.2.13.tar.gz">SDL</a> source</li>
<li>in the MSYS shell, compile it with</li>
</ul>
<pre>./configure --prefix=/mingw &amp;&amp; make &amp;&amp; make install</pre>
<ul>
<li>download the <a href="http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.8.tar.gz">SDL_mixer</a> source and in a MSYS shell, build it with the same command:</li>
</ul>
<pre>./configure --prefix=/mingw &amp;&amp; make &amp;&amp; make install</pre>
<h2>PhysicsFS</h2>
<ul>
<li>Download the <a href="http://icculus.org/physfs/downloads/physfs-1.1.0.tar.gz">physfs 1.1.0</a> source.</li>
</ul>
<ul>
<li>Compile with the same command again:</li>
</ul>
<pre>./configure --prefix=/mingw &amp;&amp; make &amp;&amp; make install</pre>
<h2>SCons and Python</h2>
<p>From <a href="http://globulation2.org/wiki/Mingw_compilation">Globulation2 MinGW instructions</a>:</p>
<ul>
<li> install <a href="http://www.python.org/ftp/python/2.6/python-2.6.msi">Python 2.6</a></li>
<li> install <a href="http://prdownloads.sourceforge.net/scons/scons-1.1.0.win32.exe">SCons</a></li>
<li> add:</li>
</ul>
<pre>PATH=$PATH:/c/Python26:/c/Python26/Scripts</pre>
<ul>
<li> to the end of <em>/etc/profile</em> in MSYS so that SCons can run from the MSYS shell.</li>
</ul>
<h2>Subversion</h2>
<ul>
<li>install <a href="http://prdownloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.5.9.15518-win32-svn-1.5.6.msi">TortoiseSVN</a></li>
</ul>
<h2>DXX-Rebirth</h2>
<ul>
<li>checkout DXX-Rebirth from <em>https://dxx-rebirth.svn.sourceforge.net/svnroot/dxx-rebirth</em></li>
<li>change the SConstruct script to call sdl-config as &#8216;sh sdl-config &#8216;:</li>
</ul>
<pre>...
Flags and stuff for all platforms...
env.ParseConfig('sh sdl-config --cflags')
env.ParseConfig('sh sdl-config --libs')
env.Append(CPPFLAGS = ['-Wall', '-funsigned-char'])
...</pre>
<ul>
<li>finally, in the MSYS shell, built with:</li>
</ul>
<pre>scons sdlmixer=1</pre>
<h2>Final Remarks</h2>
<p>I had trouble with the latest version of PhysicsFS (1.1.1) because it uses cmake. For some reason it failing to find some prerequisites in MSYS. I also had trouble with version 1.0.1 of PhysicsFS (this is the version the official <a style="font-weight: normal;" href="http://downloads.sourceforge.net/dxx-rebirth/d1x-rebirth_v0.55.1-win.zip">d1x-rebirth_v0.55.1-win.zip</a> is built with) because the built failed with the following error:</p>
<pre>warning: cannot find entry symbol _DllMainCRTStartup@12; defaulting to 00401000
...
undefined reference to WinMain@16</pre>
<p>If you notice any problems or mistakes in this post, please mention them in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2009/03/07/howto-build-dxx-rebirth-for-windows-with-msysmingw/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick Picasa evaluation</title>
		<link>http://www.plouj.com/blog/2008/12/02/quick-picasa-evaluation/</link>
		<comments>http://www.plouj.com/blog/2008/12/02/quick-picasa-evaluation/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 03:35:20 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[review]]></category>
		<category><![CDATA[collection-management]]></category>
		<category><![CDATA[criticism]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[picasa]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=144</guid>
		<description><![CDATA[This is a quick, biased, un-authoritative and incomplete evaluation of Google&#8217;s photo manager Picasa. In total, I&#8217;ve spent no more than a couple of hours using Picasa. I&#8217;ve already chosen to use Digikam as my photo manager so I was going to blatantly ignore its many faults and ruthlessly criticise Picasa. Don&#8217;t read this post [...]]]></description>
			<content:encoded><![CDATA[<p>This is a quick, biased, un-authoritative and incomplete evaluation of Google&#8217;s photo manager <a href="http://picasa.google.com/">Picasa</a>. In total, I&#8217;ve spent no more than a couple of hours using Picasa. I&#8217;ve already chosen to use <a href="http://www.digikam.org/">Digikam</a> as my photo manager so I was going to blatantly ignore its many faults and ruthlessly criticise Picasa. Don&#8217;t read this post to learn about Picasa. Download it yourself or <a href="http://www.google.ca/search?hl=en&amp;q=google+picasa+review">look for more comprehensive reviews</a> elsewhere on the &#8216;net. I&#8217;m writing this because I promised a friend at work to look at Picasa and later I decided to put my observations in writing. You&#8217;ve been warned.</p>
<h3>What I liked</h3>
<ul>
<li>importing images into the gallery using a separate and (seemingly) lower priority thread makes  the UI usable right from the start.</li>
<li>it hasn&#8217;t crashed on me while importing 11,000+ pictures into the gallery</li>
<li>cute, but useless timeline display application:<br />
<a href="http://www.plouj.com/blog/wp-content/uploads/2008/12/timeline-app.png"><img class="alignnone size-medium wp-image-172" title="timeline-app" src="http://www.plouj.com/blog/wp-content/uploads/2008/12/timeline-app-300x240.png" alt="" width="300" height="240" /></a></li>
<li>Google provided an RPM repository which makes installing, upgrading and un-installing very easy for me</li>
</ul>
<h3>What I disliked</h3>
<ul>
<li>simplified colour tuning controls. They might be OK for beginners, but they don&#8217;t appeal to someone like me who has used colour curves before.<br />
<a href="http://www.plouj.com/blog/wp-content/uploads/2008/12/tuning-controls.png"><img class="alignnone size-medium wp-image-164" title="tuning-controls" src="http://www.plouj.com/blog/wp-content/uploads/2008/12/tuning-controls-235x300.png" alt="" width="235" height="300" /></a></li>
<li>at first launch, Picasa started to import images from my whole home directory, which is huge and has tonnes of pictures. This only made me realize just how many images I have (mostly application icons and game project textures) that really don&#8217;t belong in a photo catalogue. I also couldn&#8217;t find a way to tell Picasa to stop and only look in certain directories.</li>
<li>Picasa froze when I first tried the &#8220;tools &gt; folder manager&#8221;. It worked on the second attempt, and I realized that this is the tool used to tell Picasa exactly what directories to include when searching for images.</li>
<li>the &#8220;Tools &gt; Experimental &gt; show duplicate pictures&#8221; function was indeed experimental. It seemed to just give me a list of images without indicating what the duplicate pairs (or groups) were.</li>
<li>the search results for the &#8220;show duplicate pictures&#8221; also showed a strange status bar at the top of the main window. I never figured out the meaning of the constantly changing seconds value or what GPixel was referring to.<br />
<a href="http://www.plouj.com/blog/wp-content/uploads/2008/12/top-status-bar.png"><img class="size-medium wp-image-160 alignnone" title="top-status-bar" src="http://www.plouj.com/blog/wp-content/uploads/2008/12/top-status-bar-300x29.png" alt="" width="300" height="29" /></a></li>
<li>the &#8220;importing indicator&#8221;, although neat (it showed what picture was being imported in real time), was rather useless. Most importantly, it did not show the total progress percentage. When I tried to close it, it seemed to just re-appear in a different location along the side of the main Picasa window. Then it simply started sliding up and down without explanation.<a href="http://www.plouj.com/blog/wp-content/uploads/2008/12/annoying-thing.png"><img class="alignnone size-medium wp-image-163" title="annoying-thing" src="http://www.plouj.com/blog/wp-content/uploads/2008/12/annoying-thing.png" alt="" width="270" height="49" /></a></li>
<li>after a lot of clicking, I managed to loose the album list view in the left pane and had to re-start Picasa</li>
<li>ugly dithered splash screen image &#8211; c&#8217;mon, we&#8217;re not in the 1990&#8242;s anymore!</li>
<li>the scrollbar in the main view controls the view scroll speed, not the actual movement of the view &#8211; annoying and misleading. It didn&#8217;t let me get near the bottom right away, and I got dizzy every time I scrolled. However, I think the search result view actually changed the scroll bar function to the usual scroll bar for reasons beyond me. <em>[Edit: after more use I realized that the way the scroll bar behaves in Picasa (combined with really smooth scrolling) helps with showing many photographs to other people looking at your screen. You can just drag the scrollbar just a bit to achieve a nice steady scroll speed and discuss the pictures instead of having to continually "pull" the images up or down with the mouse.]</em></li>
<li>I somehow totally failed to find the familiar <a href="http://flickr.com/photos/vdemeester/425291448/">timeline</a>/<a href="http://www.flickr.com/photos/digikam/2603260875/">calendar view</a> of my photos. Does Picasa really not have a way to organize photos in this manner?<a href="http://www.flickr.com/photos/digikam/2603260875/"><br />
</a></li>
<li>this is <a href="http://www.gnu.org/philosophy/categories.html#ProprietarySoftware">proprietary software</a> from Google. I actually like a lot of stuff that comes from Google, but when it comes to software licensing, I don&#8217;t play favourites. I simply try to avoid non-<a href="http://www.gnu.org/philosophy/free-sw.html">Free Software</a> as much as I can.</li>
</ul>
<h3>What I ignored</h3>
<ul>
<li>uploading to and syncing with various web services</li>
<li>ordering prints</li>
<li>printing to a local/personal printer</li>
<li>picture backup feature &#8211; rsync is fine for me</li>
<li>passport photo function &#8211; This made me realize that I&#8217;m definitely not the intended audience of Picasa</li>
<li>the ability to store video flies, which I consider to be outside of the scope of this program</li>
<li>anything else I haven&#8217;t mentioned, obviously</li>
</ul>
<h3>Final thoughts</h3>
<p>In conclusion, I&#8217;ve used my experience with Picasa to re-inforced my decision to stick with Digikam &#8211; a Free/OpenSource Software photo manager.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2008/12/02/quick-picasa-evaluation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

