<?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>John Myles White &#187; Mac OS X</title>
	<atom:link href="http://www.johnmyleswhite.com/notebook/category/mac-os-x/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.johnmyleswhite.com</link>
	<description>&#34;He who refuses to do arithmetic is doomed to talk nonsense.&#34;</description>
	<lastBuildDate>Wed, 26 Oct 2011 11:36:05 +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>Problems with ggplot2 0.8.9 and R 2.13.0 on Mac OS X via plyr 1.5</title>
		<link>http://www.johnmyleswhite.com/notebook/2011/04/14/problems-with-ggplot2-0-8-9-and-r-2-13-0-on-mac-os-x-via-plyr-1-5/</link>
		<comments>http://www.johnmyleswhite.com/notebook/2011/04/14/problems-with-ggplot2-0-8-9-and-r-2-13-0-on-mac-os-x-via-plyr-1-5/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 02:15:54 +0000</pubDate>
		<dc:creator>John Myles White</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Statistics]]></category>

		<guid isPermaLink="false">http://www.johnmyleswhite.com/?p=4254</guid>
		<description><![CDATA[This morning I tried to completely update my R installation. I first dumped a list of all the packages I have on my system using the installed.packages() function. Then I installed R 2.13.0 using the OS X disk image. And finally I reinstalled all of my packages from scratch. Unfortunately, I ran into some serious [...]]]></description>
			<content:encoded><![CDATA[<p>This morning I tried to completely update my R installation. I first dumped a list of all the packages I have on my system using the <code>installed.packages()</code> function. Then I installed R 2.13.0 using the OS X disk image. And finally I reinstalled all of my packages from scratch.</p>
<p>Unfortunately, I ran into some serious problems along the way. After installing everything from scratch, &#8216;ggplot2&#8242; 0.8.9 was broken. Specifically, I couldn&#8217;t get error bars to work with <code>stat_summary()</code>. For example, this code wouldn&#8217;t work on my system:</p>

<div class="wp_codebox"><table><tr id="p42543"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code" id="p4254code3"><pre class="c" style="font-family:monospace;"><span style="color: #339933;"># Problem with ggplot2 Version &quot;0.8.9&quot;</span>
&nbsp;
library<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'ggplot2'</span><span style="color: #009900;">&#41;</span>
&nbsp;
set.<span style="color: #202020;">seed</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span>
&nbsp;
example.<span style="color: #202020;">data</span> <span style="color: #339933;">&lt;-</span> data.<span style="color: #202020;">frame</span><span style="color: #009900;">&#40;</span>Measurement <span style="color: #339933;">=</span> rnorm<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">5</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> Class <span style="color: #339933;">=</span> rep<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'A'</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">5</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
ggplot<span style="color: #009900;">&#40;</span>example.<span style="color: #202020;">data</span><span style="color: #339933;">,</span> aes<span style="color: #009900;">&#40;</span>x <span style="color: #339933;">=</span> Class<span style="color: #339933;">,</span> y <span style="color: #339933;">=</span> Measurement<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span>
  stat_summary<span style="color: #009900;">&#40;</span>fun.<span style="color: #202020;">data</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'mean_cl_boot'</span><span style="color: #339933;">,</span> geom <span style="color: #339933;">=</span> <span style="color: #ff0000;">'bar'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span>
  stat_summary<span style="color: #009900;">&#40;</span>fun.<span style="color: #202020;">data</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'mean_cl_boot'</span><span style="color: #339933;">,</span> geom <span style="color: #339933;">=</span> <span style="color: #ff0000;">'errorbar'</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

<p>Thankfully, I managed to enlist <a href="http://dirk.eddelbuettel.com/blog/">Dirk Eddelbuettel&#8217;s</a> help through Twitter and he ran the code on his own recently updated system. Things worked fine for him, which suggested that the problem was in my system configuration. We compared package versions and discovered that he had &#8216;plyr&#8217; 1.5.1 on his Ubuntu machine, while I had &#8216;plyr&#8217; 1.5 on my OS X machine. After looking at CRAN, it was clear that the Mac OS X build wasn&#8217;t available on CRAN yet.</p>
<p>To fix this, I grabbed the source for &#8216;plyr&#8217; 1.5.1 and tried to install it myself. That led to the following error:</p>

<div class="wp_codebox"><table><tr id="p42544"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p4254code4"><pre class="sh" style="font-family:monospace;">** preparing package for lazy loading
Error: package 'plyr' is required by 'reshape' so will not be detached</pre></td></tr></table></div>

<p>The problem was that &#8216;reshape&#8217; was being loaded automatically when R was starting up. Since &#8216;reshape&#8217; depends on &#8216;plyr&#8217;, R wasn&#8217;t willing to overwrite my old &#8216;plyr&#8217; 1.5 with the new &#8216;plyr&#8217; 1.5.1. The solution was to edit my <code>.Rprofile</code> file to prevent &#8216;reshape&#8217; from being autoloaded. Once I did this, I was able to run the standard <code>R CMD INSTALL</code> and get the new version of &#8216;plyr&#8217; on my system. And after that &#8216;ggplot2&#8242; 0.8.9 started working properly.</p>
<p>Hopefully no one else will come up against the same issue after the binary for &#8216;plyr&#8217; 1.5.1 gets pushed through all of the CRAN mirrors. But if you get errors while using &#8216;ggplot2&#8242; 0.8.9, look into installing &#8216;plyr&#8217; 1.5.1 from source on your system.</p>
<p>Many thanks to Dirk for giving me so much help today.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnmyleswhite.com/notebook/2011/04/14/problems-with-ggplot2-0-8-9-and-r-2-13-0-on-mac-os-x-via-plyr-1-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iBad: The FSF Kool-Aid and Other Dystopian Hallucinations</title>
		<link>http://www.johnmyleswhite.com/notebook/2010/01/29/ibad-the-fsf-kool-aid-and-other-dystopian-hallucinations/</link>
		<comments>http://www.johnmyleswhite.com/notebook/2010/01/29/ibad-the-fsf-kool-aid-and-other-dystopian-hallucinations/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 15:51:23 +0000</pubDate>
		<dc:creator>John Myles White</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.johnmyleswhite.com/?p=3816</guid>
		<description><![CDATA[The people who worry that the iPad will bring about a dystopian future for home computing keep forgetting something: for the rest of humanity, their ideal world of perfectly hackable machines is already a dystopian nightmare. It&#8217;s a world in which nothing works without spending hours setting it up, in which basic features are missing [...]]]></description>
			<content:encoded><![CDATA[<p>The people who worry that the iPad will bring about a dystopian future for home computing keep forgetting something: for the rest of humanity, <i>their ideal world of perfectly hackable machines is already a dystopian nightmare</i>. It&#8217;s a world in which nothing works without spending hours setting it up, in which basic features are missing while the manual lists thousands of irrelevant options, in which a million hardware extensions are available for their machine, but none of them help to solve a single one of their day-to-day problems. While being something of a hacker myself, I feel that the hacker&#8217;s vision of totally open computing probably should become a niche market, in much the same way that chemistry sets represent a niche market. The fact that not every person has a set of tools in his house that, by default, allows him to conduct arbitrary chemistry experiments has not substantially slowed down the progress of chemistry from what I can tell. The arrival of a world in which the most popular computers are closed to arbitrary hardware extensions and all applications are required to run within a sandbox probably won&#8217;t slow down the progress of personal computing much either.</p>
<p>Hackers of the world, your priorities are not simply different from the average user&#8217;s: they often represent a direct attack on the average user&#8217;s preferences. You keep asserting that you have the normal person&#8217;s interests in mind, but I think you&#8217;re often simply concealing your own self-interest underneath politicized rhetoric about freedom and openness.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnmyleswhite.com/notebook/2010/01/29/ibad-the-fsf-kool-aid-and-other-dystopian-hallucinations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cleaning Up an iTunes Library with MacRuby</title>
		<link>http://www.johnmyleswhite.com/notebook/2009/11/20/cleaning-up-an-itunes-library-with-macruby/</link>
		<comments>http://www.johnmyleswhite.com/notebook/2009/11/20/cleaning-up-an-itunes-library-with-macruby/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 22:42:37 +0000</pubDate>
		<dc:creator>John Myles White</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.johnmyleswhite.com/?p=3625</guid>
		<description><![CDATA[For a little more than a year now, I&#8217;ve been meaning to write a script to rename all of the files in my iTunes library so that they&#8217;re in proper English title case. In large part, this project was inspired by reading John Gruber&#8217;s post about a Perl script that he&#8217;d written to convert text [...]]]></description>
			<content:encoded><![CDATA[<p>For a little more than a year now, I&#8217;ve been meaning to write a script to rename all of the files in my iTunes library so that they&#8217;re in proper English title case. In large part, this project was inspired by reading <a href="http://daringfireball.net/2008/05/title_case">John Gruber&#8217;s post</a> about a Perl script that he&#8217;d written to convert text strings into title case programmatically. After reading Gruber&#8217;s post, I grabbed a copy of <a href="http://github.com/samsouder/titlecase/tree/master/lib/">Sam Souder&#8217;s translation</a> of Gruber&#8217;s Title Case script into Ruby and set about trying to use it as part of a home-grown Ruby script to clean up my iTunes library. During my first pass, I tried to combine Sam&#8217;s convenient utility method with RubyCocoa to produce a script that could access the iTunes methods directly and rename my files automatically without editing the MP3 files directly. Unfortunately, the RubyCocoa documentation was too sparse at the time for me to figure out the relevant method calls to be making.</p>
<p>Thankfully, I spent some time this week reading the MacRuby documentation and realized in the process how to write my desired script. The results are now on <a href="http://github.com/johnmyleswhite/titlecase-itunes-tracks">GitHub</a>. The only original bit of code is below:</p>

<div class="wp_codebox"><table><tr id="p36256"><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
28
29
30
31
32
33
34
35
36
37
38
</pre></td><td class="code" id="p3625code6"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!/usr/bin/macruby</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># We iterate over every track, stripping bounding whitespace and putting things into proper title case.</span>
&nbsp;
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'titlecase'</span>
&nbsp;
framework <span style="color:#996600;">'cocoa'</span>
&nbsp;
load_bridge_support_file <span style="color:#996600;">'ITunes.bridgesupport'</span>
&nbsp;
framework<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;ScriptingBridge&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
itunes = SBApplication.<span style="color:#9900CC;">applicationWithBundleIdentifier</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;com.apple.itunes&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
music_playlist_tracks = itunes.<span style="color:#9900CC;">sources</span>.<span style="color:#9900CC;">objectWithName</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;Library&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">userPlaylists</span>.<span style="color:#9900CC;">objectWithName</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;Music&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">fileTracks</span>
&nbsp;
music_playlist_tracks.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>track<span style="color:#006600; font-weight:bold;">|</span>
  old_artist = track.<span style="color:#9900CC;">artist</span>
  new_artist = track.<span style="color:#9900CC;">artist</span>.<span style="color:#9900CC;">strip</span>.<span style="color:#9900CC;">titlecase</span>
  <span style="color:#9966CC; font-weight:bold;">if</span> old_artist != new_artist
    track.<span style="color:#9900CC;">artist</span> = new_artist
    <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;Artist: #{old_artist} =&gt; #{new_artist}&quot;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  old_album = track.<span style="color:#9900CC;">album</span>
  new_album = track.<span style="color:#9900CC;">album</span>.<span style="color:#9900CC;">strip</span>.<span style="color:#9900CC;">titlecase</span>
  <span style="color:#9966CC; font-weight:bold;">if</span> old_album != new_album
    track.<span style="color:#9900CC;">album</span> = new_album
    <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;Album: #{old_album} =&gt; #{new_album}&quot;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  old_name = track.<span style="color:#9900CC;">name</span>
  new_name = track.<span style="color:#9900CC;">name</span>.<span style="color:#9900CC;">strip</span>.<span style="color:#9900CC;">titlecase</span>
  <span style="color:#9966CC; font-weight:bold;">if</span> old_name != new_name
    track.<span style="color:#9900CC;">name</span> = new_name
    <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;Name: #{old_name} =&gt; #{new_name}&quot;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p>Outside of this little snippet of MacRuby code that I had to write, I made two small changes to Sam Souder&#8217;s original code:</p>
<ol>
<li>I defined a <code>titlecase</code> method for the <code>NSString</code> class rather than the <code>String</code> class.</li>
<li>I pulled the list of English prepositions out of the main code and put it into a separate YAML file to make it easier for a non-programmer to edit the list.</li>
</ol>
<p>I know from experience with checking the results in a half gleeful and half paranoid frenzy that this code works properly on my own two machines, both of which are running MacRuby 0.5. That said, I won&#8217;t vouch for the reliability of this program in any way. If you notice any bugs, please do let me know, so that I can fix my own iTunes library with a revised version of the script.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnmyleswhite.com/notebook/2009/11/20/cleaning-up-an-itunes-library-with-macruby/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Two of Unison&#8217;s Quirks</title>
		<link>http://www.johnmyleswhite.com/notebook/2009/11/11/two-of-unisons-quirks/</link>
		<comments>http://www.johnmyleswhite.com/notebook/2009/11/11/two-of-unisons-quirks/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 02:02:01 +0000</pubDate>
		<dc:creator>John Myles White</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.johnmyleswhite.com/?p=3597</guid>
		<description><![CDATA[As many people know, I adore the program Unison. That said, Unison has its fair share of quirks. Today I found myself confronting one that I had spent a whole day confused by about a month ago. Unison stores a cache of information about the file system for every directory that it synchronizes. On Macs, [...]]]></description>
			<content:encoded><![CDATA[<p>As many people know, I adore the program <a href="http://www.cis.upenn.edu/~bcpierce/unison/">Unison</a>. That said, Unison has its fair share of quirks. Today I found myself confronting one that I had spent a whole day confused by about a month ago.</p>
<p>Unison stores a cache of information about the file system for every directory that it synchronizes. On Macs, this caches lives in <code>~/Library/Application Support/Unison/</code>. What you need to know is that this cache must either be absent on both the client and the server or it must be present on both. If it gets deleted on one but not the other, Unison hangs indefinitely without producing any error messages when you try to synchronize the directories again. Suffice it to say, this is confusing.</p>
<p>Possibly this quirk is already fixed in newer versions, but I&#8217;ve had trouble compiling Unison recently, so I&#8217;ve left that task for the future. In the meantime, the other quirk that irks me is the inconsistency in the icons used by the Mac GUI. Sometimes a top level element in the GUI represents a folder and sometimes it represents a single file inside of a folder. I think that a cleaner GUI would simply render a folder with nested files every single time you had a discrepancy between the client and server &#8212; even if the discrepancy is a single file. Changing the meaning of items at the same spatial positioning seems to produce a Stroop effect for me &#8212; and I suspect for others as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnmyleswhite.com/notebook/2009/11/11/two-of-unisons-quirks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone SSH Clients</title>
		<link>http://www.johnmyleswhite.com/notebook/2009/10/11/iphone-ssh-clients/</link>
		<comments>http://www.johnmyleswhite.com/notebook/2009/10/11/iphone-ssh-clients/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 16:39:31 +0000</pubDate>
		<dc:creator>John Myles White</dc:creator>
				<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.johnmyleswhite.com/?p=3591</guid>
		<description><![CDATA[Lately I&#8217;ve been doing a lot of my work over an SSH connection. I therefore decided that I should finally invest in an iPhone SSH client. After looking at pTerm, TouchTerm and iSSH, I decided that I should purchase iSSH. I have to say that this was one of the better app purchases I&#8217;ve ever [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been doing a lot of my work over an SSH connection. I therefore decided that I should finally invest in an iPhone SSH client. After looking at <a href="http://www.instantcocoa.com/products/pTerm/">pTerm</a>, <a href="http://jbrink.net/touchterm/">TouchTerm</a> and <a href="http://www.zinger-soft.com/iSSH_features.html">iSSH</a>, I decided that I should purchase iSSH. I have to say that this was one of the better app purchases I&#8217;ve ever made. What makes an SSH client app so valuable is not the ability to log in to one of my servers remotely <i>per se</i>, but rather that this ability provides me with a workaround for the most burdensome of the iPhone SDK&#8217;s clauses: the prohibition of language interpreters. By logging in to a remote machine over SSH from my iPhone, I can now write R and Ruby programs while I&#8217;m on the train. This is a major gain for my productivity, as I&#8217;d formally been reduced to programming on my iPhone using notes that I would e-mail to myself and debug hours after originally writing them.</p>
<p>On another note, I also bought the game <a href="http://www.canabalt.com/">Canabalt</a> recently, which may be the best iPhone game that I&#8217;ve ever played. If you want to convince yourself of its brilliance, you can play a Javascript version of it for free <a href="http://www.adamatomic.com/canabalt/">online</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnmyleswhite.com/notebook/2009/10/11/iphone-ssh-clients/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mac OS X 10.5.7 Observation</title>
		<link>http://www.johnmyleswhite.com/notebook/2009/05/14/mac-os-x-1057-observation/</link>
		<comments>http://www.johnmyleswhite.com/notebook/2009/05/14/mac-os-x-1057-observation/#comments</comments>
		<pubDate>Thu, 14 May 2009 02:00:18 +0000</pubDate>
		<dc:creator>John Myles White</dc:creator>
				<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.johnmyleswhite.com/?p=3534</guid>
		<description><![CDATA[Is it just me or does the Dock respond much more smoothly under 10.5.7 than under 10.5.6?]]></description>
			<content:encoded><![CDATA[<p>Is it just me or does the Dock respond much more smoothly under 10.5.7 than under 10.5.6?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnmyleswhite.com/notebook/2009/05/14/mac-os-x-1057-observation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making the Most of My Mac</title>
		<link>http://www.johnmyleswhite.com/notebook/2008/12/26/making-the-most-of-my-mac/</link>
		<comments>http://www.johnmyleswhite.com/notebook/2008/12/26/making-the-most-of-my-mac/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 15:29:14 +0000</pubDate>
		<dc:creator>John Myles White</dc:creator>
				<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.johnmyleswhite.com/?p=3223</guid>
		<description><![CDATA[For literally years I&#8217;ve been meaning to write a post about my favorite programs and utilities for the Mac, but I&#8217;ve always managed to put it off. Given that I recently sent my girlfriend my old Powerbook, I thought that I should finally write down a list of the programs and tools that I&#8217;ve found [...]]]></description>
			<content:encoded><![CDATA[<p>For literally years I&#8217;ve been meaning to write a post about my favorite programs and utilities for the Mac, but I&#8217;ve always managed to put it off. Given that I recently sent my girlfriend my old Powerbook, I thought that I should finally write down a list of the programs and tools that I&#8217;ve found worth having as a Mac user. This list is definitely idiosyncratic &#8212; with a heavy bias towards programming and scientific tools &#8211;, but I think that there are still a lot of very good programs on this list that do not always get as much publicity as they deserve. All that said, here&#8217;s my list.</p>
<p>1. <b>Adium</b>: The best chat client for the Mac that I&#8217;m aware of. I use it as a client for GMail chat, AIM and MSN. I&#8217;d use iChat if it worked with all of those services as well as Adium does, but it just doesn&#8217;t as far as I can tell. There are things that iChat does that Adium can&#8217;t do &#8212; e.g. video chat &#8211;, but I don&#8217;t have any use for those features. I could also use the AIM and MSN programs provided by AOL and Microsoft, but I much prefer a single integrated program over several separate programs. (<a href="http://www.adiumx.com/">site</a>)</p>
<p>2. <b>Caffeine</b>: A simple little program that keeps your Mac from going to sleep, turning off the monitor or activating the screen saver. Very useful when you&#8217;re giving presentations. (<a href="http://lightheadsw.com/caffeine/">site</a>)</p>
<p>3. <b>Carbon Emacs</b>: The only build of Emacs that I find reliably renders the keys on my Western Spanish keyboard. It is also the only one that seems to respect traditional Emacs key bindings, which is very important to me. (<a href="http://www.apple.com/downloads/macosx/unix_open_source/carbonemacspackage.html">site</a>)</p>
<p>4. <b>Cubase</b>: My favorite music composition software for the Mac. Cubase is well-deservedly famous as a MIDI sequencer and I&#8217;ve found that it&#8217;s equally good as a multitrack audio recording system. I use it along with a Toneport UX2 to record guitar and Superior Drummer 2.0 for drum tracking, and I&#8217;ve gotten great results so far. (<a href="http://www.steinberg.net/en/products/musicproduction/cubase4_product.html">site</a>)</p>
<p>5. <b>Cyberduck</b>: The FTP/SFTP client I use. I&#8217;m sure there are better tools than Cyberduck (such as Transmit 3), but Cyberduck is free and does the job more than well enough for my needs. (<a href="http://cyberduck.ch/">site</a>)</p>
<p>6. <b>Delicious Library</b>: A program to help you keep a record of all of the books, DVD&#8217;s and CD&#8217;s you own. I find it especially useful for keeping track of the books I lend to people. (<a href="http://www.delicious-monster.com/">site</a>)</p>
<p>7. <b>Flickr Uploader</b>: If I&#8217;m going to upload a lot of photos to Flickr, I really don&#8217;t want to have to use a Web interface. Flickr Uploader lets me do all of the editing on my machine and then send the labelled and tagged photos as a single group to Flickr. Most importantly, the progress I&#8217;ve made in tagging photos isn&#8217;t lost when my Internet connection flakes out. (<a href="http://www.flickr.com/tools/uploadr/">site</a>)</p>
<p>8. <b>Gimp</b>: I&#8217;m too cheap to buy Photoshop, but the recent builds of Gimp for the Mac work well enough for my purposes. (<a href="http://gimp.lisanet.de/Website/Overview.html">site</a>)</p>
<p>9. <b>Graphviz</b>: If I have to draw any sort of graph, I always use Graphviz. It&#8217;s a great interface to compilers for the DOT language developed at Bell Labs to describe graphs. If you can program at all and ever need to write up flowcharts or diagrams of any sort, I think Graphviz is the way to go. You should also know that the Pixelglow build for Macs is much better than the default. (<a href="http://www.pixelglow.com/graphviz/">site</a>)</p>
<p>10. <b>Growl</b>: Growl provides one of those clever little hacks to the basic Mac user interface that Windows users always find impressive: it creates a service for displaying notifications on your screen that quickly fade away after you&#8217;ve seen them. But the truth is that Growl&#8217;s usefulness is only obvious after you&#8217;ve used it for a while. (<a href="http://growl.info/">site</a>)</p>
<p>11. <b>Handbrake</b>: The best video transcoder I know of for the Mac. Whenever I need to change one video format into another, Handbrake&#8217;s been able to do it for me. (<a href="http://handbrake.fr/">site</a>)</p>
<p>12. <b>Hazel</b>: Another great service for Macs: install Hazel and you have a simple daemon that will regularly move files according to a set of rules you define yourself. I use it to sort every file on my desktop into folders specific to filetypes &#8212; moving MP3&#8242;s to one folder and PDF&#8217;s to another. It&#8217;s been a major part of my efforts to be more organized with my files. (<a href="http://www.noodlesoft.com/hazel.php">site</a>)</p>
<p>13. <b>KeePassX</b>: A password manager that I find very helpful for navigating the mass of passwords I need to remember without leaving the passwords as plain text anywhere on my system. (<a href="http://www.keepassx.org/">site</a>)</p>
<p>14. <b>MacFreePOPS</b>: A simple little program that will let you access your Hotmail account from Mail as if it were a POP server. Extremely useful. (<a href="http://www.e-link.it/macfreepops/">site</a>)</p>
<p>15. <b>MacFUSE</b>: Probably the most impressive of all of the hacks created by the Mac user community. MacFUSE allows you to install new file system drivers that run entirely in user space. The result is that you&#8217;ll get easy access to NTFS (i.e. Windows) hard drives and a slew of other formats. I think everyone should put MacFUSE on their machine the day they buy it. (<a href="http://code.google.com/p/macfuse/">site</a>)</p>
<p>16. <b>Mac The Ripper</b>: If I need to make a copy of a DVD I&#8217;ve made, Mac The Ripper makes it much easier for me to do so. Unfortunately only the older version is still freely distributed, but it works for most DVD&#8217;s. (<a href="http://www.mactheripper.org/">site</a>)</p>
<p>17. <b>MarsEdit</b>: Just as I don&#8217;t like using a web interface to upload photos to Flickr, I don&#8217;t much like using one when writing blog posts. So I do all of my writing in MarsEdit, which then handles uploading my finished posts to my server. (<a href="http://www.red-sweater.com/marsedit/">site</a>)</p>
<p>18. <b>Mathematica</b>: I use Mathematica fairly frequently when I want to get a quick sense of how functions behave or when I need to evaluate an integral I&#8217;ve forgotten how to solve by hand. (<a href="http://www.wolfram.com/products/mathematica/index.html">site</a>)</p>
<p>19. <b>Matlab</b>: If I need to do a lot of basic number crunching involving matrices, I always use Matlab. Additionally, I tend to use it along with PsychToolBox and DotsX for coding experiments in neuroscience and psychology. (<a href="http://www.mathworks.com/products/matlab/">site</a>)</p>
<p>20. <b>MySQL</b>: I always use MySQL as the database system for every dynamic web site I build. It works perfectly on Mac OS X these days, so I tend to demo things on my own machine before moving them off to a stand-alone server. (<a href="http://dev.mysql.com/downloads/">site</a>)</p>
<p>21. <b>NetNewsWire</b>: My favorite RSS reader for the Mac. I can&#8217;t speak highly enough of NetNewsWire&#8217;s interface or the fact that the iPhone application is just as great as the desktop version. (<a href="http://www.newsgator.com/INDIVIDUALS/NETNEWSWIRE/">site</a>)</p>
<p>22. <b>OpenOffice</b>: Again, I&#8217;m too cheap to buy a copy of Office, so I use OpenOffice. It&#8217;s managed to serve me pretty well so far. It&#8217;s still a little lacking on the Mac, but it&#8217;s getting much better with time. (<a href="http://www.openoffice.org/">site</a>)</p>
<p>23. <b>Papers</b>: My means for storing and organizing all of my PDF files. Think of it as iTunes for PDF&#8217;s. If you read journal articles, Papers will improve your life more than you could possibly expect. (<a href="http://mekentosj.com/papers/">site</a>)</p>
<p>24. <b>Perian</b>: Perian will outfit your Quicktime player with almost all of the codecs you could want. Without it, I find Quicktime almost useless. (<a href="http://www.perian.org/">site</a>)</p>
<p>25. <b>Perl</b>: The classic programming language needs no introduction, but I think it&#8217;s worth noting that you&#8217;re always better building your own version of Perl and storing it in <code>/usr/local/</code>, where you won&#8217;t be able to destroy the version that OS X ships with by default. I&#8217;ve also found it nearly impossible to get many modules to build without some customization. (<a href="http://www.cpan.org/">site</a>)</p>
<p>26. <b>Python</b>: Again, I don&#8217;t think Python needs an introduction, but building your own copy seems like a very good idea to me. (<a href="http://www.python.org/">site</a>)</p>
<p>27. <b>Quicksilver</b>: A great tool for getting easy access to programs. I don&#8217;t use nearly as many of Quicksilver&#8217;s features as a lot of people do, but I find it really helpful to be able to avoid using Finder when I don&#8217;t need to. (<a href="http://blacktree.com/">site</a>)</p>
<p>28. <b>R</b>: My language of choice for statistical computing and data analysis. Great tools for producing graphs and an amazing set of facilities for any statistical computation you could ever want to perform. If you want to do statistics like a grown up statistician would, R is the way to go. (<a href="http://www.r-project.org/">site</a>)</p>
<p>29. <b>ReadIris</b>: My favorite OCR software for the Mac. I use this every time I want to copy a long section of text I&#8217;ve scanned. I invariably have to make corrections by hand, but that&#8217;s much faster than typing everything myself from scratch. Given how well ReadIris performs for me, I have high hope that one day in my life we&#8217;ll see a properly Bayesian piece of OCR software that gets everything right. (<a href="http://www.irislink.com/c2-532-189/OCR-Software---Product-list.aspx">site</a>)</p>
<p>30. <b>Ruby</b>: Another programming language that needs no introduction, but which I&#8217;d recommend building from source and storing in <code>/usr/local</code>. (<a href="http://www.ruby-lang.org/en/">site</a>)</p>
<p>31. <b>ScreenFlow</b>: The best screencasting software for the Mac I could find. Given the number of features, the quality of the interface and its relatively low cost, I doubt one could find something better for a few years to come. (<a href="http://www.telestream.net/screen-flow/overview.htm">site</a>)</p>
<p>32. <b>Scrivener</b>: An amazing application that makes writing extended works (for me those are mostly translations) much, much easier. I don&#8217;t use it as often these days, but Scrivener is a brilliant tool if you do a lot of writing that can be broken into sections and outlined carefully. (<a href="http://www.literatureandlatte.com/scrivener.html">site</a>)</p>
<p>33. <b>ScummVM</b>: When I&#8217;m not working, I like to play some old LucasArts games. ScummVM makes that possible. (<a href="http://www.scummvm.org/">site</a>)</p>
<p>34. <b>Senuti</b>: If I need to transfer a file off of an iPod (which iTunes makes impossible), Senuti is there for me. It was free for a long time, so I&#8217;m somewhat surprised to find that you&#8217;re supposed to pay for it now. (<a href="http://www.fadingred.com/senuti/">site</a>)</p>
<p>35. <b>Sequel Pro</b>: My favorite database client system. The heir to the great CocoaMySQL application. A perfect compliment to MySQL on the Mac. (<a href="http://www.sequelpro.com/">site</a>)</p>
<p>36. <b>Skype</b>: Who doesn&#8217;t use Skype as their VoIP program? (<a href="http://www.skype.com/">site</a>)</p>
<p>37. <b>TexLive</b>: When I want documents to look clean, I always use LaTeX. TexLive is the current standard distribution of LaTeX for UNIX systems and it has some great tools specifically made for the Mac. (<a href="http://www.tug.org/texlive/">site</a>)</p>
<p>38. <b>TextMate</b>: They claim it, and I agree: TextMate is Emacs for the 21st century. If you are young enough that you find GUI&#8217;s helpful and don&#8217;t think touching the mouse is a crime against nature, TextMate is the best text editor you will ever find. Every Rails person worth his salt is a TextMate user and there is an endless supply of bundles to customize TextMate for the language of your choice. (I&#8217;ve recently used it a lot with Matlab, R and Erlang.) (<a href="http://macromates.com/">site</a>)</p>
<p>39. <b>The Unarchiver</b>: If you&#8217;ve ever received a compressed file you couldn&#8217;t open, get The Unarchiver and your problems will be solved. Everything else is a waste of time and/or money. (<a href="http://wakaba.c3.cx/s/apps/unarchiver.html">site</a>)</p>
<p>40. <b>Twitterific</b>: My favorite Twitter client for the Mac. (<a href="http://iconfactory.com/software/twitterrific">site</a>)</p>
<p>41. <b>Unison</b>: Probably my single favorite tool for the Mac. Unison lets my keep all of the files that matter to me in perfect sync between my laptop and my desktop. In practice, that amounts to a brilliant back-up system as well as making my life incredibly easier when I do some work on my laptop and then some more work on my desktop. In the end, Unison seems to be the program destined to replace rsync one day. (<a href="http://www.cis.upenn.edu/~bcpierce/unison/">site</a>)</p>
<p>42. <b>VLC</b>: The system I always use to watch anything that doesn&#8217;t open in Quicktime with Perian installed. (<a href="http://www.videolan.org/vlc/">site</a>)</p>
<p>43. <b>VMWare Fusion</b>: Sometimes I need to run Windows or Linux. VMWare Fusion makes it incredibly easy to do so and runs both of those operating systems with remarkable efficiency. (<a href="http://www.vmware.com/products/fusion/">site</a>)</p>
<p>44. <b>Zenmap</b>: If I need to figure out the structure of the network I&#8217;m on, nmap is the tool for doing so. Zenmap provides nmap for the Mac and also a (sometimes) helpful GUI. (<a href="http://nmap.org/zenmap/">site</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnmyleswhite.com/notebook/2008/12/26/making-the-most-of-my-mac/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Negative Items Left to Delete under Mac OS X Leopard</title>
		<link>http://www.johnmyleswhite.com/notebook/2008/08/30/negative-items-left-to-delete-under-mac-os-x-leopard/</link>
		<comments>http://www.johnmyleswhite.com/notebook/2008/08/30/negative-items-left-to-delete-under-mac-os-x-leopard/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 23:40:58 +0000</pubDate>
		<dc:creator>John Myles White</dc:creator>
				<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.johnmyleswhite.com/?p=3111</guid>
		<description><![CDATA[Until today I&#8217;ve felt that, at this point, Leopard has been patched enough to be relatively bug free. While transferring files across my home network today I changed my mind, because I found that the number of files left to delete that&#8217;s shown in progress dialogues can become negative. You can see what I mean [...]]]></description>
			<content:encoded><![CDATA[<p>Until today I&#8217;ve felt that, at this point, Leopard has been patched enough to be relatively bug free. While transferring files across my home network today I changed my mind, because I found that the number of files left to delete that&#8217;s shown in progress dialogues can become negative. You can see what I mean below:</p>
<p><img src="http://www.johnmyleswhite.com/notebook/wp-content/uploads/2008/08/2593-items.jpg" alt="-2593_Items.jpg" border="0" width="400" height="300" /></p>
<p>And just to make clear that the first number isn&#8217;t a one-time fluke, here&#8217;s another shot of the same progress dialogue a second later:</p>
<p><img src="http://www.johnmyleswhite.com/notebook/wp-content/uploads/2008/08/3697-items.jpg" alt="-3697_Items.jpg" border="0" width="400" height="300" /></p>
<p>I&#8217;m not entirely sure what caused the negative count: most likely it was the very large number of small files that had to be deleted. I&#8217;d bet that the number was originally underestimated when the delete operation began, and that, when more files were found later, this took the count of remaining files beyond 0 into the negative integers.</p>
<p>Personally, I find this a little worrisome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnmyleswhite.com/notebook/2008/08/30/negative-items-left-to-delete-under-mac-os-x-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug Still Present in iPhone 1.1.3 Firmware</title>
		<link>http://www.johnmyleswhite.com/notebook/2008/01/21/bug-still-present-in-iphone-113-firmware/</link>
		<comments>http://www.johnmyleswhite.com/notebook/2008/01/21/bug-still-present-in-iphone-113-firmware/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 18:15:37 +0000</pubDate>
		<dc:creator>John Myles White</dc:creator>
				<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.johnmyleswhite.com/notebook/2008/01/21/bug-still-present-in-iphone-113-firmware/</guid>
		<description><![CDATA[The bug I complained about on January 12, 2008 is still present in the recently updated iPhone firmware, version 1.1.3. Perhaps 1.1.4 will solve the problem.]]></description>
			<content:encoded><![CDATA[<p>The bug I complained about on January 12, 2008 is still present in the recently updated iPhone firmware, version 1.1.3.  Perhaps 1.1.4 will solve the problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnmyleswhite.com/notebook/2008/01/21/bug-still-present-in-iphone-113-firmware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oscar Wilde Dashboard Widget</title>
		<link>http://www.johnmyleswhite.com/notebook/2007/09/26/oscar-wilde-dashboard-widget/</link>
		<comments>http://www.johnmyleswhite.com/notebook/2007/09/26/oscar-wilde-dashboard-widget/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 11:11:18 +0000</pubDate>
		<dc:creator>John Myles White</dc:creator>
				<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.johnmyleswhite.com/notebook/2007/09/26/oscar-wilde-dashboard-widget/</guid>
		<description><![CDATA[I loved my Oscar Wilde widget and its endless supply of clever snipes at human pretense, but I discovered today that it was using, by itself, a full 250MB of memory to run. Has anyone else ever used the widget and seen this kind of memory use? I almost suspect virus-like behavior with that amount [...]]]></description>
			<content:encoded><![CDATA[<p>I loved my Oscar Wilde widget and its endless supply of clever snipes at human pretense, but I discovered today that it was using, by itself, a full 250MB of memory to run. Has anyone else ever used the widget and seen this kind of memory use? I almost suspect virus-like behavior with that amount of memory being committed to one widget. Or is it simply a very severe memory leak coupled with excess caching? Does anyone know about this? Because I could find not information about this on Google, I have no plans to run the widget ever again, but I would like to.</p>
<p>And to think that people are so indignant about the WordPress modifications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnmyleswhite.com/notebook/2007/09/26/oscar-wilde-dashboard-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 2.357 seconds -->

