<?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>David Alber &#187; Software</title>
	<atom:link href="http://www.davidalber.net/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davidalber.net</link>
	<description></description>
	<lastBuildDate>Sat, 14 Jan 2012 01:01:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Microsoft Codename &#8220;Cloud Numerics&#8221;</title>
		<link>http://www.davidalber.net/2012/01/microsoft-codename-cloud-numerics/</link>
		<comments>http://www.davidalber.net/2012/01/microsoft-codename-cloud-numerics/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 17:01:32 +0000</pubDate>
		<dc:creator>David Alber</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.davidalber.net/?p=2314</guid>
		<description><![CDATA[The work that I did as a member of the Math Libraries Group in Technical Computing at Microsoft has been released in the form of a SQL Azure Lab named Microsoft Codename &#8220;Cloud Numerics&#8221;. There is, of course, a lot of other technology in the lab that was not produced by my group, but all [...]]]></description>
			<content:encoded><![CDATA[<p>The work that I did as a member of the Math Libraries Group in Technical Computing at Microsoft has been released in the form of a SQL Azure Lab named <a href="http://www.microsoft.com/en-us/sqlazurelabs/labs/numerics.aspx">Microsoft Codename &#8220;Cloud Numerics&#8221;</a>. There is, of course, a lot of other technology in the lab that was not produced by my group, but all of our product is in the release.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalber.net/2012/01/microsoft-codename-cloud-numerics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geneacache</title>
		<link>http://www.davidalber.net/2012/01/geneacache/</link>
		<comments>http://www.davidalber.net/2012/01/geneacache/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 08:13:12 +0000</pubDate>
		<dc:creator>David Alber</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[geneacache]]></category>
		<category><![CDATA[geneagrapher]]></category>

		<guid isPermaLink="false">http://www.davidalber.net/?p=2299</guid>
		<description><![CDATA[First a note about the Geneagrapher: a new release is impending. The release includes many internal changes: lots of refactoring to improve the code, better conformance to Python coding conventions (remember, I wrote the first version a long time ago and my proficiency with Python has improved a lot since then), better code coverage by [...]]]></description>
			<content:encoded><![CDATA[<p>First a note about the <a title="Geneagrapher" href="/geneagrapher/">Geneagrapher</a>: a new release is impending. The release includes many internal changes: lots of refactoring to improve the code, better conformance to Python coding conventions (remember, I wrote the first version a long time ago and my proficiency with Python has improved a lot since then), better code coverage by the tests, better design to enable more extensibility, and a local caching mechanism to eliminate multiple network requests for the same record. I will explain what I mean by extensibility in a later post.</p>
<p>Now, the point of this post: thanks to the changes to Geneagrapher mentioned above, I have set up a web-based &#8220;<a title="Geneacache" href="http://math-genealogy.davidalber.net/">Geneacache</a>&#8220;. It is a <em>very early</em> preview, so the API may change in the near future. A lot of other changes are needed, too, and it is possible I will move the page to a different address. Here&#8217;s the idea: your software can use the Geneacache to retrieve records from the <a title="Mathematics Genealogy Project" href="http://genealogy.math.ndsu.nodak.edu/">Mathematics Genealogy Project</a> (MGP), saving you the trouble of scraping the MGP pages or having to use Geneagrapher to do it for you. The response contains the record&#8217;s information in JSON. For example, for <a href="http://math-genealogy.davidalber.net/record/18231">Gauß</a> you currently get:</p>
<pre style="padding-left: 30px;">{
    "advisors": [
        18230
    ],
    "descendants": [
        151876,
        55175,
        29642,
        18603,
        19953,
        29458,
        62547,
        18232,
        18233
    ],
    "institution": "Universität Helmstedt",
    "name": "Carl Friedrich Gauß",
    "year": 1799
}</pre>
<p>Behind the scenes, the Geneacache either returns what it has locally or fetches it from the MGP, stores it locally, and then returns the record to you.</p>
<p>This is not used for anything at the moment, but I intend to start exposing Geneagrapher through a web page again (history lesson: the first version of Geneagrapher, from when I was in graduate school &#8212; was a web service) at some point in the future. The Geneagrapher client is nice and all, but I imagine most users are not interested in installing it locally to use it.</p>
<p>I am also planning to get in touch with the MGP folks about this and related topics.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalber.net/2012/01/geneacache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convex Hulls</title>
		<link>http://www.davidalber.net/2011/11/convex-hulls/</link>
		<comments>http://www.davidalber.net/2011/11/convex-hulls/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 16:11:51 +0000</pubDate>
		<dc:creator>David Alber</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[algbox]]></category>
		<category><![CDATA[convex hull]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.davidalber.net/?p=2269</guid>
		<description><![CDATA[I have done additional work on the Delaunay triangulation that I mentioned in the previous post. The code is less messy, has tests, and is now packaged. My code needs to compute the convex hull in order to start the Delaunay triangulation. Since that is sort of interesting in itself (and may be needed on [...]]]></description>
			<content:encoded><![CDATA[<p>I have done additional work on the Delaunay triangulation that I mentioned in the <a title="Delaunay Triangulation" href="/2011/11/delaunay-triangulation/">previous post</a>. The code is less messy, has tests, and is now packaged.</p>
<p>My code needs to compute the convex hull in order to start the Delaunay triangulation. Since that is sort of interesting in itself (and may be needed on its own in the future), I pulled out the convex hull generation into its own class. The computation proceeds using <a title="Graham scan" href="http://en.wikipedia.org/wiki/Graham_scan">Graham scan</a>. Here&#8217;s an example (created with &#8216;conhull -s 50 -n 20&#8242;):</p>
<p><a href="http://www.davidalber.net/wp-content/uploads/2011/11/hull-20.png"><img class="aligncenter size-full wp-image-2270" title="hull-20" src="http://www.davidalber.net/wp-content/uploads/2011/11/hull-20.png" alt="Convex hull" width="500" height="500" /></a></p>
<p>You can see that&#8217;s correct, but visually, it&#8217;s not too interesting. For fun, I added the ability to generate nested convex hulls. The next image was created with &#8216;conhull -s 50 -n 500 &#8211;num-hulls all &#8211;no-plot-points&#8217;:</p>
<p><a href="http://www.davidalber.net/wp-content/uploads/2011/11/hull-500.png"><img class="aligncenter size-full wp-image-2273" style="border-style: initial; border-color: initial;" title="hull-500" src="http://www.davidalber.net/wp-content/uploads/2011/11/hull-500.png" alt="Convex hull" width="500" height="500" /></a></p>
<p>With more points (&#8216;conhull -s 50 -n 1000 &#8211;num-hulls all &#8211;no-plot-points&#8217;):</p>
<p><a href="http://www.davidalber.net/wp-content/uploads/2011/11/hull-1000.png"><img class="aligncenter size-full wp-image-2271" title="hull-1000" src="http://www.davidalber.net/wp-content/uploads/2011/11/hull-1000.png" alt="Convex hull" width="500" height="500" /></a></p>
<p>The package is <a title="Algbox" href="https://github.com/davidalber/algbox">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalber.net/2011/11/convex-hulls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delaunay Triangulation</title>
		<link>http://www.davidalber.net/2011/11/delaunay-triangulation/</link>
		<comments>http://www.davidalber.net/2011/11/delaunay-triangulation/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 18:31:39 +0000</pubDate>
		<dc:creator>David Alber</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[algbox]]></category>
		<category><![CDATA[delaunay triangulation]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.davidalber.net/?p=2259</guid>
		<description><![CDATA[I spent a little time implementing Delaunay triangulation for learning. I am going to do a little more work on it, but here&#8217;s an example of its output. The code is still a mess, and will be updated, but you can find it here. You need Python with matplotlib to run the code.]]></description>
			<content:encoded><![CDATA[<p>I spent a little time implementing <a title="Delaunay triangulation" href="http://en.wikipedia.org/wiki/Delaunay_triangulation">Delaunay triangulation</a> for learning. I am going to do a little more work on it, but here&#8217;s an example of its output.</p>
<p><a href="http://www.davidalber.net/wp-content/uploads/2011/11/delaunay-100.png"><img class="aligncenter size-full wp-image-2260" title="delaunay-100" src="http://www.davidalber.net/wp-content/uploads/2011/11/delaunay-100.png" alt="" width="500" height="500" /></a></p>
<p>The code is still a mess, and will be updated, but you can find it <a href="https://github.com/davidalber/algbox/blob/master/src/algbox/delaunay.py">here</a>. You need Python with matplotlib to run the code.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalber.net/2011/11/delaunay-triangulation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geneagrapher 0.2.1-r2 Released</title>
		<link>http://www.davidalber.net/2011/08/geneagrapher-0-2-1-r2-released/</link>
		<comments>http://www.davidalber.net/2011/08/geneagrapher-0-2-1-r2-released/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 20:43:00 +0000</pubDate>
		<dc:creator>David Alber</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[geneagrapher]]></category>

		<guid isPermaLink="false">http://www.davidalber.net/?p=2160</guid>
		<description><![CDATA[Version 0.2.1-r2, a maintenance release, of the Geneagrapher is now available. A test in Geneagrapher 0.2.1-r1 was broken by new information added to the Mathematics Genealogy Project. This release fixes the test, but does not change the functionality from version 0.2.1-r1. Existing installations need not install this release. For more information, please see the Geneagrapher page and [...]]]></description>
			<content:encoded><![CDATA[<p>Version 0.2.1-r2, a maintenance release, of the Geneagrapher is now available.</p>
<p>A test in Geneagrapher 0.2.1-r1 was broken by new information added to the <a title="Mathematics Genealogy Project" href="http://genealogy.math.ndsu.nodak.edu/">Mathematics Genealogy Project</a>. This release fixes the test, but does not change the functionality from version 0.2.1-r1. Existing installations need not install this release.</p>
<p>For more information, please see the <a title="Geneagrapher" href="http://www.davidalber.net/geneagrapher/">Geneagrapher page</a> and the <a title="Geneagrapher 0.2.1-r1 Released" href="http://www.davidalber.net/2010/11/geneagrapher-0-2-1-r1-released/">Geneagrapher 0.2.1-r1 release announcement</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalber.net/2011/08/geneagrapher-0-2-1-r2-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geneagrapher 0.2.1-r1 Released</title>
		<link>http://www.davidalber.net/2010/11/geneagrapher-0-2-1-r1-released/</link>
		<comments>http://www.davidalber.net/2010/11/geneagrapher-0-2-1-r1-released/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 06:26:57 +0000</pubDate>
		<dc:creator>David Alber</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[geneagrapher]]></category>

		<guid isPermaLink="false">http://www.davidalber.net/?p=1031</guid>
		<description><![CDATA[Version 0.2.1-r1, a maintenance release, of the Geneagrapher is now available. A few tests in Geneagrapher 0.2.1 have become broken since that version was released. This release fixes those tests, but does not change the functionality from version 0.2.1. Existing installations need not install this release. For more information, please see the Geneagrapher page and [...]]]></description>
			<content:encoded><![CDATA[<p>Version 0.2.1-r1, a maintenance release, of the Geneagrapher is now available.</p>
<p>A few tests in Geneagrapher 0.2.1 have become broken since that version was released. This release fixes those tests, but does not change the functionality from version 0.2.1. Existing installations need not install this release.</p>
<p>For more information, please see the <a title="Geneagrapher" href="/geneagrapher/">Geneagrapher page</a> and the <a title="Geneagrapher 0.2.1 Released" href="/2009/09/geneagrapher-021-released/">Geneagrapher 0.2.1 release announcement</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalber.net/2010/11/geneagrapher-0-2-1-r1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remapping the &#8216;exit full screen&#8217; keystroke in VMware</title>
		<link>http://www.davidalber.net/2010/11/remapping-the-exit-full-screen-keystroke-in-vmware/</link>
		<comments>http://www.davidalber.net/2010/11/remapping-the-exit-full-screen-keystroke-in-vmware/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 05:33:21 +0000</pubDate>
		<dc:creator>David Alber</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[virtual machine]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://www.davidalber.net/?p=988</guid>
		<description><![CDATA[Tonight I installed VMware Player on my Windows machine to experiment with a few things. After getting it installed, I downloaded the latest Ubuntu image and created a virtual machine with it. Everything went pretty smoothly. VMware, by default, intercepts Ctrl-Alt to exit full-screen mode. Switching virtual workspaces in the windows manager in the new Ubuntu [...]]]></description>
			<content:encoded><![CDATA[<p>Tonight I installed <a title="VMWare Player" href="http://www.vmware.com/products/player/">VMware Player</a> on my Windows machine to experiment with a few things. After getting it installed, I downloaded the <a title="Ubuntu Download" href="http://www.ubuntu.com/desktop/get-ubuntu/download">latest Ubuntu image</a> and created a virtual machine with it. Everything went pretty smoothly.</p>
<p>VMware, by default, intercepts Ctrl-Alt to exit full-screen mode. Switching virtual workspaces in the windows manager in the new Ubuntu machine uses Ctrl-Alt-&lt;Arrow key&gt;, and the VMware keystroke interfered with left and right. It took a while to find it, but Ctrl-Alt-Space followed by Ctrl-Alt-Right , for example, accomplishes the switch, but this is inconvenient. Remapping the keystrokes that switch virtual workspaces is straightforward, but I am too accustomed to Ctrl-Alt-&lt;Arrow key&gt; to do that.</p>
<p>I found how to change the VMware keystroke <a title="preferences.ini" href="http://sanbarrow.com/vmx/vmx-preferences-ini.html">here</a>. The sixth box on that page had what I needed and changed the VMware keystroke to Ctrl-Alt-Shift. I only used the first three lines because the second block has some syntax error in my version of the Player.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalber.net/2010/11/remapping-the-exit-full-screen-keystroke-in-vmware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geneagrapher 0.2.1 Released</title>
		<link>http://www.davidalber.net/2009/09/geneagrapher-021-released/</link>
		<comments>http://www.davidalber.net/2009/09/geneagrapher-021-released/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 05:44:34 +0000</pubDate>
		<dc:creator>David Alber</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[geneagrapher]]></category>

		<guid isPermaLink="false">http://www.davidalber.net/?p=546</guid>
		<description><![CDATA[Version 0.2.1 of the Geneagrapher is now available for installation. This release does not add new features to the software, but it does fix a debilitating issue that caused multiple advisors to be ignored (this problem was introduced following changes to the Mathematics Genealogy Project pages). Two users brought this to my attention, and I [...]]]></description>
			<content:encoded><![CDATA[<p>Version 0.2.1 of the Geneagrapher is now available for installation. This release does not add new features to the software, but it does fix a debilitating issue that caused multiple advisors to be ignored (this problem was introduced following changes to the Mathematics Genealogy Project pages). Two users brought this to my attention, and I am grateful for their help (although I initially thought the problem was isolated to the recently-deleted, original web-based version of the Geneagrapher).</p>
<p><em>All pre-0.2.1 installations of the Geneagrapher should be updated to Version 0.2.1.</em></p>
<p>Changes made for this release:</p>
<ul>
<li>Multiple advisors are now captured correctly. While this problem was manifesting itself, ancestor trees were coming out as a branch-free tree.</li>
<li>Added a test for the multiple advisor case, which enables quicker recognition of similar problems.</li>
<li>Updated a few tests that had become broken due to updates in the Math Genealogy Project&#8217;s database.</li>
</ul>
<p>Since the features remain unchanged, please see the <a title="Geneagrapher 0.2 Release Announcement" href="/2008/10/geneagrapher-02-released/" target="_self">Geneagrapher 0.2 release announcement</a> for more information, including how to find and install the package.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalber.net/2009/09/geneagrapher-021-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geneagrapher 0.2-r1 Released</title>
		<link>http://www.davidalber.net/2008/10/geneagrapher-02-r1-released/</link>
		<comments>http://www.davidalber.net/2008/10/geneagrapher-02-r1-released/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 04:12:25 +0000</pubDate>
		<dc:creator>David Alber</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[geneagrapher]]></category>

		<guid isPermaLink="false">http://www.davidalber.net/?p=220</guid>
		<description><![CDATA[Python 2.6 was released less than a week ago. This Geneagrapher release slightly changes an installation-related file to enable installation on machines running Python 2.6 that have not yet installed Python setuptools. The Geneagrapher features in this release are identical to those in version 0.2, so interested parties are recommended to read the Geneagrapher 0.2 [...]]]></description>
			<content:encoded><![CDATA[<p>Python 2.6 was released less than a week ago. This Geneagrapher release slightly changes an installation-related file to enable installation on machines running Python 2.6 that have not yet installed Python setuptools.</p>
<p>The Geneagrapher features in this release are identical to those in version 0.2, so interested parties are recommended to read the <a title="Geneagrapher 0.2 Release Announcement" href="http://www.davidalber.net/2008/10/geneagrapher-02-released/" target="_self">Geneagrapher 0.2 release announcement</a> for more information on the package.</p>
<p>If you have successfully installed Geneagrapher 0.2, there is no need to install version 0.2-r1.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalber.net/2008/10/geneagrapher-02-r1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geneagrapher 0.2 Usage Guide</title>
		<link>http://www.davidalber.net/2008/10/geneagrapher-02-usage-guide/</link>
		<comments>http://www.davidalber.net/2008/10/geneagrapher-02-usage-guide/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 05:06:36 +0000</pubDate>
		<dc:creator>David Alber</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[geneagrapher]]></category>

		<guid isPermaLink="false">http://www.davidalber.net/?p=190</guid>
		<description><![CDATA[The purpose of this post is to explain how to use version 0.2 of the Mathematics Genealogy Grapher (Geneagrapher). For more information about the release of version 0.2 see the release announcement. For more information about the Geneagrapher in general, see the Mathematics Genealogy Grapher Page. Basic Concepts The input to the Geneagrapher is a [...]]]></description>
			<content:encoded><![CDATA[<p>The purpose of this post is to explain how to use version 0.2 of the Mathematics Genealogy Grapher (Geneagrapher). For more information about the release of version 0.2 see the <a title="Release Announcement" href="http://www.davidalber.net/2008/10/geneagrapher-02-released/" target="_self">release announcement</a>. For more information about the Geneagrapher in general, see the <a title="Mathematics Genealogy Grapher" href="http://www.davidalber.net/geneagrapher/" target="_self">Mathematics Genealogy Grapher Page</a>.</p>
<h3>Basic Concepts</h3>
<p>The input to the Geneagrapher is a set of <em>starting nodes</em>. If you want to build the ancestor graph of C. Felix Klein, then C. Felix Klein is the starting node for that graph. Multiple starting nodes may be provided (to produce the combined ancestor graph for an academic department, for instance).</p>
<p>Each individual stored in the Mathematics Genealogy Project&#8217;s website has a unique integer as an identifier, and this identifier is what is passed to the Geneagrapher for starting nodes. The identifier is embedded in the URL for records in the Mathematics Genealogy Project website. For example, Carl Gauß has the ID 18231 (<a title="Carl Friedrich Gauß" href="http://genealogy.math.ndsu.nodak.edu/id.php?id=18231" target="_self">http://genealogy.math.ndsu.nodak.edu/id.php?id=<strong>18231</strong></a>) and Leonhard  Euler has the ID 38586 (<a title="Leonhard  Euler" href="http://genealogy.math.ndsu.nodak.edu/id.php?id=38586" target="_self">http://genealogy.math.ndsu.nodak.edu/id.php?id=<strong>38586</strong></a>).</p>
<p>Before running the Geneagrapher, go to the <a title="Mathematics Genealogy Project" href="http://genealogy.math.ndsu.nodak.edu/" target="_self">Mathematics Genealogy Project</a> and gather the identifiers of the starting nodes for the graph you have in mind.</p>
<h3>Geneagrapher Usage</h3>
<p>After installing the Geneagrapher, running</p>
<pre class="command">ggrapher --help</pre>
<p>should produce</p>
<pre class="command">Usage: ggrapher [options] ID ...

Create a Graphviz "dot" file for a mathematics genealogy, where ID is a record
identifier from the Mathematics Genealogy Project. Multiple IDs may be passed.

Options:
  -h, --help            show this help message and exit
  -f FILE, --file=FILE  write output to FILE [default: stdout]
  -a, --with-ancestors  retrieve ancestors of IDs and include in graph
  -d, --with-descendants
                        retrieve descendants of IDs and include in graph
  -v, --verbose         list nodes being retrieved
  -V, --version         print version and exit</pre>
<p>Explanations of some of the options are given below, followed by examples.</p>
<p><strong>-f FILE, &#8211;file=FILE</strong></p>
<p>By default, the Geneagrapher writes the data it generates to standard output. If you want the data written to file, you need to redirect the output or use the -f or &#8211;file switch. When one of these switches is used, the data is saved in the file name provided.</p>
<p><strong>-a, &#8211;with-ancestors<br />
</strong></p>
<p>When one of these switches is provided to the Geneagrapher, an ancestor graph is generated. An ancestor graph starts with the starting nodes and the works up to their advisors, their advisors&#8217; advisors, and so on.</p>
<p><strong>-d, &#8211;with-descendants</strong></p>
<p>These switches instruct the Geneagrapher to extract information about the descendants of the starting nodes (i.e., their advisees, their advisees&#8217; advisees, and so on).</p>
<h3>Processing the Dot File</h3>
<p>To process the generated dot file, <a title="Graphviz" href="http://www.graphviz.org/" target="_self">Graphviz</a> is needed. Graphviz installs several programs for processing dot files. For the Geneagrapher, I use the dot program. Let&#8217;s look at an example.</p>
<p>If the Geneagrapher has generated a file named &#8216;graph.dot&#8217;, we can do</p>
<pre class="command">dot -Tpng graph.dot &gt; graph.png</pre>
<p>This command produces a PNG file containing the graph. That&#8217;s really all there is to it. Almost.</p>
<p><strong>A slightly more complicated process</strong></p>
<p>I find that nicer looking final images are produced by following a more circuitous route. In the example above, I would run</p>
<pre class="command">dot -Tsvg graph.dot &gt; graph.svg</pre>
<p>This produces an SVG file. At this point, I use <a title="Inkscape" href="http://www.inkscape.org/" target="_self">Inkscape</a> to open the file and export a PNG file.</p>
<p>A number of other ways to do this are available.</p>
<h3>Examples</h3>
<p><em>Update: the Mathematics Genealogy Project has added new data since the examples below were constructed, so if re-run, the results will look different. The commands, however, all remain correct.</em></p>
<p><strong>Single Node Ancestry: Carl Gauß</strong></p>
<p>To produce the ancestry dot file for Carl Gauß (<a title="Carl Friedrich Gauß" href="http://genealogy.math.ndsu.nodak.edu/id.php?id=18231" target="_self">http://genealogy.math.ndsu.nodak.edu/id.php?id=18231</a>) and save it in the file &#8216;gauss.dot&#8217;, run the command</p>
<pre class="command">ggrapher -f gauss.dot -a 18231</pre>
<p style="text-align: center;"><a href="http://www.davidalber.net/wp-content/uploads/2008/10/gauss.png"><img class="size-medium wp-image-199 aligncenter" title="Gauss Ancestry" src="http://www.davidalber.net/wp-content/uploads/2008/10/gauss-211x300.png" alt="" width="211" height="300" /></a></p>
<p style="text-align: left;"><strong>Multiple Node Ancestry: Friedrich Bessel and Christian Gerling</strong></p>
<p style="text-align: left;">To produce the combined ancestry dot file for Friedrich Bessel (<a title="Friedrich Wilhelm Bessel" href="http://genealogy.math.ndsu.nodak.edu/id.php?id=18603" target="_self">http://genealogy.math.ndsu.nodak.edu/id.php?id=18603</a>) and Christian Gerling (<a title="Christian Ludwig Gerling" href="http://genealogy.math.ndsu.nodak.edu/id.php?id=29642" target="_self">http://genealogy.math.ndsu.nodak.edu/id.php?id=29642</a>) and save it in the file &#8216;bessel_gerling.dot&#8217;, run the command</p>
<pre class="command">ggrapher -f bessel_gerling.dot -a 18603 29642</pre>
<p style="text-align: center;"><a href="http://www.davidalber.net/wp-content/uploads/2008/10/bessel_gerling.png"><img class="size-medium wp-image-200 aligncenter" title="Bessel and Gerling Ancestry" src="http://www.davidalber.net/wp-content/uploads/2008/10/bessel_gerling-300x278.png" alt="" width="300" height="278" /></a></p>
<p style="text-align: left;"><strong>Single Node Descendant Graph: Haskell Curry</strong></p>
<p style="text-align: left;">To produce the descendant dot file for Haskell Curry (<a title="Haskell Brooks Curry" href="http://genealogy.math.ndsu.nodak.edu/id.php?id=7398" target="_self">http://genealogy.math.ndsu.nodak.edu/id.php?id=7398</a>) and save it in the file &#8216;curry.dot&#8217;, run the command</p>
<pre class="command">ggrapher -f curry.dot -d 7398</pre>
<p style="text-align: center;"><a href="http://www.davidalber.net/wp-content/uploads/2008/10/curry.png"><img class="size-medium wp-image-201 aligncenter" title="Haskell Curry" src="http://www.davidalber.net/wp-content/uploads/2008/10/curry-590x66.png" alt="" width="590" height="66" /></a></p>
<p style="text-align: left;">Note that descendant graphs often have a lot of &#8220;fan out&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalber.net/2008/10/geneagrapher-02-usage-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

