<?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"
	>

<channel>
	<title>North Star Labs</title>
	<atom:link href="http://northstarlabs.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://northstarlabs.net</link>
	<description>Jeff McCune versus Technology</description>
	<pubDate>Mon, 17 Mar 2008 18:13:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Enable Screen Sharing from the Terminal in Leopard</title>
		<link>http://northstarlabs.net/2008/03/17/enable-screen-sharing-from-the-terminal-in-leopard/</link>
		<comments>http://northstarlabs.net/2008/03/17/enable-screen-sharing-from-the-terminal-in-leopard/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 18:13:07 +0000</pubDate>
		<dc:creator>Jeff McCune</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[command line]]></category>

		<category><![CDATA[kickstart]]></category>

		<category><![CDATA[Leopard]]></category>

		<category><![CDATA[screen sharing]]></category>

		<category><![CDATA[sharing]]></category>

		<category><![CDATA[Shell]]></category>

		<category><![CDATA[ssh]]></category>

		<category><![CDATA[terminal]]></category>

		<category><![CDATA[vnc]]></category>

		<guid isPermaLink="false">http://northstarlabs.net/2008/03/17/enable-screen-sharing-from-the-terminal-in-leopard/</guid>
		<description><![CDATA[After graduation and my last day at work, I&#8217;ve taken a road trip to visit the Bennett&#8217;s in D.C. and was promptly chagrined while trying to show off Leopard&#8217;s screen sharing over OpenVPN.
Fortunately, it&#8217;s pretty easy to turn on Screen Sharing from an SSH session.

echo -n enabled > /Library/Preferences/com.apple.ScreenSharing.launchd

Launchd should automatically start the Screen Sharing [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://northstarlabs.net/blog/wp-content/uploads/terminal.png" alt="Terminal" height="96" width="96" align="right" class="right"/>After graduation and my last day at work, I&#8217;ve taken a road trip to visit the Bennett&#8217;s in D.C. and was promptly chagrined while trying to show off Leopard&#8217;s screen sharing over OpenVPN.</p>
<p>Fortunately, it&#8217;s pretty easy to turn on Screen Sharing from an SSH session.</p>
<pre class="code">
echo -n enabled > /Library/Preferences/com.apple.ScreenSharing.launchd
</pre>
<p>Launchd should automatically start the Screen Sharing service when this file is modified.</p>
<p>More information is available at <a href="http://docs.info.apple.com/article.html?artnum=108030">Apple Remote Desktop: Configuring remotely via command line (kickstart)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://northstarlabs.net/2008/03/17/enable-screen-sharing-from-the-terminal-in-leopard/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Leopard VNC Server Serial Number Password</title>
		<link>http://northstarlabs.net/2008/02/29/leopard-vnc-server-serial-number-password/</link>
		<comments>http://northstarlabs.net/2008/02/29/leopard-vnc-server-serial-number-password/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 15:36:03 +0000</pubDate>
		<dc:creator>Jeff McCune</dc:creator>
		
		<category><![CDATA[Leopard]]></category>

		<category><![CDATA[Mac OS X]]></category>

		<category><![CDATA[System Administration]]></category>

		<category><![CDATA[netboot]]></category>

		<category><![CDATA[netinstall]]></category>

		<category><![CDATA[netrestore]]></category>

		<category><![CDATA[password]]></category>

		<category><![CDATA[serial]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[vnc]]></category>

		<guid isPermaLink="false">http://northstarlabs.net/2008/02/29/leopard-vnc-server-serial-number-password/</guid>
		<description><![CDATA[Digging around in a NetBoot-Install.dmg file created by NetRestore Helper, I found a nice little gem.
In Leopard, and perhaps earlier versions of Mac OS X, we&#8217;re able to start a VNC server with the machine serial number as a password.  This is particularly interesting for a managed network or lab environment.
As an example, I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://northstarlabs.net/blog/wp-content/uploads/vnc-guest.png" alt="VNC Guest" height="96" width="96" align="right" class="right"/>Digging around in a NetBoot-Install.dmg file created by NetRestore Helper, I found a nice little gem.</p>
<p>In Leopard, and perhaps earlier versions of Mac OS X, we&#8217;re able to start a VNC server with the machine serial number as a password.  This is particularly interesting for a managed network or lab environment.</p>
<p>As an example, I&#8217;m starting a VNC server in my NetBoot-Install image with the following shell script:</p>
<pre class="code">
# Credit to Mike Bombich for this snippet

VNC="/System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/MacOS/AppleVNCServer"

if [ -x "$VNC" ]; then
    "$VNC" -noRegister -serialNumber &#038;
fi
</pre>
<p>I&#8217;m then able to quickly connect with Cmd+K in the finder:<br />
<img src="http://northstarlabs.net/blog/wp-content/uploads/connect-to-server-small.png" alt="Connect to Server" align="center" class="center"/></p>
<p>If you&#8217;re scripting this, here&#8217;s a quick way to snag the serial number.  I do this before I bless a client machine to netboot, so I have the serial number to connect back up once it&#8217;s in the NetRestore system.</p>
<pre class="code">
system_profiler SPHardwareDataType | \
  grep -i 'serial number' | \
  perl -ple 's/.*:\s+(\w+).*?/$1/'
</pre>
]]></content:encoded>
			<wfw:commentRss>http://northstarlabs.net/2008/02/29/leopard-vnc-server-serial-number-password/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fast Screen Sharing with Quicksilver</title>
		<link>http://northstarlabs.net/2008/02/17/fast-screen-sharing-with-quicksilver/</link>
		<comments>http://northstarlabs.net/2008/02/17/fast-screen-sharing-with-quicksilver/#comments</comments>
		<pubDate>Sun, 17 Feb 2008 15:29:11 +0000</pubDate>
		<dc:creator>Jeff McCune</dc:creator>
		
		<category><![CDATA[Leopard]]></category>

		<category><![CDATA[Mac OS X]]></category>

		<category><![CDATA[Shell]]></category>

		<category><![CDATA[quicksilver]]></category>

		<category><![CDATA[screen sharing]]></category>

		<category><![CDATA[vnc]]></category>

		<guid isPermaLink="false">http://northstarlabs.net/2008/02/17/fast-screen-sharing-with-quicksilver/</guid>
		<description><![CDATA[After upgrading all of my personal machines to Leopard, I&#8217;ve found myself using the Screen Sharing feature quite often.  Many people have two Mac&#8217;s these days, particularly owners of the MacBook Air, and screen sharing makes it incredibly convenient to access a machine in another room.
As with most things I do frequently, Quicksilver has [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://northstarlabs.net/blog/wp-content/uploads/2008/02/liaison.png" alt="" height="96" width="96" align="right" class="right"/>After upgrading all of my personal machines to Leopard, I&#8217;ve found myself using the Screen Sharing feature quite often.  Many people have two Mac&#8217;s these days, particularly owners of the MacBook Air, and screen sharing makes it incredibly convenient to access a machine in another room.</p>
<p>As with most things I do frequently, Quicksilver has utterly spoiled me.  The process of making the Finder active, pressing Command+K, and selecting or typing vnc://champ.local is just way too long.</p>
<p>Fortunately, it&#8217;s really easy to integrate Screen Sharing into our Quicksilver workflow.</p>
<p>Here&#8217;s how.</p>
<p>You&#8217;ll need to edit unix plaintext files, rather than rich text which TextEdit.app seems to insist on producing.  <a href="http://www.barebones.com/products/textwrangler/">TextWrangler</a> is a great, free, text editor for editing Unix plain text files, although I&#8217;m partial to <a href="http://macromates.com/">TextMate</a>.</p>
<p>First, make sure Screen Sharing is turned on in the Sharing Preference Pane in Leopard.</p>
<p><img src="http://northstarlabs.net/blog/wp-content/uploads/2008/02/sharing-pref-pane.png" alt="Sharing Pref Pane" width="400" align="center" class="center"/></p>
<p>Suppose you want to connect to a machine named &#8220;champ&#8221; in the Sharing Preference Pane.</p>
<p>The script will have the contents:</p>
<pre class="code">
#!/bin/sh
# Nice and short
open vnc://champ.local &#038;
</pre>
<p>Save the script into ~/Library/Application Support/Quicksilver/Scripts/champ.sh and make sure that folder is scanned by Quicksilver.</p>
<p>You&#8217;ll also need to make sure the script is executable, so open up Terminal.app and change the permissions:</p>
<pre class="code">
chmod a+x ~/"Library/Application Support/Quicksilver/Scripts/"*.sh
</pre>
<p>That&#8217;s it.  Now you should just be able to invoke Quicksilver, start typing the name of the machine you want to share the screen with, and presto!  Nice and fast.</p>
<p><img src="http://northstarlabs.net/blog/wp-content/uploads/2008/02/quicksilver-vnc.png" alt="Quicksilver VNC" height="247" width="396" class="center" align="center"/></p>
]]></content:encoded>
			<wfw:commentRss>http://northstarlabs.net/2008/02/17/fast-screen-sharing-with-quicksilver/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Excluding Directories with find</title>
		<link>http://northstarlabs.net/2008/02/07/excluding-directories-with-find/</link>
		<comments>http://northstarlabs.net/2008/02/07/excluding-directories-with-find/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 21:29:12 +0000</pubDate>
		<dc:creator>Jeff McCune</dc:creator>
		
		<category><![CDATA[Shell]]></category>

		<category><![CDATA[System Administration]]></category>

		<category><![CDATA[directories]]></category>

		<category><![CDATA[exclude]]></category>

		<category><![CDATA[find]]></category>

		<category><![CDATA[ignore]]></category>

		<category><![CDATA[prune]]></category>

		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://northstarlabs.net/2008/02/07/excluding-directories-with-find/</guid>
		<description><![CDATA[I&#8217;ve been using the find command for over a decade now, and I&#8217;m ashamed to say I never really learned how to properly exclude directories.  Dealing with with subversion working copies that litter &#8220;.svn&#8221; folders everywhere, I finally sorted it all out this afternoon.
To exclude &#8220;.svn&#8221; folders and all contents:

$ find . '!' '(' [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://northstarlabs.net/blog/wp-content/uploads/2008/02/terminal.png" alt="Terminal" height="96" width="96" align="right" class="right"/>I&#8217;ve been using the find command for over a decade now, and I&#8217;m ashamed to say I never really learned how to properly exclude directories.  Dealing with with subversion working copies that litter &#8220;.svn&#8221; folders everywhere, I finally sorted it all out this afternoon.</p>
<p>To exclude &#8220;.svn&#8221; folders and all contents:</p>
<pre class="code">
$ find . '!' '(' -name '.svn' -prune ')'
</pre>
<p>This, combined with find -print0 and xargs -0 to execute arbitrary commands on every filesystem object found is a wonderful tool to keep handy.</p>
]]></content:encoded>
			<wfw:commentRss>http://northstarlabs.net/2008/02/07/excluding-directories-with-find/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My Love of Puppet</title>
		<link>http://northstarlabs.net/2008/02/07/my-love-of-puppet/</link>
		<comments>http://northstarlabs.net/2008/02/07/my-love-of-puppet/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 19:37:41 +0000</pubDate>
		<dc:creator>Jeff McCune</dc:creator>
		
		<category><![CDATA[System Administration]]></category>

		<category><![CDATA[apache]]></category>

		<category><![CDATA[certificates]]></category>

		<category><![CDATA[configuration]]></category>

		<category><![CDATA[configuration management]]></category>

		<category><![CDATA[puppet]]></category>

		<category><![CDATA[setup]]></category>

		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://northstarlabs.net/2008/02/07/my-love-of-puppet/</guid>
		<description><![CDATA[Consider the following statement in a puppet manifest (think of a manifest as a script).

node "subversion.math.ohio-state.edu" {
    subversion::server::webrepository {
        "support": path => "/var/svn/support";
        "test":    path => "/var/svn/test";
    }
}

Without describing the problem this [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://northstarlabs.net/blog/wp-content/uploads/2007/06/puppet_96.png" alt="Puppet" height="96" width="96" align="right" class="right"/>Consider the following statement in a puppet manifest (think of a manifest as a script).</p>
<pre class="code">
node "subversion.math.ohio-state.edu" {
    subversion::server::webrepository {
        "support": path => "/var/svn/support";
        "test":    path => "/var/svn/test";
    }
}
</pre>
<p>Without describing the problem this puppet snippet addresses, one might guess  that I need to configure two subversion repositories, available via HTTP on the host &#8220;subversion.math.ohio-state.edu&#8221;.</p>
<p>The reason I absolutely *love* Puppet is the above code is all there is to this entire problem.  Think about all the work that actually needs to happen to setup a subversion repository on a SSL enabled web server:</p>
<ul>
<li>Install apache</li>
<li>Setup SSL certificates</li>
<li>Install subversion and dependencies</li>
<li>Setup apache virtual host with mod_dav_svn</li>
<li>Setup apache htaccess for access control to the repositry</li>
<li>Punch holes in the firewall (80, 443)</li>
<li>Create the blank repository with svnadmin</li>
<li>Ensure the repository is owned by apache</li>
<li>Ensure post-commit hooks are put in the right place and executable</li>
</ul>
<p>Now, this is a lot of work, and I&#8217;ve already had the need to create new subversion repositories on other hosts.  Because I&#8217;ve already modeled this problem in puppet, it&#8217;s trivial for me to bring up subversion servers on arbitrary hosts.  I just re-use the block you see above.</p>
<p>Now, for the tricky part&#8230;  Here are the modules that actually model the subversion repository in question.</p>
<p>Note that I&#8217;ve left out the classes which model other aspects of the host in question.  For example, web::baseserver::ssl, firewall::input-port, and site-files::certificates (SSL Certs).</p>
<pre class="code">
# Subversion Module.

class subversion::server inherits subversion {
    File {
        mode => 0640,
        owner => "apache",
        group => 0,
        require => [ User["apache"], Package["subversion"] ]
    }

    define webrepository ($path = false) {
        File {
            owner => "apache",
            group => "0",
            mode => 0660
        }
        $path_real = $path ? {
            false => "$name",
            default => "$path"
        }
        include subversion::server
        repository {
            "$name": path => "$path_real";
        }
        file {
            "$path_real":
                recurse => true,
                require => [ User["apache"], Repository["$name"] ];
            "$path_real/hooks":
                ensure => directory;
            "$path_real/hooks/bin":
                ensure => directory;
            "$path_real/hooks/bin/commit-email.pl":
                content => template("subversion/hooks/bin/commit-email.pl"),
                mode => 0770;
            "$path_real/hooks/post-commit":
                content => template("subversion/hooks/post-commit"),
                mode => 0770;
        }
    }

    include web::baseserver::ssl

    file {
        "/var/svn":
            ensure => directory;
        "/etc/httpd/htaccess/authz_svn.htaccess":
            content => template("subversion/htaccess/authz_svn.htaccess.erb");
        "/etc/httpd/htaccess/authz_svn.users":
            content => template("subversion/htaccess/htpasswd.mathsvn.erb");
    }
    web::vhost {
        "subversion":
            template => "subversion.conf.erb";
    }
    package {
        "subversion-perl":;
        "mod_dav_svn":;
    }
}

class subversion {
    $authz_svn_access_file = "/etc/httpd/auth_SVNAccessFile.math"
    $auth_svn_users_file = "/etc/httpd/auth_htpasswd.mathsvn"
    $svn_base_parent_repo = "/var/svn"
    Package {
        ensure => present
    }
    package {
        "subversion":;
    }

    define repository ($path = false) {
        $path_real = $path ? {
            false => "$name",
            default => "$path"
        }
        include subversion
        # Create a blank repository.
        exec {
            "svnadmin_create_$path_real":
                command => "/usr/bin/svnadmin create '$path_real'",
                require => [ Package["subversion"] ],
                creates => "$path_real";
        }
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://northstarlabs.net/2008/02/07/my-love-of-puppet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>LDAP Berkeley Database Recovery</title>
		<link>http://northstarlabs.net/2008/02/06/ldap-berkeley-database-recovery/</link>
		<comments>http://northstarlabs.net/2008/02/06/ldap-berkeley-database-recovery/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 21:04:30 +0000</pubDate>
		<dc:creator>Jeff McCune</dc:creator>
		
		<category><![CDATA[Solution]]></category>

		<category><![CDATA[System Administration]]></category>

		<category><![CDATA[bdb]]></category>

		<category><![CDATA[corrupt]]></category>

		<category><![CDATA[corrupted]]></category>

		<category><![CDATA[ldap]]></category>

		<category><![CDATA[openldap]]></category>

		<category><![CDATA[recover]]></category>

		<category><![CDATA[recovery]]></category>

		<category><![CDATA[slapd]]></category>

		<category><![CDATA[sleepycat]]></category>

		<guid isPermaLink="false">http://northstarlabs.net/2008/02/06/ldap-berkeley-database-recovery/</guid>
		<description><![CDATA[We experienced a power outage today, caused by someone tripping the emergency power off relay to our server room.  Unfortunately, emergency power off really means &#8220;power off&#8221; so our UPS did the right thing and completely cut power rather than fall back to battery backup.
It was a little bit stressful getting everything back up, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://northstarlabs.net/blog/wp-content/uploads/2007/12/directory.png" alt="Directory" class="right" align="right" height="96" width="96" />We experienced a power outage today, caused by someone tripping the emergency power off relay to our server room.  Unfortunately, emergency power off really means &#8220;power off&#8221; so our UPS did the right thing and completely cut power rather than fall back to battery backup.</p>
<p>It was a little bit stressful getting everything back up, but everything appears to be working fine now.</p>
<p>The one serious error message we ran into is the following, when bring our OpenLDAP server back up:</p>
<pre class="code">
[root@ldap ldap]# /etc/init.d/ldap restart
Stopping slapd:                                            [FAILED]
Checking configuration files for slapd:  bdb_db_open: unclean shutdown detected; attempting recovery.
bdb_db_open: Recovery skipped in read-only mode. Run manual recovery if errors are encountered.
bdb(dc=math,dc=ohio-state,dc=edu): PANIC: fatal region error detected; run recovery
bdb_db_open: Database cannot be opened, err -30974. Restore from backup!
bdb(dc=math,dc=ohio-state,dc=edu): DB_ENV-&gt;lock_id_free interface requires an environment configured for the locking subsystem
backend_startup_one: bi_db_open failed! (-30974)
slap_startup failed (test would succeed using the -u switch)
                                                           [FAILED]
stale lock files may be present in /var/lib/ldap           [WARNING]</pre>
<p>Fortunately, the solution to this problem is easy enough.  Just run slapd_db_recover -v in the Berkeley Database directory.</p>
<pre class="code">
cd /var/lib/ldap
slapd_db_recover -v

Finding last valid log LSN: file: 4 offset 4818337
Recovery starting from [4][4815752]
Recovery complete at Wed Feb  6 15:33:42 2008
Maximum transaction ID 80000ba7 Recovery checkpoint [4][4818337]</pre>
<p>After that, slapd should startup just fine.</p>
<pre class="code">
[root@ldap lib]# /etc/init.d/ldap start
Checking configuration files for slapd:  bdb_db_open: unclean shutdown detected; attempting recovery.
bdb_db_open: Recovery skipped in read-only mode. Run manual recovery if errors are encountered.
config file testing succeeded
                                                           [  OK  ]
Starting slapd:                                            [  OK  ]</pre>
]]></content:encoded>
			<wfw:commentRss>http://northstarlabs.net/2008/02/06/ldap-berkeley-database-recovery/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Macworld 2008 Puppet Slides</title>
		<link>http://northstarlabs.net/2008/01/23/macworld-2008-puppet-slides/</link>
		<comments>http://northstarlabs.net/2008/01/23/macworld-2008-puppet-slides/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 19:17:59 +0000</pubDate>
		<dc:creator>Jeff McCune</dc:creator>
		
		<category><![CDATA[Mac OS X]]></category>

		<category><![CDATA[System Administration]]></category>

		<category><![CDATA[macworld]]></category>

		<category><![CDATA[puppet]]></category>

		<category><![CDATA[slides]]></category>

		<guid isPermaLink="false">http://northstarlabs.net/2008/01/23/macworld-2008-puppet-slides/</guid>
		<description><![CDATA[Nigel has posted slides from our Macworld 2008 presentation on Puppet.
Please see: Puppet Macworld 2008 Project
I&#8217;ll post additional information once I find out the details of distribution of any audio/video recordings taken during the presentation.
]]></description>
			<content:encoded><![CDATA[<p><img src="http://northstarlabs.net/blog/wp-content/uploads/2007/06/puppet_96.png" alt="Puppet" height="96" width="96" align="right" class="right"/>Nigel has posted slides from our Macworld 2008 presentation on Puppet.</p>
<p>Please see: <a href="http://code.google.com/p/puppet-mw08/">Puppet Macworld 2008 Project</a></p>
<p>I&#8217;ll post additional information once I find out the details of distribution of any audio/video recordings taken during the presentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://northstarlabs.net/2008/01/23/macworld-2008-puppet-slides/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Nifty Work Around for File Size Limitations of FAT32</title>
		<link>http://northstarlabs.net/2008/01/11/nifty-work-around-for-file-size-limitations-of-fat32/</link>
		<comments>http://northstarlabs.net/2008/01/11/nifty-work-around-for-file-size-limitations-of-fat32/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 21:37:10 +0000</pubDate>
		<dc:creator>Jeff McCune</dc:creator>
		
		<category><![CDATA[Mac OS X]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[Solution]]></category>

		<category><![CDATA[2gig]]></category>

		<category><![CDATA[big]]></category>

		<category><![CDATA[dmg]]></category>

		<category><![CDATA[encrypted]]></category>

		<category><![CDATA[fat32]]></category>

		<category><![CDATA[filesize]]></category>

		<category><![CDATA[large]]></category>

		<category><![CDATA[limit]]></category>

		<category><![CDATA[limits]]></category>

		<guid isPermaLink="false">http://northstarlabs.net/2008/01/11/nifty-work-around-for-file-size-limitations-of-fat32/</guid>
		<description><![CDATA[I picked up a 250 Gig Western Digital Passport portable hard drive to keep a backup copy of my file vault home directory, among other things while I travel next week, in the somewhat-likely event something disastrous happens to my laptop.
I really like how small and portable the drive is, along with it&#8217;s USB bus [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://northstarlabs.net/blog/wp-content/uploads/2007/11/filevault.png" align=right width="96" height="96" />I picked up a 250 Gig Western Digital Passport portable hard drive to keep a backup copy of my file vault home directory, among other things while I travel next week, in the somewhat-likely event something disastrous happens to my laptop.</p>
<p>I really like how small and portable the drive is, along with it&#8217;s USB bus powered interface.  There&#8217;s no futzing around with wall warts and power supplies, it truly is plug and play.</p>
<p>I also really like that my PS3 recognizes the device, since I&#8217;ve transfered my entire iTunes library over to it (Huzzah, Option-Starting iTunes to select a library!).  All of my H.264 AVC movies play right off of the drive on my Playstation 3 as well, which is really nice and convenient.</p>
<p>Copying some rather large files, specifically a 7 gig ASR Golden Master image of my demonstration PowerBook leopard OS, and the actual Leopard ISO image itself, I ran into a file size limitation of FAT32.  Of course, I knew FAT32 didn&#8217;t support large files, but I&#8217;ve just been spoiled in recent years by things like this &#8220;just working.&#8221;</p>
<p>I didn&#8217;t want to reformat the small drive, because that would surely mean my Playstation 3 would no longer recognize the file system, so instead I opted to create a sparsebundle HFS+ formatted disk image, exactly like I would do manually for <a href="http://northstarlabs.net/2007/11/01/manually-migrate-tiger-filevault-sparseimage-to-leopard-filevault-sparsebundle/" title="Permanent Link to Manually Migrate Tiger FileVault sparseimage to Leopard FileVault sparsebundle">Leopard File Vault</a> images.</p>
<p>The end result is that each &#8220;band&#8221; in the sparse bundle image will satisfy the limitations of FAT32, while providing a nice, secure and robust HFS+J file system to store all of the &#8220;big files&#8221; I need to carry with me.</p>
<p>Long live robust Disk Imaging Frameworks.</p>
<p>The only catch is that these files are only accessible on Mac OS X Leopard machines now, but that&#8217;s not a huge problem for me.  Especially traveling to the MacWorld conference.</p>
]]></content:encoded>
			<wfw:commentRss>http://northstarlabs.net/2008/01/11/nifty-work-around-for-file-size-limitations-of-fat32/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TelePort NFS Home Directory</title>
		<link>http://northstarlabs.net/2008/01/11/teleport-nfs-home-directory/</link>
		<comments>http://northstarlabs.net/2008/01/11/teleport-nfs-home-directory/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 20:59:27 +0000</pubDate>
		<dc:creator>Jeff McCune</dc:creator>
		
		<category><![CDATA[Mac OS X]]></category>

		<category><![CDATA[Solution]]></category>

		<category><![CDATA[certificate]]></category>

		<category><![CDATA[keychain]]></category>

		<category><![CDATA[preference pane]]></category>

		<category><![CDATA[teleport]]></category>

		<guid isPermaLink="false">http://northstarlabs.net/2008/01/11/teleport-nfs-home-directory/</guid>
		<description><![CDATA[I usually compute with n-tupel of Mac computers sitting in front of me.  I have a strong aversion to clutter, despite the state of my apartment, and the power of Teleport providing seamless, encrypted keyboard sharing, a-la so called &#8220;soft KVM&#8221; utilities is a killer app for me.
Alas, I&#8217;ve found that Teleport does not [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://northstarlabs.net/blog/wp-content/uploads/2008/01/teleport.png" alt="Teleport" height="96" width="96" class="right" align="right">I usually compute with n-tupel of Mac computers sitting in front of me.  I have a strong aversion to clutter, despite the state of my apartment, and the power of Teleport providing seamless, encrypted keyboard sharing, a-la so called &#8220;soft KVM&#8221; utilities is a killer app for me.</p>
<p>Alas, I&#8217;ve found that <a href="http://abyssoft.com/software/teleport/">Teleport</a> does not work as expected when operating from an NFS Mounted Home Directory.</p>
<p>Trying to connect to my Laptop, nutburner (Yes, nutburner is the given name of my first generation MacBook Pro), I received the following error.</p>
<p><img src="http://northstarlabs.net/blog/wp-content/uploads/2008/01/teleport-keychain-access.png" alt="Teleport Keychain Access" height="185" width="501" align="center" class="center"></p>
<p>UNKNOWN wants permission to sign using key &#8220;privateKey&#8221; in your keychain.  Do you want to allow this?</p>
<p>On a working host, e.g. two machines with file vault home folders, that &#8220;UNKNOWN&#8221; will actually display as &#8220;teleportd&#8221;.  I suspect whatever logic Apple is using to verify the authenticity of program binaries doesn&#8217;t work as expected over NFS.</p>
<p>After clicking &#8220;Always Allow&#8221; twice, I get the following error:</p>
<p><img src="http://northstarlabs.net/blog/wp-content/uploads/2008/01/teleport-connection-error.png" alt="Teleport Connection Error" height="156" width="420" align="center" class="center"></p>
<p>I synchronize my login.keychain, so the private key and certificate are identical between these two hosts, leading me to believe a certificate algorithm mismatch is unlikely.</p>
<p>In any event, my solution was to simply redirect the teleport.prefPane to a local HFS+ volume using a symbolic link.</p>
<pre class="code">
# /Scratch is a local HFS+ volume.
mkdir -p /Scratch/mccune/Library/PreferencePanes
mv ~/Library/PreferencePanes/teleport.prefPane \
  /Scratch/mccune/Library/PreferencePanes/
ln -s /Scratch/mccune/Library/PreferencePanes/teleport.prefPane \
  ~/Library/PreferencePanes/teleport.prefPane
</pre>
<p>Once teleport.prefPane resided on a local HFS volume, everything &#8220;just worked&#8221; perfectly.</p>
<p>As an alternative, you could deploy the prefPane to /Library/PreferencePanes to make teleport available to all users of the system.</p>
]]></content:encoded>
			<wfw:commentRss>http://northstarlabs.net/2008/01/11/teleport-nfs-home-directory/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Macworld 2008</title>
		<link>http://northstarlabs.net/2008/01/11/macworld-2008/</link>
		<comments>http://northstarlabs.net/2008/01/11/macworld-2008/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 15:06:49 +0000</pubDate>
		<dc:creator>Jeff McCune</dc:creator>
		
		<category><![CDATA[Mac OS X]]></category>

		<category><![CDATA[System Administration]]></category>

		<category><![CDATA[2008]]></category>

		<category><![CDATA[conference]]></category>

		<category><![CDATA[macworld]]></category>

		<category><![CDATA[presentation]]></category>

		<category><![CDATA[speaker]]></category>

		<guid isPermaLink="false">http://northstarlabs.net/2008/01/11/macworld-2008/</guid>
		<description><![CDATA[I haven&#8217;t posted in awhile, mainly because I&#8217;ve been preoccupied with a relatively long and relaxing vacation over the winter break where I largely ignored all things technology.
I&#8217;ve been preparing for Macworld 2008, where Nigel Kersten and I will be presenting some demonstrations and technical details about our respective Puppet deployments at Google and Ohio [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t posted in awhile, mainly because I&#8217;ve been preoccupied with a relatively long and relaxing vacation over the winter break where I largely ignored all things technology.</p>
<p>I&#8217;ve been preparing for Macworld 2008, where Nigel Kersten and I will be presenting some demonstrations and technical details about our respective <a href="http://www.reductivelabs.com/projects/puppet/">Puppet</a> deployments at Google and Ohio State University.</p>
<p>If you&#8217;ll be attending Macworld, feel free to follow <a href="http://twitter.com/jmccune">my Twitter feed</a>.  I don&#8217;t post much at the moment, though I believe it&#8217;ll really come in handy during the fast and furious pace of a week long conference like Macworld.</p>
<p>Some other links for gratuitous self promotion:</p>
<ul>
<li><a href="http://www.macworldexpo.com/conference_program/macit-conference/mac-os-x-laptop-deployments-puppet-learn-secrets-behind-one-comp">IT824 Mac OS X Laptop Deployments with Puppet</a></li>
<li><a href="http://macworldexpo.ning.com/profile/JeffMcCune">My Macworld Social Network Profile</a></li>
<li><a href="http://code.google.com/p/puppet-mw08/">Macworld 2008 Puppet Site</a>(Check here after Thursday&#8217;s Session.)</li>
</ul>
<p>Please leave a comment if you&#8217;ll be attending Macworld this year.</p>
]]></content:encoded>
			<wfw:commentRss>http://northstarlabs.net/2008/01/11/macworld-2008/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
