<?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; Text</title>
	<atom:link href="http://markelikalderon.com/category/text/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>RIP Project Drawer</title>
		<link>http://markelikalderon.com/2011/12/27/rip-project-drawer/</link>
		<comments>http://markelikalderon.com/2011/12/27/rip-project-drawer/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 22:42:35 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>
		<category><![CDATA[Text Editor]]></category>
		<category><![CDATA[TextMate]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=733</guid>
		<description><![CDATA[Christmas came early for TextMate enthusiasts with the alpha release of TM2. However, along with the glad tidings, the much reviled project drawer has passed. The drawer, according to Kirk McElhearn, was a badly designed UI element. An optional display of additional information, the drawer extended out from the main window. McElhearn was not alone [...]]]></description>
			<content:encoded><![CDATA[<p>Christmas came early for TextMate enthusiasts with the alpha release of <a href="http://blog.macromates.com/2011/textmate-2-0-alpha/">TM2</a>. However, along with the glad tidings, the much reviled project drawer has passed.</p>

<p>The drawer, according to <a href="http://www.mcelhearn.com/2006/07/29/the-mac-os-x-drawer-a-badly-designed-user-interface-element/">Kirk McElhearn</a>, was a badly designed UI element. An optional display of additional information, the drawer extended out from the main window. McElhearn was not alone in despising the drawer, and it is clear that it is a UI element whose days are numbered. However, the absence of the drawer from TM2 has made clear to me just how good it was, if used appropriately. Indeed, TextMate&#8217;s drawer was IMHO one of the drawer&#8217;s finest implementations.</p>

<p>The project drawer allowed easy navigation through a directory of files. It has been replaced by a file browser sidebar. In some ways, the sidebar is more attractive than the drawer in that it has the same height as the main window. However, toggling the sidebar is, in my opinion, a disaster, in that it varies the size of the text window. When you show the sidebar, the application&#8217;s window  remains fixed, but the text displayed within that window shrinks to accommodate it. Moreover, if you are working with a LaTeX document, or indeed any document that involves soft-wrapped long lines, then the text will shift to accommodate the presence of the sidebar. This means that a target in the text cannot be seen at a glance but must be re-identified. This is just the kind of cognitive drag that I do not want from my tools. Since the drawer extended out from the main window, the text in that window would remain fixed. That was what was so great about it.</p>

<p>Ironically, what I like about the drawer and despise about the sidebar was the basis of one of McElhearn&#8217;s complaints:</p>

<blockquote>
  <p>As I type this article in BBEdit, I have a document list in the drawer to the right of the main window. But if I close the drawer and expand the window to fill my screen, then click the drawer button, the drawer opens, but the main window doesn’t change size; I cannot see the drawer unless I resize the window. This is very bad. It is not an isolated case either: other applications have the same behavior, and still others don’t even display the drawer if the window is set to full screen. In such cases, you have to first resize the main window then display the drawer.</p>
</blockquote>

<p>The passage, however, contains within it the key to our differences. Specifically, McElhearn has in mind a specific use case, one where the application&#8217;s window takes up the full screen. If the application&#8217;s window is full screen, then anything extending out from that window will be hidden from view. But not everyone uses their text editor in full screen mode. Indeed most TeXnicians prefer to have the editor on one half of the screen and the PDF output on the other.</p>

<p>I know, I know, with the iOSsification of Lion, full screen is in. But this was written in 2006 where the dominant Mac paradigm was multiple windows none of which were full screen. Full screen was for Windows. (I must confess to being a little puzzled by the current enthusiasm for all things full screen, I believe that there is a good productivity argument for the old Mac paradigm, but that is another post.)</p>

<p>Even so, the behavior of toggling the navigation sidebar is so disruptive, it would be best just to leave it open. That would be OK working on an iMac, but much less useful on a laptop where screen real estate needs to be managed.</p>

<p>This is not a plea for the drawer&#8217;s return. As a UI element, it has had its run. While I feel it did its job well (even if inconvenient in full screen mode), the drawer is dead. Long live the sidebar.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2011/12/27/rip-project-drawer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Footnotes, Philosophy, and ebooks</title>
		<link>http://markelikalderon.com/2011/10/08/footnotes-philosophy-and-ebooks/</link>
		<comments>http://markelikalderon.com/2011/10/08/footnotes-philosophy-and-ebooks/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 18:42:04 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Academic Publishing]]></category>
		<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[Text]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=729</guid>
		<description><![CDATA[Footnotes. I count among their critics. At least in the context of professional philosophical writing. Indeed the descent of footnotes in philosophical essays closely mirrors its increasing professionalization. Of course, some of the ends in the use of footnotes are not without merit. For example, it may be useful to locate your discussion in the [...]]]></description>
			<content:encoded><![CDATA[<p>Footnotes. I count among their critics. At least in the context of professional philosophical writing. Indeed the descent of footnotes in philosophical essays closely mirrors its increasing professionalization. Of course, some of the ends in the use of footnotes are not without merit. For example, it may be useful to locate your discussion in the context of a debate in the literature. This can be interesting and illuminating. But it has been my experience that such ends do not require footnotes for their realization.</p>

<p>So why the antipathy? Partly because the professionalization of philosophy, its culture&#8212;what footnotes in scholarly articles are a manifestation of&#8212;rubs me wrong. Partly, because they are an excuse and can blind us to lazy writing. (Have a response to a referee&#8217;s objection? Just shove it in a footnote.) But mainly because I hit upon a proof of the impossibility of footnotes and have adopted it as my creed in writing. The proof assumes the availability of a means of citation other than the footnote, such as Harvard-style citations. The proof involves two distinctions and proceeds by cases. The content of a footnote is either interesting or uninteresting, relevant or irrelevant. If it is interesting and relevant, it belongs in the body of the text, if it is uninteresting and irrelevant it should be cut. The remaining two cases are interesting. Suppose the content of the proposed footnote is uninteresting and relevant. Relevance makes a strong case for inclusion in the body of the text. Being uninteresting is a reason for not including it, but it depends on the reason for its being uninteresting. Perhaps there is a problem with the presentation, or perhaps this is just the kind of tedious detail that is required for the more interesting material to come. Whatever&#8217;s the case, there&#8217;s no real justification for a footnote. That&#8217;s the easy way out. Finally, and tragically, there is the interesting and irrelevant. These need to be cut. You must steel your heart and murder your darlings as <a href="http://en.wikipedia.org/wiki/Arthur_Quiller-Couch" title="Arthur Quiller-Couch - Wikipedia, the free encyclopedia">Sir Arthur Quiller-Couch</a> famously advised. Why distract the reader from what can be a difficult and complex narrative with shiny and glittering asides? It is better to stay on point. And there are other, less distracting means of including such material. The namesake of this blog, excursus, is one such.</p>

<p>The result is a clean, modernist, distraction-free page, one not constantly demanding that you to lower your gaze in its presence. To be clear, I have adopted the proof as a creed in professional philosophical writing. Given the bad writing habits with which we philosophers have been inculcated, it is a hard creed to live by. It forces you to make hard decisions in light of what&#8217;s important in your writing. It thus enforces a kind of literary virtue. All of this is not to say that footnotes might reasonably hold sway in other regions of discourse (for example, in legal writing), or that they may be insightful, entertaining, that they might be the means of an authorial aside delivered in a stage whisper. Footnotes can be and have been a source of literary pleasure. In &#8220;Notes Towards a Mental Breakdown&#8221; J.G. Ballard writes a single sentence in which every word is footnoted. The narrative is spun out in the contents of the footnotes. The footnotes in David Foster Wallace&#8217;s <em>Infinite Jest</em> are wildly funny. Moreover play with footnotes is not confined to the postmodern novel. In a recent <a href="http://www.nytimes.com/2011/10/09/books/review/will-the-e-book-kill-the-footnote.html">article</a> in the New York Times, Alexandra Horowitz claims that an eighteenth century satirist composed an entire work of footnotes. (Found via <a href="http://twitter.com/#!/lucabaptista">@lucabaptista</a>)</p>

<p>Horowitz is a footnote advocate. Read her case for footnotes and decide for yourself. While not blind to their literary pleasure, the footnotes in professional philosophy are a catch-all for laziness, self-deception, and self-aggrandizement (think of Kripke&#8217;s refutation of functionalism in a footnote or Stephen Neale&#8217;s three page footnote in his editorial introduction to the special issue of <em>Mind</em> devoted to the anniversary of Russell&#8217;s Theory of Descriptions).</p>

<p>Despite my opposition to her advocacy, at least within the confines of professional philosophy, Horowitz does raise an interesting and insightful point about the page-dependency of footnotes. Footnotes are footnotes partly by being located at the foot of a page. Without a page, there are no footnotes only endnotes (even if hyperlinked). Since footnotes are page-dependent in this way, the disappearance of pages on ebooks threatens the flourishing of footnotes this medium. The important point is that the page is a unit associated with a particular material medium, a dead tree book. But the contents of books are increasingly made available in media not constrained by pagination. This, I believe, is an important issue. Think about citation. If pagination isn&#8217;t marked, what form should citation take? I have yet to see a good design solution that combines the convenience of scrolling through text presented in a single continuous column with marked pagination. <a href="http://www.oxfordscholarship.com/" title="Home Oxford Scholarship Online">Oxford Scholarship Online</a> is an example of an awkward design that combines the rigidity of fixed pagination with the fluidity of a webpage.</p>

<p>New technology has revealed that an important structural feature of books, the page considered as an abstract unit, is really just a contingent manifestation of its material constitution. It was easy to be blind to this in the absence of adequate alternatives (the scroll was an alternative, it just wasn&#8217;t adequate). As Nietzsche once insightfully <a href="http://markelikalderon.com/2007/04/18/easily-twisted-on-journeys/">remarked</a>, &#8220;Our writing tools are also working on our thoughts&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2011/10/08/footnotes-philosophy-and-ebooks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cherry-Picking</title>
		<link>http://markelikalderon.com/2010/11/02/git-cherry-pick/</link>
		<comments>http://markelikalderon.com/2010/11/02/git-cherry-pick/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 01:21:14 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=706</guid>
		<description><![CDATA[Branching for Academic Writers Branching and merging is one of the great things about Git. You might wonder why branching is useful for writing. Three quick reasons: First, it&#8217;s best practice to work on a development branch and periodically merge the results into the master branch. That way you can be confident about what&#8217;s on [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://markelikalderon.com/wp-content/uploads/2010/11/cherrypicking1.jpg"><img src="http://markelikalderon.com/wp-content/uploads/2010/11/cherrypicking1-300x224.jpg" alt="" title="cherry-picking" width="300" height="224" class="aligncenter size-medium wp-image-708" /></a></p>

<h1>Branching for Academic Writers</h1>

<p>Branching and merging is one of the great things about <a href="http://git-scm.com/" title="Git - Fast Version Control System">Git</a>. You might wonder why branching is useful for writing. Three quick reasons:</p>

<ol>
<li>First, it&#8217;s best practice to work on a development branch and periodically merge the results into the master branch. That way you can be confident about what&#8217;s on master and feel free to play around in the development branch.</li>
<li>Even with the master/development branching structure, sometimes you may not be so sure how to develop your material. It is easy and psychologically liberating to make another branch. If it works, merge into development (and eventually into master).</li>
<li>If you are basing a talk on a paper, it is useful to make a separate branch for the talk. Typically this involves streamlining. For example, you don&#8217;t need footnotes and references in a talk so these can go.</li>
</ol>

<h1>Git Cherry-Pick</h1>

<p>If you are using branches, sometimes it can happen that you don&#8217;t want to merge all of the commits of one branch into another, just some. So suppose you are basing a talk on one of your papers and in rewriting you make a change that really should be in the paper. What to do?</p>

<p>Cherry pick.</p>

<p><code>git cherry-pick</code> allows you to move just one commit from one branch to another (of course whether this is useful depends on your commits being atomic). Since Git has saved the entire history of your document, it can automagically determine how your text has been reorganized in protracted rewriting. With no work on your part, it will take the relevant hunk of text and correctly insert it.</p>

<h1>Usage</h1>

<p>Suppose you have the following branches: master, development, and talk. Remember we want to move a commit on the talk branch into development. First we need to get on the talk branch:</p>

<pre class="textmate-source"><span class="source source_shell">$ git checkout talk</span></pre>

<p>Now we need to find the name of the commit by perusing the log:</p>

<pre class="textmate-source"><span class="source source_shell">$ git log
commit 493264994b3c88745d5cad979c34fca9200673fc
Author: PhilGeek <span class="keyword keyword_operator keyword_operator_redirect keyword_operator_redirect_shell">&lt;</span>eli@markelikalderon.com<span class="keyword keyword_operator keyword_operator_redirect keyword_operator_redirect_shell">&gt;</span>
Date:   Mon Sep 29 12:58:28 2010 +0100

    Added Anscombe quote</span></pre>

<p>Most likely you only need an initial segment of the commit ID to uniquely identify the commit. With the commit ID in hand it&#8217;s time to cherry pick. First switch back to development:</p>

<pre class="textmate-source"><span class="source source_shell">$ git checkout development
$ git cherry-pick 4932649
Finished one chery-pick.
[master g734a9b] Added Anscombe quote
  1 file changed, 1 insertion <span class="meta meta_scope meta_scope_subshell meta_scope_subshell_shell"><span class="punctuation punctuation_definition punctuation_definition_subshell punctuation_definition_subshell_shell">(</span>+<span class="punctuation punctuation_definition punctuation_definition_subshell punctuation_definition_subshell_shell">)</span></span>, 1 deletion <span class="meta meta_scope meta_scope_subshell meta_scope_subshell_shell"><span class="punctuation punctuation_definition punctuation_definition_subshell punctuation_definition_subshell_shell">(</span>-<span class="punctuation punctuation_definition punctuation_definition_subshell punctuation_definition_subshell_shell">)</span></span></span></pre>

<p>You&#8217;re done.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2010/11/02/git-cherry-pick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flashbake or Git Gateway Technology?</title>
		<link>http://markelikalderon.com/2009/05/14/flashbake-or-git-gateway-technology/</link>
		<comments>http://markelikalderon.com/2009/05/14/flashbake-or-git-gateway-technology/#comments</comments>
		<pubDate>Thu, 14 May 2009 01:55:37 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=656</guid>
		<description><![CDATA[Flashbake aims to bring version control to writers&#8212;or at least writers who have harnessed the power of plain text. Flahsbake is a simplified front end to Git that runs in the background automatically committing changes and recording various ambient information as you write (such as what you were listening to when the commit was made). [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://github.com/commandline/flashbake/tree/master">Flashbake</a> aims to bring version control to writers&#8212;or at least writers who have harnessed <a href="http://markelikalderon.com/blog/blog/2006/10/25/plain-text/">the power of plain text</a>. Flahsbake is a simplified front end to <a href="http://git-scm.com/" title="Git - Fast Version Control System">Git</a> that runs in the background automatically committing changes and recording various ambient information as you write (such as what you were listening to when the commit was made).</p>

<p>Written by <a href="http://github.com/commandline">commandline</a> (aka Thomas Gideon) at the request (behest?) of <a href="http://craphound.com/">Cory Doctorow</a>, Flahsbake was meant to address the problem of retaining an archival record of the production of digital texts. <a href="http://craphound.com/?p=2171">Cory Doctorow</a> explains:</p>

<blockquote>
  <p>I was prompted to do this after discussions with several digital archivists who complained that, prior to the computerized era, writers produced a series complete drafts on the way to publications, complete with erasures, annotations, and so on. These are archival gold, since they illuminate the creative process in a way that often reveals the hidden stories behind the books we care about. By contrast, many writers produce only a single (or a few) digital files that are modified right up to publication time, without any real systematic records of the interim states between the first bit of composition and the final draft.</p>
</blockquote>

<p>The problem is genuine, I have written about it <a href="http://markelikalderon.com/blog/2008/03/29/archival-formats-the-third-way/">before</a>. Moreover, I agree that version control has a role to play in its solution. However, I have doubts about the utility of Flashbake. It&#8217;s simplicity is its virtue, but it is <em>too</em> simple. No commit messages? A record of ambient information is no real substitute. And Flahsbake&#8217;s users are supposed to be geeky enough to use a command line tool, but not geeky enough to master the following simplified workflow?:</p>

<pre class="textmate-source"><span class="source source_shell">$ git init
$ git add mynovel.txt
$ git commit -m <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">"</span>initial commit<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">"</span></span>
write write write
$ git commit -a -m <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">"</span>new commit message<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">"</span></span></span></pre>

<p>I am not sure I get it. Still, any version control is better than none. And maybe Flahsbake will function as a Git gateway technology. If you are interested in a less puzzled reaction to Flashbake see the Lifehacker <a href="http://lifehacker.com/5232049/flashbake-automates-version-control-for-nerdy-writers">article</a>. But if you want to be a really nerdy writer, just use Git neat.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2009/05/14/flashbake-or-git-gateway-technology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Font Restrictions</title>
		<link>http://markelikalderon.com/2009/01/04/font-restrictions/</link>
		<comments>http://markelikalderon.com/2009/01/04/font-restrictions/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 18:45:06 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Academic Publishing]]></category>
		<category><![CDATA[Font]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[Text]]></category>
		<category><![CDATA[Typography]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=613</guid>
		<description><![CDATA[As I have remarked before, good typography does not merely have aesthetic virtue. Importantly, it has cognitive virtue as well. Good typesetting makes your work easier to understand. A good font is but one element of typesetting, and a font may be appropriate to one context but not others. Still, font choice is one of [...]]]></description>
			<content:encoded><![CDATA[<p>As I have remarked before, good typography does not merely have aesthetic virtue. Importantly, it has cognitive virtue as well. Good typesetting makes your work easier to understand. A good font is but one element of typesetting, and a font may be appropriate to one context but not others. Still, font choice is one of those important decisions in typesetting your documents that you are forced to make.</p>

<p>Legislation that has not kept abreast of changing technology can make the choice difficult.</p>

<p>As a philosopher, I write research papers, drafts of which are distributed on the web as PDFs. Open access to evolving research is important, and I am committed to it. Since I want to give my work the best chance of being understood, I take the time to properly typeset the PDFs with <a href="http://scripts.sil.org/xetex" title="The XeTeX typesetting system">XeLaTeX</a>. There is a problem, however, with distributing PDFs over the web.</p>

<p>PDF files can contain font information in a way that is easily extractable from the file. While the licensing of some type foundries allow embedded fonts in PDFs, many (especially smaller type foundries) do not. Indeed the ones that did probably did so at Adobe&#8217;s urging when PDF distribution on the web was relatively small and so not that great of a risk.</p>

<p>I would like to support small type foundries by buying their fonts. There are some brilliant type designers out there, and they should be rewarded. Unfortunately, since the main thing I want these fonts for is for web distributed PDFs, I can&#8217;t do that without violating licensing restrictions. And that&#8217;s not support.</p>

<p>There are of course open source fonts. Some of them are fine pieces of work. But the choice is limited, and important design decisions should not be so constrained.</p>

<p>DRM is not the answer, as the recent history of music distribution online sadly reveals.</p>

<p>I don&#8217;t know how to resolve this problem. It is partly technological, partly, legal. But I thought I would highlight for other academics who distribute their work online.</p>

<p>Upon finishing this post, I came across this <a href="http://www.letterror.com/content/embedding/index.html">essay</a> that has more information about the legal and technological obstacles with some discussion of potential solutions.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2009/01/04/font-restrictions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gist-ing from TextMate</title>
		<link>http://markelikalderon.com/2008/11/26/gist-ing-from-textmate/</link>
		<comments>http://markelikalderon.com/2008/11/26/gist-ing-from-textmate/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 17:40:58 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>
		<category><![CDATA[TextMate]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=584</guid>
		<description><![CDATA[Well that didn&#8217;t take long. In an earlier post, I remarked that with command line support for Gist, the git powered pastebin service, TextMate support for Gist was now within reach. There is now a gist command in the GitHub bundle. You can either post private or public gists. The gist that figured in the [...]]]></description>
			<content:encoded><![CDATA[<p>Well <a href="http://github.com/blog/233-gist-support-for-textmate">that</a> didn&#8217;t take long. In an earlier <a href="http://markelikalderon.com/blog/2008/10/11/command-line-gist/">post</a>, I remarked that with command line support for Gist, the git powered pastebin service, <a href="http://macromates.com/">TextMate</a> support for Gist was now within reach. There is now a gist command in the <a href="http://github.com/drnic/github-tmbundle/tree/master">GitHub bundle</a>. You can either post private or public gists. The gist that figured in the previous <a href="http://markelikalderon.com/blog/2008/11/23/latex-todo/">post</a> was posted from within TextMate.</p>

<p>To install the GitHub bundle do the following:</p>

<pre class="textmate-source"><span class="source source_shell">$ sudo gem install git
$ cd <span class="keyword keyword_operator keyword_operator_tilde keyword_operator_tilde_shell">~</span>/<span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">"</span>Library/Application Support/TextMate/Bundles/<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">"</span></span>
$ git clone git://github.com/drnic/github-tmbundle.git <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">"</span>GitHub.tmbundle<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">"</span></span>
$ osascript -e <span class="string string_quoted string_quoted_single string_quoted_single_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">'</span>tell app "TextMate" to reload bundles<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">'</span></span></span></pre>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/11/26/gist-ing-from-textmate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LaTeX TODO</title>
		<link>http://markelikalderon.com/2008/11/23/latex-todo/</link>
		<comments>http://markelikalderon.com/2008/11/23/latex-todo/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 02:19:19 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=576</guid>
		<description><![CDATA[The Problem One of the great features of using TextMate to produce LaTeX documents is the TODO Bundle. The TODO Bundle let&#8217;s you to insert TODOs into comments and display these in a nicely formatted HTML window with links to the lines where the TODOs occurred.12 There are two limitations with the TODO Bundle, however, [...]]]></description>
			<content:encoded><![CDATA[<h1>The Problem</h1>

<p>One of the great features of using <a href="http://macromates.com/" title="TextMate — The Missing Editor for Mac OS X">TextMate</a> to produce LaTeX documents is the TODO Bundle. The TODO Bundle let&#8217;s you to insert TODOs into comments and display these in a nicely formatted HTML window with links to the lines where the TODOs occurred.<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup><sup id="fnref:2"><a href="#fn:2" rel="footnote">2</a></sup></p>

<p>There are two limitations with the TODO Bundle, however, which made me look for an alternative (I still use the TODO Bundle, the alternative is merely a supplement):</p>

<ol>
<li>While I try to proof my documents as much as I can onscreen, sometimes I need to proofread the hardcopy. Proofreading hardcopy is easier, and any incremental decrease in distraction is a real boon in proofreading since it requires a lot of attention. </li>
<li>Suppose you are collaborating on a LaTeX document and your collaborator isn&#8217;t using TextMate. Of course, they can still follow the TODOs in the comments, but it would be great if these could be made more salient.</li>
</ol>

<h1>The Solution</h1>

<p>The solution to both of these problems is to use LaTeX to generate the TODO list for you. To do this, I used the <a href="http://tug.ctan.org/tex-archive/macros/latex/contrib/index/">index package</a>. The index package reimplements the internal LaTeX index macros adding functionality. Of particular interest is its support for multiple indexes. Add the following to your preamble:</p>

<script src="http://gist.github.com/27922.js"></script>

<p>The first line loads the <code>color</code> package (since our TODOs will be colored to make them stand out from the surrounding text). The second line loads the <code>index</code> package. The next two lines:</p>

<pre class="textmate-source"><span class="text text_tex text_tex_latex"><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>newindex</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span>todo<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}{</span>tod<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}{</span>tnd<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}{</span>TODO List<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span> <span class="comment comment_line comment_line_percentage comment_line_percentage_tex"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_tex">%</span> start todo list
</span><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>newindex</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span>fixme<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}{</span>fix<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}{</span>fnd<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}{</span>FIXME List<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span> <span class="comment comment_line comment_line_percentage comment_line_percentage_tex"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_tex">%</span> start fixme list</span></span></pre>

<p>define two indexes. The <code>\newindex</code> command takes four arguments. These arguments correspond to the four pieces of information required to generate the index:</p>

<ol>
<li>A short, unique tag that identifies the index. </li>
<li>The extension of the output file where the raw index information will be put 
by LaTeX. </li>
<li>The extension of the input file where the processed information created by 
MakeIndex will be stored to be read in later by LaTeX. </li>
<li>The title of the index. </li>
</ol>

<p>The next two lines:</p>

<pre class="textmate-source"><span class="text text_tex text_tex_latex"><span class="storage storage_type storage_type_function storage_type_function_latex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_latex">\</span>newcommand</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>todo</span><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span><span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">[</span>1<span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">]</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>textcolor</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span>blue<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}{</span>TODO: #1<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>index</span><span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">[</span>todo<span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">]</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span>#1<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span> <span class="comment comment_line comment_line_percentage comment_line_percentage_tex"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_tex">%</span> macro for todo entries
</span><span class="storage storage_type storage_type_function storage_type_function_latex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_latex">\</span>newcommand</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>fixme</span><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span><span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">[</span>1<span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">]</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>textcolor</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span>red<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}{</span>FIXME: #1<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>index</span><span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">[</span>fixme<span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">]</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span>#1<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span> <span class="comment comment_line comment_line_percentage comment_line_percentage_tex"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_tex">%</span> macro for fixme entries</span></span></pre>

<p>define two new commands: <code>\todo</code> and <code>fixme</code>. To add a TODO simply add the following at the appropriate place in the text:</p>

<pre class="textmate-source"><span class="text text_tex text_tex_latex"><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>todo</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span>My TODO entry<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span></span></pre>

<p>Similarly, for FIXMEs.</p>

<p>New commands can be added on a similar pattern. So, for example, suppose you want to add a CHANGE command. To do this, be sure to also define a new index:</p>

<pre class="textmate-source"><span class="text text_tex text_tex_latex"><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>newindex</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span>change<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}{</span>chg<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}{</span>cnd<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}{</span>CHANGE List<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span> <span class="comment comment_line comment_line_percentage comment_line_percentage_tex"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_tex">%</span> start change list
</span><span class="storage storage_type storage_type_function storage_type_function_latex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_latex">\</span>newcommand</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>change</span><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span><span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">[</span>1<span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">]</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>textcolor</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span>green<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}{</span>CHANGE: #1<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>index</span><span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">[</span>change<span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">]</span><span class="meta meta_group meta_group_braces meta_group_braces_tex"><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">{</span>#1<span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_tex">}</span></span> <span class="comment comment_line comment_line_percentage comment_line_percentage_tex"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_tex">%</span> macro for change entries</span></span></pre>

<p>Notice, that the commands are color coded, so be sure to change the color. Since the previous two commands were blue and red, I made the CHANGE command green.</p>

<p>If you want to generate a list of the TODOs, FIXMEs, etc, at the end of your document you need to use the <code>\printindex</code> command. This takes as an option the name of the index, so for TODOs and FIXMEs we would use:</p>

<pre class="textmate-source"><span class="text text_tex text_tex_latex"><span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>printindex</span><span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">[</span>todo<span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">]</span>
<span class="support support_function support_function_general support_function_general_tex"><span class="punctuation punctuation_definition punctuation_definition_function punctuation_definition_function_tex">\</span>printindex</span><span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">[</span>change<span class="punctuation punctuation_definition punctuation_definition_brackets punctuation_definition_brackets_tex">]</span></span></pre>

<p>Before we typeset these indexes, we need to run the <code>makeindex</code> command. Suppose that the name of your LaTeX document is <code>foo.tex</code>. Then, in the terminal we would run:</p>

<pre class="textmate-source"><span class="source source_shell">$ makeindex -o foo.tnd foo.tod
$ makeindex -o foo.fnd foo.fix</span></pre>

<p>The <code>-o</code> option is used to specify the name of the file generated by <code>makeindex</code> that is used, in turn, by LaTeX to typeset the index. Having run <code>makeindex</code>, if we now typeset the document, the indexes will be printed at the end of the document after a pagebreak. And if you are using the <code>hyperref</code> package, these will have links to the pages where the TODOs and FIXMEs are inserted. This step can be automated with a makefile such as <code>Latexmk.pl</code>.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:1">
<p><a href="http://warpspire.com/tipsresources/web-production/using-textmates-todo-bundle/">http://warpspire.com/tipsresources/web-production/using-textmates-todo-bundle/</a>&#160;<a href="#fnref:1" rev="footnote">&#8617;</a></p>
</li>

<li id="fn:2">
<p><a href="http://www.bitwiese.de/2007/04/ignoring-folders-with-todo-bundle-in.html">http://www.bitwiese.de/2007/04/ignoring-folders-with-todo-bundle-in.html</a>&#160;<a href="#fnref:2" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/11/23/latex-todo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Progress</title>
		<link>http://markelikalderon.com/2008/11/09/progress/</link>
		<comments>http://markelikalderon.com/2008/11/09/progress/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 21:15:25 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=568</guid>
		<description><![CDATA[Git commits by day and hour on the Philosophy BibTeX project. Been working on some scripts to clean up the BibTeX file, to normalize cite keys, to render consistent author and journal names, to strip out local URLs, etc. So look forward to a new development branch and a directory of utilities.]]></description>
			<content:encoded><![CDATA[<p>Git commits by day and hour on the <a href="http://github.com/PhilGeek/bib/tree/master">Philosophy BibTeX project</a>.</p>

<p><a href="http://markelikalderon.com/wp-content/uploads/2008/11/chart.png"><img src="http://markelikalderon.com/wp-content/uploads/2008/11/chart.png" alt="" title="chart" width="500" height="187" class="alignnone size-full wp-image-569" /></a></p>

<p>Been working on some scripts to clean up the BibTeX file, to normalize cite keys, to render consistent author and journal names, to strip out local URLs, etc. So look forward to a new development branch and a directory of utilities.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/11/09/progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Naming Tabs in Leopard Terminal</title>
		<link>http://markelikalderon.com/2008/10/20/naming-tabs-in-leopard-terminal/</link>
		<comments>http://markelikalderon.com/2008/10/20/naming-tabs-in-leopard-terminal/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 01:05:05 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Text]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=558</guid>
		<description><![CDATA[Leopard&#8217;s terminal was a huge improvement, but issues remain. One of the welcome additions to the terminal was tabs, but there is no way to name them. With a number of tabs open, this can make navigation tedious. If only there were a convenient way to name tabs. Thanks to Erik Anderson there is. Terminal.app [...]]]></description>
			<content:encoded><![CDATA[<p>Leopard&#8217;s terminal was a huge improvement, but issues remain. One of the welcome additions to the terminal was tabs, but there is no way to name them. With a number of tabs open, this can make navigation tedious. If only there were a convenient way to name tabs. Thanks to <a href="http://ericanderson.us/2008/03/02/terminalapp-tab-namer-v01-alpha/">Erik Anderson</a> there is. Terminal.app Tab Namer is a SIMBL plugin that allows you to assign a name to an open tab with command-shift-T. Just install the plugin in <code>/Library/Application Support/SIMBL/Plugins</code>.</p>

<img src="http://markelikalderon.com/wp-content/uploads/2008/10/tabsinleopard.gif" alt="Tabs in Leopard" title="tabs" width="500" height="109" class="size-full wp-image-560" />
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/10/20/naming-tabs-in-leopard-terminal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Philosophy and Microblogging</title>
		<link>http://markelikalderon.com/2008/09/02/philosophy-and-microblogging/</link>
		<comments>http://markelikalderon.com/2008/09/02/philosophy-and-microblogging/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 04:35:11 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[Text]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/2008/09/02/philosophy-and-microblogging/</guid>
		<description><![CDATA[Ryan Paul in an Ars Technica article, Byte-sized stories: Twittering a tiny tale, wonders about philosophy and microblogging: Microblogging can clearly work with fiction, but what about more substantive works, like philosophical treatises? In a moment of intoxication inspiration, I came up with a quick Python one-liner1 to compute how many lines in an English [...]]]></description>
			<content:encoded><![CDATA[<p>Ryan Paul in an <a href="http://arstechnica.com/" title="Ars Technica">Ars Technica</a> article, <a href="http://arstechnica.com/news.ars/post/20080901-byte-sized-stories-twittering-a-tiny-tale.html">Byte-sized stories: Twittering a tiny tale</a>, wonders about philosophy and microblogging:</p>

<blockquote>
  <p>Microblogging can clearly work with fiction, but what about more substantive works, like philosophical treatises? In a moment of intoxication inspiration, I came up with a quick Python one-liner<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> to compute how many lines in an English translation of Ludwig Wittgenstein&#8217;s celebrated &#8220;Tractatus Logico-Philosophicus&#8221; are 140 characters in length or less. I discovered that a bit under half of the lines are short enough to be Twittered (and, as the philosopher would say, what we cannot Twitter, we must pass over in silence).</p>
</blockquote>

<p>In my own case, twittering philosophy has so far wholly consisted in mocking philosophers, gossiping about them, and git commit messages, thanks to <a href="http://github.com/" title="Secure Git hosting and collaborative development &mdash; GitHub">GitHub</a>&#8217;s service hooks. Perhaps others can offer tweets with more substantive philosophical content. After all, aphorism is not unknown to philosophy&#8212;the pre-Socratics and Nietzsche come to mind. For now, teh interwebs await a latter day Heraclitus.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:1">
<p>The Python-one liner: <code>len([l.strip() for l in open("tractatus.txt").readlines() if len(l.strip()) &lt;= 140 and l.strip() != ""])</code>&#160;<a href="#fnref:1" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/09/02/philosophy-and-microblogging/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Delicate Flower</title>
		<link>http://markelikalderon.com/2008/08/25/delicate-flower/</link>
		<comments>http://markelikalderon.com/2008/08/25/delicate-flower/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 12:29:48 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/2008/08/25/delicate-flower/</guid>
		<description><![CDATA[Are you a delicate flower? Do spelling mistakes and profanity in comments feeds make you cringe? YouTube Comment Snob may be for you. This is a Firefox extension that filters out &#8220;undesirable&#8221; comments fro YouTube comments threads. The following rules are available: More than # spelling mistakes: The number of mistakes is customizable, and the [...]]]></description>
			<content:encoded><![CDATA[<p>Are you a <em>delicate</em> flower? Do spelling mistakes and profanity in comments feeds make you cringe? <a href="http://www.chrisfinke.com/addons/youtube-comment-snob/">YouTube Comment Snob</a> may be for you. This is a Firefox extension that filters out &#8220;undesirable&#8221; comments fro YouTube comments threads. The following rules are available:</p>

<ul>
<li>More than # spelling mistakes: The number of mistakes is customizable, and the extension uses Firefox&#8217;s built-in spell checker.</li>
<li>All capital letters</li>
<li>No capital letters</li>
<li>Doesn&#8217;t start with a capital letter</li>
<li>Excessive punctuation (!!!!&#160;????)</li>
<li>Excessive capitalization</li>
<li>Profanity</li>
</ul>

<p>Find myself struggling like Kirk under an alien influence. Must. Not. Make. Offensive. Remark&#8230;</p>

<p><strong>Update</strong> <a href="http://languagelog.ldc.upenn.edu/nll/">Language Log</a> has since had a recent spate of posts about similar products. Geoffrey K. Pullum and Mark Liberman post about SpinSpotter <a href="http://languagelog.ldc.upenn.edu/nll/?p=574">here</a> and <a href="http://languagelog.ldc.upenn.edu/nll/?p=575">here</a>, and Arnold Zwicky takes on apostrophree <a href="http://languagelog.ldc.upenn.edu/nll/?p=576">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/08/25/delicate-flower/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Portent</title>
		<link>http://markelikalderon.com/2008/08/20/portent/</link>
		<comments>http://markelikalderon.com/2008/08/20/portent/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 23:58:39 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>
		<category><![CDATA[TextMate]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=505</guid>
		<description><![CDATA[A harbinger of TM2?]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://games.slashdot.org/article.pl?sid=08/08/19/0019255&amp;from=rss">harbinger</a> of TM2?</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/08/20/portent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clear Pond</title>
		<link>http://markelikalderon.com/2008/08/03/clear-pond/</link>
		<comments>http://markelikalderon.com/2008/08/03/clear-pond/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 21:42:22 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>
		<category><![CDATA[Text Editor]]></category>
		<category><![CDATA[TextMate]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=487</guid>
		<description><![CDATA[A quick TextMate theme I knocked off since I need a light theme but hated the available white themes. It is hosted at GitHub, so git users can get theme with git clone git://github.com/PhilGeek/clear-pond.git. Other wise, it can be downloaded here.]]></description>
			<content:encoded><![CDATA[<p>A quick TextMate theme I knocked off since I need a light theme but hated the available white themes.</p>

<p><a href="http://www.flickr.com/photos/philgeek/2728925809/" title="Clear Pond by PhilGeek23, on Flickr"><img src="http://farm4.static.flickr.com/3209/2728925809_36a9d77401.jpg" width="344" height="500" alt="Clear Pond" /></a></p>

<p>It is hosted at <a href="http://github.com">GitHub</a>, so git users can get theme with <code>git clone git://github.com/PhilGeek/clear-pond.git</code>. Other wise, it can be downloaded <a href="http://github.com/PhilGeek/clear-pond/tarball/master">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/08/03/clear-pond/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Philosophy Feeds</title>
		<link>http://markelikalderon.com/2008/07/25/philosophy-feeds/</link>
		<comments>http://markelikalderon.com/2008/07/25/philosophy-feeds/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 11:06:23 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=469</guid>
		<description><![CDATA[As promised links to philosophy feeds. The list is not exhaustive and there are some gaps. Cambridge journals have not been included since the feeds seem only to be available to individual subscribers and not institutional subscribers. If there are any additions you would like please let me know and I will update the list. [...]]]></description>
			<content:encoded><![CDATA[<p>As <a href="http://markelikalderon.com/blog/2008/06/17/academic-publishing-and-rss-feeds/">promised</a> links to philosophy feeds. The list is not exhaustive and there are some gaps. Cambridge journals have not been included since the feeds seem only to be available to individual subscribers and not institutional subscribers. If there are any additions you would like please let me know and I will update the list. Eventually I will provide a stable page for these links, until then you can download the <a href='http://markelikalderon.com/wp-content/uploads/2008/07/philosophyfeeds.opml'>opml file</a> or follow these links:</p>

<ul>
<li><a href="http://www.blackwell-synergy.com/action/showFeed?ui=0&amp;mi=0&amp;ai=2gl&amp;jc=anal&amp;type=etoc&amp;feed=rss">Analysis</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/117988108">Aristotelian Society Supplementary Volume</a></li>
<li><a href="http://www.informaworld.com/ampp/rss~content=t713659165">Australasian Journal of Philosophy</a></li>
<li><a href="http://bjaesthetics.oxfordjournals.org/rss/current.xml">The British Journal of Aesthetics</a> Current Issue</li>
<li><a href="http://bjaesthetics.oxfordjournals.org/rss/ahead.xml">The British Journal of Aesthetics</a> Advanced Access</li>
<li><a href="http://www.informaworld.com/ampp/rss~content=t713694220">British Journal for the History of Philosophy</a></li>
<li><a href="http://bjps.oxfordjournals.org/rss/current.xml">The British Journal for the Philosophy of Science</a> Current Issue</li>
<li><a href="http://bjps.oxfordjournals.org/rss/ahead.xml">The British Journal for the Philosophy of Science</a></li>
<li><a href="http://feeds.muse.jhu.edu/journals/canadian_journal_of_philosophy/latest_issues.xml">Canadian Journal of Philosophy</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/118509249">Dialectica</a></li>
<li><a href="http://www.springerlink.com/content/0165-0106?sortorder=asc&amp;export=rss">Erkenntnis</a></li>
<li><a href="http://www.journals.uchicago.edu/action/showFeed?ui=0&amp;mi=0&amp;ai=tv&amp;jc=et&amp;type=etoc&amp;feed=rss">Ethics</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/117990183">European Journal of Philosophy</a></li>
<li><a href="http://feeds.muse.jhu.edu/journals/hypatia/latest_issues.xml">Hypatia</a></li>
<li><a href="http://www.springerlink.com/content/0022-3611?sortorder=asc&amp;export=rss">Journal of Philosophical Logic</a></li>
<li><a href="http://jos.oxfordjournals.org/rss/current.xml">Journal of Semantics</a> Current Issue</li>
<li><a href="http://jos.oxfordjournals.org/rss/ahead.xml">Journal of Semantics</a> Advanced Access</li>
<li><a href="http://www.springerlink.com/content/0165-0157?sortorder=asc&amp;export=rss">Linguistics and Philosophy</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/117965365">Midwest Studies in Philosophy</a></li>
<li><a href="http://mind.oxfordjournals.org/rss/current.xml">Mind</a> Current Issue</li>
<li><a href="http://mind.oxfordjournals.org/rss/ahead.xml">Mind</a> Advanced Access</li>
<li><a href="http://www.blackwell-synergy.com/action/showFeed?ui=0&amp;mi=0&amp;ai=2gz&amp;jc=mila&amp;type=etoc&amp;feed=rss">Mind and Language</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/117997227">Noûs</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/117963446">Pacific Philosophical Quarterly</a></li>
<li><a href="http://philmat.oxfordjournals.org/rss/current.xml">Philosophia Mathematica</a> Current Issue</li>
<li><a href="http://philmat.oxfordjournals.org/rss/ahead.xml">Philosophia Mathematica</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/117974509">Philosophical Books</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/118539321">Philosophical Forum</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/118504203">Philosophical Investigations</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/117997268">The Philosophical Quarterly</a></li>
<li><a href="http://philreview.dukejournals.org/rss_feeds/current.xml">The Philosophical Review</a></li>
<li><a href="http://www.springerlink.com/content/0031-8116?sortorder=asc&amp;export=rss">Philosophical Studies</a></li>
<li><a href="http://www.philosophersimprint.org/longfeed.xml">Philosopher&#8217;s Imprint</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/117982766">Philosophy Compass</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/118493456">Philosophy and Phenomenological Research</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/118493933">Philosophy and Public Affairs</a></li>
<li><a href="http://www.journals.uchicago.edu/action/showFeed?ui=0&amp;mi=0&amp;ai=t9&amp;jc=phos&amp;type=etoc&amp;feed=rss">Philosophy of Science</a></li>
<li><a href="http://api.ingentaconnect.com/content/brill/phr/latest?format=rss">Phronesis</a> Current Issue</li>
<li><a href="http://api.ingentaconnect.com/content/brill/phr?format=rss">Phronesis</a> Recent Issues</li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/117997643">Proceedings of the Aristotelian Society</a></li>
<li><a href="http://www3.interscience.wiley.com/rss/journal/118503306">Ratio</a></li>
<li><a href="http://www.springerlink.com/content/0039-3215?sortorder=asc&amp;export=rss">Studia Logica</a></li>
<li><a href="http://www.springerlink.com/content/0039-7857?sortorder=asc&amp;export=rss">Synthese</a></li>
<li><a href="http://www.springerlink.com/content/0167-7411?sortorder=asc&amp;export=rss">Topoi</a></li>
</ul>

<p><strong>Update</strong> Blackwell Synergy&#8217;s integration into Wiley-Interscience, the first step of a launch of a new online platform, has resulted in some hiccups. Some <em>but not all</em> of the feeds for Blackwell Synergy remain operative with material in Wiley-Interscience. This does not bode well for their survival in the new online platform. Will post at a later date with updated feeds.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/07/25/philosophy-feeds/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Wordle</title>
		<link>http://markelikalderon.com/2008/07/22/wordle/</link>
		<comments>http://markelikalderon.com/2008/07/22/wordle/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 21:15:42 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=457</guid>
		<description><![CDATA[Wordle is a web service that generates word clouds from submitted text. Here are a couple of examples. The first is from my paper &#8220;Color Pluralism&#8221;: The second is from my paper &#8220;Respecting Value&#8221;: Too fun =)]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordle.net/" title="Wordle - Beautiful Word Clouds">Wordle</a> is a web service that generates word clouds from submitted text. Here are a couple of examples. The first is from my paper &#8220;Color Pluralism&#8221;:</p>

<p><a href="http://wordle.net/gallery/wrdl/82371/Color_Pluralism" title="Wordle: Color Pluralism"><img src="http://wordle.net/thumb/wrdl/82371/Color_Pluralism" style="padding:4px;border:1px solid #ddd" ></a></p>

<p>The second is from my paper &#8220;Respecting Value&#8221;:</p>

<p><a href="http://wordle.net/gallery/wrdl/82388/Respecting_Value" title="Wordle: Respecting Value"><img src="http://wordle.net/thumb/wrdl/82388/Respecting_Value" style="padding:4px;border:1px solid #ddd" ></a></p>

<p>Too fun =)</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/07/22/wordle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typographic Snoot Gone Gangsta</title>
		<link>http://markelikalderon.com/2008/07/17/typographic-snoot-gone-gangsta/</link>
		<comments>http://markelikalderon.com/2008/07/17/typographic-snoot-gone-gangsta/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 19:53:51 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>
		<category><![CDATA[Typography]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=433</guid>
		<description><![CDATA[From the rut&#8212;typographic snoot gone gangsta:]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://bigeyedeer.wordpress.com/2008/07/15/this-cartoon-wrote-a-sweary-word-on-your-toilet-wall/">the rut</a>&#8212;typographic snoot gone gangsta:
<img src="http://markelikalderon.com/wp-content/uploads/2008/07/graf.gif" alt="This cartoon wrote a sweary word on your toilet wall." title="This cartoon wrote a sweary word on your toilet wall." width="500" height="402" class="size-full wp-image-434" /></p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/07/17/typographic-snoot-gone-gangsta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aquamacs 1.4</title>
		<link>http://markelikalderon.com/2008/06/20/aquamacs-14/</link>
		<comments>http://markelikalderon.com/2008/06/20/aquamacs-14/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 22:54:49 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Text]]></category>
		<category><![CDATA[Text Editor]]></category>
		<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/2008/06/20/aquamacs-14/</guid>
		<description><![CDATA[Version 1.4 of Aquamacs, the Aqua-native build of Emacs, has just been released, and has a number of interesting features making it an even better OS X citizen: New multi-tabbed interface similar to Safari. This makes switching between open files faster and more intuitive. Full screen editing now available. This allows you to focus just [...]]]></description>
			<content:encoded><![CDATA[<p>Version 1.4 of <a href="http://aquamacs.org/" title="Aquamacs: Emacs for Mac OS X">Aquamacs</a>, the Aqua-native build of <a href="http://www.gnu.org/software/emacs/" title="GNU Emacs - GNU Project - Free Software Foundation
(FSF)">Emacs</a>, has just been released, and has a number of interesting features making it an even better OS X citizen:</p>

<ul>
<li>New multi-tabbed interface similar to Safari. This makes switching between open files faster and more intuitive.</li>
<li>Full screen editing now available. This allows you to focus just on editing your files without distraction from other applications.</li>
<li>Aquamacs no longer creates backup files by default: less clutter in your files.</li>
<li>Now uses standard &#8220;unified&#8221; toolbar, with improved icons, for greater ease-of-use.</li>
<li>Improved LaTeX support.</li>
<li>Numerous improvements in text search.</li>
<li>Can check for program updates from the application menu.</li>
</ul>

<p>The <a href="http://www.latex-project.org/" title="LaTeX project: LaTeX &ndash; A document preparation system">LaTeX</a> improvements include the inclusion of AUCTeX 11.85, better error reporting and improved syntax highlighting, and improved icons. Aquamacs 1.4 can be downloaded <a href="http://aquamacs.org/download.shtml">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/06/20/aquamacs-14/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Duke Nukem Forever and TextMate 2</title>
		<link>http://markelikalderon.com/2008/06/16/duke-nukem-forever-and-textmate-2/</link>
		<comments>http://markelikalderon.com/2008/06/16/duke-nukem-forever-and-textmate-2/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 12:30:08 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>
		<category><![CDATA[Text Editor]]></category>
		<category><![CDATA[TextMate]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/2008/06/16/duke-nukem-forever-and-textmate-2/</guid>
		<description><![CDATA[From Crackle: Jace Hall, Ep 1: DUKE NUKEM FOREVER - SNEAK PEEK! When can we expect TextMate 2 to be released? Here is what Alan Odgaard has to say in the TextMate 2 FAQ: [&#8230;] there is no ETA, and I won’t speak about timing before I am certain I can provide an (alpha/beta) release [...]]]></description>
			<content:encoded><![CDATA[<p><embed src="http://crackle.com/p/Jace_Hall/Jace_Hall_Ep_1_DUKE_NUKEM_FOREVER_-_SNEAK_PEEK.swf" quality="high" bgcolor="#869ca7" width="400" height="325" name="mtgPlayer" align="middle" play="true" loop="false" allowFullScreen="true" flashvars="id=2298717&#038;mu=0&#038;ap=0&#038;ml=o%3D12%26fpl%3D297045%26fx%3D" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"> </embed><br /></p>

<div style="font-family:"Trebuchet MS";font-size:12px;width:400px;"> From Crackle: <a href="http://crackle.com/c/Jace_Hall/Jace_Hall_Ep_1_DUKE_NUKEM_FOREVER_-_SNEAK_PEEK/2298717/#ml=o%3D12%26fpl%3D297045%26fx%3D" title="Jace Hall, Ep 1: DUKE NUKEM FOREVER - SNEAK PEEK!" style="text-decoration:none;font-weight:bold;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;">Jace Hall, Ep 1: DUKE NUKEM FOREVER - SNEAK PEEK!</a></div>

<p><img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/CIMP/bT*xJmx*PTEyMTM2MTgzODk3NDImcHQ9MTIxMzYxODM5NzQ4MiZwPTEyMjE*MSZkPSZuPSZnPTI=.jpg" /></p>

<p>When can we expect TextMate 2 to be released? Here is what Alan Odgaard has to say in the <a href="http://wiki.macromates.com/FAQ/TextMate2">TextMate 2 FAQ</a>:</p>

<blockquote>
  <p>[&#8230;] there is no ETA, and I won’t speak about timing before I am certain I can provide an (alpha/beta) release within the next month &#8211; because really, the more I say, the more people ask, and having to answer the same questions over and over again is (for me) mentally exhausting.
  So put TM 2.0 up there with Duke Nukem Forever and be positively surprised the day it is released :)</p>
</blockquote>

<p>The release of footage of Duke Nukem Forever has prompted the following query on irc:</p>

<blockquote>
  <p><strong>ph^</strong>: allan: Now that Duke Nukem forever has released a new gameplay-video … :p</p>
</blockquote>

<p>Well, no official word from Allan yet, but Peter Haza (aka ph^) shares some insights into the state of TextMate 2 development in this interesting <a href="http://blog.peterhaza.no/textmate2-what-we-can-expect-to-come/">post</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/06/16/duke-nukem-forever-and-textmate-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prologemena to Any Future Bibliography</title>
		<link>http://markelikalderon.com/2008/06/13/prologemena-to-any-future-bibliography/</link>
		<comments>http://markelikalderon.com/2008/06/13/prologemena-to-any-future-bibliography/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 02:30:46 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Academic Publishing]]></category>
		<category><![CDATA[Bibliography]]></category>
		<category><![CDATA[Text]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/blog/2008/06/13/prologemena-to-any-future-bibliography/</guid>
		<description><![CDATA[Stability is a precondition for the possibility of citation. Consider direct quotation&#8212;no easy phenomena. Part of the point of citation, here, is so that the reader can read the quotation in context, to decide for themselves whether the quoted author has been misrepresented. The usual case is to quote from a dead tree source&#8212;a printed [...]]]></description>
			<content:encoded><![CDATA[<p>Stability is a precondition for the possibility of citation.</p>

<p>Consider direct quotation&#8212;<a href="http://markelikalderon.com/blog/2007/10/23/what-is-direct-quotation/">no easy phenomena</a>. Part of the point of citation, here, is so that the reader can read the quotation in context, to decide for themselves whether the quoted author has been misrepresented. The usual case is to quote from a dead tree source&#8212;a printed book or journal. Imagine if books were quite different <del datetime="2008-06-13T14:20:20+00:00">than</del> from the way they actually are. Suppose that every time a book is closed the text would change, sometimes subtlely, sometimes less so. When your intrepid reader tracks down your citation, the quote may or may not be there. What would be the point? There would be very little, if any, point at all. The requisite stability would be missing from texts that spontaneously morph.</p>

<p>One good thing about dead tree sources is that they don&#8217;t change in this way. But now consider delivering text online. It is easy to change HTML or upload a new version of a PDF. The nature of the medium does not guarantee the stability guaranteed by ink on a page. Instead of natural law, we have the moral law. We must rely&#8212;God help us&#8212;on trust. This is manifest in bloggers&#8217; convention of striking through changed text in a post. Leaving a trace of a misspelled word, a hasty judgment, or <em>mal mot</em> is a sign of good faith, and bloggers who depart from this convention are subject to (verbal) sanction in comments or in pingback posts.</p>

<p>As the delivery of academic journals is moving increasingly online, editors face a corresponding moral challenge. <a href="http://www.aristoteliansociety.org.uk/" title="The Aristotelian Society">The Aristotelian Society</a> publishes papers online before the print volume hits the stands. Once an author asked to change his article after the online version went live but <em>before</em> the print volume was typeset. What was the problem? Things change online all the time!&#8212;he implored. The problem was simple. It would violate a precondition for the possibility of citation.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/06/13/prologemena-to-any-future-bibliography/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating from Subversion to Git</title>
		<link>http://markelikalderon.com/2008/06/05/migrating-from-subversion-to-git/</link>
		<comments>http://markelikalderon.com/2008/06/05/migrating-from-subversion-to-git/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 00:43:48 +0000</pubDate>
		<dc:creator>Mark Eli Kalderon</dc:creator>
				<category><![CDATA[Text]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://markelikalderon.com/?p=407</guid>
		<description><![CDATA[Having decided to try out Git, I was excited to learn that Git could interface with Subversion repositories via git-svn. git-svn provides a bidirectional flow of changesets from a branch of a Subversion repository and any number of branches in a Git repository. The problem that I soon encountered should be evident from this description&#8212;you [...]]]></description>
			<content:encoded><![CDATA[<p>Having decided to try out <a href="http://git.or.cz/" title="Git - Fast Version Control System">Git</a>, I was excited to learn that Git could interface with <a href="http://subversion.tigris.org/" title="subversion.tigris.org">Subversion</a> repositories via <a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html">git-svn</a>. git-svn provides a bidirectional flow of changesets from a branch of a Subversion repository and any number of branches in a Git repository. The problem that I soon encountered should be evident from this description&#8212;you inherit the limitations of the Subversion repository. A rewrite of a paper for the <a href="http://www.ejp.dept.shef.ac.uk/" title="European Journal of Philosophy Web Page">European Journal of Philosophy</a> provided the opportunity to start a Git repository and work purely with Git. This was a revealing exercise that allowed me to shed some habits engrained from being a long-time Subversion user.</p>

<p>I am now in the process of transitioning my work over to Git. One salient difference is that, with Subversion, I kept all my mission-critical text files in a single structured directory; Git, however, wants to find relationships among everything in the repository, so it is important to keep unrelated projects in different repositories. (Fortunately setting up Git repositories is a snap.) This is important to bear in mind when migrating from Subversion. If, like me, you maintained a single Subversion repository with separate subdirectories for each of your projects, you need to migrate each of these into separate Git repositories.</p>

<p>Here is how I began my migration.</p>

<p>I decided to start with my <a href="http://www.roaringpenguin.com/products/remind" title="Remind | Roaring Penguin">remind</a> files:</p>

<pre class="textmate-source"><span class="source source_shell">$ mkdir -p /tmp/remind
$ cd <span class="keyword keyword_operator keyword_operator_pipe keyword_operator_pipe_shell">!</span>$
$ git-svn clone http://markelikalderon.com/svn/TheHub/Remind --no-metadata</span></pre>

<p>The command:</p>

<pre class="textmate-source"><span class="text text_plain"><span class="meta meta_paragraph meta_paragraph_text">git-svn clone</span></span></pre>

<p>calls init, which creates a new Git repository, and fetch, which fetches the contents and history of the directory. git-svn clone takes the options of both init and fetch. One useful option is &#8211;no-metadata which strips out the no longer needed Subversion metadata.</p>

<p>Now I needed to configure my new Git repository. I began by creating a file and opening it in my text editor, <a href="http://macromates.com/" title="TextMate — The Missing Editor for Mac OS X">TextMate</a>:</p>

<pre class="textmate-source"><span class="source source_shell">$ touch <span class="keyword keyword_operator keyword_operator_tilde keyword_operator_tilde_shell">~</span>/users.txt <span class="keyword keyword_operator keyword_operator_list keyword_operator_list_shell">&amp;&amp;</span> mate <span class="keyword keyword_operator keyword_operator_tilde keyword_operator_tilde_shell">~</span>/users.txt</span></pre>

<p>I then added the following to users.txt:</p>

<pre class="textmate-source"><span class="text text_plain"><span class="meta meta_paragraph meta_paragraph_text">kalderon PhilGeek &lt;eli@markelikalderon.com&gt;</span></span></pre>

<p>&#8216;kalderon&#8217; being my Subversion user name and &#8216;PhilGeek&#8217; being my Git user name. There should be one line each with this syntax for each of the users. Now I was ready to configure git:</p>

<pre class="textmate-source"><span class="source source_shell">% git config svn.authorsfile <span class="keyword keyword_operator keyword_operator_tilde keyword_operator_tilde_shell">~</span>/users.txt</span></pre>

<p>The final step is to clone this new Git repository to rid ourselves of any remaining svn cruft. I created a new <a href="http://github.com/" title="Secure Git hosting and collaborative development &mdash; GitHub">GitHub</a> project and then within the Git repository:</p>

<pre class="textmate-source"><span class="source source_shell">$ git remote add origin git@github.com:PhilGeek/remind.git
$ git push origin master</span></pre>

<p>Finally, I cloned the remote repository into the directory where my remind files were to live locally and deleted the /tmp/remind directory.</p>

<p>Not too bad. But you might consider automating the process with a shell or ruby script, if this needs doing several times over.</p>
]]></content:encoded>
			<wfw:commentRss>http://markelikalderon.com/2008/06/05/migrating-from-subversion-to-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

