<?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>Guillaume Boudreau Geek Blog</title>
	<atom:link href="http://www.pommepause.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pommepause.com/blog</link>
	<description>My Geek Life</description>
	<lastBuildDate>Tue, 13 Jul 2010 21:13:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Fuel Consumption Tracker</title>
		<link>http://www.pommepause.com/blog/2010/06/fuel-consumption-tracker/</link>
		<comments>http://www.pommepause.com/blog/2010/06/fuel-consumption-tracker/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 00:12:29 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=271</guid>
		<description><![CDATA[I wanted to keep track of fuel consumption (L/100km) for our two vehicles. I wanted to be able to send email to enter data, or use a simple web interface. The email part was important, because I don't have a data plan on my cellphone, so being able to compose and queue an email at the pump, to have it sent automatically when I was later within reach of a known Wifi network, was a very nice to have.

Implemented in PHP, the result is not that pretty, but it's nice enough, and the ease of use allows me to keep it updated without too much hassle.<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br />]]></description>
			<content:encoded><![CDATA[<p>I wanted to keep track of fuel consumption (L/100km) for our two vehicles. I wanted to be able to send email to enter data, or use a simple web interface. The email part was important, because I don&#8217;t have a data plan on my cellphone, so being able to compose and queue an email at the pump, to have it sent automatically when I was later within reach of a known Wifi network, was a very nice to have.</p>
<p>Implemented in PHP, the result is not that pretty, but it&#8217;s nice enough, and the ease of use allows me to keep it updated without too much hassle.<span id="more-271"></span></p>
<p>Data entry takes a date (default to today), and distance-price-quantity, aka &#8220;KPL&#8221;: Kilometrage, Price, Liters.</p>
<p>The webpage has 4 simple text fields to enter those values, and an email just needs to contain the KPL in whitespace-separated format. The webpage has one form per car, and an email just needs to contain the name of the car anywhere in the email (subject or body): &#8220;corolla&#8221; or &#8220;highlander&#8221;.</p>
<p>The database is simple enough: date, car ID, KPL (3 fields), and an auto-filled (using MySQL triggers) consumption field. A simple cars domain table links the car ID to it&#8217;s user-readable model, make and year, used to display the reports.</p>
<p>Throw in some <a class="vt-p" href="http://code.google.com/apis/visualization/interactive_charts.html">Google Chart Tools</a> to display graphs, and some general statistics (average consumption, total mileage, total fuel bought (in $ and L), and you&#8217;re done!</p>
<p>A nice to have I added later on is a next_service table, which contains a car ID, and a mileage. When data is entered that makes the total mileage of a car reach the mileage indicated in that table, an email is sent to the car owner, to remind him that his next service is due. Not that the dealer won&#8217;t remind me anyway, but still&#8230;</p>
<p>Here&#8217;s what it looks like, for the recent Highlander Hybrid (bought April 2008), and the 2002 Corolla:</p>
<p><a class="vt-p" href="http://cl.ly/d211838720b0899241f4"><img class="alignnone" title="Hybrid Fuel Consumption" src="http://cl.ly/d211838720b0899241f4/content" alt="Hybrid Fuel Consumption" width="545" height="407" /></a></p>
<p><a class="vt-p" href="http://cl.ly/3f9a2ce9fdbc9c59f644"><img class="alignnone" title="Corolla Fuel Consumption" src="http://cl.ly/3f9a2ce9fdbc9c59f644/content" alt="Corolla Fuel Consumption" width="545" height="406" /></a></p>
<p>The code that makes this work will be open-sourced if anyone is interested.</p>
<p>Or if you&#8217;d like to simply use it yourself as-is, I can set you up on my server, no problem. Just <a class="vt-p" href="/contact.php">poke me</a>.</p>
<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br />]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/06/fuel-consumption-tracker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hacking Crome extensions &#8211; How I added keyboard shortcuts to 1Password in Chrome</title>
		<link>http://www.pommepause.com/blog/2010/05/hacking-crome-extensions-how-i-added-keyboard-shortcuts-to-1password-in-chrome/</link>
		<comments>http://www.pommepause.com/blog/2010/05/hacking-crome-extensions-how-i-added-keyboard-shortcuts-to-1password-in-chrome/#comments</comments>
		<pubDate>Fri, 14 May 2010 13:02:30 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=249</guid>
		<description><![CDATA[I love 1Password. It looks good, it's safe, it has a web-accessible UI, it has an iPhone/iPad application...

What I didn't like about it was it's Chrome extension, which required me to use the mouse to click the 1Password icon in the toolbar each time I wanted to auto-fill a form with login details!! That was so annoying.

So annoying in fact that I took upon myself to implement keyboard shortcuts in the 1Password extensions.<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br />]]></description>
			<content:encoded><![CDATA[<p>I love <a class="vt-p" href="http://agilewebsolutions.com/products/1Password">1Password</a>. It looks good, it&#8217;s safe, it has a web-accessible UI, it has an iPhone/iPad application&#8230;</p>
<p>What I didn&#8217;t like about it was it&#8217;s Chrome extension, which required me to use the mouse to click the 1Password icon in the toolbar each time I wanted to auto-fill a form with login details!! That was so annoying.</p>
<p>So annoying in fact that I took upon myself to implement keyboard shortcuts in the 1Password extensions.<span id="more-249"></span> I knew it wouldn&#8217;t be that hard, since Chrome extensions are basically JavaScript &amp; HTML files.</p>
<p>And it turned out to be pretty easy indeed:</p>
<p>I added an event listener for keyUp in the content script (that&#8217;s executed each time a page is loaded):</p>
<pre>window.addEventListener("keyup", keyListener, false);</pre>
<p>Then in the keyListener function, I simply check for the keyboard shortcuts I want:</p>
<pre>if (e.ctrlKey &amp;&amp; e.keyCode) {
  if (e.keyCode == 220 || e.keyCode == 191 || (e.altKey &amp;&amp; e.keyCode == 80)) {
    chrome.extension.sendRequest({name: "openPopUp"});
  }
}</pre>
<p>That sendRequest line simply calls another JavaScript function, but a function that is defined and executed in the &#8216;background&#8217; context (the equivalent of a singleton pattern for Chrome extensions).<br />
In the background HTML file, I simply added some code in that function that would popup a small window that would show the same popup.html file as when I clicked the 1Password button in the toolbar.</p>
<pre>var url = chrome.extension.getURL('popup.html');
[...]
window.popUpWindow = window.open(url, "1Password for Chrome", options);</pre>
<p>The only thing left was to change the existing functions from popup.html that fetched the available login informations, and auto-filled the forms, to use the parent tab, instead of the current tab, when invoked from the popup.<br />
And how lucky I was; there was already a null parameter used for the target window in both those functions! I simply changed that parameter to the parent window id, if the popup was invoked from the keyboard, and that&#8217;s it! <img src='http://www.pommepause.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I now have a working 1Password extension that I can use without my hands leaving the keyboard.</p>
<p>I created a patch of my changes, and posted it in the <a class="vt-p" href="http://support.agilewebsolutions.com/showthread.php?22830-Does-this-mean-that-we-could-use-a-keystroke&amp;p=117474#post117474">1Password forums</a>, so that them developers could take it and base the official implementation from there.</p>
<p>If you really must try it yourself, you can try to patch your extension (version 0.6.2; might not work on future versions; but you can try).<br />
Download <a class="vt-p" href="http://www.pommepause.com/blog/wp-content/uploads/2010/05/1password_chrome_extension_keyboard_shorcut.patch.txt">1password_chrome_extension_keyboard_shorcut.patch.txt</a> first on your desktop.</p>
<p>In Terminal.app:</p>
<pre>cd Library/Application\ Support/Google/Chrome/Default/Extensions/gkndfifopckmhdkohjeoljlbfnjhekfg/0.6.2/
patch &lt; ~/Desktop/1password_chrome_extension_keyboard_shorcut.patch.txt</pre>
<p>Result should look like:</p>
<pre>patching file onepassword_background.html
patching file onepassword_loader.js
patching file popup.html
patch unexpectedly ends in middle of line</pre>
<p>Restart Chrome.<br />
Then try the shortcuts: Ctrl-/ or Ctrl-\</p>
<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br />]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/05/hacking-crome-extensions-how-i-added-keyboard-shortcuts-to-1password-in-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Allowing programs run by regular users to open ports below 1024</title>
		<link>http://www.pommepause.com/blog/2010/05/allowing-programs-run-by-regular-users-to-open-ports-below-1024/</link>
		<comments>http://www.pommepause.com/blog/2010/05/allowing-programs-run-by-regular-users-to-open-ports-below-1024/#comments</comments>
		<pubDate>Fri, 14 May 2010 12:30:31 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Home Server]]></category>
		<category><![CDATA[Technical Problems]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=244</guid>
		<description><![CDATA[Normally, only the root user is allowed to open ports below 1024.
That's why, if you try running an application as a normal (non-root) user, and that application tries to open a port below 1024, you'll get an error (access denied most likely).

If you're running Fedora (and that would probably work on other distros too), there's a command you can run, as root, that will allow such programs to open any of those ports, even if they're run by a regular user.<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br />]]></description>
			<content:encoded><![CDATA[<p>Normally, only the root user is allowed to open ports below 1024.<br />
That&#8217;s why, if you try running an application as a normal (non-root) user, and that application tries to open a port below 1024, you&#8217;ll get an error (access denied most likely).</p>
<p>If you&#8217;re running Fedora (and that would probably work on other distros too), there&#8217;s a command you can run, as root, that will allow such programs to open any of those ports, even if they&#8217;re run by a regular user.<span id="more-244"></span></p>
<pre>setcap cap_net_bind_service=ep your-program-name</pre>
<p>Example:</p>
<pre>setcap cap_net_bind_service=ep /usr/local/bin/znc</pre>
<p>You&#8217;ll then need to restart the program, if it was already running.</p>
<p>That&#8217;s it.</p>
<p>Kudos to stevea, a very prolific poster of <a class="vt-p" href="http://forums.fedoraforum.org/">FedoraForums.org</a> (he nears 5k posts), for <a class="vt-p" href="http://forums.fedoraforum.org/showthread.php?t=207398#7">his answer</a> to this question asked by another user.</p>
<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br />]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/05/allowing-programs-run-by-regular-users-to-open-ports-below-1024/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Network-wide incoming calls notifications using Growl, Boxcar and XBMC</title>
		<link>http://www.pommepause.com/blog/2010/05/network-wide-incoming-call-notifications-using-growl-and-xbmc/</link>
		<comments>http://www.pommepause.com/blog/2010/05/network-wide-incoming-call-notifications-using-growl-and-xbmc/#comments</comments>
		<pubDate>Thu, 13 May 2010 00:33:42 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=230</guid>
		<description><![CDATA[Earlier this week, I stumbled upon an iPhone app that allowed users to receive push notifications on XBMC.
When a notification is received in XBMC, it appears in the lower right corner of the screen.
Pretty cool.

This made me think it would be nice to see incoming phone calls there.

So I took out the Ovolab Phlink device I had sitting on a shelf, and created a small 'ring' script for it. That (Apple)script checks for the caller ID when the phone rings (and for a matching entry in my address book), and if it is available, calls an external PHP script that handles the network-wide notifications.<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br />]]></description>
			<content:encoded><![CDATA[<p>Earlier this week, I stumbled upon an iPhone app that allowed users to receive push notifications on XBMC.<br />
When a notification is received in XBMC, it appears in the lower right corner of the screen.<br />
Pretty cool.</p>
<p>This made me think it would be nice to see incoming phone calls there.</p>
<p>So I took out the Ovolab Phlink device I had sitting on a shelf, and created a small &#8216;ring&#8217; script for it. That (Apple)script checks for the caller ID when the phone rings (and for a matching entry in my address book), and if it is available, calls an external PHP script that handles the network-wide notifications.<span id="more-230"></span></p>
<p>That script takes in parameters:</p>
<ul>
<li>the message to send</li>
<li>a title</li>
<li>the list of recipients (computers)</li>
<li>the image to use for the Growl notifications (XBMC notifications don&#8217;t show any images, just a title and the message).</li>
</ul>
<p>So, before calling this PHP script, the ring script will create the message to send, and if there&#8217;s a picture for that person in my address book, it will save that picture to a shared directory on the local computer. Remote computers all have that shared directory mounted all the time, so they instantly have access to the caller photo, if any. <img src='http://www.pommepause.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The notification PHP script then loop on all recipient computers, and depending on what they are will either:</p>
<ul>
<li>Call growlnotify remotely using SSH</li>
<li>Make a HTTP call to the remote XBMC process, to send the notification</li>
<li>Make a HTTPS call to the Boxcar API, to send a Push notification on iPhone / iPad devices</li>
</ul>
<p>This worked really well. But I wanted to go one step further.</p>
<p>On the XBMC running on the Mac Mini that we use as home theater, I wanted to pause whatever was playing when the phone rang. Luckily, there&#8217;s also a HTTP call available to do that. Sadly, I soon realized that the &#8220;Paused&#8221; graphic appeared over any notifications! If I paused the video, the notification would simply not be readable.<br />
I <em>fixed</em> that by using Growl on that computer. The Growl notifications appear over everything, and the currently playing videos is paused. Hooray!</p>
<p><a class="vt-p" href="http://www.flickr.com/photos/gboudreau/4602881864/"><img src="http://farm5.static.flickr.com/4018/4602881864_ca8c43b4f8.jpg" alt="" /></a><br />
<span style="font-size: 11px;">Notification using Growl + paused XBMC</span></p>
<p><a class="vt-p" href="http://www.flickr.com/photos/gboudreau/4602280447/"><img src="http://farm5.static.flickr.com/4063/4602280447_fed6102412.jpg" alt="" /></a><br />
<span style="font-size: 11px;">Notification using XBMC on Apple TV</span></p>
<p>Here&#8217;s my scripts:<br />
<a class="vt-p" href="http://www.pommepause.com/blog/wp-content/uploads/2010/05/ring.scpt_.txt">ring.scpt<br />
</a><a class="vt-p" href="/blog/wp-content/uploads/2010/05/automate_notification.php_.txt">automate_notification.php</a></p>
<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br />]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/05/network-wide-incoming-call-notifications-using-growl-and-xbmc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a hush box to quiet a projector</title>
		<link>http://www.pommepause.com/blog/2010/05/building-a-hush-box-to-quiet-a-projector/</link>
		<comments>http://www.pommepause.com/blog/2010/05/building-a-hush-box-to-quiet-a-projector/#comments</comments>
		<pubDate>Wed, 12 May 2010 16:18:13 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[DIY]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=214</guid>
		<description><![CDATA[A projector and 120" screen sure are nice to watch TV shows and movies, but having them on the 3rd floor of the house makes the projector unhappy.

Being on the ceiling of the almost highest point in the house, during hot summer days, that projector can become quite hot. And when it does, it tries to compensate by fuelling it's fans with enough voltage to make them sound like jet engines.


To try to quiet it down a notch, I built what some people call a hush box.<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=5.0" /></div><div>Rating: 5.0/<strong>5</strong> (1 vote cast)</div><br />]]></description>
			<content:encoded><![CDATA[<p>A projector and 120&#8243; screen sure are nice to watch TV shows and movies, but having them on the 3rd floor of the house makes the projector unhappy.</p>
<p>Being on the ceiling of the almost highest point in the house, during hot summer days, that projector can become quite hot. And when it does, it tries to compensate by fuelling it&#8217;s fans with enough voltage to make them sound like jet engines.<br />
(Not <a class="vt-p" href="http://www.macintouch.com/readerreports/powermacg5/topic2215.html">PowerMacG5-running-in-single-user-mode jet-engines-loud</a>, but still&#8230;)</p>
<p>To try to quiet it down a notch, I built what some people call a <em>hush box</em>.<span id="more-214"></span> It&#8217;s basically an enclosure that you put over your projector to stop the noise.</p>
<p>Evidently, you need to be careful not to make the projector overheat (which will greatly reduce the lamp life). Projectors emit quite a lot of hot air, so having them in a confined space wouldn&#8217;t be a good idea without good ventilation.</p>
<p>So here&#8217;s how I did it.</p>
<p>I measured the size of the box I&#8217;d need to build to hide the projector and it&#8217;s cables. I added 2&#8243; on each side, where the air intakes are located on my projector. I added another 2-4&#8243; to all dimensions to allow me to place some kind of sound attenuation material inside the box.<br />
The plan was to place a 120mm fan behind the box to push cool air in, and another 120mm fan on the ceiling, pulling the hot air out of the box.</p>
<p>I built the box first, using scraps of wood I had, which I attached together using V metal brackets and small screws.</p>
<p><a class="vt-p" href="http://www.flickr.com/photos/gboudreau/4601108891/in/set-72157623922761165/"><img src="http://farm2.static.flickr.com/1184/4601108891_5ce11c1157_m.jpg" alt="" /></a></p>
<p><a class="vt-p" href="http://www.flickr.com/photos/gboudreau/4601723480/in/set-72157623922761165/"><img src="http://farm2.static.flickr.com/1069/4601723480_e54341af7e_m.jpg" alt="" /></a></p>
<p>Next, I tried it over the projector to make sure my measurements were correct, and chose a spot to placed the ceiling fan.<br />
I climbed in the attic to install that fan. (That&#8217;s always fun, with all the pink isolation material in there&#8230;)</p>
<p><a class="vt-p" href="http://www.flickr.com/photos/gboudreau/4601108237/in/set-72157623922761165/"><img src="http://farm4.static.flickr.com/3595/4601108237_20dd174576_m.jpg" alt="" /></a></p>
<p>I then found a nicely sized glass piece that I could use to cover the hole I made for the image. I took it out of industrial 500w lights I had around (yes, they are now much more dangerous to use without that piece of glass!).</p>
<p><a class="vt-p" href="http://www.flickr.com/photos/gboudreau/4601109823/in/set-72157623922761165/"><img src="http://farm2.static.flickr.com/1211/4601109823_6ebeac12e9_m.jpg" alt="" /></a></p>
<p><a class="vt-p" href="http://www.flickr.com/photos/gboudreau/4601110653/in/set-72157623922761165/"><img src="http://farm2.static.flickr.com/1253/4601110653_8fdcbb4830_m.jpg" alt="" /></a></p>
<p>Looking for something that would attenuate the sound, I found some scrap pieces of carpet laying around. I cut out pieces of the right size, and place them at the bottom, front and sides of the hush box.</p>
<p><a class="vt-p" href="http://www.flickr.com/photos/gboudreau/4601111357/in/set-72157623922761165/"><img src="http://farm5.static.flickr.com/4018/4601111357_48487e33e4_m.jpg" alt="" /></a></p>
<p>Almost done. I attached the box on the ceiling.</p>
<p><a class="vt-p" href="http://www.flickr.com/photos/gboudreau/4601112049/in/set-72157623922761165/"><img src="http://farm5.static.flickr.com/4055/4601112049_228f153483_m.jpg" alt="" /></a></p>
<p>I used a piece of cardboard for the last side, and placed another 120mm fan in there. That will allow me easy access to the projector, if I ever need that.</p>
<p><a class="vt-p" href="http://www.flickr.com/photos/gboudreau/4601113169/in/set-72157623922761165/"><img src="http://farm2.static.flickr.com/1020/4601113169_f8293e0857_m.jpg" alt="" /></a></p>
<p>Here&#8217;s the end result:</p>
<p><a class="vt-p" href="http://www.flickr.com/photos/gboudreau/4601112443/in/set-72157623922761165/"><img src="http://farm2.static.flickr.com/1163/4601112443_975a93fa88_m.jpg" alt="" /></a></p>
<p>I&#8217;m pretty satisfied with the end result. I have now changed the settings of the projector to &#8216;High Altitude&#8217;, which makes the fans always run at their maximum speed. Even with that, the projector is much more quiet than it was before. Hooray! <img src='http://www.pommepause.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=5.0" /></div><div>Rating: 5.0/<strong>5</strong> (1 vote cast)</div><br />]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/05/building-a-hush-box-to-quiet-a-projector/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Videos5 &#8211; A web application to stream videos to your iPad (and all)</title>
		<link>http://www.pommepause.com/blog/2010/05/videos5-a-web-application-to-stream-videos-to-your-ipad-and-all/</link>
		<comments>http://www.pommepause.com/blog/2010/05/videos5-a-web-application-to-stream-videos-to-your-ipad-and-all/#comments</comments>
		<pubDate>Wed, 12 May 2010 15:26:11 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Home Server]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=205</guid>
		<description><![CDATA[The iPad is now very popular in the house.
I seldom can use it as a recipe book to cook something, as it was intended... It's either in my oldest's hands, playing Labyrinth 2 HD, either on my wife's lap, browsing her Facebook &#038; reading her emails.

But still, sometimes, it's nice to use it for other things.
One such other thing would be to stream videos from the Amahi home server sitting in a closet upstairs.
One can watch a recorded TV show in bed, or hand the iPad to the big kid to let him watch Cars or Nemo while we're watching the news, or something non kid-friendly.

Being of the DIY kind, I made my own web-app to achieve this, using the new HTML5 videos tag.<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=1.0" /></div><div>Rating: 1.0/<strong>5</strong> (1 vote cast)</div><br />]]></description>
			<content:encoded><![CDATA[<p>The iPad is now very popular in the house.<br />
I seldom can use it as a recipe book to cook something, as it was intended&#8230; It&#8217;s either in my oldest&#8217;s hands, playing <a class="vt-p" title="iTunes Link" href="http://itunes.apple.com/us/app/labyrinth-2-hd/id307758975?mt=8">Labyrinth 2 HD</a>, either on my wife&#8217;s lap, browsing her Facebook &amp; reading her emails.</p>
<p>But still, sometimes, it&#8217;s nice to use it for other things.<br />
One such other thing would be to stream videos from the <a class="vt-p" title="Amahi Home Server" href="http://www.amahi.org/">Amahi</a> home server sitting in a closet upstairs.<br />
One can watch a recorded TV show in bed, or hand the iPad to the big kid to let him watch Cars or Nemo while we&#8217;re watching the news, or something non kid-friendly.</p>
<p>Being of the DIY kind, I made my own web-app to achieve this, using the new HTML5 videos tag.<span id="more-205"></span> Yes, I know, there are existing &#8216;solutions&#8217; that would allow me do to something very similar, but what&#8217;s the fun in that. Plus, building my own, I&#8217;ll be sure the features I need and want will be implemented in a timely fashion!</p>
<p>The result can be witnessed on the Google Code page that hosts the application code:<br />
<a class="vt-p" href="http://code.google.com/p/videos5/">http://code.google.com/p/videos5/</a></p>
<p>I&#8217;m pretty happy with the end result. <img src='http://www.pommepause.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<ul>
<li>There&#8217;s user profiles, that can be password protected, that allows me to hide the inappropriate videos from my children.</li>
<li>It integrates nicely with XBMC, that I was already using for those videos, to use the same thumbnails, and import ratings.</li>
<li>There&#8217;s batch encode and batch ratings, for movies and TV shows.</li>
<li>There&#8217;s an Encode Queue page allowing me to monitor progress of all the queued encodes.</li>
<li>Encoded videos will play nicely on all devices (iPad, iPhone, Apple TV, XBMC).</li>
<li>The home page shown after selecting user profile can be bookmarked (in the browser bookmarks, or the iPad home screen) to allow easy access to that specific profile. Perfect to allow the kids to reach their videos easily.</li>
</ul>
<p><a class="vt-p" title="Click for more screenshots" href="http://code.google.com/p/videos5/#Screenshots"><img src="http://dl.dropbox.com/u/3022105/Amahi/html5-videos/screenshots2/videos5-encode_all.png" alt="Videos5 screenshot" /></a></p>
<p>If you want to try it, I created a pretty thorough <a class="vt-p" href="http://code.google.com/p/videos5/source/browse/trunk/README">README</a> that you can follow.</p>
<p>You&#8217;ll need an HTTP server, PHP, MySQL, HandBrake-CLI, mediainfo and mplayer (command-line version), all of which are pretty easy to obtain for any OS.<br />
Final note: You&#8217;ll probably need to manually edit the index.php file to point to the correct paths for some executables. And I doubt it would work in it&#8217;s current state on Windows, though it should be able to, with a couple of minor modifications.</p>
<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=1.0" /></div><div>Rating: 1.0/<strong>5</strong> (1 vote cast)</div><br />]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/05/videos5-a-web-application-to-stream-videos-to-your-ipad-and-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Greyhole: How cool is that?</title>
		<link>http://www.pommepause.com/blog/2010/03/greyhole-how-cool-is-that/</link>
		<comments>http://www.pommepause.com/blog/2010/03/greyhole-how-cool-is-that/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 15:10:12 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Home Server]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=180</guid>
		<description><![CDATA[Not long ago, a 1 TB  hard drive that was part of my storage pool died (my fault really, handling it while it was powered up). Greyhole handled this beautifully, re-creating duplicate copies of the files that were stored on that drive to continue protecting all my data. But I didn't have enough free space on the other drives to allow all the duplicates I want to be created.

Perfect timing to test a very nice feature of Greyhole: inclusion of remote hard drives in the storage pool.<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=5.0" /></div><div>Rating: 5.0/<strong>5</strong> (1 vote cast)</div><br />]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;m now happily using <a class="vt-p" href="/blog/2009/12/greyhole-easily-expandable-redundant-storage-pool-using-samba/">Greyhole</a>. Good for me, you say?</p>
<p>Not long ago, a 1 TB  hard drive that was part of my storage pool died (my fault really, handling it while it was powered up). Greyhole handled this beautifully, re-creating duplicate copies of the files that were stored on that drive to continue protecting all my data. But I didn&#8217;t have enough free space on the other drives to allow all the duplicates I want to be created.</p>
<p>Perfect timing to test a very nice feature of Greyhole: inclusion of remote hard drives in the storage pool.</p>
<p>I have a 1 TB hard drive attached to my Airport Extreme router, that I use as my Time Machine backup destination (the Airport makes it available through AFP and Samba). It had about 600 GB free. Perfect candidate for this.<br />
I simply mounted that drive on my file server, and included it in my Greyhole storage pool. I then launched &#8220;greyhole &#8211;balance&#8221; to force Greyhole to balance the available space evenly on all drives. Files transferred at about 5MB/s from my file server to the remote drive, so I had to wait a couple of hours for the 600GB to get filled.</p>
<p>I now have about 10-12 GB free on all the drives included in my storage pool, and all my files are correctly protected once more.</p>
<p>Further thinking revealed an interesting use of such remote hard drive in a Greyhole storage pool. Since remote access is much slower than local access, it wouldn&#8217;t make much sense to keep a remote drive in my pool forever, since I do care about performance. But, for some files, performance is not an issue. For example, for my Photos share, I keep a copy of each file on all available drives in my storage pool (I do care about those files!) A remote drive could be used to store a copy of those files, and nothing else. The trick to achieve this is to simply indicate a very high number as the minimum free space for that drive in the Greyhole configuration.<br />
With such a configuration, the remote drive will only be used as a last resort choice when Greyhole chooses where a file copy should be kept. And, minimum free space will be ignored in the case of files that needs to go on all drives.<br />
What this means is that the remote drive will be used to store a copy of the files in my Photos share, and it will be used to store file copies on other shares only if all other hard drives are filled to capacity. Which is nice.<br />
My important files are now backed up remotely (well, in the next room is remote to the file server!), plus if all my fast drives get filled, this slower option will be used until I can free up some space (by adding another internal drive, most likely).</p>
<p>How cool is that? Very cool I think. I don&#8217;t know any other pooling / redundancy system that would allow you to do something like that with such ease! <img src='http://www.pommepause.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
I&#8217;m glad to be using Greyhole right now. And you? <img src='http://www.pommepause.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=5.0" /></div><div>Rating: 5.0/<strong>5</strong> (1 vote cast)</div><br />]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/03/greyhole-how-cool-is-that/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Mac Widget: Vidéotron Internet Usage Monitor</title>
		<link>http://www.pommepause.com/blog/2010/01/mac-widget-videotron-internet-usage-monitor/</link>
		<comments>http://www.pommepause.com/blog/2010/01/mac-widget-videotron-internet-usage-monitor/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 17:13:02 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/online_files/videotron_usage_monitor_widget.html#unique-entry-id-11</guid>
		<description><![CDATA[Having received earlier this week a letter from Vidéotron, my ISP, about my account getting capped at 100GB monthly in the upcoming months, I decided I needed an easy way to monitor my monthly bandwidth usage. A Dashboard widget was a good fit.<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=4.4" /></div><div>Rating: 4.4/<strong>5</strong> (19 votes cast)</div><br />]]></description>
			<content:encoded><![CDATA[<p><em>Do you want to skip all this text and just get the widget?</em></p>
<p><em> </em><em>Then click </em><em><a class="vt-p" rel="self" href="#videotronwidgetdownload">here</a></em><em>.</em></p>
<hr />Having received earlier this week a letter from Vidéotron, my ISP, about my account getting capped at 100GB monthly in the upcoming months, I decided I needed an easy way to monitor my monthly bandwidth usage. A Dashboard widget was a good fit.</p>
<p>I downloaded a couple of widget samples from Apple.com, and started a new widget from there.</p>
<p>The end result:</p>
<p><a class="vt-p" href="http://www.pommepause.com/blog/wp-content/uploads/2010/01/screenshot.png"><img class="alignnone size-full wp-image-170" title="screenshot" src="http://www.pommepause.com/blog/wp-content/uploads/2010/01/screenshot.png" alt="" width="400" height="180" /></a></p>
<p>A nice little widget, sitting on my Dashboard, that can tell me how much of my monthly quota I&#8217;ve used so far.<br />
Preferences are: Vidéotron username (something that looks like vlxxxxxx), and the internet access type (Basic, High-Speed, Extreme, Extreme Plus, Ultimate). Optionally, if you bought extra data transfer packages for the current month, you&#8217;ll be able to enter those too. Data transfer packages will be reset when the billing month changes.</p>
<p>Note: I had to data-scrape an HTML page to fetch the information from Vidéotron website, and decided it was much easier to do that in PHP, and keep it on my own web server, than to do it in JavaScript and have to release a new version of my widget each time Vidéotron would change their web page.<br />
So if you install this, and see an outgoing connection to dataproxy.pommepause.com, that&#8217;s normal.<br />
(BTW, I posted the source of the PHP script this widget is using <a class="vt-p" rel="self" href="http://dataproxy.pommepause.com/videotron_usage.phps">here</a>.)</p>
<p>Enjoy, fellow Vidéotron users.</p>
<h3><strong><a name="videotronwidgetdownload"></a>Downloads</strong></h3>
<p>You can download the latest version of the Vidéotron Internet Usage Monitor widget for Mac OS X <a class="vt-p" href="http://www.pommepause.com/blog/wp-content/uploads/2010/01/Videotron-Internet-Usage-Monitor.wdgt-126.zip">here</a>.</p>
<h3>Changelog</h3>
<ul>
<li><strong>1.2.6 &#8211; Bugfix: regression in 1.2.5; couldn&#8217;t save preferences!</strong></li>
<li>1.2.5 &#8211; Bugfix: Basic (2GB) plan couldn&#8217;t be selected.</li>
<li>1.2.4 &#8211; Updated Vidéotron logo; bug fixed: accumulated daily surplus and &#8216;now&#8217; arrow were 1 day off; clarified that the last updated date was in fact &#8220;$date @ 23h59&#8243;; visual fix when new versions are available.</li>
<li>1.2.3 &#8211; Changed text in options, to clarify that the data transfer packages are &#8216;extras&#8217;, and the &#8216;Plan&#8217; option is what will define your monthly limit.</li>
<li>1.2.2 &#8211; Added option to select data transfer packages bought this month. The selected value will be reset when the billing month changes.</li>
<li>1.2.1 &#8211; Missing Business plans from 1.2.0; added an option to display upload using a different color on the graph.</li>
<li>1.2.0 &#8211; Easier configuration; new version available notification; now displaying numeric deviation from daily limit (surplus) &#8211; this was only shown using a small arrow on the graph before; added overcharge ($) you should expect on your invoice, if you&#8217;re over your limit.</li>
<li>1.1.6 &#8211; Better handling for wrong username; people entering anything else than their VLXXXXXX Vidéotron username will now get a relevant error message.</li>
<li>1.1.5 &#8211; Fetch new data less often; was previously checking for new data every 15 minutes when the Dashboard was open; changed that to once a day.</li>
<li>1.1.4 &#8211; Added small arrows on meters to show the current date. If the meter is higher than the arrow, it means you&#8217;ve transferred too much in regard to the current date versus the date you&#8217;re invoiced. Red arrow = bad; green arrow = good.</li>
<li>1.1.3 &#8211; Beta for 1.1.4</li>
<li>1.1.2 &#8211; Small visual changes: loading animated GIF, numbers formatted as <strong>0.xx</strong> instead of <strong>.xx</strong>.</li>
<li>1.1.1 &#8211; New French localization option; new minimal look option; fixed incorrect dates (all dates were one month early).</li>
<li>1.0.1 &#8211; Fixed missing percentage when using combined quota.</li>
<li>1.0 &#8211; First version.</li>
</ul>
<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=4.4" /></div><div>Rating: 4.4/<strong>5</strong> (19 votes cast)</div><br />]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/01/mac-widget-videotron-internet-usage-monitor/feed/</wfw:commentRss>
		<slash:comments>101</slash:comments>
		</item>
		<item>
		<title>Greyhole &#8211; Easily expandable &amp; redundant storage pool using Samba</title>
		<link>http://www.pommepause.com/blog/2009/12/greyhole-easily-expandable-redundant-storage-pool-using-samba/</link>
		<comments>http://www.pommepause.com/blog/2009/12/greyhole-easily-expandable-redundant-storage-pool-using-samba/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 20:30:11 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Home Server]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=136</guid>
		<description><![CDATA[Greyhole is an application that uses Samba to create a storage pool of all your available hard drives (whatever their size, however they're connected), and allows you to create redundant copies of the files you store, in order to prevent data loss when part of your hardware fails.<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=5.0" /></div><div>Rating: 5.0/<strong>5</strong> (1 vote cast)</div><br />]]></description>
			<content:encoded><![CDATA[<p>(Some background info on why I created Greyhole can be read in my <a class="vt-p" href="/blog/2009/11/how-i-plan-to-implement-my-own-whs-drive-extender-like-system/">previous post</a>.)</p>
<p>There. <a class="vt-p" href="/blog/2009/11/how-i-plan-to-implement-my-own-whs-drive-extender-like-system/">I did it</a>. <a class="vt-p" href="http://code.google.com/p/greyhole/">Greyhole</a> is now available to all avid enthusiasts who would like to try it.</p>
<p>What is it? It&#8217;s Windows Home Server Drive Extender concept, but open source, running on Linux.<br />
To quote myself:</p>
<blockquote><p>Greyhole is an application that uses Samba to create a storage pool of all your available hard drives (whatever their size, however they&#8217;re connected), and allows you to create redundant copies of the files you store, in order to prevent data loss when part of your hardware fails.</p></blockquote>
<p>You can read more about it on the Google Code summary page: <a class="vt-p" href="http://code.google.com/p/greyhole/">http://code.google.com/p/greyhole/</a></p>
<p><strong>I&#8217;m now looking for adventurous souls who would like to battle-test it.</strong><br />
I&#8217;m sure there are bugs, and probably some of them will delete data it shouldn&#8217;t. So I&#8217;d like to find those ASAP, before I loose the 5TB of data I myself have stored in my own Greyhole server.</p>
<p>So if you&#8217;re fed up with the Windows 2003 Server overhead you&#8217;re now using just to get Drive Extender functionalities, or if you were waiting for an open source version to use it, or if you&#8217;d just like to help me&#8230; Start on the link above, and follow instructions in the INSTALL file.<br />
You&#8217;ll need to be somewhat familiar with Linux to be able to install it. Newbies should restrain themselves from using Greyhole until it reach the 1.0 milestone (or something).</p>
<p><strong><span style="color: #ff0000;">Big red warning: Do NOT store your only copies of important files on Greyhole! It&#8217;s not ready for that. It needs to be tested first.<br />
</span></strong>I am using it to store 5TB of backups, photos, videos and music here, but I&#8217;m telling you that you shouldn&#8217;t do that! You&#8217;ll cry yourself to death when Greyhole eats all of it, as I&#8217;m sure it&#8217;s capable of!</p>
<p>That being said, the INSTALL file is pretty detailed, and the configuration file should help you understand what you need to know.</p>
<p>Feel free to discuss here, or <a class="vt-p" href="http://code.google.com/p/greyhole/issues/list">open issues</a> in the project page, if you have suggestions, comments, or bug reports.</p>
<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=5.0" /></div><div>Rating: 5.0/<strong>5</strong> (1 vote cast)</div><br />]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2009/12/greyhole-easily-expandable-redundant-storage-pool-using-samba/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How I plan to implement my own WHS Drive Extender-like system [UPDATED]</title>
		<link>http://www.pommepause.com/blog/2009/11/how-i-plan-to-implement-my-own-whs-drive-extender-like-system/</link>
		<comments>http://www.pommepause.com/blog/2009/11/how-i-plan-to-implement-my-own-whs-drive-extender-like-system/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 12:21:37 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Home Server]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=121</guid>
		<description><![CDATA[I do like Windows Home Server Drive Extender technology. It allows oneself to aggregate a bunch of various-sized hard disks into one big storage pool. You can then define a number of shares that will share (!) that storage pool dynamically. And you can define which shares you want duplicated, which basically mean that DE (Drive Extender) will make sure that all the files on there are on two different physical hard drives, to safeguard those files against hardware failures.
I've been searching for quite a while to find a similar system that would fit my needs, and never found one. Then yesterday, I had an idea on how I could implement such a system myself.<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=4.3" /></div><div>Rating: 4.3/<strong>5</strong> (3 votes cast)</div><br />]]></description>
			<content:encoded><![CDATA[<p>[<strong>Update</strong>] I did it. Read about it <a class="vt-p" title="Greyhole – Easily expandable &amp; redundant storage pool using Samba" href="/blog/2009/12/greyhole-easily-expandable-redundant-storage-pool-using-samba/">here</a>.</p>
<p>I do like <a class="vt-p" href="http://www.microsoft.com/windows/products/winfamily/windowshomeserver/default.mspx">Windows Home Server</a> <a class="vt-p" href="http://en.wikipedia.org/wiki/Windows_Home_Server#Drive_Extender">Drive Extender</a> technology. It allows oneself to aggregate a bunch of various-sized hard disks into one big storage pool. You can then define a number of shares that will share (!) that storage pool dynamically. AND you can define which shares you want <em>duplicated</em>, which basically mean that DE (Drive Extender) will make sure that all the files on there are on two different physical hard drives, to safeguard those files against hardware failures.</p>
<p>What I don&#8217;t like about WHS is that it comes with a lot of stuff I don&#8217;t need or want, like a Windows 2003 kernel, a Windows-only backup system, Video/Music/Photos sharing, etc.</p>
<p>I&#8217;ve been searching for quite a while to find a similar system that would fit my needs, and never found one. Then yesterday, I had an idea on how I could implement such a system myself.</p>
<p>Here&#8217;s how I&#8217;ll try to implement WHS Drive Extender-like functionality. I&#8217;m posting this expecting comments and feedback on the choices I made below, so feel free to leave comments about anything. Thanks!</p>
<ul>
<li>I started with a clean Ubuntu 9.10.</li>
<li>Using the Samba log, and the extd_audit VFS module that comes with Samba, monitor all file activity on the SMB shares: file writes, deletes &amp; renames and directory creates, deletes and renames.</li>
<li>Enable <em>follow symlinks</em> in smb.conf</li>
<li>Each minute (using cron), a parser starts, and reads the Samba log (starting where it stopped last time it ran &#8211; saved in a <em>last_read</em> variable in the database), and for each extd_audit entry it finds in the log, it inserts a <em>task</em> in a database. When it&#8217;s done, update the <em>last_read</em> variable.</li>
<li>A tasks executer runs in permanence, and when the I/O on the server is not over a specific threshold, will start executing the pending tasks. Executing a tasks means something different, depending on what was logged:
<ul>
<li>New files: pick X random drives (as defined in the config of the current share), and copy the new file on all those drives, then create a symlink to one of those copies in the actual share.</li>
<li>Existing files changed: since a symlink already exists, one copy of the file is already up to date; we just need to find the other copies, and copy the newly changed file over those old files.</li>
<li>Renamed files/directories: (Only the symlink has been renamed.) Find all copies of the file/directory, and rename all of them.</li>
<li>Delete files/directories: (Symlink is already deleted.) Find all copies of the file/directory, and delete all of them.</li>
</ul>
</li>
<li>Executed tasks will be removed from the database (and archived somewhere else).</li>
<li>Every 10 seconds or so, the executer daemon will check again to see if the I/O of the server is too high, and if so, will pause. Obviously, it should ignore it&#8217;s own I/O, since that doesn&#8217;t really count as <em>server-busyness</em>! This might be a tricky part.</li>
<li>Set <em>max log size = 0 </em>in smb.conf, and rotate the Samba log manually: rotate the actual log file, then immediately update the <em>last_read</em> value that the parser uses to 0.</li>
<li>When a hard-drisk goes missing, a process will walk through the shares, and find all symlinks that point to that drive. All those symlinks will be changed to point to another copy of the file, if one is available. Another copy of the file should be made on another available hard drive, to keep the files safe. Not sure yet if this process should be manually triggered, or automatically triggered when a drive is missing for more than X minutes&#8230;</li>
</ul>
<p>So that&#8217;s it. I think that pretty much duplicate the only features of WHS I use: files on shares that a are important will be available on 2+ physical drives, and the combined storage space of all the hard drives will be available for any share.</p>
<p>The only downside of all this is that the reported free space of the shares will be the free space on the <em>landing zone</em>, not the actual free space of the complete storage pool. Might find a solution for this at some point&#8230; Maybe it&#8217;s possible to create a Samba VFS module to handle this..?<br />
[<strong>Update</strong>] Indeed; you can specify, in smb.conf, an external command that will be used to query the free and total space on the specified share.</p>
<p>So again, feedback on all this would be welcome.</p>
<p>/me continues implementation now</p>
<br /><div><img src="http://www.pommepause.com/blog/wp-content/plugins/gd-star-rating/gfx.php?value=4.3" /></div><div>Rating: 4.3/<strong>5</strong> (3 votes cast)</div><br />]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2009/11/how-i-plan-to-implement-my-own-whs-drive-extender-like-system/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
