<?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>You can imagine where it goes from here. &#187; OS X</title>
	<atom:link href="http://www.kgarner.com/blog/archives/category/geek/os-x/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kgarner.com/blog</link>
	<description>Keith&#039;s attempts to fix the cable of life</description>
	<lastBuildDate>Sun, 01 Jan 2012 20:27:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Thanks, Steve</title>
		<link>http://www.kgarner.com/blog/archives/2011/10/05/thanks-steve/</link>
		<comments>http://www.kgarner.com/blog/archives/2011/10/05/thanks-steve/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 01:43:10 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Omphaloskepsis]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Apple TV]]></category>
		<category><![CDATA[Dinah]]></category>
		<category><![CDATA[Doom]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[mac mini]]></category>
		<category><![CDATA[NeXT]]></category>
		<category><![CDATA[Pixar]]></category>
		<category><![CDATA[RIP]]></category>
		<category><![CDATA[Steve Jobs]]></category>
		<category><![CDATA[Time Capsule]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/?p=2259</guid>
		<description><![CDATA[Steve Jobs passed away today at age 56 after a battle with cancer.  Here&#8217;s a few random thoughts&#8230; On this day, I own a buttload of Apple gear: iPhone, iPod, iPad, MacBook Pro, Apple TV, Apple TV 2, Time Capsule, Mac Mini&#8230; I&#8217;m planning on getting an iPhone 4S as soon as possible. I was [...]]]></description>
			<content:encoded><![CDATA[<p>Steve Jobs passed away today at age 56 after a battle with cancer.  Here&#8217;s a few random thoughts&#8230;</p>
<p>On this day, I own a buttload of Apple gear: iPhone, iPod, iPad, MacBook Pro, Apple TV, Apple TV 2, Time Capsule, Mac Mini&#8230; I&#8217;m planning on getting an iPhone 4S as soon as possible.</p>
<p>I was (and am) a big open source dork at heart, but Apple&#8217;s simplicity and ease of use, especially the past 7 years really spoke to the pragmatic side of me.  It turned me into a fan boy, I guess.  It didn&#8217;t hurt that OS X is NeXTStep is UNIX&#8230; I touch OS X and Linux every day.</p>
<p>One of Dinah&#8217;s first words was iPod which she taught herself so she could ask me to turn on music for her.</p>
<p>In college, I loved using the <a href="http://en.wikipedia.org/wiki/NeXT">NeXT</a> computers we had. My first class in college used <a href="http://en.wikipedia.org/wiki/Scheme_(programming_language)">scheme</a> on the NeXT&#8217;s. The NeXT is one of the first places I played Doom.  I took calculus using Mathematica on the Mac in college.</p>
<p>Steve also touched my kids&#8217; lives via Pixar. (Okay, my life too, I saw Toy Story in the theater first run, long before I had kids.) Also through their first computer, a Mac Mini.</p>
<p>There were too other public figures who&#8217;s lives and deaths touched me the way Steve&#8217;s passing is touching me today: Jim Henson and Fred Rodgers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2011/10/05/thanks-steve/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OS X 10.7/Lion attemping to mount a Windows 2008 file share: WTF?</title>
		<link>http://www.kgarner.com/blog/archives/2011/07/25/os-x-10-7lion-attemping-to-mount-a-windows-2008-file-share-wtf/</link>
		<comments>http://www.kgarner.com/blog/archives/2011/07/25/os-x-10-7lion-attemping-to-mount-a-windows-2008-file-share-wtf/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 16:19:39 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[10.7]]></category>
		<category><![CDATA[Lion]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[Windows Server 2008]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/?p=1898</guid>
		<description><![CDATA[Overall, I&#8217;m happy with the changes that Lion brings.  I was a bit thrown off by some of the changes that happened as Spaces got folded into Mission Control, but once I found out how to assign apps to desktops in the new style I calmed down. We&#8217;re stuck with one vexing problem at work [...]]]></description>
			<content:encoded><![CDATA[<p>Overall, I&#8217;m happy with the changes that Lion brings.  I was a bit thrown off by some of the changes that happened as Spaces got folded into Mission Control, but once I found out how to assign apps to desktops in the new style I calmed down.</p>
<p>We&#8217;re stuck with one vexing problem at work that&#8217;s Lion related:  We have all of the work Macs tied into Active Directory and that&#8217;s working pretty well.  However, we can&#8217;t seem to mount a Windows 2008 file share if it has access permissions on it.  This worked fine in Snow Leopard, but I&#8217;m getting an error dialog with &#8220;You do not have permission to access this server&#8221; when I use the &#8220;Connect to Server&#8221; GUI box.</p>
<p>However, if I go to the command line and issue a <code>mount -t smbfs cifs://server/path/to/share /some/path</code> it mounts just fine.  I&#8217;m not sure what the command line is doing different from the GUI, but seriously WTF?</p>
<p>Its holding us back from doing wider deployment.  I can live with doing a manual command, other users, not so much.</p>
<p>[<strong>Update</strong>: <em>I've opened a bug with Apple.</em>]</p>
<p>[<strong>Update 8/24/2011</strong>: <em>Apple has put up a Knowledge Base article addressing this at <a href="http://support.apple.com/kb/HT4829">http://support.apple.com/kb/HT4829</a> which explains the behavior differences. I don't have a great workaround yet but we know the why now.</em>]</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2011/07/25/os-x-10-7lion-attemping-to-mount-a-windows-2008-file-share-wtf/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tivo2Podcast update</title>
		<link>http://www.kgarner.com/blog/archives/2010/03/14/tivo2podcast-update/</link>
		<comments>http://www.kgarner.com/blog/archives/2010/03/14/tivo2podcast-update/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 18:41:37 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[TiVo2Podcast]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[bonjour]]></category>
		<category><![CDATA[dns-sd]]></category>
		<category><![CDATA[encap]]></category>
		<category><![CDATA[mdns]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[stow]]></category>
		<category><![CDATA[tivo]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/?p=842</guid>
		<description><![CDATA[I&#8217;ve made a few updates since my last release a few weeks ago. I thought I&#8217;d toss an updated version out there.  What&#8217;s new in this version: Duration is no longer hard-coded to 32:00 and actually reflects the duration of the show The script will attempt to find the TiVo via Bonjour/mDNS/ZeroConf/DNS-SD/whatever unless passed a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve made a few updates since my <a href="http://www.kgarner.com/blog/archives/2010/03/04/tivo-video-podcast/">last release</a> a few weeks ago.  I thought I&#8217;d toss an updated version out there.  What&#8217;s new in this version:</p>
<ul>
<li>Duration is no longer hard-coded to 32:00 and actually reflects the duration of the show</li>
<li>The script will attempt to find the TiVo via <a href="http://en.wikipedia.org/wiki/Bonjour_%28software%29">Bonjour</a>/<a href="http://www.multicastdns.org/">mDNS</a>/ZeroConf/<a href="http://www.dns-sd.org/">DNS-SD</a>/whatever unless passed a -t flag with the TiVo&#8217;s IP address. If you have more than one TiVo, it will go with the first one it finds.</li>
<li>Moved the stuff in <code>lib</code> to <code>lib/tivo</code> so the package is more easier sucked in by something like <a href="http://encap.org/">encap</a> or <a href="http://www.gnu.org/software/stow/">stow</a></li>
</ul>
<p>Download: <a href="http://www.kgarner.com/blog/wp-content/tivoscripts-20100314.tar.gz">tivoscripts-20100314.tar.gz</a></p>
<p>When I get some motivation later in the week, I&#8217;ll put the git archive online, incase anyone wants to clone it and do some development on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2010/03/14/tivo2podcast-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TiVo -&gt; Video Podcast</title>
		<link>http://www.kgarner.com/blog/archives/2010/03/04/tivo-video-podcast/</link>
		<comments>http://www.kgarner.com/blog/archives/2010/03/04/tivo-video-podcast/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 05:15:23 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[TiVo2Podcast]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[AtomicParsley]]></category>
		<category><![CDATA[HandBrake]]></category>
		<category><![CDATA[placeshifting]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[tivo]]></category>
		<category><![CDATA[tivodecode]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/?p=832</guid>
		<description><![CDATA[Previously on &#8220;You can imagine where it goes from here&#8221;: We released a script to download stuff from the tivo, and then made some improvements to it. After two years of saying I was going to fully automate the process of downloading and transcoding shows for my iPhone, I finally got off my ass and [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Previously on &#8220;You can imagine where it goes from here&#8221;:</strong> We <a href="http://www.kgarner.com/blog/archives/2007/11/15/place-shifting-action-2/">released a script to download stuff from the tivo</a>, and then <a href="http://www.kgarner.com/blog/archives/2008/03/20/place-shifting-action-3-revenge-of-the-sith/">made some improvements to it</a>.</p>
<p>After two years of saying I was going to fully automate the process of downloading and transcoding shows for my iPhone, I finally got off my ass and did it.  The script is called TiVo2Podcast and it not only does the downloading and transcoding, but it stuffs the resultant video into a an RSS feed for easy consumption/playback by a podcatcher such as iTunes.  I&#8217;m now automatically getting the shows off my TiVo and onto my iPhone for easy commute-time consumption.  (I commute by train, I do not recommend commute-time consumption if you are driving.)</p>
<p>The ruby script wraps <a href="http://tivodecode.sourceforge.net/">tivodecode</a>, <a href="http://handbrake.fr/">HandbrakeCLI</a>, and <a href="http://atomicparsley.sourceforge.net/">AtomicParsley</a> and is intended to be run from cron.  I&#8217;ve tested this on Linux, but it should run on any UNIX-alike, but it won&#8217;t run on windows since I make liberal use of the <code>system()</code> call.  Also, this is intended for PERSONAL USE ONLY, do not set up podcast feeds and violate the ethics (and also the laws) of copyright left and right.</p>
<p>This is a very early version and can certainly use some tweaks and enhancements, primarily in configuring the shows you want to capture.  Right now, configuration is in the form of doing INSERT statements in SQLite.  Not very friendly, but it gets the job done until I can make a quick and dirty question based TUI.  Here&#8217;s an example of setting up getting the best fucking news team on the planet:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p832code2'); return false;">View Code</a> SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p8322"><td class="code" id="p832code2"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">insert</span> <span style="color: #993333; font-weight: bold;">into</span> configs <span style="color: #66cc66;">&#40;</span>config_name<span style="color: #66cc66;">,</span> show_name<span style="color: #66cc66;">,</span> rss_filename<span style="color: #66cc66;">,</span> rss_link<span style="color: #66cc66;">,</span>
                     rss_baseurl<span style="color: #66cc66;">,</span> rss_ownername<span style="color: #66cc66;">,</span> rss_owneremail<span style="color: #66cc66;">,</span> ep_to_keep<span style="color: #66cc66;">,</span> encode_decomb<span style="color: #66cc66;">&#41;</span>
            <span style="color: #993333; font-weight: bold;">values</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'tds'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'The Daily Show'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'tds.xml'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'http://www.thedailyshow.com/'</span><span style="color: #66cc66;">,</span> 
                    <span style="color: #ff0000;">'http://example.com/podcasts/'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'Keith T. Garner'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'kgarner@example.com'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Download <a href="http://www.kgarner.com/blog/wp-content/tivoscripts-20100304.tar.gz">tivoscripts-20100304.tar.gz</a> and let me know what you think.  Make sure you read the README!</p>
<p>[<strong>Update 3/5:</strong> <em>Forgot to add that all the code I wrote is under the <a href="http://en.wikipedia.org/wiki/BSD_licenses#2-clause_license_.28.22Simplified_BSD_License.22_or_.22FreeBSD_License.22.29">Simplified BSD License</a>, so have at it.</em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2010/03/04/tivo-video-podcast/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Build libcurl as a universal binary</title>
		<link>http://www.kgarner.com/blog/archives/2009/08/27/build-libcurl-as-a-universal-binary/</link>
		<comments>http://www.kgarner.com/blog/archives/2009/08/27/build-libcurl-as-a-universal-binary/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 18:38:44 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[ezrets]]></category>
		<category><![CDATA[libcurl]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[universal binary]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/?p=741</guid>
		<description><![CDATA[I release one of the projects from work as a universal binary on OS X.  Up until tomorrow that mean just i386 and ppc.  With snow leopard, it looks like it&#8217;ll be a good idea to support the 64-bit architectures as well, especially considering its an ODBC driver I&#8217;m working on and the native apps [...]]]></description>
			<content:encoded><![CDATA[<p>I release one of the <a href="http://www.crt.realtors.org/projects/rets/ezrets/">projects from work</a> as a universal binary on OS X.  Up until tomorrow that mean just i386 and ppc.  With snow leopard, it looks like it&#8217;ll be a good idea to support the 64-bit architectures as well, especially considering its an ODBC driver I&#8217;m working on and the native apps running at 64-bit will want to talk to it that way.</p>
<p>Since we used a lot of open source libraries to save us time, I need to have those built super-universal as well.  The first one I tackled was curl, which had some issues due to configure, so I had to write a shell script to do the hardwork for me.  It needs to run configure three times, and I got a lot of the information for it from <a href="http://curl.haxx.se/mail/lib-2009-05/0000.html">http://curl.haxx.se/mail/lib-2009-05/0000.html</a>.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.kgarner.com/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=741&amp;download=build-curl.sh">build-curl.sh</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7414"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code" id="p741code4"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">CFLAGS</span>=<span style="color: #ff0000;">&quot;-O -g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -arch i386 -arch ppc&quot;</span>
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>encap<span style="color: #000000; font-weight: bold;">/</span>curl-7.19.6 <span style="color: #660033;">--with-ssl</span>=<span style="color: #000000; font-weight: bold;">/</span>usr <span style="color: #660033;">--without-ca-bundle</span> <span style="color: #660033;">--disable-dependency-tracking</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">cp</span> include<span style="color: #000000; font-weight: bold;">/</span>curl<span style="color: #000000; font-weight: bold;">/</span>curlbuild.h include<span style="color: #000000; font-weight: bold;">/</span>curl<span style="color: #000000; font-weight: bold;">/</span>curlbuild32.h
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">make</span> distclean
&nbsp;
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">CFLAGS</span>=<span style="color: #ff0000;">&quot;-O -g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -arch x86_64 -arch ppc64&quot;</span>
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>encap<span style="color: #000000; font-weight: bold;">/</span>curl-7.19.6 <span style="color: #660033;">--with-ssl</span>=<span style="color: #000000; font-weight: bold;">/</span>usr <span style="color: #660033;">--without-ca-bundle</span> <span style="color: #660033;">--disable-dependency-tracking</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">cp</span> include<span style="color: #000000; font-weight: bold;">/</span>curl<span style="color: #000000; font-weight: bold;">/</span>curlbuild.h include<span style="color: #000000; font-weight: bold;">/</span>curl<span style="color: #000000; font-weight: bold;">/</span>curlbuild64.h
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">make</span> distclean
&nbsp;
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">CFLAGS</span>=<span style="color: #ff0000;">&quot;-O -g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -arch i386 -arch ppc -arch x86_64 -arch ppc64&quot;</span>
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>encap<span style="color: #000000; font-weight: bold;">/</span>curl-7.19.6 <span style="color: #660033;">--with-ssl</span>=<span style="color: #000000; font-weight: bold;">/</span>usr <span style="color: #660033;">--without-ca-bundle</span> <span style="color: #660033;">--disable-dependency-tracking</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">&gt;</span> include<span style="color: #000000; font-weight: bold;">/</span>curl<span style="color: #000000; font-weight: bold;">/</span>curlbuild.h <span style="color: #cc0000; font-style: italic;">&lt;&lt;EOF
#ifdef __LP64__
#include &quot;curlbuild64.h&quot;
#else
#include &quot;curlbuild32.h&quot;
#endif 
EOF</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">make</span></pre></td></tr></table></div>

<p>There will be more of these as I build the other dependencies.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2009/08/27/build-libcurl-as-a-universal-binary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Place shifting action 3: Revenge of the Sith</title>
		<link>http://www.kgarner.com/blog/archives/2008/03/20/place-shifting-action-3-revenge-of-the-sith/</link>
		<comments>http://www.kgarner.com/blog/archives/2008/03/20/place-shifting-action-3-revenge-of-the-sith/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 19:40:37 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/archives/2008/03/20/place-shifting-action-3-revenge-of-the-sith/</guid>
		<description><![CDATA[Previously I put out an early version of my ruby based command line oriented tivo download script. I&#8217;ve had a patch from MARK NOTARUS to make the menu have some more options and I&#8217;m using Console::ProgressBar from facets now. It works well enough for my needs, but let me know if you hit any roadblocks. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="colorbox-450"  src="http://www.kgarner.com/blog/wp-content/uploads/2007/11/tivo.thumbnail.jpg" alt="tivo.jpg" align="right" hspace="5" vspace="5" /><a href="http://www.kgarner.com/blog/archives/2007/11/15/place-shifting-action-2/">Previously</a> I put out an early version of my ruby based command line oriented tivo download script.</p>
<p>I&#8217;ve had a patch from MARK NOTARUS to make the menu have some more options and I&#8217;m using Console::ProgressBar from <a href="http://facets.rubyforge.org/">facets</a> now.</p>
<p>It works well enough for my needs, but let me know if you hit any roadblocks.  Just as a reminder, my target was to download stuff off my tivo on one of my headless Linux boxes for batch encoding for my iPhone and/or PSP.</p>
<p>Download <a href="http://www.kgarner.com/code/tivo-ruby-0.2.tar.gz">tivo-ruby-0.2.tar.gz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2008/03/20/place-shifting-action-3-revenge-of-the-sith/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dave Dribin once again rocks</title>
		<link>http://www.kgarner.com/blog/archives/2007/11/29/dave-dribin-once-again-rocks/</link>
		<comments>http://www.kgarner.com/blog/archives/2007/11/29/dave-dribin-once-again-rocks/#comments</comments>
		<pubDate>Thu, 29 Nov 2007 16:42:35 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/archives/2007/11/29/dave-dribin-once-again-rocks/</guid>
		<description><![CDATA[Dave is having a rocking week.  He started with the 1.0 version of his QLEncript plugin to get QuickLook to show color syntax highlighted code files.  Here&#8217;s a quick screenshot of it in action on my laptop. Today, to continue his rocking, Dave posted on Leopard&#8217;s ssh, ssh-agent, keychain interaction and ways to make it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.kgarner.com/blog/wp-content/uploads/2007/11/qlscreenshot.jpg" title="qlscreenshot.jpg"><img class="colorbox-350"  src="http://www.kgarner.com/blog/wp-content/uploads/2007/11/qlscreenshot.thumbnail.jpg" title="qlscreenshot.jpg" alt="qlscreenshot.jpg" align="right" /></a>Dave is having a rocking week.  He started with the 1.0 version of his <a href="http://www.dribin.org/dave/blog/archives/2007/11/27/qlenscript/">QLEncript</a> plugin to get <a href="http://www.apple.com/macosx/features/quicklook.html">QuickLook</a> to show color syntax highlighted code files.  Here&#8217;s a quick screenshot of it in action on my laptop.</p>
<p>Today, to continue his rocking, Dave posted on Leopard&#8217;s <a href="http://www.dribin.org/dave/blog/archives/2007/11/28/ssh_agent_leopard/">ssh, ssh-agent, keychain interaction</a> and <a href="http://www.dribin.org/dave/blog/archives/2007/11/28/securing_ssh_agent/">ways to make it a bit more secure</a>.  I was confused about this and he took the time to figure out.  I think, though, I will probably stick with using <a href="http://www.sshkeychain.org/">SSHKeychain</a> for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2007/11/29/dave-dribin-once-again-rocks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Place shifting action 2</title>
		<link>http://www.kgarner.com/blog/archives/2007/11/15/place-shifting-action-2/</link>
		<comments>http://www.kgarner.com/blog/archives/2007/11/15/place-shifting-action-2/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 23:50:15 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/archives/2007/11/15/place-shifting-action-2/</guid>
		<description><![CDATA[I&#8217;ve been working on a command-line oriented TiVo2Go downloader so I can automate getting items off my tivo, or at least do it when I&#8217;m on the road via ssh (and then kick off that other script&#8230;)  I&#8217;ve written a quick and dirty TiVo library, and a sample script called TiVo2Disk which uses the library. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="colorbox-337"  src="http://www.kgarner.com/blog/wp-content/uploads/2007/11/tivo.thumbnail.jpg" title="tivo.jpg" alt="tivo.jpg" align="right" />I&#8217;ve been working on a command-line oriented TiVo2Go downloader so I can automate getting items off my tivo, or at least do it when I&#8217;m on the road via ssh (and then kick off that other script&#8230;)  I&#8217;ve written a quick and dirty TiVo library, and a sample script called TiVo2Disk which uses the library.</p>
<p>On its own, the TiVo library stuff I whipped up will just download the content from the TiVo still locked up in TiVo&#8217;s DRM.  If you pair it with tivodecode (like the sample script does) you can get the video as an MPEG-2 stream.  Beware, HD content is HUGE.</p>
<p>I&#8217;ve only tested with my Series 3, and I&#8217;ve run it under both OS X and Linux, but it should work on any .  The UI on the sample script is pretty bad, but its an early version.  I&#8217;m interested in an feedback, patches, etc anyone might have.  I still need to do some rdoc as well.</p>
<p>This works for me, but I&#8217;d like it to be more useful for more people.   In any case, feel free to checkout <a href="http://www.kgarner.com/code/tivo-ruby-0.1.tar.gz">tivo-ruby-0.1.tar.gz</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2007/11/15/place-shifting-action-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallels Desktop is smart</title>
		<link>http://www.kgarner.com/blog/archives/2007/06/21/parallels-desktop-is-smart/</link>
		<comments>http://www.kgarner.com/blog/archives/2007/06/21/parallels-desktop-is-smart/#comments</comments>
		<pubDate>Thu, 21 Jun 2007 15:29:02 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/archives/2007/06/21/parallels-desktop-is-smart/</guid>
		<description><![CDATA[I&#8217;ve been using Parallel&#8217;s Desktop for OS X since it was first available. I just got my upgrade to the latest version. One of the things this version includes is the ability for the Mac to have the C: of windows (when running in a virtual machine) shared to the Mac like any other shared [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.kgarner.com/blog/wp-content/uploads/2007/06/parallelsissmart.png" title="parallelsissmart.png"><img class="colorbox-308"  src="http://www.kgarner.com/blog/wp-content/uploads/2007/06/parallelsissmart.thumbnail.png" title="Click for Full size!" alt="Click for Full size!" align="right" /></a>I&#8217;ve been using <a href="http://www.parallels.com/en/products/desktop/">Parallel&#8217;s Desktop for OS X</a> since it was first available.  I just got my upgrade to the latest version.  One of the things this version includes is the ability for the Mac to have the C: of windows (when running in a virtual machine) shared to the Mac like any other shared drive.</p>
<p>It looks like Parallels really has a good handle on code resuse since they based it on <a href="http://code.google.com/p/macfuse/">MacFUSE</a> (which is based on the ideas and API of Linux&#8217;s <a href="http://fuse.sourceforge.net/">FUSE</a>.  Its great to see cool open source technology being used like this rather than companies reinventing the wheel.  Anyway, that was my geek excitement of the morning.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2007/06/21/parallels-desktop-is-smart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CMake so far</title>
		<link>http://www.kgarner.com/blog/archives/2007/03/27/cmake-so-far/</link>
		<comments>http://www.kgarner.com/blog/archives/2007/03/27/cmake-so-far/#comments</comments>
		<pubDate>Tue, 27 Mar 2007 16:10:07 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/archives/2007/03/27/cmake-so-far/</guid>
		<description><![CDATA[I&#8217;ve been investigating cmake at work as a better build system for our cross platform C based projects. I&#8217;m thinking about starting up a third one, so now is the prefect time to really go after this as for one project we have a build system per platform and on the other we have two [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been investigating <a href="http://www.cmake.org/">cmake</a> at work as a better build system for our cross platform C based projects.  I&#8217;m thinking about starting up a third one, so now is the prefect time to really go after this as for one project we have a build system per platform and on the other we have two build systems.  When you mix in wanting to make universal binaries on OS X its yet another wrinkle.  cmake was recently chosen by KDE to be the <a href="https://lwn.net/Articles/188693/">build system for KDE4</a> since KDE4 will be fully supporting Windows and OS X, as well as the other unicies via X.  I used a small convenience library as the test piece as it was only two files big, but it had the requirement of at least two external libraries.</p>
<p>Some pros for cmake that I&#8217;ve found so far (compared to what we&#8217;ve been doing):</p>
<ul>
<li>support a big number of build environments on the different platforms.  On windows it sports 11 different build environments, OS X 3, and Linux 2.  For OS X and Linux, you only really need those two or three, but on windows it supports 4 different versions of visual studio as well as Borland, Watcom, and gcc.</li>
<li>Takes care of the flags needed to build executables and libraries on those supported platforms.</li>
<li>Does out of source builds on windows.</li>
<li>Tracks dependences on all platforms without an external application</li>
<li>Does search and replacing on things like .in files without having to call out to external applications</li>
</ul>
<p>Some cons I&#8217;ve found so far:</p>
<ul>
<li>The <a href="http://cmake.org/HTML/Documentation.html">documentation on the web page</a> is pretty horrid.  <a href="http://www.kitware.com/products/cmakebook.html">The book</a> is pretty bad too, especially when compared to other technical books I&#8217;ve read recently, but its much better than the website.  When combined with the book and experimentation, the <a href="http://www.kitware.com/products/cmakebook.html">FAQ</a> is helpful.</li>
<li><a href="http://www.cmake.org/Wiki/CMake_FAQ#Does_CMake_support_.22convenience.22_libraries.3F">Doesn&#8217;t really have the concept of convenience libraries.</a>  This will result in common files being built multiple times.  I don&#8217;t like this, but its not fatal.</li>
<li>The CMakeCache is getting in my way more than being a help, but that might be the side effect of my learning process right now.</li>
<li>I haven&#8217;t yet figured out how to make it query the person compiling the app if it can&#8217;t find something.  This may not be possible.  At the very least I want to make it bitch and bomb out if a required dependency isn&#8217;t there.  I just haven&#8217;t found it yet, I&#8217;m thinking.</li>
</ul>
<p>This isn&#8217;t an exhaustive review yet, but I wanted to get down what was in my mind before I forgot.  I had just found the convenience library thing and that&#8217;s what inspired the post.  My next step is to move a full existing project over to being built with cmake.  This is a library that depends on <a href="http://expat.sourceforge.net/">expat</a>, <a href="http://boost.org/">boost</a>, <a href="http://curl.haxx.se/">curl</a>, <a href="http://www.antlr.org/">antlr</a>, and (optionally) <a href="http://www.swig.org/">swig</a>.  Should be a good challenge.</p>
<p>[<strong>Update 11:58</strong>: <em>I found an answer to my "<a href="http://tools.devchannel.org/devtoolschannel/04/03/14/0252233.shtml?tid=46">bomb out if the dependencies are missing</a>" question.  Thanks, devchannel!</em>]</p>
<p>[<strong>Update 2:51:</strong>  <em>No this isn't here just for g0ff.  Turns out the latest cmake has modules to Find Java, Doxygen, Boost, Curl, Expat, and Swig already.  It looks like just custom items for antlr and cppunit will be needed.  Also, it only ever wants to link against dynamic libraries, not static ones.  That's a PITA.</em>]</p>
<p>[<strong>Update 5:52</strong>: <em>Okay, the convenience library thing is upsetting.  The output of what I was working on is a static library and there are same example command line tools that link against it.  From my reading of the cmake stuff, I should just include the library source files to the target for the executables being created.  The problem with this is for <strong>n</strong> example programs, I'm compiling librets <strong>n</strong> times.  This doesn't seem very optimal.]</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2007/03/27/cmake-so-far/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fortune for xscreensaver for OS X</title>
		<link>http://www.kgarner.com/blog/archives/2006/10/31/fortune-for-xscreensaver-for-os-x/</link>
		<comments>http://www.kgarner.com/blog/archives/2006/10/31/fortune-for-xscreensaver-for-os-x/#comments</comments>
		<pubDate>Tue, 31 Oct 2006 17:32:41 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/archives/2006/10/31/fortune-for-xscreensaver-for-os-x/</guid>
		<description><![CDATA[I love that jwz ported XScreenSaver to OS X at about the same time I moved to OS X for my laptop.&#160; I got to keep all the screen savers I use and have used over the past decade or so.&#160; Especially some of the cooler GL based ones.&#160; (Its also nice that someone ported [...]]]></description>
			<content:encoded><![CDATA[<p>I love that <a href="http://www.jwz.org/">jwz</a>  ported <a href="http://www.jwz.org/xscreensaver/">XScreenSaver</a>  to OS X at about the same time I moved to OS X for my laptop.&nbsp; I got to keep all the screen savers I use and have used over the past decade or so.&nbsp; Especially some of the cooler GL based ones.&nbsp; (Its also nice that someone ported rss-glx as well, but that&#8217;s a different story.)&nbsp; The only piece XScreenSaver is missing is the controller to randomly call only selected hacks.&nbsp; Luckily, <a href="http://allocsoft.com/randomextra/">RandomExtra</a>  fills that hole.
</p>
<p>One issue I&#8217;ve had with xscreensaver on OS X has been the difficulty/impossibility of having the text displaying hacks use fortune (or any program, for that matter) as the source of the text.&nbsp; Mike mentioned this morning that all those hacks appear to be able to call out to a URL.&nbsp; This morning I felt strangely motivated, so I whipped up a quick ruby script that is basically an HTTP based fortune server.&nbsp; Since ruby ships with OS X, it&#8217;ll make it easier in case anyone else wants to get it running as well.&nbsp; Once I got that working, the question was how to have this launch automatically on OS X so I wouldn&#8217;t have to worry about it.&nbsp; I&#8217;ve played with <a href="http://lingon.sourceforge.net/">Lingon</a>  on and off, and it seemed like the tool to help me do it.&nbsp; I used Lingon to create a UserDeamon that should launch when one logs in, and should die when one logs out.&nbsp; I then went through the screen savers that call out to text and pointed them at the localhost URL, and boom, I was back to fortune city.</p>
<p>To recreate this you&#8217;ll need this <a href="http://www.kgarner.com/blog/wp-content/uploads/2006/11/fortune_helper.rb">fortune_helper.rb</a>  script I whipped up, Lingon to create the launcher or this <a href="http://www.kgarner.com/blog/wp-content/uploads/2006/11/fortune.plist">fortune.plist</a>  (put in <code>/Library/LaunchDaemons</code>) and fortune installed somewhere.&nbsp; I installed fortune via <a href="http://darwinports.opendarwin.org/">DarwinPorts</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2006/10/31/fortune-for-xscreensaver-for-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OS X moving unix forward</title>
		<link>http://www.kgarner.com/blog/archives/2006/06/30/os-x-moving-unix-forward/</link>
		<comments>http://www.kgarner.com/blog/archives/2006/06/30/os-x-moving-unix-forward/#comments</comments>
		<pubDate>Fri, 30 Jun 2006 16:59:39 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/archives/2006/06/30/os-x-moving-unix-forward/</guid>
		<description><![CDATA[For every stupid hard coded Steve Jobism in OS X1, there&#8217;s some really awesome unix extentions I&#8217;d like to see elsewhere.&#160; The big one for me today has to do with DNS handling. I&#8217;ve been playing with OpenVPN to get access to my network at home.&#160; Since I have a MacBook Pro from work, that&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>For every stupid hard coded Steve Jobism in OS X<sup>1</sup>, there&#8217;s some really awesome unix extentions I&#8217;d like to see elsewhere.&nbsp; The big one for me today has to do with DNS handling.</p>
<p>I&#8217;ve been playing with <a href="http://openvpn.net/">OpenVPN</a>  to get access to my network at home.&nbsp; Since I have a MacBook Pro from work, that&#8217;s been my end point client.&nbsp; I&#8217;ve been using <a href="http://www.tunnelblick.net/">Tunnelblick</a>  as my OpenVPN client to connect to OpenVPN server on my linux box (installed via <a href="http://dag.wieers.com/home-made/apt/">DAG&#8217;s RPM</a>  repository.)&nbsp; One thing that bugged me was how to get DNS so I can see my internal home DNS without breaking access to work&#8217;s internal DNS.&nbsp; If I was using a linux laptop, I think my solution would have to do with running a local instance of named with some wacked out config to do caching only and refer to different DNS servers.&nbsp; Hardly dynamic and a giant PITA to get going.</p>
<p>I was curious about how to make this go though, and what general solutions people had when I came across a post by Mike Erdely titled <a href="http://erdelynet.com/tech/mac-os-x/openvpn-dns-os-x/">OpenVPN + DNS + OS X</a>.&nbsp; That is exactly what I wanted to do!&nbsp; As a bonus he&#8217;s even using Tunnelblick.</p>
<p>Mike shows how OS X&#8217;s DNS resolver uses an <code>/etc/resolver</code> directory to get additional per-domain configuration information, as opposed to the blanket <code>/etc/resolve.conf</code> that unix users have come to know.&nbsp; To get the mac to resolve kgarner.com using my doman&#8217;s internal DNS server I just need to create <code>/etc/resolver/kgarner.com</code> and put <code>nameserver 192.168.1.10</code> inside of it.&nbsp; This directs OS X&#8217;s resolver to ask 192.168.1.10 for any kgarner.com query.&nbsp; He also shows how to flush OS X&#8217;s DNS cache via <code>lookupd</code> so if I had hit any of my public kgarner.com IPs the resolver will send me to the private ip instead of the public one i&#8217;ve already hit.&nbsp; There&#8217;s also two simple scripts that you can integrate with OpenVPN to add and remove the <code>/etc/resolver</code> entry as needed.</p>
<p>The fact that OS X&#8217;s resolver will check for entries <code>/etc/resolver</code> first is the type of smart unix extentions I&#8217;d like to see more of.&nbsp; There&#8217;s no reason Linux&#8217;s resolver can&#8217;t be doing something like this.&nbsp; It would make VPNs easier to implement, and doesn&#8217;t seem to be that hard to add to the resolver code.</p>
<p>Other examples of OS X moving stuff forward is the <code>init</code>/<code>cron</code>/<code>at</code> all in one <code>launchd</code>.&nbsp; I&#8217;m slowly starting to agree that <code>init</code>, <code>cron</code>, and <code>at</code> are all sides of the same coin.&nbsp; Don&#8217;t get me wrong, <a href="http://www.dribin.org/dave/blog/archives/2006/04/17/delicious_backup_launchd/"><code>launchd</code> has some issues</a>, but the idea is a step in the right direction, especially for machines that will sleep.&nbsp; A lot of what OS X has done to make unix better is especially for mobile sleep-capable devices like laptops.</p>
<p><font size="1"><sup>1</sup> Ask MARK for a laundry list of them&#8230;&nbsp; <img src='http://www.kgarner.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley colorbox-251' /> &nbsp;</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2006/06/30/os-x-moving-unix-forward/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Stupid Finder tricks</title>
		<link>http://www.kgarner.com/blog/archives/2006/05/26/stupid-finder-tricks/</link>
		<comments>http://www.kgarner.com/blog/archives/2006/05/26/stupid-finder-tricks/#comments</comments>
		<pubDate>Fri, 26 May 2006 17:46:27 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/archives/2006/05/26/stupid-finder-tricks/</guid>
		<description><![CDATA[As a unix geek, I like to see and sometimes browse /usr for various reasons.&#160; While I can do it from the command line, it would be nice to be able to do it in the Finder.&#160; Thanks to information I found in the article Top Ten Mac OS X Tips for Unix Geeks I [...]]]></description>
			<content:encoded><![CDATA[<p>As a unix geek, I like to see and sometimes browse <code>/usr</code> for various reasons.&nbsp; While I can do it from the command line, it would be nice to be able to do it in the Finder.&nbsp; Thanks to information I found in the article <a href="http://www.macdevcenter.com/pub/a/mac/2002/10/22/macforunix.html">Top Ten Mac OS X Tips for Unix Geeks</a>  I was able to make <code>/usr</code> not hidden anymore.&nbsp; (The article is from 2002, but this bit of imformation is still relevant.)&nbsp; The following command removes the HFS+ hidden attribute and that lets the Finder show it.&nbsp; As the full path below implies, you need to have the developer tools installed.
</p>
<blockquote>
<p><code># /Developer/Tools/SetFile -a v /usr</code></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2006/05/26/stupid-finder-tricks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>color grep</title>
		<link>http://www.kgarner.com/blog/archives/2006/05/23/color-grep/</link>
		<comments>http://www.kgarner.com/blog/archives/2006/05/23/color-grep/#comments</comments>
		<pubDate>Tue, 23 May 2006 17:32:54 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/archives/2006/05/23/color-grep/</guid>
		<description><![CDATA[Every once in awhile I come across a feature of a piece of software, generally, a small utility that I hadn&#8217;t known about and that shows immediate value.&#160; Today Jon showed me the --color flag for GNU grep.&#160; It uses color to highlight the term you were searching for in the line returned.&#160; For example: [...]]]></description>
			<content:encoded><![CDATA[<p>Every once in awhile I come across a feature of a piece of software, generally, a small utility that I hadn&#8217;t known about and that shows immediate value.&nbsp; Today Jon showed me the <code>--color</code> flag for GNU grep.&nbsp; It uses color to highlight the term you were searching for in the line returned.&nbsp; For example:</p>
<blockquote>
<p>#&nbsp;grep &#8211;color=auto -i metadata todo.txt<br />
<font color="#ff0000">Metadata</font> Functions to Move:<br />
&nbsp;&nbsp;&nbsp;<font color="#ff0000">Metadata</font>View&#8230;Make sure only our indexed items are passed up.</p>
</blockquote>
<p>Its a very simple thing, but one of those that I&#8217;m surpised I haven&#8217;t been using.&nbsp; I know have a shell aliases for that.&nbsp; See the grep documentation for more information.</p>
<p>[<strong>Update 6/2:</strong> <em><a href="http://www.linux.com/">linux.com</a>  has a great article on <a href="http://www.linux.com/article.pl?sid=06/05/19/1920231">GNU grep's new features</a>  which talks about the color.&nbsp; One that I'm particularly expected about is the ability to use Perl-style regular expressions.</em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2006/05/23/color-grep/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Concatenate PDFs</title>
		<link>http://www.kgarner.com/blog/archives/2006/05/03/concatenate-pdfs/</link>
		<comments>http://www.kgarner.com/blog/archives/2006/05/03/concatenate-pdfs/#comments</comments>
		<pubDate>Wed, 03 May 2006 19:09:47 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/archives/2006/05/03/concatenate-pdfs/</guid>
		<description><![CDATA[I often like to print out many web pages to read on the train.&#160; To not waste paper I like to print them 2 up and double sided.&#160; If the printer supports it, I also like to staple the pages.&#160; On Linux, I use Firefox to print to postscript, then used a2ps to have the [...]]]></description>
			<content:encoded><![CDATA[<p>I often like to print out many web pages to read on the train.&nbsp; To not waste paper I like to print them 2 up and double sided.&nbsp; If the printer supports it, I also like to staple the pages.&nbsp; On Linux, I use Firefox to print to postscript, then used <a href="http://www.inf.enst.fr/~demaille/">a2ps</a>  to have the PS files combined, 2-uped, and short-side duplexed.&nbsp; I&#8217;d then manually staple it, as there was no good way to tell the print center at work to staple it.&nbsp; I&#8217;d use a command line similar to this:</p>
<blockquote>
<p><code>a2ps -Eps -Afill -stumble 1.ps 2.ps 3.ps 4.ps</code></p>
</blockquote>
<p>I tried this approach under OS X, but the problem is that the postscript that is generated on OS X is so detailed that it takes forever to process to print out, on the order of 2 minutes of processing per article.&nbsp; Since PDF is the spooling format for printing in OS X (<a href="http://www.linux.com/article.pl?sid=06/04/18/2114252">coming soon to linux</a>) I thought I&#8217;d look to see if there was an easy way to concatinate PDF files so I could then have the regular printing interface (via Preview) handle the 2-up, double-sided, stapling goodness.</p>
<p>After much searching around I found <a href="http://www.macosxhints.com/article.php?story=20020714102702896">this article</a>  and later <a href="http://ansuz.sooke.bc.ca/software/pdf-append.php">this web page</a>.&nbsp; Combining a bit from both, I came up with following that works really well in my few days of testing.</p>
<blockquote>
<p><code>texexec --pdf --paper=letter --pdfarrange --result all.pdf 1.pdf 2.pdf 3.pdf 4.pdf</code></p>
</blockquote>
<p>It runs really quickly (especially in comparison to the a2ps method) and then I just <code>open all.pdf</code> and print from there.&nbsp; It requires that you have <a href="http://www.tug.org/tetex/">teTeX</a>  installed.&nbsp; On both Linux and OS X I had this installed as part of the prerequesets for <a href="http://www.docbook.org/">docbook</a>  and <a href="http://www.stack.nl/~dimitri/doxygen/">doxygen</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2006/05/03/concatenate-pdfs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Put OS X dock into the corner</title>
		<link>http://www.kgarner.com/blog/archives/2006/04/24/put-os-x-dock-into-the-corner/</link>
		<comments>http://www.kgarner.com/blog/archives/2006/04/24/put-os-x-dock-into-the-corner/#comments</comments>
		<pubDate>Tue, 25 Apr 2006 01:59:11 +0000</pubDate>
		<dc:creator>Keith Garner</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.kgarner.com/blog/archives/2006/04/24/put-os-x-dock-into-the-corner/</guid>
		<description><![CDATA[I recently got a MacBook Pro at work.&#160; I&#8217;ve been slowly adjusting to OS X.&#160; I&#8217;ll post more on the adjustments I knew I&#8217;d have to make and the ones that suprised me later.&#160; However, I found a nick trick that took longer to find than I thought it would, so I&#8217;d blog it. The [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Dock pinned in corner." href="http://www.kgarner.com/blog/wp-content/uploads/2006/04/PinnedDockScreenShot.png"><img class="colorbox-233"  width="128" height="96" align="right" alt="Dock pinned in corner." src="http://www.kgarner.com/blog/wp-content/uploads/2006/04/PinnedDockScreenShot.thumbnail.png" /></a>I recently got a MacBook Pro at work.&nbsp; I&#8217;ve been slowly adjusting to OS X.&nbsp; I&#8217;ll post more on the adjustments I knew I&#8217;d have to make and the ones that suprised me later.&nbsp; However, I found a nick trick that took longer to find than I thought it would, so I&#8217;d blog it.</p>
<p>The OS X dock has its good and bad points, but its important due to that&#8217;s where minimized apps go and where running apps keep there icons.&nbsp; However, by default, it is centered and that doesn&#8217;t jive with how I like to place windows.&nbsp; Especially when coding.&nbsp; Based on the information given <a href="http://applepedia.com/Dock">here at applepedia</a> and the definition at <a href="http://www.oreillynet.com/cs/user/view/cs_msg/25039">this O&#8217;Reilly article</a> I was able to figure out how to put it into the lower left or lower right corner.&nbsp; Click on the image here to see a screenshot of the dock put in its place.</p>
<p>The feature is called <em>pinning</em>.&nbsp; Just do the following from the command line:</p>
<blockquote>
<p><code># defaults write com.apple.dock pinning -string start</code></p>
</blockquote>
<p>After you restart the doc (by either logging back in or a nice &quot;killall Dock.app&quot; that will pin the dock to the left.&nbsp; If you want to lock it to the right, switch the <em>start</em> to <em>end</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kgarner.com/blog/archives/2006/04/24/put-os-x-dock-into-the-corner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

