<?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>Mon, 03 Oct 2011 14:53:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Show/Hide DesktopShelves using a Hot Corner</title>
		<link>http://www.pommepause.com/blog/2011/10/showhide-desktopshelves-using-a-hot-corner/</link>
		<comments>http://www.pommepause.com/blog/2011/10/showhide-desktopshelves-using-a-hot-corner/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 14:24:36 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=434</guid>
		<description><![CDATA[Here's how I setup a Hot Corner to show or hide my DesktopShelves.
(Note that this trick can also be used to launch any program or AppleScript using a Hot Corner.)]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s how I setup a Hot Corner to show or hide my DesktopShelves.<br/><br />
(Note that this trick can also be used to launch any program or AppleScript using a Hot Corner.)<br/><br />
<br/><br />
The magic lies in a nice piece of software written by <a class="vt-p" href="http://swannman.wordpress.com/">Matt Swann</a>: <a class="vt-p" href="http://swannman.wordpress.com/projects/scriptsaver/">ScriptSaver</a><br/><br />
This screen saver will in fact execute any AppleScript you specify instead (or before) launching a screen saver.<br/><br />
<br/><br />
Here&#8217;s step-by-step instructions for how to use it to show &#038; hide your DesktopShelves:</p>
<ul>
<li>Download <a class="vt-p" href="http://swannman.wordpress.com/projects/scriptsaver/">ScriptSaver</a></li>
<li>Download the AppleScript I created: <a class="vt-p" href="http://www.pommepause.com/blog/wp-content/uploads/2011/10/ActivateDesktopShelves.scpt_.zip">ActivateDesktopShelves.scpt</a> or, if you&#8217;d like to use the iPhoto screen saver instead of the standard ones (Arabesque, Flurry, &#8230;), use this script instead: <a class="vt-p" href="http://www.pommepause.com/blog/wp-content/uploads/2011/10/ActivateDesktopShelves-iPhotoScreenSaver.scpt_.zip">ActivateDesktopShelves-iPhotoScreenSaver.scpt</a></li>
<li>Download MouseLocation* using <strong>Terminal.app</strong>. (Just paste the complete line below in Terminal.)<br />
[crayon nums="false" title="Terminal.app"]curl -so /tmp/MouseLocation.zip http://www.pommepause.com/blog/wp-content/uploads/2011/10/MouseLocation.zip ; unzip /tmp/MouseLocation.zip ; sudo mv MouseLocation /usr/local/opt/[/crayon]</li>
<li>Extract the AppleScript from the above download, and put the .scpt file in ~/Applications (or anywhere really!)</li>
<li>If you&#8217;ll be using ActivateDesktopShelves.scpt, open it in AppleScript Editor (just double-click it) and change the 2nd line from the bottom to start your preferred screen saver. The default is &#8220;Flurry&#8221;, and the list of available screen savers appears just above that line. Save it once you&#8217;re done.</li>
<li>If you&#8217;ll be using ActivateDesktopShelves-iPhotoScreenSaver.scpt instead, there&#8217;s two additional steps:</li>
<ul>
<li>Go in <strong>System Preferences</strong>, and select the iPhoto screen saver. Chooses the options you&#8217;d like to use.</li>
<li>In <strong>Terminal</strong>, create a copy of the screen saver preferences file. (Just paste the following 3 lines in Terminal.)<br />
[crayon lang="bash" nums="false" title="Terminal.app"]uuid=`/usr/sbin/system_profiler SPHardwareDataType | grep &#8216;Hardware UUID&#8217; | cut -c22-57`<br />
file=~/Library/Preferences/ByHost/com.apple.screensaver.$uuid.plist<br />
cp $file $file.iPhoto[/crayon]</li>
</ul>
<li>Install ScriptSaver: double click the <strong>ScriptSaver.saver</strong> file</li>
<li>Click <strong>Options&#8230;</strong></li>
<ul>
<li>Activation Script: select the .scpt file you downloaded above (in ~/Applications)</li>
<li>Run asynchronously: checked</li>
<li>Screen Saver: None</li>
<li>Deactivation Script: empty</li>
<li>Show desktop while synchronous scripts execute: checked</li>
</ul>
<li>Click <strong>Hot Corners&#8230;</strong> Assign one or more Hot Corner to <strong>Start Screen Saver</strong>.</li>
</ul>
<p>The AppleScript will detect if the mouse is in a corner, and if so, will launch DesktopShelves.app, which will in turn display your shelves.<br/><br />
If the mouse isn&#8217;t in a corner, then your screen saver will start.<br/><br />
<br/><br />
Voilà! A nice way to start any app using a Hot Corner, and a nice way to use DesktopShelves only with your mouse.<br/><br />
<br/><br />
<strong>Footnotes</strong><br/><br />
* MouseLocation is a simple Objective-C executable created using the following code:<br />
[crayon lang="objective-c" title="MouseLocation.m"]<br />
#import <AppKit/AppKit.h></p>
<p>int main (int argc, const char * argv[]) {<br />
	NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];</p>
<p>	NSPoint mouseLoc = [NSEvent mouseLocation]; //get current mouse position<br />
	NSString* locString = [NSString stringWithFormat:@"%.0f, %.0f", mouseLoc.x, mouseLoc.y];<br />
	printf(&#8220;%s\n&#8221;, [locString UTF8String]);</p>
<p>	[pool drain];<br />
	return 0;<br />
}<br />
[/crayon]<br />
Compiled using the following command (Xcode required):<br />
[crayon lang="bash" nums="false" title="Terminal.app"]<br />
sudo gcc -o /usr/local/opt/MouseLocation MouseLocation.m -framework AppKit<br />
[/crayon]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2011/10/showhide-desktopshelves-using-a-hot-corner/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Start iPhoto screen saver from AppleScript</title>
		<link>http://www.pommepause.com/blog/2011/10/start-iphoto-screen-saver-from-applescript-2/</link>
		<comments>http://www.pommepause.com/blog/2011/10/start-iphoto-screen-saver-from-applescript-2/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 10:02:22 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=439</guid>
		<description><![CDATA[Starting the screen saver from AppleScript is simple enough. Even starting another screen saver than the default from System Preferences is simple, if you want one of the standard screen saver. But it becomes much more complicated if you'd like to start the iPhoto screen saver, and use another as the System Preferences default. Here's how I did it.]]></description>
			<content:encoded><![CDATA[<p>Starting the screen saver from AppleScript is simple enough:<br />
[crayon lang="applescript" nums="false" title="AppleScript Editor.app"]tell application &#8220;System Events&#8221; to start current screen saver[/crayon]<br />
Even starting another screen saver than the default from System Preferences is simple, if you want one of the standard screen saver:<br />
[crayon lang="applescript" nums="false" title="AppleScript Editor.app"]tell application &#8220;System Events&#8221; to tell screen saver &#8220;Arabesque&#8221; to start[/crayon]<br />
But it becomes much more complicated if you&#8217;d like to start the iPhoto screen saver, and use another as the System Preferences default.<br />
Here&#8217;s how I did it:</p>
<ul>
<li>Go in <strong>System Preferences</strong>, and select the iPhoto screen saver. Chooses the options you&#8217;d like to use.</li>
<li>In <strong>Terminal</strong>, create a copy of the screen saver preferences file:<br />
[crayon lang="bash" nums="false" title="Terminal.app"]uuid=`/usr/sbin/system_profiler SPHardwareDataType | grep &#8216;Hardware UUID&#8217; | cut -c22-57`<br />
file=~/Library/Preferences/ByHost/com.apple.screensaver.$uuid.plist<br />
cp $file $file.iPhoto[/crayon]</li>
<li>Go back in <strong>System Preferences</strong>, and change the screen saver to the other screen saver you&#8217;d like to use as your default.</li>
</ul>
<p>Once you did all that, here&#8217;s how to start the iPhoto screen saver from AppleScript:<br />
[crayon lang="applescript" title="AppleScript Editor.app"]<br />
tell application &#8220;System Events&#8221;<br />
set uuid to do shell script (&#8220;/usr/sbin/system_profiler SPHardwareDataType | grep &#8216;Hardware UUID&#8217; | cut -c22-57&#8243;)<br />
set theFolder to folder (preferences folder&#8217;s path &amp; &#8220;ByHost&#8221;)<br />
set theFile to &#8220;com.apple.screensaver.&#8221; &amp; uuid &amp; &#8220;.plist&#8221;<br />
do shell script &#8220;cd &#8221; &amp; POSIX path of theFolder &amp; &#8220;; cp &#8221; &amp; theFile &amp; &#8221; &#8221; &amp; theFile &amp; &#8220;.orig; cp &#8221; &amp; theFile &amp; &#8220;.iPhoto &#8221; &amp; theFile<br />
start current screen saver<br />
do shell script &#8220;sleep 5; cd &#8221; &amp; POSIX path of theFolder &amp; &#8220;; cp &#8221; &amp; theFile &amp; &#8220;.orig &#8221; &amp; theFile<br />
end tell<br />
[/crayon]<br />
Explanations:</p>
<ul>
<li>line 2: find the machine&#8217;s UUID; this is needed because the screen saver preferences file contains that in it&#8217;s name;</li>
<li>line 3: the folder where the preferences file is: ~/Library/Preferences/ByHost/;</li>
<li>line 4: the name of the preferences file: com.apple.screensaver.[UUID].plist;</li>
<li>line 5: create a .orig backup of the current preferences file, and then overwrite it with the iPhoto copy that was created manually above;</li>
<li>line 6: start the iPhoto screen saver;</li>
<li>line 7: wait 5 seconds, to allow the iPhoto screen saver some time to launch, then put back the .orig backup we made at line 5, so that your default screen saver will be used when it&#8217;s time.</li>
</ul>
<p>Convoluted? Yes. Achieves the desired result? You bet!</p>
<p>I did this because I wanted to show the iPhoto screen saver when an AppleScript triggered by ScriptSaver was executed. More details in <a class="vt-p" title="Show/Hide DesktopShelves using a Hot Corner" href="http://www.pommepause.com/blog/2011/10/showhide-desktopshelves-using-a-hot-corner/">Show/Hide DesktopShelves using a Hot Corner</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2011/10/start-iphoto-screen-saver-from-applescript-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Has Gmail spam filter become too aggressive?</title>
		<link>http://www.pommepause.com/blog/2011/04/has-gmail-spam-filter-become-too-aggressive/</link>
		<comments>http://www.pommepause.com/blog/2011/04/has-gmail-spam-filter-become-too-aggressive/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 14:25:57 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Technical Problems]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=388</guid>
		<description><![CDATA[I'm not sure if I'm the only one who noticed (I hope not!), but recently, the Gmail spam filter started marking as spam a lot of messages that were NOT spam.
Here's the ones I found, while looking at only the first two pages of my Spam folder (about two days worth of spams)]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not sure if I&#8217;m the only one who noticed (I hope not!), but recently, the Gmail spam filter started marking as spam a lot of messages that were NOT spam.</p>
<p>Here&#8217;s the ones I found, while looking at only the first two pages of my Spam folder (about two days worth of spams):</p>
<ul>
<li>A Logitech.com shipment notification;</li>
<li>My monthly Yak invoice;</li>
<li>My monthly &#8216;your invoice is ready&#8217; from Citibank;</li>
<li>The OpenDNS newsletter;</li>
<li>Two commit notifications from Google Code;</li>
<li>Three &#8216;your password has been reset&#8217; emails, from WordPress.org, and other less known bulletin boards.</li>
</ul>
<p>This makes me sad for multiple reasons. One is that while I have been able to catch some of them easily enough (the various reset password systems I used did point out that their email could end up in our Spam folders), I just found the others. That means I probably missed at least some other emails.</p>
<p>The second reason I&#8217;m sad is that now, I&#8217;ll need to go through all those spam messages to find the ones I care about! Not something I expected to do this morning, nor something that is particularly pleasant&#8230; Plus, I&#8217;ll need to repeat that every day now!</p>
<p>And finally, this make me sad because I trusted the Gmail team. I understand that spam filtering is not simple, but I would have greatly preferred for them to tweak their algorithm to push the balance in the other direction. It&#8217;s much easier for us to flag the occasional spam emails that would end up in our inboxes than to have to go through thousands of emails to find important messages!</p>
<p>Let&#8217;s hope the Gmail-Spam-Filter team hears this, and works toward a good resolution in a timely fashion.</p>
<p>What about you? How many not-spam messages can you find in your Gmail Spam folder in the next few minutes?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2011/04/has-gmail-spam-filter-become-too-aggressive/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Videotron Internet Usage Monitor</title>
		<link>http://www.pommepause.com/blog/2011/03/videotron_internet_usage_monitor/</link>
		<comments>http://www.pommepause.com/blog/2011/03/videotron_internet_usage_monitor/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 17:29:26 +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=362</guid>
		<description><![CDATA[Would you like to monitor your monthly Videotron Internet quota easily? Use either my Mac Dashboard widget, or my Google Chrome Extension.]]></description>
			<content:encoded><![CDATA[<div style="text-align: center; border: 1px solid #E6DB55; background: lightYellow; width: 500px; padding: 10px 0 10px 0; margin: 0 auto;"><strong><span style="color: #ff0000;"><span style="color: #000000;">Important note:</span> the softwares below are now officially unsupported.<br />
</span>I&#8217;m not a Videotron client anymore, so it became difficult, and without interest, for me to continue development on both of those solutions to track your bandwidth quota.<br />
</strong><br />
<strong>If you know any developer that might be interested in continuing development and support, feel free to send them a note.</strong><br />
<strong>(JavaScript is the main programming language of both softwares.)</strong></div>
<p>Would you like to monitor your monthly Videotron Internet quota easily?</p>
<p>I offer two choices:</p>
<p>1) a <a class="vt-p" href="https://chrome.google.com/webstore/detail/fnhepcakkcnkaehfhpagimbbkpelkdha">Google Chrome extension</a></p>
<p><a class="vt-p" href="http://www.pommepause.com/blog/wp-content/uploads/2011/03/videotron_chrome_ext_ss.png"><img class="alignnone size-full wp-image-425" title="videotron_chrome_ext_ss" src="http://www.pommepause.com/blog/wp-content/uploads/2011/03/videotron_chrome_ext_ss.png" alt="" width="400" height="275" /></a></p>
<p>2) a <a class="vt-p" href="http://www.pommepause.com/blog/2010/01/mac-widget-videotron-internet-usage-monitor/">Mac Dashboard widget</a></p>
<p><img class="alignnone" src="http://www.pommepause.com/blog/wp-content/uploads/2010/01/screenshot1.png" alt="Mac Dashboard widget screenshot" width="400" height="180" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2011/03/videotron_internet_usage_monitor/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>Chrome Extension &#8211; Get comments in RSS format</title>
		<link>http://www.pommepause.com/blog/2011/03/chrome-extension-get-comments-in-rss-format/</link>
		<comments>http://www.pommepause.com/blog/2011/03/chrome-extension-get-comments-in-rss-format/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 01:34:50 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=349</guid>
		<description><![CDATA[So you got a nice Google Chrome extension, right?
And people do leave comments / questions / hate mail on the extension page all the time.
Here's how to receive those in your RSS reader.]]></description>
			<content:encoded><![CDATA[<p>So you got a <a class="vt-p" title="Videotron Internet Usage Monitor - Chrome Extension" href="https://chrome.google.com/webstore/detail/fnhepcakkcnkaehfhpagimbbkpelkdha">nice Google Chrome extension</a>, right?<br />
And people do leave comments / questions / hate mail on the extension page all the time.<br />
But the only way for you to get those is to visit that page in your browser&#8230; Not cool. Not cool at all, Google!</p>
<p>Wanting to get the comments in Google Reader, I simply looked in the Inspect Element &gt; Network tab, to see what was going on, when I visited the Chrome Store page for my extension. And lo and behold, there&#8217;s an AJAX request to fetch the comments, with the results returned as a nice JSON-encoded object!</p>
<p>A <a class="vt-p" title="Source code for my RSS generator" href="dataproxy.pommepause.com/chrome_reviews_rss.phps">couple of LOCs of PHP later</a>, I now have an URL that takes in parameter an extension ID (that 32-characters-long string of letters you see in the URL, when you visit the extension URL; eg. fnhepcakkcnkaehfhpagimbbkpelkdha), and an optional extension name (to beautify the RSS a little), and gives me a RSS feed of all the comments for that extension.</p>
<p>Want to use it yourself? Easy peasy!</p>
<p>Just go here: <a href="http://dataproxy.pommepause.com/chrome_reviews_rss.php">Google Chrome Extension Comments RSS Generator</a></p>
<p>Enjoy, fellow extensions developers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2011/03/chrome-extension-get-comments-in-rss-format/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Greyhole Roadmap &#8211; version 0.9</title>
		<link>http://www.pommepause.com/blog/2010/12/greyhole-roadmap-version-0-9/</link>
		<comments>http://www.pommepause.com/blog/2010/12/greyhole-roadmap-version-0-9/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 02:39:45 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Greyhole]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=302</guid>
		<description><![CDATA[WIth 0.8 just out the door, I began thinking about 0.9.
That version will focus on fixing Greyhole's greatest bug creator: the rename operation!]]></description>
			<content:encoded><![CDATA[<p>WIth 0.8 just out the door, I began thinking about 0.9.<br />
That version will focus on fixing Greyhole&#8217;s greatest bug creator: the rename operation!<br />
There has been, and probably always will be, problems with the current implementation that Greyhole has to handle file and directory renames.<br />
I have some ideas on how to fix them all, once and for all, but this will require some non-trial development, clean up and regression testing.<br />
I&#8217;m hopeful that re-implementing this part of Greyhole will make it much less bug-prone, when renames are concerned.<br />
More about this soon (when 0.9 will be released I guess&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/12/greyhole-roadmap-version-0-9/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Greyhole 0.8 &amp; Samba module</title>
		<link>http://www.pommepause.com/blog/2010/12/greyhole-0-8-samba-module/</link>
		<comments>http://www.pommepause.com/blog/2010/12/greyhole-0-8-samba-module/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 02:39:25 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Greyhole]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=300</guid>
		<description><![CDATA[I just built and uploaded version 0.8 of Greyhole on Google Code.
This version doesn't change much of what is normally visible to the end users (except the regular bugfixes). Instead, 0.8 focused on improving an area of Greyhole that has always been messy: the communication channel between Samba and the Greyhole daemon.]]></description>
			<content:encoded><![CDATA[<p>I just built and uploaded version 0.8 of Greyhole on Google Code.<br />
This version doesn&#8217;t change much of what is normally visible to the end users (except the regular bugfixes). Instead, 0.8 focused on improving an area of Greyhole that has always been messy: the communication channel between Samba and the Greyhole daemon.</p>
<p>In the past, Greyhole used a log file to log all file operations that happened on Greyhole-enabled Samba shares. At one point, it used it&#8217;s own log file, then switched to using syslog (/var/log/messages usually).<br />
In version 0.8, Greyhole now use spool files to log those operations.<br />
This is similar to how email servers (like sendmail and postfix) work.<br />
Basically, Samba will create small data files in /var/spool/greyhole/, with filenames being timestamps of when the event happened.<br />
When the Greyhole daemon needs something to do, it will look in that directory, and process any files it finds.</p>
<p>All of this serves multiple purposes. One is to simplify Greyhole code.<br />
Parsing a log file wasn&#8217;t that pleasant: we had to remember where we stopped parsing the log the last time we looked at it, and we had to handle log rotation in order to not miss any operations.<br />
All of this is now a thing of the past. We now simply list a directory, and process the files we find there, before deleting them. Quite simple really!</p>
<p>Another goal which we&#8217;re aiming for with 0.8 is to have the Samba module that Greyhole use become part of Samba. That would mean that everyone with Samba installed would have at least one of the many blocks required to run Greyhole. That would also mean a lot more visibility for Greyhole than what we currently have. I&#8217;m currently working with Samba developers to make that a reality, and I expect to get this committed in the Samba mainline repository in the upcoming weeks.</p>
<p>Next up is <a href="http://www.pommepause.com/blog/2010/12/greyhole-roadmap-version-0-9/">version 0.9</a>, and <a href="http://www.pommepause.com/blog/2010/12/greyhole-new-website/">a new website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/12/greyhole-0-8-samba-module/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Greyhole new website</title>
		<link>http://www.pommepause.com/blog/2010/12/greyhole-new-website/</link>
		<comments>http://www.pommepause.com/blog/2010/12/greyhole-new-website/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 02:38:56 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[Greyhole]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=306</guid>
		<description><![CDATA[This week, I created a new website for Greyhole.
This website centralize all the information one could want about Greyhole.]]></description>
			<content:encoded><![CDATA[<p>This week, I created a <a href="http://www.greyhole.net">new website for Greyhole</a>.</p>
<p>This website centralize all the information one could want about Greyhole:</p>
<ul>
<li>A presentation of what Greyhole is (homepage)</li>
<li>Links to download the latest version</li>
<li>Links to past versions downloads</li>
<li>Links to the code repository, issues tracker &#038; wiki (documentation), all hosted on Google Code</li>
<li>Link to &#8220;Fund a Feature | Donate&#8221;, hosted by <a href="http://fundry.com">fundry.com</a></li>
<li>RSS feeds for Greyhole news (which you really should subscribe to if you&#8217;re reading this!), downloads, issues or commits</li>
<li>Link to <a href="http://twitter.com/greyholeapp">@GreyholeApp</a> Twitter account</li>
<li>And links to a support forum (GetSatisfaction), and live chat (IRC channel on FreeNode)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/12/greyhole-new-website/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>tou.tv pour iPad</title>
		<link>http://www.pommepause.com/blog/2010/11/tou-tv-pour-ipad/</link>
		<comments>http://www.pommepause.com/blog/2010/11/tou-tv-pour-ipad/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 18:06:03 +0000</pubDate>
		<dc:creator>Guillaume Boudreau</dc:creator>
				<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://www.pommepause.com/blog/?p=290</guid>
		<description><![CDATA[Des fois, ça ne va juste pas assez vite à ton goût.
Comme avec tou.tv.  Ça fait longtemps qu’ils disent qu’une version pour iPad est prévue, mais pourquoi attendre quand on a tous les outils pour que ça fonctionne maintenant ?]]></description>
			<content:encoded><![CDATA[<p>Des fois, ça ne va juste pas assez vite à ton goût.<br />
Comme avec <a class="vt-p" href="http://tou.tv">tou.tv</a>.  Ça fait longtemps qu&#8217;ils disent qu&#8217;une version pour iPad est prévue, mais pourquoi attendre quand on a tous les outils pour que ça fonctionne maintenant ?</p>
<p>Le principe: un interface web, accesible du iPad, qui permet de naviguer les émissions &amp; épisodes disponibles sur tou.tv.<br />
En sélectionnant un épisode qu&#8217;on veut écouter, le serveur web utilise <a class="vt-p" href="http://rtmpdump.mplayerhq.hu/">RTMPDump</a> pour télécharger le fichier vidéo (.FLV) du serveur de tou.tv, et le sauve dans un répertoire local.<br />
Sur le iPad, il suffit alors d&#8217;utiliser un logiciel qui permet de streamer des vidéos (<a class="vt-p" href="http://www.zumocast.com/">ZumoCast</a>, <a class="vt-p" href="http://www.edavs.com/AirPlayer.shtml">AirPlayer</a>, etc.) pour écouter le fichier qui est téléchargé sur le serveur web.</p>
<p>On rajoute quelques extras dans l&#8217;interface web, comme une page pour gérer les téléchargements, une option pour télécharger automatiquement les nouveaux épisodes d&#8217;une série (aka Subscribe), un interface pour Google TV, et voilà! Une belle application très pratique. Et avec un <a class="vt-p" href="http://en.wikipedia.org/wiki/Wife_acceptance_factor">Wife acceptance factor</a> très élevé!</p>
<p>Quelques captures d&#8217;écran:</p>
<p><object width="550" height="700"><param name="flashvars" value="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fgboudreau%2Fsets%2F72157625341759736%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fgboudreau%2Fsets%2F72157625341759736%2F&#038;set_id=72157625341759736&#038;jump_to="></param><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" allowFullScreen="true" flashvars="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fgboudreau%2Fsets%2F72157625341759736%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fgboudreau%2Fsets%2F72157625341759736%2F&#038;set_id=72157625341759736&#038;jump_to=" width="550" height="700"></embed></object></p>
<p>Pour ceux qui voudrait essayer: <a class="vt-p" href="http://www.pommepause.com/blog/wp-content/uploads/2010/11/tou.tv-pour-iPad.zip">tou.tv pour iPad</a></p>
<p>Requis: Un server web avec PHP, et l&#8217;extension PDO (sqlite3) activée.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/11/tou-tv-pour-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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.]]></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>
]]></content:encoded>
			<wfw:commentRss>http://www.pommepause.com/blog/2010/06/fuel-consumption-tracker/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

