<?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>Aidan Findlater</title>
	<atom:link href="http://www.aidanfindlater.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aidanfindlater.com</link>
	<description></description>
	<lastBuildDate>Mon, 08 Mar 2010 21:00:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>XAMPP with Xdebug on Snow Leopard</title>
		<link>http://www.aidanfindlater.com/2010/03/08/xampp-with-xdebug-on-snow-leopard/</link>
		<comments>http://www.aidanfindlater.com/2010/03/08/xampp-with-xdebug-on-snow-leopard/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 21:00:31 +0000</pubDate>
		<dc:creator>Aidan Findlater</dc:creator>
				<category><![CDATA[Impersonal]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xampp]]></category>
		<category><![CDATA[xdebug]]></category>

		<guid isPermaLink="false">http://www.aidanfindlater.com/?p=651</guid>
		<description><![CDATA[If you compiled the xdebug module and see the following in your log file:
Failed loading /Applications/XAMPP/xamppfiles/lib/php/php-5.3.0/extensions/no-debug-non-zts-20090626/xdebug.so:  dlopen(/Applications/XAMPP/xamppfiles/lib/php/php-5.3.0/extensions/no-debug-non-zts-20090626/xdebug.so, 9): no suitable image found.  Did find:
        /Applications/XAMPP/xamppfiles/lib/php/php-5.3.0/extensions/no-debug-non-zts-20090626/xdebug.so: mach-o, but wrong architecture
Just download the pre-compiled module from Komodo Debugger Extensions.
For context, here are some directions.
]]></description>
			<content:encoded><![CDATA[<p>If you compiled the xdebug module and see the following in your log file:</p>
<pre>Failed loading /Applications/XAMPP/xamppfiles/lib/php/php-5.3.0/extensions/no-debug-non-zts-20090626/xdebug.so:  dlopen(/Applications/XAMPP/xamppfiles/lib/php/php-5.3.0/extensions/no-debug-non-zts-20090626/xdebug.so, 9): no suitable image found.  Did find:
        /Applications/XAMPP/xamppfiles/lib/php/php-5.3.0/extensions/no-debug-non-zts-20090626/xdebug.so: mach-o, but wrong architecture</pre>
<p>Just download the pre-compiled module from <a href="http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging">Komodo Debugger Extensions</a>.</p>
<p>For context, <a href="http://debuggable.com/posts/setting-up-xdebug-on-mac-os-x-or-win32-linux:480f4dd6-0240-4a90-8fa1-4e41cbdd56cb">here are some directions</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aidanfindlater.com/2010/03/08/xampp-with-xdebug-on-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to globally ignore .DS_Store when using Git</title>
		<link>http://www.aidanfindlater.com/2010/02/12/how-to-globally-ignore-ds_store-when-using-git/</link>
		<comments>http://www.aidanfindlater.com/2010/02/12/how-to-globally-ignore-ds_store-when-using-git/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 20:22:01 +0000</pubDate>
		<dc:creator>Aidan Findlater</dc:creator>
				<category><![CDATA[Impersonal]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[mac os x]]></category>

		<guid isPermaLink="false">http://www.aidanfindlater.com/?p=644</guid>
		<description><![CDATA[If you don&#8217;t want OS X mucking up your Git repo with DS_Store files, you can set up a global ignore file. As per freshsauce, you simply execute the following two commands:
git config --global core.excludesfile ~/.gitignore
echo .DS_Store &#62;&#62; ~/.gitignore
Brilliant.
]]></description>
			<content:encoded><![CDATA[<p>If you don&#8217;t want OS X mucking up your Git repo with DS_Store files, you can set up a global ignore file. As per <a href="http://www.freshsauce.co.uk/snippets/git-ignore-dsstore-files-globally-per-user_28">freshsauce</a>, you simply execute the following two commands:</p>
<pre>git config --global core.excludesfile ~/.gitignore
echo .DS_Store &gt;&gt; ~/.gitignore</pre>
<p>Brilliant.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aidanfindlater.com/2010/02/12/how-to-globally-ignore-ds_store-when-using-git/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Use VPN for specific sites, on Mac OS X</title>
		<link>http://www.aidanfindlater.com/2010/02/03/use-vpn-for-specific-sites-on-mac-os-x/</link>
		<comments>http://www.aidanfindlater.com/2010/02/03/use-vpn-for-specific-sites-on-mac-os-x/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 04:08:22 +0000</pubDate>
		<dc:creator>Aidan Findlater</dc:creator>
				<category><![CDATA[Impersonal]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://www.aidanfindlater.com/?p=631</guid>
		<description><![CDATA[Summary: To access a specific list of websites through a specific VPN on Mac OS X 10.6, I created /etc/ppp/ip-up, copied in the script below, and chmoded it executable.

Background: Most universities pay publishers to provide unlimited access to their journals and other publications. Access control is usually based on IP address, with the publisher allowing [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Summary:</strong> To access a specific list of websites through a specific VPN on Mac OS X 10.6, I created <tt>/etc/ppp/ip-up</tt>, copied in the script below, and <tt>chmod</tt>ed it executable.<br />
<span id="more-631"></span></p>
<p><strong>Background:</strong> Most universities pay publishers to provide unlimited access to their journals and other publications. Access control is usually based on IP address, with the publisher allowing free access only to the university&#8217;s specific block of IP addresses. In order for a student or faculty member to take advantage of the system, they must either be on campus or be routing their internet traffic through their university&#8217;s <a href="http://en.wikipedia.org/wiki/Virtual_private_network">VPN</a>. The problem is, routing through VPNs in Mac OS X is kind of an all-or-nothing deal: either it uses the VPN for <em>everything</em> or it uses it only for IP addresses in the VPN&#8217;s <a href="http://en.wikipedia.org/wiki/Subnetwork">subnet</a>, with the latter being the default behaviour in Mac OS X 10.6.</p>
<p>I want finer control. Specifically, <strong>I want OS X to use the VPN for specific websites</strong>. It turns out this isn&#8217;t too hard.</p>
<p><strong>Solution:</strong> To route specific websites (i.e. journal publishers) through my university VPN, I created <tt>/etc/ppp/ip-up</tt> with the following contents:</p>
<pre>#!/bin/bash
#
# Script which handles the routing issues as necessary for pppd.
# When the ppp link comes up, this script is called with the following
# parameters:
#       $1      the interface name used by pppd (e.g. ppp3)
#       $2      the tty device name
#       $3      the tty device speed
#       $4      the local IP address for the interface
#       $5      the remote IP address
#       $6      the parameter specified by the 'ipparam' option to pppd
#

## Routing setup for VPN

# Array of IP addresses of the VPN server(s)
# I have it grab the list of round-robin'ed IP addresses based on the domain name
VPN_HOSTS=$(dig +short inside.mcgill.ca)

# Array of hostns to route for
# These are the domain names and IP addresses that will be accessed through the VPN
VPN_ROUTE_FOR_HOSTS=(www.elsevier.com www.sciencedirect.com www.thelancet.com www.cmaj.ca scholar.google.com ncbi.nlm.nih.gov bmj.com)

# Make sure we're in the VPN
for i in ${VPN_HOSTS[@]} ; do if [[ $i == ${5:-} ]] ; then

    # Add the routes
    for k in ${VPN_ROUTE_FOR_HOSTS[@]} ; do
        /sbin/route add -host $k -interface $1
    done

fi ; done</pre>
<p>Put your specific values into VPN_HOSTS and VPN_ROUTE_FOR_HOSTS. <strong>Don&#8217;t forget to <tt>chmod a+x /etc/ppp/ip-up</tt>.</strong> The routes will be added when you connect to the VPN and disappear when you disconnect from it.</p>
<p><strong>Edit:</strong> For some reason I thought that <tt>route</tt> didn&#8217;t resolve domain names. It does, and now the scripts even simpler.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aidanfindlater.com/2010/02/03/use-vpn-for-specific-sites-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My desktop</title>
		<link>http://www.aidanfindlater.com/2010/02/03/my-desktop/</link>
		<comments>http://www.aidanfindlater.com/2010/02/03/my-desktop/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 21:27:54 +0000</pubDate>
		<dc:creator>Aidan Findlater</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[mac os x]]></category>

		<guid isPermaLink="false">http://www.aidanfindlater.com/?p=627</guid>
		<description><![CDATA[
In the vein of a recent Reddit thread, I present my desktop.
You can see many of my standard tools sitting quietly in the taskbar.
]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2010/02/Desktop.png"><img src="/wp-content/uploads/2010/02/Desktop-150x150.png" alt="" width="100" height="100" class="alignleft size-thumbnail wp-image-626" /></a></p>
<p>In the vein of a recent Reddit thread, I present <a href="/wp-content/uploads/2010/02/Desktop.png">my desktop</a>.</p>
<p>You can see many of <a href="/what-i-use/">my standard tools</a> sitting quietly in the taskbar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aidanfindlater.com/2010/02/03/my-desktop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Forward X11 over SSH after you su</title>
		<link>http://www.aidanfindlater.com/2010/02/03/forwarding-x11-over-ssh-after-su/</link>
		<comments>http://www.aidanfindlater.com/2010/02/03/forwarding-x11-over-ssh-after-su/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 20:01:16 +0000</pubDate>
		<dc:creator>Aidan Findlater</dc:creator>
				<category><![CDATA[Impersonal]]></category>
		<category><![CDATA[linux ssh x11]]></category>

		<guid isPermaLink="false">http://www.aidanfindlater.com/?p=622</guid>
		<description><![CDATA[Enabling SSH forwarding for X11 in general is easy: you simply put X11Forwarding yes in /etc/ssh/sshd_config, then SSH into the server with the -X or -Y (as appropriate for you).
However, if you want to be able to SSH in as a non-privileged user and su to become root, you&#8217;ll need to do a little more. [...]]]></description>
			<content:encoded><![CDATA[<p>Enabling SSH forwarding for X11 in general is easy: you simply put <tt>X11Forwarding yes</tt> in <tt>/etc/ssh/sshd_config</tt>, then SSH into the server with the -X or -Y (as appropriate for you).</p>
<p>However, if you want to be able to SSH in as a non-privileged user and <tt>su</tt> to become root, you&#8217;ll need to do a little more. Adding the following to the non-privileged user&#8217;s <tt>.bashrc</tt> works for me:</p>
<pre># Allows su to use X11
if [ ! -n "$XAUTHORITY" ]; then
    export XAUTHORITY=~/.Xauthority
fi</pre>
<p><tt>su</tt> passes environment variables to the new shell, so this ensures that applications that use the X server know where to look for the SSH forwarding info.</p>
<p>This manual configuration isn&#8217;t an issue with all distributions, but was required for my Debian Lenny box.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aidanfindlater.com/2010/02/03/forwarding-x11-over-ssh-after-su/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting up Debian unattended upgrades</title>
		<link>http://www.aidanfindlater.com/2010/02/02/setting-up-debian-unattended-upgrades/</link>
		<comments>http://www.aidanfindlater.com/2010/02/02/setting-up-debian-unattended-upgrades/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 15:20:22 +0000</pubDate>
		<dc:creator>Aidan Findlater</dc:creator>
				<category><![CDATA[Impersonal]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.aidanfindlater.com/?p=615</guid>
		<description><![CDATA[My standard setup (on Debian stable/Lenny):
aptitude install unattended-upgrades

cat &#62; /etc/apt/apt.conf.d/10periodic
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
^D

cat &#62;&#62; /etc/apt/apt.conf.d/50periodic
Unattended-Upgrade::Mail "example@example.com";
^D
It&#8217;s as easy as that.
]]></description>
			<content:encoded><![CDATA[<p>My standard setup (on Debian stable/Lenny):</p>
<pre>aptitude install unattended-upgrades

cat &gt; /etc/apt/apt.conf.d/10periodic
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
^D

cat &gt;&gt; /etc/apt/apt.conf.d/50periodic
Unattended-Upgrade::Mail "example@example.com";
^D</pre>
<p>It&#8217;s as easy as that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aidanfindlater.com/2010/02/02/setting-up-debian-unattended-upgrades/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Winter camping</title>
		<link>http://www.aidanfindlater.com/2010/01/02/winter-camping/</link>
		<comments>http://www.aidanfindlater.com/2010/01/02/winter-camping/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 01:55:01 +0000</pubDate>
		<dc:creator>Aidan Findlater</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.aidanfindlater.com/?p=613</guid>
		<description><![CDATA[Was cold. Here are the photos.
]]></description>
			<content:encoded><![CDATA[<p>Was cold. <a href="http://www.flickr.com/photos/aidanfindlater/sets/72157623098316928/">Here are the photos</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aidanfindlater.com/2010/01/02/winter-camping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are those flames on your cane?</title>
		<link>http://www.aidanfindlater.com/2009/11/01/are-those-flames-on-your-cane/</link>
		<comments>http://www.aidanfindlater.com/2009/11/01/are-those-flames-on-your-cane/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 00:28:19 +0000</pubDate>
		<dc:creator>Aidan Findlater</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.aidanfindlater.com/?p=599</guid>
		<description><![CDATA[
Why yes they are! Last night I dressed up as House for Hallowe&#8217;en. Of course, I needed a cane. And, of course, my cane needed flames (&#8220;makes it look like I&#8217;m going faster&#8221;).
In the end, I spent way too much time on this little project, but I think the results speak for themselves.
Download Illustrator File: [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.aidanfindlater.com/wp-content/uploads/2009/11/Cane-Flames-116x300.png" alt="Cane Flames" width="116" height="300" class="alignleft size-medium wp-image-600" /><img src="http://www.aidanfindlater.com/wp-content/uploads/2009/11/IMG_1371-300x225.jpg" alt="The Flame Cane" width="300" height="225" class="alignright size-medium wp-image-602" /></p>
<p>Why yes they are! Last night I dressed up as <a href="http://en.wikipedia.org/wiki/Gregory_House">House</a> for Hallowe&#8217;en. Of course, I needed a cane. And, of course, my cane needed flames (&#8220;makes it look like I&#8217;m going faster&#8221;).</p>
<p>In the end, I spent way too much time on this little project, but I think the results speak for themselves.</p>
<p>Download Illustrator File: <a href="http://www.aidanfindlater.com/wp-content/uploads/2009/11/Cane%20Flames.ai">Cane Flames.ai</a> [1.1MB]</p>
<div style="clear:both"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.aidanfindlater.com/2009/11/01/are-those-flames-on-your-cane/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating from Gmail to Google Apps</title>
		<link>http://www.aidanfindlater.com/2009/10/30/migrating-from-gmail-to-google-apps/</link>
		<comments>http://www.aidanfindlater.com/2009/10/30/migrating-from-gmail-to-google-apps/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 21:46:21 +0000</pubDate>
		<dc:creator>Aidan Findlater</dc:creator>
				<category><![CDATA[Impersonal]]></category>
		<category><![CDATA[gmail]]></category>

		<guid isPermaLink="false">http://www.aidanfindlater.com/?p=594</guid>
		<description><![CDATA[I moved over to Google Apps Standard Edition for all of my email needs. Unfortunately, they don&#8217;t provide much in the way of migration tools. Since I wanted all 1.6GB of email moved over, this was going to be painful.
In the end, I went with imapsync, using the following command:
imapsync --host1 imap.gmail.com --port1 993 \
--user1 [...]]]></description>
			<content:encoded><![CDATA[<p>I moved over to <a href="http://www.google.com/apps/intl/en/group/index.html">Google Apps Standard Edition</a> for all of my email needs. Unfortunately, they don&#8217;t provide much in the way of migration tools. Since I wanted all 1.6GB of email moved over, this was going to be painful.</p>
<p>In the end, I went with <a href="http://www.linux-france.org/prj/imapsync/">imapsync</a>, using the following command:</p>
<pre>imapsync --host1 imap.gmail.com --port1 993 \
--user1 aidanfindlater@gmail.com --passfile1 asdf --ssl1 \
--host2 imap.gmail.com --port2 993 \
--user2 aidan@aidanfindlater.com --passfile2 asdf --ssl2 \
--syncinternaldates --split1 100 --split2 100 \
--authmech1 LOGIN --authmech2 LOGIN \
--regexmess 's/Delivered-To: aidanfindlater\@gmail.com/Delivered-To: aidan\@aidanfindlater.com/g' \
--regexmess 's/&lt;aidanfindlater\@gmail.com&gt;/&lt;aidan\@aidanfindlater.com&gt;/g' \
--regexmess 's/Subject:(\s*)\n/Subject: (no--subject)$1\n/g' \
--regexmess 's/Subject: ([Rr][Ee]):(\s*)\n/Subject: $1: (no--subject)$2\n/g' \
--useheader 'Message-Id' --skipsize</pre>
<p>To be honest, most of this is voodoo to me, and I can&#8217;t remember where I got them from. The regex&#8217;s above didn&#8217;t work perfectly (there are some leftover Re:&#8217;s), but I wasn&#8217;t willing to resync everything just to fix that problem.</p>
<p>Things to note:</p>
<ul>
<li>the file <tt>asdf</tt> is a text file containing the password (nothing else)</li>
<li>in the regexes, I am moving from aidanfindlater@gmail.com to aidan@aidanfindlater.com</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.aidanfindlater.com/2009/10/30/migrating-from-gmail-to-google-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t pollute user space</title>
		<link>http://www.aidanfindlater.com/2009/10/14/dont-pollute-user-space/</link>
		<comments>http://www.aidanfindlater.com/2009/10/14/dont-pollute-user-space/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 01:14:57 +0000</pubDate>
		<dc:creator>Aidan Findlater</dc:creator>
				<category><![CDATA[Impersonal]]></category>
		<category><![CDATA[mac os x]]></category>

		<guid isPermaLink="false">http://www.aidanfindlater.com/?p=590</guid>
		<description><![CDATA[Naughty applications fill up my user-specific Documents folder with garbage I neither created nor care to see. (A picture of the problem, as previously identified.) It&#8217;s gotten to the point where I&#8217;ve decided to abandon my Documents directory altogether.
And now, straight from Apple&#8217;s file system guidelines:
 It is important to remember that the user domain [...]]]></description>
			<content:encoded><![CDATA[<p>Naughty applications fill up my user-specific Documents folder with garbage I neither created nor care to see. (<a href="http://www.aidanfindlater.com/2009/03/28/mac-os-x-and-the-documents-folder/">A picture of the problem</a>, as previously identified.) It&#8217;s gotten to the point where I&#8217;ve decided to abandon my Documents directory altogether.</p>
<p>And now, straight from Apple&#8217;s <a href="http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPFileSystem/Articles/WhereToPutFiles.html#//apple_ref/doc/uid/TP40001411-BAJHCHJI">file system guidelines</a>:</p>
<blockquote><p> It is important to remember that the user domain (/Users) is intended for files created by the user. With the exception of the ~/Library directory, your application should never install files into the user’s home directory. In particular, <strong>you should never install files into a user’s Documents directory or into the /Users/Shared directory. <em>These directories should only be modified by the user</em>.</strong></p>
<p>Even if your application provides clip art or sample files that the user would normally manipulate, you should place those files in either the local or user’s Library/Application Support directory by default. The user can move or copy files from this directory as desired. If you are concerned about the user finding these files, you should include a way for the user to browse or access them directly from your application’s user interface.</p></blockquote>
<p>Emphasis mine, of course.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aidanfindlater.com/2009/10/14/dont-pollute-user-space/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
