<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The ssteiner Blog-o-matic</title>
	<atom:link href="http://ssteiner.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ssteiner.wordpress.com</link>
	<description>Linux Admin, OS X,  Cocoa</description>
	<lastBuildDate>Sat, 07 Jan 2012 04:28:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ssteiner.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>The ssteiner Blog-o-matic</title>
		<link>http://ssteiner.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ssteiner.wordpress.com/osd.xml" title="The ssteiner Blog-o-matic" />
	<atom:link rel='hub' href='http://ssteiner.wordpress.com/?pushpress=hub'/>
		<item>
		<title>How to find open files on a volume</title>
		<link>http://ssteiner.wordpress.com/2009/06/16/how-to-find-open-files-on-a-volume/</link>
		<comments>http://ssteiner.wordpress.com/2009/06/16/how-to-find-open-files-on-a-volume/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 15:39:31 +0000</pubDate>
		<dc:creator>ssteiner</dc:creator>
				<category><![CDATA[Linux Server Stuff]]></category>
		<category><![CDATA[OS X Tools]]></category>

		<guid isPermaLink="false">http://ssteiner.wordpress.com/?p=147</guid>
		<description><![CDATA[This shows what files are open on volumename. Handy if you&#8217;re trying to unmount volumename and it won&#8217;t unmount due to open files. This command line will get you a list of what&#8217;s open, and by what process: # sudo lsof &#124; grep /Volumes/volumename Posted in Linux Server Stuff, OS X Tools<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=147&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This shows what files are open on <code>volumename</code>.</p>
<p>Handy if you&#8217;re trying to unmount <code>volumename</code> and it won&#8217;t unmount due to open files.</p>
<p>This command line will get you a list of what&#8217;s open, and by what process:</p>
<pre>
	# sudo lsof | grep /Volumes/volumename
</pre>
<br />Posted in Linux Server Stuff, OS X Tools  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ssteiner.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ssteiner.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ssteiner.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ssteiner.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ssteiner.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ssteiner.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ssteiner.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ssteiner.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ssteiner.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ssteiner.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ssteiner.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ssteiner.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ssteiner.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ssteiner.wordpress.com/147/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=147&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ssteiner.wordpress.com/2009/06/16/how-to-find-open-files-on-a-volume/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c6451c5fcfa77016198a39c80cabd2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ssteiner</media:title>
		</media:content>
	</item>
		<item>
		<title>Using reStructuredText with TextMate&#8217;s Browser Preview</title>
		<link>http://ssteiner.wordpress.com/2009/05/17/using-restructuredtext-with-textmates-browser-preview/</link>
		<comments>http://ssteiner.wordpress.com/2009/05/17/using-restructuredtext-with-textmates-browser-preview/#comments</comments>
		<pubDate>Mon, 18 May 2009 01:10:25 +0000</pubDate>
		<dc:creator>ssteiner</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[fabric]]></category>
		<category><![CDATA[reStructuredText]]></category>
		<category><![CDATA[TextMate]]></category>

		<guid isPermaLink="false">http://ssteiner.wordpress.com/?p=141</guid>
		<description><![CDATA[I&#8217;m working on several open and not so open source projects in Python these days and am using Sphinx for documentation. TextMate has a Browser Preview window with the ability to pre-process the editor contents through a script before rendering. The Sphinx standard input format is reStructuredText as handled by Docutils. You can install docutils [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=141&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on several open and not so open source projects in Python these days and am using <a href="http://sphinx.pocoo.org/">Sphinx</a> for documentation.</p>
<p><a href="http://macromates.com/">TextMate</a> has a Browser Preview window with the ability to pre-process the editor contents through a script before rendering.</p>
<p>The Sphinx standard input format is reStructuredText as handled by <a href="http://docutils.sourceforge.net/rst.html">Docutils</a>.</p>
<p>You can install docutils and Sphinx with:</p>
<pre>
	# sudo easy_install docutils sphinx
</pre>
<p>To get TextMate to pre-process the reStructuredText properly before display, check the &#8220;Pipe text through&#8221; checkbox in the Web Preview window and put the rst2html.py into the textbox for the name of the script.</p>
<p><img src="http://ssteiner.files.wordpress.com/2009/05/picture-2.png?w=214&#038;h=201" alt="Picture 2.png" border="0" width="214" height="201" /></p>
<p>There will be some issues with &#8220;Unknown interpreted text role &#8216;data&#8217;&#8221; type things but you&#8217;ll pretty well be able to see what it&#8217;ll look like.</p>
<p>I may explore making this more accurate and flexible but, for now, this&#8217;ll do.</p>
<br />Posted in Documentation, fabric, reStructuredText, TextMate  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ssteiner.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ssteiner.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ssteiner.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ssteiner.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ssteiner.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ssteiner.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ssteiner.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ssteiner.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ssteiner.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ssteiner.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ssteiner.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ssteiner.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ssteiner.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ssteiner.wordpress.com/141/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=141&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ssteiner.wordpress.com/2009/05/17/using-restructuredtext-with-textmates-browser-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c6451c5fcfa77016198a39c80cabd2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ssteiner</media:title>
		</media:content>

		<media:content url="http://ssteiner.files.wordpress.com/2009/05/picture-2.png" medium="image">
			<media:title type="html">Picture 2.png</media:title>
		</media:content>
	</item>
		<item>
		<title>Adding a New Repository to Git/Gitosis</title>
		<link>http://ssteiner.wordpress.com/2009/05/13/adding-a-new-repository-under-gitosis-2/</link>
		<comments>http://ssteiner.wordpress.com/2009/05/13/adding-a-new-repository-under-gitosis-2/#comments</comments>
		<pubDate>Wed, 13 May 2009 23:49:34 +0000</pubDate>
		<dc:creator>ssteiner</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Version Control]]></category>

		<guid isPermaLink="false">http://ssteiner.wordpress.com/?p=136</guid>
		<description><![CDATA[It&#8217;s been a while since I used my own git server. I&#8217;m pulling together a bunch of management scripts into a toolbox to take with me from server to server and wanted to make a new repository. Except I had no idea what to do to make a new one and I don&#8217;t seem to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=136&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since I used my own git server.  I&#8217;m pulling together a bunch of management scripts into a toolbox to take with me from server to server and wanted to make a new repository.</p>
<p>Except I had no idea what to do to make a new one and I don&#8217;t seem to have written it down last time since it seemed so obvious at the time.</p>
<p>So, here&#8217;s the scoop&#8230;</p>
<p>To create new repositories:</p>
<ul>
<li>Add the project to the gitosis configuration</li>
<li>Make them writable for the user you want to push as</li>
<li>Push up the gitosis-admin configuration</li>
<li>Create a new home for the project</li>
<li>Initialize it as a git repository</li>
<li>Copy all your project files into the new repository directory</li>
<li>Add them all to the git repository</li>
<li>Commit everything</li>
<li>Push to the server</li>
</ul>
<p>For example: let&#8217;s assume your username is &#8216;jdoe&#8217; and you want to create a repository &#8216;myproject&#8217;. </p>
<p>In your clone of your server&#8217;s gitosis-admin, edit &#8216;gitosis.conf&#8217; and add::</p>
<pre>
  [group exampleproject]
  members = jdoe
  writable = myproject
</pre>
<p>Commit that change and push <em>the changed gitosis configuration</em>. </p>
<pre>
    # git commit -a -m "Added new group 'exampleproject' and project 'myproject'"
    # git push
</pre>
<p>Then create the local repository:</p>
<pre>
    # mkdir myproject
    # cd mypyroject
    # git init
    # ...copy all your project files in...
    # git commit -a -m "First commit"
</pre>
<p>Set it up to push to the remote:</p>
<pre>
    # git remote add myserver gitosis_user@yourserver.com:myproject.git
</pre>
<p>Do some work, add, commit everything then push it up:</p>
<pre>
    # git commit -a -m "Putting away before first push to server"
    # git push myserver master:refs/heads/master
</pre>
<p>That&#8217;s it. You now have a new project up on your git server and every time you do a <code>git push</code> it&#8217;ll go up.</p>
<br />Posted in Git, Version Control  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ssteiner.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ssteiner.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ssteiner.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ssteiner.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ssteiner.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ssteiner.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ssteiner.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ssteiner.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ssteiner.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ssteiner.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ssteiner.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ssteiner.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ssteiner.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ssteiner.wordpress.com/136/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=136&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ssteiner.wordpress.com/2009/05/13/adding-a-new-repository-under-gitosis-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c6451c5fcfa77016198a39c80cabd2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ssteiner</media:title>
		</media:content>
	</item>
		<item>
		<title>Quick Linux tree view of directory contents</title>
		<link>http://ssteiner.wordpress.com/2009/05/12/quick-linux-tree-view-of-directory-contents/</link>
		<comments>http://ssteiner.wordpress.com/2009/05/12/quick-linux-tree-view-of-directory-contents/#comments</comments>
		<pubDate>Wed, 13 May 2009 01:49:03 +0000</pubDate>
		<dc:creator>ssteiner</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ssteiner.wordpress.com/?p=132</guid>
		<description><![CDATA[I&#8217;m working on the Fabric documentation a bit and wanted to make a quick checklist of all of the files in the &#8220;old-doc&#8221; directory so I could check&#8217;em off as I moved them into their new home. Quick Google search for: unix command line tree view of directory contents Got me to this page where [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=132&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on the <a href="http://docs.fabfile.org/">Fabric</a> documentation a bit and wanted to make a quick checklist of all of the files in the &#8220;old-doc&#8221; directory so I could check&#8217;em off as I moved them into their new home.</p>
<p>Quick Google search for:</p>
<pre>
unix command line tree view of directory contents
</pre>
<p>Got me to <a href="http://www.centerkey.com/tree/">this page</a> where I found this gem:</p>
<pre>
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'
</pre>
<p>Unfortunately, it also includes the contents of the &#8220;.git&#8221; subdirectory which is less than useful.</p>
<p>Rather than frig around with &#8220;ls&#8220; globulation, I decided to do a quick search.  I cannot be the first person to need this particular result..</p>
<p>I hunted around for a few minutes and came upon this:</p>
<p>    <a href="http://mama.indstate.edu/users/ice/tree/">tree</a></p>
<p>Downloaded and unzipped, modified the makefile to comment out the Linux defaults and uncommented the OS X configuration.  </p>
<p>Then a quick:</p>
<pre>
    # make
    # sudo cp tree /usr/local/bin
</pre>
<p>Now:</p>
<pre>
    # tree old-docs
</pre>
<p>Gives this:</p>
<pre>
/.../fabric/old-doc/
|-- samples
|   |-- depends
|   |   `-- fabfile.py
|   |-- fabfile.example
|   |-- roles
|   |   `-- fabfile.py
|   |-- simple
|   |   `-- fabfile.py
|   |-- transitives
|   |   `-- fabfile.py
|   `-- variables
|       `-- fabfile.py
`-- site
    |-- api.py
    |-- bin
    |   |-- generate.py
    |   |-- markdown2.py
    |   |-- textile.py
    |   `-- toc.py
    |-- common.css
    |-- community.md
    |-- documentation.md
    |-- download.txt
    |-- fabric-logo.svg
    |-- hacking.md
    |-- index.md
    |-- other-files
    |-- print.css
    |-- programmers_guide.txt
    |-- screen.css
    |-- source.txt
    |-- template.html
    `-- user_guide.md
</pre>
<p>Perfect!</p>
<br />Posted in Uncategorized  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ssteiner.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ssteiner.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ssteiner.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ssteiner.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ssteiner.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ssteiner.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ssteiner.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ssteiner.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ssteiner.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ssteiner.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ssteiner.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ssteiner.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ssteiner.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ssteiner.wordpress.com/132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=132&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ssteiner.wordpress.com/2009/05/12/quick-linux-tree-view-of-directory-contents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c6451c5fcfa77016198a39c80cabd2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ssteiner</media:title>
		</media:content>
	</item>
		<item>
		<title>Squaring the circle</title>
		<link>http://ssteiner.wordpress.com/2009/05/12/squaring-the-circle/</link>
		<comments>http://ssteiner.wordpress.com/2009/05/12/squaring-the-circle/#comments</comments>
		<pubDate>Wed, 13 May 2009 01:02:06 +0000</pubDate>
		<dc:creator>ssteiner</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ssteiner.wordpress.com/?p=130</guid>
		<description><![CDATA[Heard on NPR 2009-05-07 in an unknown context. Squaring The Circle Squaring the circle is a problem proposed by ancient geometers. It is the challenge of constructing a square with the same area as a given circle by using only a finite number of steps with compass and straightedge. More abstractly and more precisely, it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=130&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Heard on NPR 2009-05-07 in an unknown context.</p>
<p><a href="http://en.wikipedia.org/wiki/Squaring_the_circle">Squaring The Circle</a></p>
<p>Squaring the circle is a problem proposed by ancient geometers. It is the challenge of constructing a square with the same area as a given circle by using only a finite number of steps with compass and straightedge. More abstractly and more precisely, it may be taken to ask whether specified axioms of Euclidean geometry concerning the existence of lines and circles entail the existence of such a square.</p>
<p>In 1882, the task was proven to be impossible, as a consequence of the Lindemann–Weierstrass theorem which proves that pi (π) is a transcendental, rather than an algebraic irrational number; that is, it is not the root of any polynomial with rational coefficients. It had been known for some decades before then that if π were transcendental then the construction would be impossible, but that π is transcendental was not proven until 1882. Approximate squaring to any given non-perfect accuracy, on the other hand, is possible in a finite number of steps, as a consequence of the fact that there are rational numbers arbitrarily close to π. The expression &#8220;squaring the circle&#8221; is sometimes used as a metaphor doing something logically or intuitively impossible.</p>
<br />Posted in Uncategorized  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ssteiner.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ssteiner.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ssteiner.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ssteiner.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ssteiner.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ssteiner.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ssteiner.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ssteiner.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ssteiner.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ssteiner.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ssteiner.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ssteiner.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ssteiner.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ssteiner.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=130&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ssteiner.wordpress.com/2009/05/12/squaring-the-circle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c6451c5fcfa77016198a39c80cabd2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ssteiner</media:title>
		</media:content>
	</item>
		<item>
		<title>Compress .sparseimages</title>
		<link>http://ssteiner.wordpress.com/2009/05/05/compress-sparseimages/</link>
		<comments>http://ssteiner.wordpress.com/2009/05/05/compress-sparseimages/#comments</comments>
		<pubDate>Tue, 05 May 2009 23:56:50 +0000</pubDate>
		<dc:creator>ssteiner</dc:creator>
				<category><![CDATA[OS X Tools]]></category>

		<guid isPermaLink="false">http://ssteiner.wordpress.com/?p=128</guid>
		<description><![CDATA[I use SuperDuper! to make sparse image backups of all of my physical hard drives. Only thing is that, even if you clean up a hard drive so there&#8217;s less to backup, the .sparseimage files never shrink to reflect the reclaimed space. To reclaim space, just make sure the image is not mounted, pull up [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=128&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I use SuperDuper! to make sparse image backups of all of my physical hard drives.  </p>
<p>Only thing is that, even if you clean up a hard drive so there&#8217;s less to backup, the .sparseimage files never shrink to reflect the reclaimed space.</p>
<p>To reclaim space, just make sure the image is not mounted, pull up a terminal window, and:</p>
<pre>
hdiutil compact /the/path/to/your.sparseimage</p>
<p>This will squish all the air out of the sparseimage bundle.</p>
<p>Make a backup first, obviously, and make sure there's enough room on the drive to make a copy of the image since I'm pretty sure it works by making a copy, then deleting the original.</p>
<br />Posted in OS X Tools  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ssteiner.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ssteiner.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ssteiner.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ssteiner.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ssteiner.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ssteiner.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ssteiner.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ssteiner.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ssteiner.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ssteiner.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ssteiner.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ssteiner.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ssteiner.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ssteiner.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=128&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ssteiner.wordpress.com/2009/05/05/compress-sparseimages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c6451c5fcfa77016198a39c80cabd2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ssteiner</media:title>
		</media:content>
	</item>
		<item>
		<title>Moving a Gitosis Setup</title>
		<link>http://ssteiner.wordpress.com/2009/03/07/moving-a-gitosis-setup/</link>
		<comments>http://ssteiner.wordpress.com/2009/03/07/moving-a-gitosis-setup/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 23:41:35 +0000</pubDate>
		<dc:creator>ssteiner</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Linux Server Stuff]]></category>
		<category><![CDATA[Version Control]]></category>

		<guid isPermaLink="false">http://ssteiner.wordpress.com/?p=126</guid>
		<description><![CDATA[We&#8217;ve done a server shuffle here and now that the dust has settled a bit, I&#8217;ve got to get out Gitosis repository back online. To make things more interesting, I also changed the name of the user under which the whole setup is running. Long story short; create a user in cPanel to be your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=126&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve done a server shuffle here and now that the dust has settled a bit, I&#8217;ve got to get out Gitosis repository back online.</p>
<p>To make things more interesting, I also changed the name of the user under which the whole setup is running.  Long story short; create a user in cPanel to be your Gitosis user rather than creating just a unix user with useradd so that the user can be moved etc. using the handy cPanel tools.  My original user almost got stranded on the old server since he didn&#8217;t show up in any of the cPanel tools I was using to move hosting accounts.</p>
<p>So, on the new server (as per the <a href="http://websaucesoftware.com/blog/?p=66">old post</a> :</p>
<pre>
	# cd /usr/local/src
	# git clone git://eagain.net/gitosis.git
	# cd gitosis
	# python setup.py install
	Traceback (most recent call last):
	  File "setup.py", line 2, in
	    from setuptools import setup, find_packages
	ImportError: No module named setuptools
</pre>
<p>I downloaded <a href="http://peak.telecommunity.com/dist/ez_setup.py">ez_setup.py </a>from the <a href="http://peak.telecommunity.com/">Peak website</a> and than try to remember anything about how to set it up, I just took the two lines at the top of <code>ez_setup.py</code> and stuck&#8217;em into the gitosis <code>setup.py</code> per the instructions at the top of <code>ez_setup.py</code> and reran <code>setup.py</code>.
</p>
<p>When I moved servers, I created a cPanel user with a new name, <code>git_new</code>, different from the one on the old server and copied all the Gitosis stuff into their home directory.
</p>
<p>The trick is to get the gitosis setup to recognize everything in its new home and getting at it from my local machine.  I&#8217;m not comfortable manually twiddling any of the files in the git setup since I&#8217;m not 100% sure what&#8217;s what so I&#8217;ll start by trying to checkout the Gitosis configuration to my local work area.
</p>
<p>Since I&#8217;ve already created the user in cPanel, I&#8217;ll have to figure out how to make sure they&#8217;re not able to login by password but for now, I&#8217;m just going to get gitosis installed and initialized.
</p>
<p>Before I do anything crazy, I&#8217;m going to make a quick copy of my original repositories.  They&#8217;re in /home/git_new/repositories so I just quickly make a backup with:</p>
<pre>
	# cp -r /home/git_new/repositories /home/git_new/repositories.2009.03-06.bak
</pre>
</p>
<p>I always put the date in backups so that I know when I was messing with something.  File dates are unreliable since file changes change dates and it&#8217;s not easy to see when something was created.  This keeps things straight with very little effort.
</p>
<p>I copied my id_rsa.pub key from my main machine up to the /tmp directory on the new server and ran:</p>
<pre>
	# sudo -H -u git gitosis-init &lt; /tmp/id_rsa.pub
</pre>
</p>
<p>I got an error doing this because the /home/git_new/gitosis directory wasn&#8217;t owned by the git_new user but after fixing that up with:</p>
<pre>
	cd /home/git_new
	chown -R git_new:git_new gitosis repositories
</pre>
<p>everything went fine.  I fixed the user on /home/git_new/repositories while I was at it, btw.
</p>
<p>Now rerunning the gitosis-init works just fine printing out the &#8220;Reinitializing&#8230;&#8221; message twice as documented.
</p>
<p>Unfortunately, the original instructions used the &#8211;disabled-password switch on <code>adduser</code> which can&#8217;t be used here since the user was created through cPanel and neither cPanel&#8217;s Password Modification or the command line <code>passwd</code> utility can set a disabled password.
</p>
<p>After poking around for a while, I finally just dumped the contents of <code>/etc/shadow</code> and saw that, for all the usually disabled accounts, the shadow password was set to <code>!!</code>.  I manually edited <code>/etc/shadow</code>, poked in that password, and off we went.
</p>
<p>This leaves the user unable to login via password, but they can still login using an ssh key which is exactly what we want.  According to shadow(5),<br />
If the password field contains some string that is not valid result of<br />
crypt(3), for instance ! or *, the user will not be able to use a unix<br />
password to log in, subject to pam(7).  There are some intricacies and stupidity in the exact configuration and who can login which way but we don&#8217;t need to go there for this purpose.
</p>
<p>NOTE: You can also globally disable password authentication in the ssh server but that&#8217;s not what we needed here either.</p>
<p>The next step, following my own instructions, is to attempt to clone the configuration repository with: </p>
<pre>
	# git clone git_new@my.hostname.com:gitosis-admin
</pre>
<p>
resulting in:</p>
<pre>
	fatal: protocol error: bad line length character
</pre>
</p>
<p>Fooey.</p>
<p>Googling around lead to the <a href="http://git.or.cz/gitwiki/GitFaq">Git FAQ</a> entry on that error.
</p>
<p>Following the instructions there, I just tried ssh&#8217;ing in as the user to execute a simple command with:</p>
<pre>
	# ssh git_new@my.hostname.com echo testing commands
	Shell access is not enabled on your account!
</pre>
</p>
<p>I had forgotten to enable shell access on the account (it&#8217;s off by default in my cPanel setup since it&#8217;s a security risk and so few hosting clients actually need it).  If I had gotten stucker I would have used ssh&#8217;s -v parameter to get verbose output to see where things were falling down.</p>
<p>I went into cPanel and enabled shell access for the account and voilà, out came my stuff!</p>
<p>Since I left my repositories in place in the <code>/home/git_new/repositories</code> directory I was hoping to just be able to check them out normally.</p>
<p>I always create a test repository, available to everyone who has any privileges on any repository, so that we can quickly establish connectivity to the server before messing around with specific privileges on any particular project.</p>
<p>So, the quickest test for a new repository is to just try:</p>
<pre>
	# git clone git_new@my.hostname.com:test
</pre>
</p>
<p>And, since it hadn&#8217;t clobbered any of my original settings when I reinitialized gitosis, I&#8217;m right back in business!</p>
<p><b>NOTE:</b> Just for fun, I tried to use some of my checkouts from the old repositories, just to see how hard it would be.  A simple <code>git pull</code> or <code>git push</code> didn&#8217;t work and failed in a strange and not worth repeating sort of way.</p>
<p>Just edit the checkout&#8217;s <code>.git/config</code> and change the <code>[remote "origin"]</code> section&#8217;s <code>url</code> variable to the current user name and repository hostname and everything seems to work perfectly.</p>
<br />Posted in Git, Linux Server Stuff, Version Control  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ssteiner.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ssteiner.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ssteiner.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ssteiner.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ssteiner.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ssteiner.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ssteiner.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ssteiner.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ssteiner.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ssteiner.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ssteiner.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ssteiner.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ssteiner.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ssteiner.wordpress.com/126/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=126&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ssteiner.wordpress.com/2009/03/07/moving-a-gitosis-setup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c6451c5fcfa77016198a39c80cabd2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ssteiner</media:title>
		</media:content>
	</item>
		<item>
		<title>Python Path and .pth files</title>
		<link>http://ssteiner.wordpress.com/2009/03/06/python-path-and-pth-files/</link>
		<comments>http://ssteiner.wordpress.com/2009/03/06/python-path-and-pth-files/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 16:59:53 +0000</pubDate>
		<dc:creator>ssteiner</dc:creator>
				<category><![CDATA[Linux Server Stuff]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://ssteiner.wordpress.com/?p=124</guid>
		<description><![CDATA[So&#8230;I have a django app I&#8217;ve been running on one of our old servers for a while and it&#8217;s time to move the client off to one of the new servers. cPanel&#8217;d the account over, no problem, application moved with it, no problem, only the app won&#8217;t run. To make a long story short, couldn&#8217;t [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=124&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So&#8230;I have a <a href="http://www.djangoproject.com/">django</a> app I&#8217;ve been running on one of our old servers for a while and it&#8217;s time to move the client off to one of the new servers.</p>
<p>cPanel&#8217;d the account over, no problem, application moved with it, no problem, only the app won&#8217;t run.</p>
<p>To make a long story short, couldn&#8217;t figure out why sys.path() wasn&#8217;t returning my current directory whereas it was on the old server.</p>
<p>Turns out I had added a .pth file to /usr/local/lib/python2.4/site-packages/. </p>
<p>This time, however, I left myself a note here and in the application directory so I wouldn&#8217;t forget.</p>
<p>Oh, also remember to unblock the port in the firewall and <em>restart the firewall.</em></p>
<br />Posted in Linux Server Stuff, Python  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ssteiner.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ssteiner.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ssteiner.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ssteiner.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ssteiner.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ssteiner.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ssteiner.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ssteiner.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ssteiner.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ssteiner.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ssteiner.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ssteiner.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ssteiner.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ssteiner.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=124&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ssteiner.wordpress.com/2009/03/06/python-path-and-pth-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c6451c5fcfa77016198a39c80cabd2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ssteiner</media:title>
		</media:content>
	</item>
		<item>
		<title>Git Subprojects</title>
		<link>http://ssteiner.wordpress.com/2008/12/30/git-subprojects/</link>
		<comments>http://ssteiner.wordpress.com/2008/12/30/git-subprojects/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 03:27:40 +0000</pubDate>
		<dc:creator>ssteiner</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Version Control]]></category>
		<category><![CDATA[git submodule]]></category>

		<guid isPermaLink="false">http://ssteiner.wordpress.com/?p=120</guid>
		<description><![CDATA[Subprojects with Git I&#8217;m working on a fairly complex piece of OS X software right now; lots of moving parts. I also have several elves working on these various parts. The parts are very well isolated from the main project in a plug-in-y sort of way. The main project has some kinky dependencies that I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=120&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1>Subprojects with Git</h1>
<p>I&#8217;m working on a fairly complex piece of OS X software right now; lots of moving parts.</p>
<p>I also have several elves working on these various parts.  The parts are very well isolated from the main project in a plug-in-y sort of way.</p>
<p>The main project has some kinky dependencies that I really don&#8217;t want to have to help someone set up and there&#8217;s no real reason to.  In the final build, it&#8217;s all there.</p>
<p>I&#8217;m paying them to help with the parts they&#8217;re good at, not dick around with installation and configuration and such.</p>
<p>This also means that each independent piece has to have its own completely separate test application/suite that demonstrates the component&#8217;s functionality while remaining completely uncoupled from the main app.  </p>
<p>All is as it should be.</p>
<p>Except for the version control part.  </p>
<p>Each component has its own Git repository, and every developer working on the component can check out the whole component&#8217;s repository.  No problem.</p>
<p>Except that I&#8217;ve also got to be able to check out their work into <em>my</em> build tree to make the whole product.</p>
<h2>Git Subprojects to the Rescue</h2>
<p>I just picked up The Pragmatic Programmers&#8217; <a href="http://www.pragprog.com/titles/tsgit/pragmatic-version-control-using-git">Pragmatic Version Control Using Git</a>.  Haven&#8217;t had much time to get into it yet but I did jump on the chance to celebrate their 5th anniversary with a 30% off coupon.  Congratulations to them, they really do publish some fine books and they deserve all their success.</p>
<p>Chapter 8, &#8220;Organizing Your Repository&#8221; has a section on using Git&#8217;s submodules feature to track external dependencies.  These will be familiar to Subversion users as svn:externals.</p>
<h2>Creating a Submodule</h2>
<p>To illustrate, let&#8217;s just create a whole new structure starting with the root of the project.</p>
<pre>
	# cd ~
	# mkdir projectRoot
	# cd projectRoot
	# git init
</pre>
<p>Pretty straightforward.  Make a subdirectory, initialize the git repository in it.</p>
<p>I&#8217;m going to follow the book here since there&#8217;s already a public repository out there and it&#8217;s not like a million people are going to read this drivel and rush out and knock github over.</p>
<pre>
	# git submodule add \
			git://github.com/tswicegood/hocus.git \
			hocus
</pre>
<p>This creates the submodule hocus under projectRoot.  What is not particularly clear is that this initializes the submodule to track the current HEAD of the external repository.  It stores the revision number of the head in a configuration file called .gitmodules which you&#8217;ll add and track with the repository.</p>
<p><b>Unlike subversion, the submodule is bound to a particular revision within the external repository and will not follow the repository when modifications are made to it</b></p>
<p>Running the <code>git submodule</code> command will give a hint of that but it&#8217;s not that obvious, especially if you&#8217;re used to Subversion&#8217;s behaviour.</p>
<pre>
	# git submodule
	-20cc9ddc65b5f3ea3b871480c1e6d8085db48457 hocus
</pre>
<p>This shows that there&#8217;s a single submodule and will show a &#8216;-&#8217; sign next to it in the listing since it&#8217;s not been initialized.</p>
<p>To get it fired up:</p>
<pre>
	# git submodule init hocus
</pre>
<p>That will register the hocus submodule.  </p>
<p>To actually pull the contents of hocus, <b><em>at the revision at which you ran</em> <code>submodule add</code></b>, into the hocus subdirectory:</p>
<pre>
	# git submodule update hocus
</pre>
<p>It is possible to change the commit to which the submodule is bound but that&#8217;s for another day (or buy the book!).</p>
<p>There&#8217;s a really good (and fast!) overview of this process and the intricacies of checking out a new copy of a project with submodules at the <a href="http://woss.name/2008/04/09/using-git-submodules-to-track-vendorrails/">Rubaidh Ltd. blog</a>.</p>
<br />Posted in Git, Version Control  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ssteiner.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ssteiner.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ssteiner.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ssteiner.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ssteiner.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ssteiner.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ssteiner.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ssteiner.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ssteiner.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ssteiner.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ssteiner.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ssteiner.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ssteiner.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ssteiner.wordpress.com/120/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=120&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ssteiner.wordpress.com/2008/12/30/git-subprojects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c6451c5fcfa77016198a39c80cabd2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ssteiner</media:title>
		</media:content>
	</item>
		<item>
		<title>Transmit Favorites</title>
		<link>http://ssteiner.wordpress.com/2008/12/29/transmit-favorites/</link>
		<comments>http://ssteiner.wordpress.com/2008/12/29/transmit-favorites/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 15:53:49 +0000</pubDate>
		<dc:creator>ssteiner</dc:creator>
				<category><![CDATA[OS X Tools]]></category>
		<category><![CDATA[transmit panic]]></category>

		<guid isPermaLink="false">http://ssteiner.wordpress.com/?p=114</guid>
		<description><![CDATA[I was working on syncing my laptop with my desktop in a &#8216;deeper&#8217; sort of way this morning as things have gotten a bit random with all the new apps I&#8217;ve been installing (1Password rocks!). I went into the .Mac sync panel (MobileMe just makes me want to puke) and the Transmit favorites weren&#8217;t there [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=114&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was working on syncing my laptop with my desktop in a &#8216;deeper&#8217; sort of way this morning as things have gotten a bit random with all the new apps I&#8217;ve been installing (<a href="http://agilewebsolutions.com/products/1Password">1Password</a> rocks!).</p>
<p>I went into the .Mac sync panel (MobileMe just makes me want to puke) and the Transmit favorites weren&#8217;t there to sync.  </p>
<p>A quick visit to the Panic site yielded this:</p>
<p><b>I no longer use Transmit. How can I remove Transmit from my .Mac Sync preferences?</b><br />
	 Awkwardly, Apple doesn&#8217;t provide a way to remove these items. But, if you&#8217;re running Transmit 3.5.1 or newer, type this into Terminal:</p>
<pre>
# ~/Library/Application\ Support/Transmit/TransmitSync.app/Contents/MacOS/TransmitSync --unregisterClient
</pre>
<p>That should remove Transmit from the list.</p>
<p>Well, I figured that, since I had the opposite problem, I should just remove the &#8216;un&#8217; from the &#8211;unregister&#8230; and that&#8217;d do it.</p>
<p>Did.  Yay.</p>
<br />Posted in OS X Tools  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ssteiner.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ssteiner.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ssteiner.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ssteiner.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ssteiner.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ssteiner.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ssteiner.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ssteiner.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ssteiner.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ssteiner.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ssteiner.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ssteiner.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ssteiner.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ssteiner.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ssteiner.wordpress.com&amp;blog=2930988&amp;post=114&amp;subd=ssteiner&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ssteiner.wordpress.com/2008/12/29/transmit-favorites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c6451c5fcfa77016198a39c80cabd2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ssteiner</media:title>
		</media:content>
	</item>
	</channel>
</rss>
