<?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>Excursus &#187; Hybrid Application</title>
	<atom:link href="http://markelikalderon.com/category/hybrid-application/feed/" rel="self" type="application/rss+xml" />
	<link>http://markelikalderon.com</link>
	<description>Philosophy and Text</description>
	<lastBuildDate>Tue, 27 Dec 2011 23:01:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Cornerstone</title>
		<link>http://markelikalderon.com/2008/07/01/cornerstone/</link>
		<comments>http://markelikalderon.com/2008/07/01/cornerstone/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 00:49:05 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Hybrid Application]]></category>
		<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/2008/07/01/cornerstone/</guid>
		<description><![CDATA[Previewing at 1.0, Cornerstone, a GUI Subversion front end has been released. Daring Fireball, as ever, with the wry commentary: It strikes me as an odd coincidence that two serious Subversion clients would debut at a time when many developers are starting to switch away from Subversion to distributed revision control systems such as Git [...]]]></description>
			<content:encoded><![CDATA[<p>Previewing at 1.0, <a href="http://www.zennaware.com/cornerstone/">Cornerstone</a>, a GUI <a href="http://subversion.tigris.org/" title="subversion.tigris.org">Subversion</a> front end has been released.</p>

<p><a href="http://daringfireball.net/" title="Daring Fireball">Daring Fireball</a>, as ever, with the wry commentary:</p>

<blockquote>
  <p>It strikes me as an odd coincidence that two serious Subversion clients would debut at a time when many developers are starting to switch away from Subversion to distributed revision control systems such as <a href="http://git.or.cz/" title="Git - Fast Version Control System">Git</a> and <a href="http://www.selenic.com/mercurial/" title="Mercurial - Mercurial">Mercurial</a>.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/07/01/cornerstone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Versions or Vaporware?</title>
		<link>http://markelikalderon.com/2008/06/02/versions-or-vaporware/</link>
		<comments>http://markelikalderon.com/2008/06/02/versions-or-vaporware/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 02:09:56 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Hybrid Application]]></category>
		<category><![CDATA[Versions]]></category>
		<category><![CDATA[svnX]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/2008/06/02/versions-or-vaporware/</guid>
		<description><![CDATA[Versions, the GUI Mac subversion client is still vaporware, but there is a review of the prerelease beta at Theocacao. Though I am shifting over to Git, I am still curious how Versions will stack up against svnX.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.versionsapp.com/">Versions</a>, the GUI Mac subversion client is <a href="http://markelikalderon.com/blog/2007/06/17/versions/">still</a> vaporware, but there is a <a href="http://theocacao.com/document.page/576">review</a> of the prerelease beta at <a href="http://theocacoa.com">Theocacao</a>. Though I am shifting over to <a href="http://git.or.cz/" title="Git - Fast Version Control System">Git</a>, I am still curious how Versions will stack up against <a href="http://www.lachoseinteractive.net/en/community/subversion/svnx/" title="La Chose : web agency and software maker – agence web et développement de logiciels">svnX</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/06/02/versions-or-vaporware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s a Man World</title>
		<link>http://markelikalderon.com/2008/03/09/its-a-man-world/</link>
		<comments>http://markelikalderon.com/2008/03/09/its-a-man-world/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 15:23:51 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[AquaLess]]></category>
		<category><![CDATA[Hybrid Application]]></category>
		<category><![CDATA[ManOpen]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/2008/03/09/its-a-man-world/</guid>
		<description><![CDATA[I have been meaning for some time now to blog about ManOpen, a GUI man page viewer originally developed on NEXT, and another example of a hybrid app. However, Brett Terpstra over at TUAW has beaten me to it, in a post comparing a number of GUI man page viewers (including plugins that allow the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://markelikalderon.com/wp-content/uploads/2008/03/man-open.png" alt="Man Open" /></p>

<p>I have been meaning for some time now to blog about <a href="http://www.clindberg.org/projects/ManOpen.html" title="ManOpen">ManOpen</a>, a GUI man page viewer originally developed on NEXT, and another example of a <a href="http://markelikalderon.com/blog/2006/11/02/atpm-on-activity-monitor/">hybrid app</a>. However, Brett Terpstra over at <a href="http://www.tuaw.com/" title="The Unofficial Apple Weblog (TUAW)">TUAW</a> has beaten me to it, in a <a href="http://www.tuaw.com/2008/03/07/here-comes-your-man-viewer/">post</a> comparing a number of GUI man page viewers (including plugins that allow the viewing of man pages in your browser).</p>

<p>In the comments, someone mentions piping man pages to <a href="http://aqualess.sourceforge.net/" title="AquaLess - a Mac OS X text pager">AquaLess</a>, a GUI text pager for OS X. Not nearly as full featured as ManOpen, but AquaLess is another cool hybrid app. So make sure to check out the comments to Brett&#8217;s post for more ideas about viewing man pages outside of the confines of the terminal.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/03/09/its-a-man-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LaTeXColorSelector</title>
		<link>http://markelikalderon.com/2007/08/25/latexcolorselector/</link>
		<comments>http://markelikalderon.com/2007/08/25/latexcolorselector/#comments</comments>
		<pubDate>Sat, 25 Aug 2007 22:12:36 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Hybrid Application]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[Markup]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/2007/08/25/latexcolorselector/</guid>
		<description><![CDATA[When generating PDFs with PDFLaTeX or XeTeX, I use the hyperref package which adds some nice functionality to the compiled document. So, for example, citations are linked to the bibligography and if you use the backref option there&#8217;s a link back to the page with the orignal citation. Nice and user-friendly. The other day I [...]]]></description>
			<content:encoded><![CDATA[<p>When generating PDFs with PDFLaTeX or XeTeX, I use the <a href="http://www.tug.org/applications/hyperref/manual.html" title="Hypertext marks in LaTeX: a manual for hyperref">hyperref package</a> which adds some nice functionality to the compiled document. So, for example, citations are linked to the bibligography and if you use the backref option there&#8217;s a link back to the page with the orignal citation. Nice and user-friendly. The other day I realized, however, that this functionality is largely hidden, since the links are uncolored. The hyperref package comes with a color option, but the default settings for colorlonks=true are, well, garish. Here&#8217;s a screenshot of the bright green with which citations are colored:</p>

<p><img src='http://markelikalderon.com/wp-content/uploads/2007/08/green.tiff' alt='green links' /></p>

<p>The problem is not, or not solely, aesthetic&#8212;the coloring degrades readability. Fortunately, the default color settings can be overidden with the help of the <a href="http://www.ctan.org/tex-archive/help/Catalogue/entries/color.html">color package</a>. I wanted the difference to be discernable but not distracting. So I opted for a shade of gray:</p>

<p><img src='http://markelikalderon.com/wp-content/uploads/2007/08/gray.tiff' alt='gray links' /></p>

<p>Unfortunately color selection in LaTeX is tedious and requires knowledge of the LaTeX color system that I lack. Fortunately, for OS X users, Maarten Sneep has written a nice color picker, <a href="http://www.nat.vu.nl/~sneep/tex/">LaTeXColorSelector</a>. Using the operating system&#8217;s color selection, it outputs LaTeX color definitions in rgb and cmyk. A nice hybrid app.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2007/08/25/latexcolorselector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Versions</title>
		<link>http://markelikalderon.com/2007/06/17/versions/</link>
		<comments>http://markelikalderon.com/2007/06/17/versions/#comments</comments>
		<pubDate>Sun, 17 Jun 2007 22:44:02 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Hybrid Application]]></category>
		<category><![CDATA[Versions]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svnX]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/2007/06/17/versions/</guid>
		<description><![CDATA[Subversion is a great command line utility waiting for decent GUI. While the GUI&#8217;s supplanting the command line represents the triumph of the Image over the Word, the GUI has its place&#8212;even in text editing. With respect to subversion, there&#8217;s cognitive utility in being able to visualize the structure of your repository or working copy. [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://markelikalderon.com/wp-content/uploads/2007/06/sunset.jpg' alt='Versions Logo' /></p>

<p><a href="http://subversion.tigris.org/" title="subversion.tigris.org">Subversion</a> is a great command line utility waiting for decent <a href="http://en.wikipedia.org/wiki/Graphical_user_interface">GUI</a>. While the GUI&#8217;s supplanting the command line represents the <a href="http://markelikalderon.com/blog/2006/09/27/the-word/">triumph of the Image over the Word</a>, the GUI has its place&#8212;even in text editing. With respect to subversion, there&#8217;s cognitive utility in being able to visualize the structure of your repository or working copy. While there are GUI front ends to subversion, none are perfect. While on OS X <a href="http://www.subversionx.com/" title="Subversi&oacute;n X - Hasta la Muerte">svnX</a> works reasonably well, a compelling solution to graphically representing subversion repositories and working copies has yet to be found. The ideal <a href="http://markelikalderon.com/blog/2006/11/02/atpm-on-activity-monitor/">hybrid app</a> has yet to be written. (The situation is not unlike MP3 players before the iPod.) Fortunately, competition is good, and competition is emerging on the Mac platform. <a href="http://www.versionsapp.com/">Versions</a> promises a clean look and simple approach without compromising on functionality. A collaboration between João Pavão and <a href="http://www.madebysofa.com">madebysofa.com</a>, the beta of Versions is soon ready for a private trial. You can sign up for the private beta at <a href="http://www.versionsapp.com">versionsapp.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2007/06/17/versions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Subversion</title>
		<link>http://markelikalderon.com/2007/03/29/subversion/</link>
		<comments>http://markelikalderon.com/2007/03/29/subversion/#comments</comments>
		<pubDate>Wed, 28 Mar 2007 23:58:06 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Hybrid Application]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svnX]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/2007/03/29/subversion/</guid>
		<description><![CDATA[In my first post, I reported my discovery that a lot of tools that programmers use are, in fact, readily adaptable to the task of writing. In a previous post I discussed diff programs&#8212;programs for comparing differences between text files. In this post, I will be discussing version control. Programmers and writers face at least [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://markelikalderon.com/wp-content/uploads/2007/03/svnx.jpg' alt='svnX' /></p>

<p>In my first <a href="http://markelikalderon.com/blog/2006/09/27/the-word/">post</a>, I reported my discovery that a lot of tools that programmers use are, in fact, readily adaptable to the task of writing. In a previous post I discussed <a href="http://markelikalderon.com/blog/2007/02/15/diff-programs-diffed/">diff programs</a>&#8212;programs for comparing differences between text files. In this post, I will be discussing <a href="http://en.wikipedia.org/wiki/Revision_control" title="Wikipedia Entry: Revision_control">version control</a>.</p>

<p>Programmers and writers face at least one common problem. In writing a complex program, programmers need to track small changes over time. In writing a complex document, writers need to track small changes over time. Programmers, being programmers, have written software to meet this particular need, software that can meet the writer&#8217;s corresponding need.</p>

<p>There are a variety of version control systems currently available, but I will be talking about <a href="http://subversion.tigris.org/" title="subversion.tigris.org">subversion</a>, a popular open source replacement for <a href="http://www.cvs.com/" title="CVS">CVS</a>. Subversion tracks changes to a directory, saving the differences in a database. Wish you hadn&#8217;t deleted that paragraph and somehow didn&#8217;t save it in the ad hoc versions of the paper you created? With subversion it is just a:</p>

<pre><code>svn cat
</code></pre>

<p>away.</p>

<p>This post will be covering installing subverion on Mac OS X. Subsequent posts will cover usage, and integration with the diff program of your choice.</p>

<p>Installation:</p>

<p><strong>STEP ONE</strong>: <a href="http://www.codingmonkeys.de/mbo/" title="Martin Ott">Martin Ott</a> of <a href="http://www.codingmonkeys.de/" title="TheCodingMonkeys">Coding Monkeys</a> has helpfully provided a binary for OS X. (One cool feature of the OS X version is its keychain integration.) Download the <a href="http://www.codingmonkeys.de/mbo/">Subversion.pkg</a>.</p>

<p><strong>STEP TWO</strong>: Unzip the subversion.pkg, click the pkg-installer and follow the instructions to install Subversion.</p>

<p><strong>STEP THREE</strong>: OK, let&#8217;s test it out. Open the Terminal (located in /Applications/Utilities), and type:</p>

<pre><code>svn help 
</code></pre>

<p>If successfully installed, you should see a helpful usage message. If not, then chances are that subversion is not in your path. (Don&#8217;t worry if you do not know what this means.) To add the relevant path do the following: Type:</p>

<pre><code>cd
</code></pre>

<p>in Terminal and hit return to navigate to your home directory. Type:</p>

<pre><code>ls -a 
</code></pre>

<p>and hit return to see the contents of your home directory (including the files beginning with a &#8216;.&#8217; normally hidden from the Finder). If a file called &#8216;.profile&#8217; exists open it up in your favorite text editor. If it doesn&#8217;t exist, create it. Now just add the following line:</p>

<pre><code>export PATH=$PATH:/usr/local/bin
</code></pre>

<p>Save .profile and type</p>

<pre><code>source .profile
</code></pre>

<p>and hit return.</p>

<pre><code>svn help
</code></pre>

<p>should now return the help message.</p>

<p><strong>STEP FOUR</strong>: First a bit of terminology. A subversion repository is where all your files are stored. Your working copy is a local copy of its contents where changes are made. If you are happy with them, you commit them to the repository. It is possible to have a local repository on your machine, but having your repository on a server allows for some interesting possibilities (such as syncing your files on multiple machines). <a href="https://opensvn.csie.org/">OpenSVN</a> is a free subversion server. It worked well for me. (Though now mine is on <a href="http://textdrive.com/" title="Welcome to TextDrive &#8211; Reliable, high performance web hosting you can trust">TextDrive</a> which isn&#8217;t free.) A comprehensive list of subversion servers can be found on this <a href="http://subversion.tigris.org/links.html#hosting">page</a> of the subversion website. If you are using <a href="https://opensvn.csie.org/">OpenSVN</a>, click on the link called &#8216;Create a New Project&#8217; and follow the instructions.</p>

<p><strong>STEP FIVE</strong>: Subversion can be managed on the command line. You should take the time to learn how to do so. However, like diff programs (and arguably text editing), there&#8217;s a point to using a GUI environment. There are several GUI front ends for subversion. None of the interfaces are ideal. (The killer GUI front end for subversion has yet to be written.) However, <a href="http://www.lachoseinteractive.net/en/community/subversion/svnx/features/">svnX</a> is by far the best I have seen on OS X. And it is free. Download it <a href="http://www.lachoseinteractive.net/en/community/subversion/svnx/download/">here</a>.</p>

<p><strong>STEP SIX</strong>: When you open up svnX you will see two windows. In the window entitled &#8216;Repositories&#8217;, add the url and login name and password from your subversion server.</p>

<p><strong>STEP SEVEN</strong>: OK, you are in the home stretch now. You have installed subversion, created a subversion repository on a subversion server, and have a GUI program to manage your subversion repository and working copy. Now all that you have to do is import your project directory into your subversion repository. Once more to the Terminal. (After this, most everything can be handled through svnX.) Type:</p>

<pre><code>svn import -m "import message" /path/to/your/project/directory /url/of/your/repository
</code></pre>

<p>(making the appropriate substitutions for the import message and path and url) and hit return.</p>

<p><strong>STEP EIGHT</strong>: Now we need to create the working copy. Move your project directory to the Trash. (Don&#8217;t worry, you don&#8217;t have to empty the trash just yet.) In svnX, click on the name of your repository in the repository window. This will open a new window. Select root and click on &#8216;svn checkout&#8217;. In the dialogue window, select where you want your working copy to live and click &#8216;open&#8217;. Now in the window entitled &#8216;Working Copies&#8217; add the path of the working copy you just created and the login information from the subversion server.</p>

<p>Congratulations! You are now set up. Subsequent posts will describe usage and integrating with the diff tool of your choice. I you can&#8217;t wait check out the <a href="http://www.macdevcenter.com/pub/a/mac/2004/08/10/subversion.html">tutorial</a> at O&#8217;REILLY macdevcenter.com and the subversion <a href="http://svnbook.red-bean.com/">book</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2007/03/29/subversion/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Diff Programs Diffed</title>
		<link>http://markelikalderon.com/2007/02/15/diff-programs-diffed/</link>
		<comments>http://markelikalderon.com/2007/02/15/diff-programs-diffed/#comments</comments>
		<pubDate>Thu, 15 Feb 2007 22:38:28 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[FileMerge]]></category>
		<category><![CDATA[GNU diff]]></category>
		<category><![CDATA[Hybrid Application]]></category>
		<category><![CDATA[Text]]></category>
		<category><![CDATA[diff]]></category>
		<category><![CDATA[kdiff3]]></category>
		<category><![CDATA[wdiff]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/blog/2007/02/15/diff-programs-diffed/</guid>
		<description><![CDATA[In my very first post, I mentioned that a lot of tools for programmers are readily adapted to the task of writing. When writing long, complex documents, it is sometimes necessary to compare versions. If you have embraced the power of plain text, a diff program can help. Diff programs display differences between files. This [...]]]></description>
			<content:encoded><![CDATA[<p>In my very first <a href="http://markelikalderon.com/blog/blog/2006/09/27/the-word/">post</a>, I mentioned that a lot of tools for programmers are readily adapted to the task of writing. When writing long, complex documents, it is sometimes necessary to compare versions. If you have embraced <a href="http://markelikalderon.com/blog/blog/2006/10/25/plain-text/">the power of plain text</a>, a diff program can help. Diff programs display differences between files. This post will examine a number of different diff programs from a writer&#8217;s perspective.</p>

<p>As our sample text we will use the following passage from <em>Moby Dick</em> (available at <a href="http://www.gutenberg.org/wiki/Main_Page">Project Gutenberg</a>):</p>

<blockquote>
  <p>While Daggoo and Queequeg were stopping the strained planks; and as the whale swimming out from them, turned, and showed one entire flank as he shot by them again; at that moment a quick cry went up. Lashed round and round to the fish&#8217;s back; pinioned in the turns upon turns in which, during the past night, the whale had reeled the involutions of the lines around him, the half torn body of the Parsee was seen; his sable raiment frayed to shreds; his distended eyes turned full upon old Ahab.</p>
  
  <p>The harpoon dropped from his hand.</p>
</blockquote>

<p>and this slightly modified version:</p>

<blockquote>
  <p>While Dagoo and Queequeg were stopping the strained planks; and as the whale swimming out from them, turned, and showed one entir flank as he shot by them again; at that moment a quick crie went up. Lashed round and round to the fish&#8217;s back; pinioned in the turns upon turns in which, during the past night, the whale had reeled the involutions of the lines around him, the half torn body of the Parsee was seen; his sable raiment frayed to shreds; his distended eyes turned full upon old Ahab.</p>
  
  <p>The harpoon dropped from his hand.</p>
</blockquote>

<p>I saved these as text files called, respectively, passageone.txt and passagetwo.txt.</p>

<p>First up is <a href="www.gnu.org/">GNU</a> <a href="http://www.gnu.org/software/diffutils/">diff</a>. See the man page for diff&#8217;s options. An extensive manual is provided by Texinfo. Simply type:</p>

<pre><code>info diff
</code></pre>

<p>in the terminal. The command:</p>

<pre><code>diff passageone.txt passagetwo.txt
</code></pre>

<p>yields the following output:</p>

<pre><code>1c1
&lt; While Daggoo and Queequeg were stopping the strained planks; and as the whale swimming out from them, turned, and showed one entire flank as he shot by them again; at that moment a quick cry went up. Lashed round and round to the fish's back; pinioned in the turns upon turns in which, during the past night, the whale had reeled the involutions of the lines around him, the half torn body of the Parsee was seen; his sable raiment frayed to shreds; his distended eyes turned full upon old Ahab. 
---
&gt; While Dagoo and Queequeg were stopping the strained planks; and as the whale swimming out from them, turned, and showed one entir flank as he shot by them again; at that moment a quick crie went up. Lashed round and round to the fish's back; pinioned in the turns upon turns in which, during the past night, the whale had reeled the involutions of the lines around him, the half torn body of the Parsee was seen; his sable raiment frayed to shreds; his distended eyes turned full upon old Ahab. 
3c3
&lt;    The harpoon dropped from his hand.
---
&gt; The harpoon dropped from his hand.
\ No newline at end of file
</code></pre>

<p>One limitation, from the writer&#8217;s perspective is immediately apparent. GNU diff compares <em>line differences</em>. But as paragraphs are long lines, multiple differences within a paragraph are not displayed. What would be more useful is a representation of <em>word differences</em>.</p>

<p>Fortunately, there is a frontend for GNU diff that displays word differences, <a href="http://wdiff.progiciels-bpi.ca/">wdiff</a>. wdiff is available from <a href="http://fink.sourceforge.net/">fink</a> and <a href="http://www.macports.org/">MacPorts</a>. The command:</p>

<pre><code>wdiff passageone.txt passagetwo.txt
</code></pre>

<p>yields the following output:</p>

<pre><code>While [-Daggoo-] {+Dagoo+} and Queequeg were stopping the strained planks; and as the whale swimming out from them, turned, and showed one [-entire-] {+entir+} flank as he shot by them again; at that moment a quick [-cry-] {+crie+} went up. Lashed round and round to the fish's back; pinioned in the turns upon turns in which, during the past night, the whale had reeled the involutions of the lines around him, the half torn body of the Parsee was seen; his sable raiment frayed to shreds; his distended eyes turned full upon old Ahab. 

The harpoon dropped from his hand.
</code></pre>

<p>[-foo-] is a word that occurs in passageone.txt and {+foo+} is a word that occurs in passagetwo.txt.</p>

<p>In an earlier <a href="http://markelikalderon.com/blog/blog/2006/11/02/atpm-on-activity-monitor/">post</a> I observed that the GUI has its place even in the manipulation of text. If you install the <a href="http://en.wikipedia.org/wiki/Apple_Developer_Tools">developer tools</a> on Mac OS X, one gem that you will get is FileMerge, a descendant of <a href="http://en.wikipedia.org/wiki/NEXTSTEP">NEXTSTEP</a>&#8217;s Merge utility. FileMerge provides a visual comparison of text files. FileMerge can be invoked from the command line with opendiff. A screenshot of the output is below:</p>

<p><a class="imagelink" href="http://markelikalderon.com/wp-content/uploads/2007/02/filemerge.jpg" title="FileMerge"><img id="image119" src="http://markelikalderon.com/wp-content/uploads/2007/02/filemerge.thumbnail.jpg" alt="FileMerge" /></a></p>

<p>Notice, FileMerge, like GNU diff, captures line differences, but, like wdiff, it also highlights word differences.</p>

<p>FileMerge is Apple software, so it is simple and easy to use. If you need a more powerful GUI diff program, <a href="http://kdiff3.sourceforge.net/">kdiff3</a> might be for you. Here&#8217;s a screenshot:</p>

<p><a class="imagelink" href="http://markelikalderon.com/wp-content/uploads/2007/02/kdiff3.jpg" title="kdiff3"><img id="image120" src="http://markelikalderon.com/wp-content/uploads/2007/02/kdiff3.thumbnail.jpg" alt="kdiff3" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2007/02/15/diff-programs-diffed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ATPM on Activity Monitor</title>
		<link>http://markelikalderon.com/2006/11/02/atpm-on-activity-monitor/</link>
		<comments>http://markelikalderon.com/2006/11/02/atpm-on-activity-monitor/#comments</comments>
		<pubDate>Thu, 02 Nov 2006 02:34:03 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Activity Monitor]]></category>
		<category><![CDATA[FileMerge]]></category>
		<category><![CDATA[Hybrid Application]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Outliner]]></category>
		<category><![CDATA[Text]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/2006/11/02/atpm-on-activity-monitor/</guid>
		<description><![CDATA[As I mentioned in my initial post, learning about the UNIX underpinnings of OS X was a revelation. While I would never like to work exclusively in a text based terminal, a lot of UNIX utilities can be exploited by writers as well as coders. While visual editing familiar from word processors tends to obscure [...]]]></description>
			<content:encoded><![CDATA[<p>As I mentioned in my initial <a href="http://markelikalderon.com/blog/2006/09/27/the-word/">post</a>, learning about the UNIX underpinnings of OS X was a revelation. While I would never like to work <em>exclusively</em> in a text based terminal, a lot of UNIX utilities can be exploited by writers as well as coders. While visual editing familiar from word processors tends to obscure the semantic structure of complex documents, the GUI has its place even in the manipulation of text. There is an interesting class of applications that I like to think of as hybrid apps. The least interesting of these are merely GUI wrappers of command line utilities. Others, however, add value to these utilities by allowing the user to interact with them in novel and useful ways. One example that deserves special mention is Apple&#8217;s FileMerge that allows for the visual comparison of text files. I will be blogging more about FileMerge, but for now, here is a screenshot:</p>

<p><a class="imagelink" href="http://markelikalderon.com/wp-content/uploads/2006/11/Picture 1.png" title="FileMerge"><img id="image89" src="http://markelikalderon.com/wp-content/uploads/2006/11/Picture 1.thumbnail.png" alt="FileMerge" /></a></p>

<p>Another hybrid application from Apple is Activity Monitor:</p>

<p><a class="imagelink" href="http://markelikalderon.com/wp-content/uploads/2006/11/Picture 2.png" title="Activity Monitor"><img id="image90" src="http://markelikalderon.com/wp-content/uploads/2006/11/Picture 2.thumbnail.png" alt="Activity Monitor" /></a></p>

<p>Of course a lot of the information displayed by Activity Monitor can be accessed by top in the terminal, but there&#8217;s more besides. In a <em>How To</em> article in <a href="http://www.atpm.com/">About This Particular MacIntosh</a> Sylester Roque begins the first part of a <a href="http://www.atpm.com/12.11/activity.shtml">review</a> of the Activity Monitor. Check it out to get a sense of the potential of this underappreciated utility.</p>

<p>While on the topic of <a href="http://www.atpm.com/">ATPM</a>, Ted Goranson in his <a href="http://www.atpm.com/12.11/atpo.shtml">column</a> about outliners (text editors that allow multiple views of a document based on its logical structure), will be writing about writing environments next month. If you are not yet familiar with this fascinating column, the <a href="http://www.atpm.com/Back/atpo.shtml">archives</a> are a rewarding read.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2006/11/02/atpm-on-activity-monitor/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

