<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>BenCrowder.net</title>
	
	<link>http://bencrowder.net</link>
	<description>The personal blog of Ben Crowder, writer and designer.</description>
	<lastBuildDate>Sat, 13 Mar 2010 05:56:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BenCrowder" /><feedburner:info uri="bencrowder" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc/3.0/</creativeCommons:license><feedburner:emailServiceId>BenCrowder</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>On moving hosts and other random stuff</title>
		<link>http://feedproxy.google.com/~r/BenCrowder/~3/FdrDR_JyhtI/</link>
		<comments>http://bencrowder.net/blog/2010/03/on-moving-hosts-and-other-random-stuff/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 05:56:01 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[BenCrowder.net]]></category>
		<category><![CDATA[Getting Real]]></category>
		<category><![CDATA[Vim]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://bencrowder.net/blog/2010/03/on-moving-hosts-and-other-random-stuff/</guid>
		<description><![CDATA[Time for a bit of a potpourri post. It's been a while since I've done one of these.]]></description>
			<content:encoded><![CDATA[<p>Time for a bit of a potpourri post. It&#8217;s been a while since I&#8217;ve done one of these.</p>

<ol>
<li><p>I&#8217;ve moved both this blog and the Mormon Artist site over to my new host, and it went surprisingly smoothly. (Well, with a few hiccups like forgetting to enable mod&#95;rewrite, forgetting to add the new domain zone, etc. And when I tried to import the 15mb WordPress XML file, I ended up with 7,000 comments instead of the 5,000 I actually have, so I had to dump the SQL directly and use that instead.)</p></li>
<li><p>The advantage of moving hosts like this is that I&#8217;ve been forced to decide what&#8217;s actually important and what&#8217;s not. I used to have around twenty-five domains registered. I&#8217;m paring it down to three. And I&#8217;ve gotten rid of years&#8217; worth of cruft on the old server.</p></li>
<li><p>I love Linode. Everything feels faster and I&#8217;m learning tons (like how to use the MySQL command-line client, which I&#8217;ve always been meaning to get around to but haven&#8217;t yet).</p></li>
<li><p>I&#8217;ve <a href="http://unlinkyourfeeds.tumblr.com">unlinked my feeds</a> from Buzz. I&#8217;m still trying to decide if I should unlink my blog from Facebook, though. Not sure&#8230;</p></li>
<li><p>Today included paring down my Vim statusline and then adding a wordcount to it (which updates when you save). Oh, and I added line numbers to the terminal version. See my <a href="http://github.com/bencrowder/dotvim">.vimrc</a> for the details.</p></li>
<li><p>To keep this post from being all geekspeak: Tonight we went to my brothers&#8217; church basketball game &#8212; three of them on a team and they creamed their opponents. It was awesome. At first I kept thinking, &#8220;This is just civilized war,&#8221; and I still think that&#8217;s true of most sports to some extent, but yeah, it&#8217;s just a game. I have to remind myself of that. ;)</p></li>
<li><p>I know I said I was going to finish my novel <em>Tanglewood,</em> but I&#8217;ve decided to put it on hold for now and write some short stories. Also, I&#8217;ve got a blog post coming up soon on why I&#8217;m spending so much time doing genealogy and art and coding when I said not too long ago on here that I was going to focus solely on writing and design. :)</p></li>
</ol>
<img src="http://feeds.feedburner.com/~r/BenCrowder/~4/FdrDR_JyhtI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bencrowder.net/blog/2010/03/on-moving-hosts-and-other-random-stuff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bencrowder.net/blog/2010/03/on-moving-hosts-and-other-random-stuff/</feedburner:origLink></item>
		<item>
		<title>Komodo King</title>
		<link>http://feedproxy.google.com/~r/BenCrowder/~3/YeE7wSIBtvg/</link>
		<comments>http://bencrowder.net/blog/2010/03/komodo-king/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 03:17:38 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Photoshop]]></category>

		<guid isPermaLink="false">http://bencrowder.net/?p=4925</guid>
		<description><![CDATA[I've noticed a lot of cool photo manipulations online lately and got the itch to try my hand at one. Here's the result, which I'm calling "Komodo King."]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve noticed a lot of cool photo manipulations online lately and got the itch to try my hand at one. Here&#8217;s the result, which I&#8217;m calling &#8220;Komodo King&#8221;:</p>

<p><a href="http://www.flickr.com/photos/crowderb/4424075518/"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKingFinal-570x320.jpg" alt="" title="Komodo King Final" width="570" height="320" class="alignnone size-large wp-image-4934" /></a></p>

<p>As usual, it started out with a sketch:</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKing00.jpg" rel="shadowbox[post-4925];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKing00-300x187.jpg" alt="" title="KomodoKing00" width="300" height="187" class="alignnone size-medium wp-image-4928" /></a></p>

<p>I then went on Flickr and found some images (hurray for Creative Commons) that fit what I was looking for. First, the background wall (via <a href="http://www.flickr.com/photos/cameliatwu/3782935192/">cameliatwu</a>:</p>

<p><a href="http://www.flickr.com/photos/cameliatwu/3782935192/"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/stonewall-300x225.jpg" alt="" title="stonewall" width="300" height="225" class="alignnone size-medium wp-image-4935" /></a></p>

<p>And then the fighter (via <a href="http://www.flickr.com/photos/fatniu/523236060/">fatniu</a>):</p>

<p><a href="http://www.flickr.com/photos/fatniu/523236060/"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/jump-300x179.jpg" alt="" title="jump" width="300" height="179" class="alignnone size-medium wp-image-4926" /></a></p>

<p>Originally I was planning to use a frog or a chameleon, but I ended up going with a Komodo dragon instead (via <a href="http://www.flickr.com/photos/jason_coleman/2350172710/">jason_coleman</a>):</p>

<p><a href="http://www.flickr.com/photos/jason_coleman/2350172710/"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/komodo-300x199.jpg" alt="" title="komodo" width="300" height="199" class="alignnone size-medium wp-image-4927" /></a></p>

<p>I opened Photoshop, pasted the images in, and then moved, resized, and rotated them until I got a basic composition I liked (and I added a floor and did some basic lighting on the background wall and color correction on the dragon):</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKing01.jpg" rel="shadowbox[post-4925];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKing01-300x168.jpg" alt="" title="KomodoKing01" width="300" height="168" class="alignnone size-medium wp-image-4929" /></a></p>

<p>Next, adding a floor, basic lighting, shadows, color correction, and some rotation to get the dragon at the right angle:</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKing02.jpg" rel="shadowbox[post-4925];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKing02-300x168.jpg" alt="" title="KomodoKing02" width="300" height="168" class="alignnone size-medium wp-image-4930" /></a></p>

<p>Darker shadows (through burning and curves), more texture on the background wall, painting in some reflections on the dragon&#8217;s eye, and trying to figure out what to do with the fighter:</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKing03.jpg" rel="shadowbox[post-4925];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKing03-300x168.jpg" alt="" title="KomodoKing03" width="300" height="168" class="alignnone size-medium wp-image-4931" /></a></p>

<p>Cleanup on the dragon&#8217;s edges, shadow fixes, and a new dusty kind of lighting on the dragon (which I really liked):</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKing04.jpg" rel="shadowbox[post-4925];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKing04-300x168.jpg" alt="" title="KomodoKing04" width="300" height="168" class="alignnone size-medium wp-image-4932" /></a></p>

<p>At this stage I finally got something I liked with the fighter. Also did more cleanup on the dragon (including burning the shadows to make them more wrinkly):</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKing05.jpg" rel="shadowbox[post-4925];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKing05-300x168.jpg" alt="" title="KomodoKing05" width="300" height="168" class="alignnone size-medium wp-image-4933" /></a></p>

<p>The last stage was mostly just revising the fighter&#8217;s magic/weapon, painting the light reflections on the dragon, and doing some slight cleanup on the background wall (getting rid of the seams):</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKingFinal.jpg" rel="shadowbox[post-4925];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/KomodoKingFinal-300x168.jpg" alt="" title="Komodo King Final" width="300" height="168" class="alignnone size-medium wp-image-4934" /></a></p>

<p>And there you have it. It&#8217;s meant to be sort of video game-esque (ala Street Fighter). And no, it&#8217;s not perfect (far from it), but I&#8217;m relatively pleased with the result. Taking random photos and weaving them together into a coherent piece is so dang fun.</p>

<p>You know, I seem to be doing a lot of art lately (and I&#8217;ve got another illustration in the works that&#8217;s coming along nicely), and wow, I&#8217;m loving it.</p>
<img src="http://feeds.feedburner.com/~r/BenCrowder/~4/YeE7wSIBtvg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bencrowder.net/blog/2010/03/komodo-king/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://bencrowder.net/blog/2010/03/komodo-king/</feedburner:origLink></item>
		<item>
		<title>Mormon Digitization Project, resurrected</title>
		<link>http://feedproxy.google.com/~r/BenCrowder/~3/79Xpzujn4aY/</link>
		<comments>http://bencrowder.net/blog/2010/03/mormon-digitization-project-resurrected/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 05:00:30 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[LDS]]></category>
		<category><![CDATA[Mormon Digitization Project]]></category>
		<category><![CDATA[Project Gutenberg]]></category>

		<guid isPermaLink="false">http://bencrowder.net/?p=4913</guid>
		<description><![CDATA[I'm resurrecting the Mormon Digitization Project, which I blogged about nine months ago and then abandoned while I went and got married.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m resurrecting the Mormon Digitization Project, which I <a href="http://bencrowder.net/blog/2009/06/mormon-digitization-project/">blogged about nine months ago</a> and then abandoned while I went and got married. (I feel justified. ;))</p>

<p>Project page: <a href="http://bencrowder.net/projects/mdp/">Mormon Digitization Project</a></p>

<p>Brief recap: the goal is to find pre-1923 Mormon books (out of copyright), scan them, OCR them, clean up the OCRed text, and release the plain text files on Project Gutenberg (along with ePub editions, possibly PDFs, and possibly Lulu editions as well).</p>

<p>I&#8217;m starting with John A. Widtsoe&#8217;s book <em>Joseph Smith As Scientist</em> and will go from there. If you have any suggestions/requests, leave them in the comments (or email them to me). If I get enough people helping out, we&#8217;ll be able to tackle a few books at a time.</p>

<p>Process-wise, I&#8217;m thinking about trying <a href="http://bookoven.com/bitesize">Bite-Size Edits</a> for at least part of the cleanup. There&#8217;s also a remote possibility I&#8217;ll use <a href="http://www.pgdp.net">PGDP</a>, but I really, really don&#8217;t like their interface. Right now I&#8217;m planning to track things using email and a Google Spreadsheet. (If I had more time I&#8217;d write a web app to manage it all for me, but Beyond is getting the bulk of my coding time.)</p>

<p>Yes, this will be kind of similar to the <a href="http://mdp.nephi.org">Mormon Documentation Project</a>, but they don&#8217;t seem to be doing the types of books we&#8217;ll be doing. (I did use their text for the <a href="http://bencrowder.net/projects/scriptures/">Standard Works web app</a> and for this <a href="http://bencrowder.net/blog/2009/12/dc-readers-edition-sneak-peek/">D&amp;C reader&#8217;s edition</a> I&#8217;m still working on, though. Good stuff.)</p>

<p>Want to help out? Email me (ben dot crowder at gmail) and I&#8217;ll add you to the list.</p>
<img src="http://feeds.feedburner.com/~r/BenCrowder/~4/79Xpzujn4aY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bencrowder.net/blog/2010/03/mormon-digitization-project-resurrected/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://bencrowder.net/blog/2010/03/mormon-digitization-project-resurrected/</feedburner:origLink></item>
		<item>
		<title>Switching web hosts</title>
		<link>http://feedproxy.google.com/~r/BenCrowder/~3/H71pI-Kdc-k/</link>
		<comments>http://bencrowder.net/blog/2010/03/switching-web-hosts/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 04:43:13 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[BenCrowder.net]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://bencrowder.net/?p=4908</guid>
		<description><![CDATA[I'm switching web hosts. (Hurray! :)) For the last few years I've been on Bluehost and while it was mostly acceptable, I've outgrown it.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m switching web hosts. (Hurray! :)) For the last few years I&#8217;ve been on Bluehost (which is shared hosting), and while it was mostly acceptable, I&#8217;ve outgrown it. I&#8217;m going to be doing more Python/Ruby coding and want more control over my web server.</p>

<p>My new choice? <a href="http://www.linode.com">Linode</a> (recommended by <a href="http://twitter.com/popthestack">Ryan</a>, one of my Twitter friends).</p>

<p>It&#8217;s a VPS instead of a shared host, and holy cow, I had no idea how excited I&#8217;d be about getting root access. (I hadn&#8217;t really thought about it, to be honest.) Reading through Linode&#8217;s site giddified me almost instantly, and in that moment I knew I&#8217;d taken an irrevocable step forward. No more shared hosting for me. Linode is more expensive ($20/month compared to Bluehost&#8217;s $5 or $6/month), but really, for what I&#8217;m doing, it&#8217;s worth it. This is going to help a lot with working on Beyond.</p>

<p>I signed up on Wednesday, started with a bare-bones Debian 5 install, and have slowly been installing Apache and MySQL and everything else. SSH is lightning fast, too. Mmm. This is bringing back memories from my old Linux days (I started with Slackware back in 1997 and ran various flavors of Linux up until I bought my first Mac in 2004) (hmm, I wonder how the BYU Unix Users Group and Provo Linux Users Group are doing these days &#8212; it&#8217;s been forever since I went to their meetings&#8230;).</p>

<p>Migrating everything over is going to take a few weeks but hopefully it&#8217;ll go pretty smoothly. I&#8217;m looking forward to getting rid of a lot of the cruft on my old server.</p>

<p>Seriously, this is so much fun. And geeky. Very geeky. :)</p>
<img src="http://feeds.feedburner.com/~r/BenCrowder/~4/H71pI-Kdc-k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bencrowder.net/blog/2010/03/switching-web-hosts/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://bencrowder.net/blog/2010/03/switching-web-hosts/</feedburner:origLink></item>
		<item>
		<title>Pedigree chart sharing</title>
		<link>http://feedproxy.google.com/~r/BenCrowder/~3/XSzm2jcX0Ms/</link>
		<comments>http://bencrowder.net/blog/2010/03/pedigree-chart-sharing/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 17:10:24 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Beyond]]></category>
		<category><![CDATA[Genealogy]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://bencrowder.net/?p=4894</guid>
		<description><![CDATA[I needed a web app to share pedigree charts with my sister on the other side of the country, so I wrote one. It's called Pedigree.]]></description>
			<content:encoded><![CDATA[<p>I needed a web app to share pedigree charts with my sister on the other side of the country, so I wrote one. It&#8217;s called <a href="http://pedigreechart.appspot.com/">Pedigree</a>, and all I have to do now is fill in the chart online, save it, and send the URL to my sister.</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/03/pedigree1.png" rel="shadowbox[post-4894];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/pedigree1-570x825.png" alt="" title="Pedigree 1" width="570" height="825" class="alignright size-large wp-image-4895" /></a></p>

<p>Here&#8217;s what the pedigree looks like:</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/03/pedigree2.png" rel="shadowbox[post-4894];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/pedigree2-570x293.png" alt="" title="Pedigree 2" width="570" height="293" class="alignright size-large wp-image-4896" /></a></p>

<p>You can put anything you want in the boxes, actually, which means you can do family pedigree charts that look like this:</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/03/pedigree3.png" rel="shadowbox[post-4894];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/pedigree3-570x355.png" alt="" title="Pedigree 3" width="570" height="355" class="alignright size-large wp-image-4897" /></a></p>

<p>Or you can make a chart listing each person&#8217;s occupation, or their age at death, or whatever else you want. It&#8217;s flexible.</p>

<p>Pedigree is still very much a work in progress &#8212; you can only do three-generation charts for now, and all pedigree charts are public to anyone who knows the URL, you need a Google Account to sign in, and the code isn&#8217;t very beautiful &#8212; but hey, it&#8217;s a start. :)</p>

<h3>Behind the scenes</h3>

<p>I took those <a href="http://bencrowder.net/sandbox/beyond/pedigree.html">table-based pedigree charts</a> I worked on a few years ago and wrote a Python program to automatically generate them, then expanded it into a Google App Engine app yesterday.</p>

<p>Interlude: Python is beautiful. PHP, not so much. I&#8217;ve been spoiled. Python is elegant and beautiful and a joy to code in. (Ditto for Ruby.)</p>

<p>Second interlude: I spent two days trying to get web.py working on my Bluehost server, with no luck. I ended up switching to Linode, but more on that in a later post.</p>

<p>Third interlude: Google App Engine is sweet. I&#8217;m liking it and plan to use it for some future projects.</p>

<p>So, the Pedigree code is open source (public domain, actually) and is on <a href="http://github.com/bencrowder/pedigree">Github</a>. If anyone wants to help out, feel free to tackle any of the <a href="http://github.com/bencrowder/pedigree/issues">issues</a> posted there. (I also feel compelled to add that the chart display algorithm isn&#8217;t particularly beautiful. I cringe when I see it, but it works.)</p>

<p>I do plan to extend it eventually to take JSON or XML input so you can automatically generate a pedigree from another program, rather than having to type it in manually. And I want to come up with a better manual input method. (The current one feels a little clunky.)</p>

<h3>Whither from here?</h3>

<p>I&#8217;ll continue designing Beyond, of course, but I&#8217;m also very intrigued by this idea of small, separate tools to get the job done &#8212; the Unix philosophy. We&#8217;ll see what else comes of that. (And who knows, maybe that&#8217;ll end up being the right way to build Beyond.)</p>
<img src="http://feeds.feedburner.com/~r/BenCrowder/~4/XSzm2jcX0Ms" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bencrowder.net/blog/2010/03/pedigree-chart-sharing/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://bencrowder.net/blog/2010/03/pedigree-chart-sharing/</feedburner:origLink></item>
		<item>
		<title>Beyond: architecture</title>
		<link>http://feedproxy.google.com/~r/BenCrowder/~3/xQ0OcI46RwE/</link>
		<comments>http://bencrowder.net/blog/2010/03/beyond-architecture/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 01:10:10 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Beyond]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Genealogy]]></category>

		<guid isPermaLink="false">http://bencrowder.net/?p=4886</guid>
		<description><![CDATA[Here's how I see the various parts of Beyond connecting together.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s how I see the various parts of Beyond connecting together:</p>

<p><img src="http://bencrowder.net/wp/wp-content/uploads/2010/03/schematic.png" alt="" title="Beyond architecture" width="397" height="683" class="alignright size-full wp-image-4889" /></p>

<p>So, the basic idea is that there&#8217;s a core library (beyond-core), a server (connecting to MySQL or SQLite), and a set of clients (connecting to the server via a web service, and each with their own local data store for offline work).</p>

<h3>Core library</h3>

<p>This&#8217;ll be the main workhorse, used by both the web service and the clients. I&#8217;m planning on writing it in Python, though I may end up porting it to Objective-C as well for the desktop and iPhone clients. We&#8217;ll see.</p>

<p>The core will manage the records, conflict resolution, and all of that. More details to come, of course.</p>

<h3>Data interface</h3>

<p>Also used by both the web service and the clients, this will be an in-between layer so I can keep the database stuff separate from the main logic. I&#8217;m hoping to make it relatively easy to plug in new data stores for those who want to extend Beyond; the only ones I&#8217;ll be working on will be MySQL (for the main server) and SQLite (for all the clients).</p>

<p>So, if someone wants to write a Beyond client that uses plain text files for the data, they&#8217;ll be able to. That&#8217;s what I&#8217;m aiming for.</p>

<h3>Web service</h3>

<p>I&#8217;m leaning towards using web.py for this and the web client. It&#8217;ll basically be a web-exposed API to the core library.</p>

<h3>Clients</h3>

<p>The clients will work on a local store (SQLite for most and HTML5 offline storage for the web client) and then periodically sync their changes with the web server.</p>

<p>Note: for brevity&#8217;s sake I&#8217;ve left off the data interface and pipes in the top part of the diagram.</p>

<h3>What&#8217;s next</h3>

<p>I&#8217;ll be writing a functional spec (use cases and stuff) and a technical spec (data model, web service API, etc.) and will post them to Google Docs as public read-only documents. I&#8217;ll also continue posting on here, of course.</p>

<p>Once I feel like the design is where it needs to be, then it&#8217;s coding time.</p>

<h3>Feedback</h3>

<p>I want feedback. Seriously. Let me know what you think (if you have an opinion, of course :)) about the architecture behind this, especially if you notice any flaws or ways to improve it.</p>

<h3>One last thing</h3>

<p>Confession: I&#8217;m seriously itching to start coding already. To scratch that itch, I&#8217;m going to write a smaller, minimalist web-based genealogy app on the side. More on that once it&#8217;s actually underway.</p>
<img src="http://feeds.feedburner.com/~r/BenCrowder/~4/xQ0OcI46RwE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bencrowder.net/blog/2010/03/beyond-architecture/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://bencrowder.net/blog/2010/03/beyond-architecture/</feedburner:origLink></item>
		<item>
		<title>On doing hard things</title>
		<link>http://feedproxy.google.com/~r/BenCrowder/~3/7C8IAr_-jX4/</link>
		<comments>http://bencrowder.net/blog/2010/02/on-doing-hard-things/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 18:21:08 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Beyond]]></category>
		<category><![CDATA[Creativity]]></category>
		<category><![CDATA[Getting Real]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://bencrowder.net/?p=4880</guid>
		<description><![CDATA[So, my last post was about how I'm going to write this genealogy app, right? Beyond, as it turns out, is a fairly difficult project.]]></description>
			<content:encoded><![CDATA[<p>So, my last post was about how I&#8217;m going to write this genealogy app, right? Beyond, as it turns out, is a fairly difficult project with lots of spiky hurdles and design challenges growling at me. A few days ago I was staring straight into the maw of this slavering beast, my eyes open to how hard it&#8217;s going to be to actually pull this off.</p>

<p>And I got scared. Overwhelmed. My next thought: &#8220;You know, I&#8217;ve abandoned this project before. Like, five times. I can abandon it again.&#8221;</p>

<p>But then (and thankfully there is a &#8220;but&#8221; here) as I was walking home later that day, I was visited by the first of three epiphanies. (Hmm, this is starting to sound a little like Dickens&#8217; <em>Christmas Carol.)</em></p>

<p><strong>Epiphany #1:</strong> Writing Beyond will be hard. Very. Hard.<br />
<strong>Corollary #1:</strong> It&#8217;s still worth it.</p>

<p>As usually happens in these cases, supporting evidence quickly rallied to my side.</p>

<p><strong>Exhibit A:</strong> After dinner, I was reading Seth Godin&#8217;s book <em>Small Is the New Big</em> and came across <a href="http://www.fastcompany.com/magazine/69/sgodin.html">an essay on hard work</a>. &#8220;It&#8217;s hard work to invent a new system, service, or process that&#8217;s remarkable,&#8221; he said, and it grabbed me by the collar and shook me, because that&#8217;s exactly what I&#8217;m trying to do with Beyond.</p>

<p><strong>Exhibit B:</strong> My friend <a href="http://everydayreading.blogspot.com/">Janssen</a> told me about an article on <a href="http://nymag.com/news/features/27840/">the perils of praising your children</a> &#8212; if you tell a child they&#8217;re smart, it actually inspires them (despires them?) to underachieve, whereas if you tell them they&#8217;re a hard worker, they do better. That&#8217;s the story of my life, folks. People told me I was smart, and as a result, whenever I ran into something that I couldn&#8217;t coast through easily, I gave up almost immediately. I put too much trust in innate talent (which may or may not have been there at all) and almost completely ignored effort. This is a recipe for failure. Edison was right: it&#8217;s 1% inspiration and 99% perspiration.</p>

<p>We now turn to the epiphany of Creativity Present. As a brief bit of backstory, I&#8217;m about 15,000 words into the first draft of <em>Tanglewood,</em> my young adult fantasy novel. Last week I decided to put it on hold so I could focus on writing short stories, because they&#8217;re shorter and thus easier (in my mind, anyway). Then on Wednesday I was walking home and had yet another epiphanic visit:</p>

<p><strong>Epiphany #2:</strong> Writing Tanglewood will be hard.<br />
<strong>Corollary #2:</strong> It&#8217;s still worth it.</p>

<p>I&#8217;m sensing a theme here. I decided that yes, writing a novel is something I really want to do, and jumping ship now isn&#8217;t going to help my goal. So I&#8217;m going to write short stories <em>after</em> I finish the book.</p>

<p>The third epiphany, tall and cloaked, came yesterday &#8212; also while I was walking home. (Seriously, my best thinking time is while walking home from work. And in the shower.) As you may have noticed, I&#8217;m an artist (with a very, very lowercase &#8216;a&#8217;). I like making art. But I&#8217;m not very good at drawing, particularly at drawing anything that remotely resembles a human. And I&#8217;ve been stuck at the same level for a very long time.</p>

<p><strong>Epiphany #3:</strong> Learning to draw will be hard.<br />
<strong>Corollary #3:</strong> It&#8217;s still worth it.</p>

<p>In retrospect this all sounds completely obvious, but dang, I&#8217;ve wasted a lot of time avoiding hard work &#8212; and I didn&#8217;t even realize I was doing it. I&#8217;ve been evading the hard stuff by doing easier things, or by telling myself that I wasn&#8217;t cut out for art or that I shouldn&#8217;t spend my time programming when I <em>really</em> should be spending my time doing x, y, or z.</p>

<p>Bzzt.</p>

<p><strong>Lesson Learned #1:</strong> Just because it&#8217;s hard doesn&#8217;t mean I shouldn&#8217;t do it.<br />
<strong>Lesson Learned #2:</strong> Worthwhile things take effort. Always.<br />
<strong>Lesson Learned #3:</strong> Recognizing that it&#8217;ll be hard somehow makes it easier.<br />
<strong>Lesson Learned #4:</strong> Doing things that stretch my skills is exhilarating.</p>

<p>So I&#8217;m going to forge onward with Beyond, keep writing <em>Tanglewood,</em> and practice drawing humans until they look real and not like hobgoblins with elephantitis.</p>

<p><small>And yes, I know I&#8217;m sort of bending the actual meaning of the word &#8220;corollary.&#8221; :)</small></p>
<img src="http://feeds.feedburner.com/~r/BenCrowder/~4/7C8IAr_-jX4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bencrowder.net/blog/2010/02/on-doing-hard-things/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://bencrowder.net/blog/2010/02/on-doing-hard-things/</feedburner:origLink></item>
		<item>
		<title>Beyond revived</title>
		<link>http://feedproxy.google.com/~r/BenCrowder/~3/8XqWeyeizuE/</link>
		<comments>http://bencrowder.net/blog/2010/02/beyond-revived/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 17:44:04 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Beyond]]></category>
		<category><![CDATA[Genealogy]]></category>

		<guid isPermaLink="false">http://bencrowder.net/?p=4871</guid>
		<description><![CDATA[Remember Beyond? (The genealogy app I was going to write.) A month or two ago I decided not to do it, but I've changed my mind. Again.]]></description>
			<content:encoded><![CDATA[<p><img src="http://bencrowder.net/wp/wp-content/uploads/2009/12/beyond_logo.jpg" alt="" title="Beyond" width="250" height="291" class="floater size-full wp-image-4274" /></p>

<p>Remember <a href="http://bencrowder.net/projects/beyond/">Beyond</a>? (The genealogy app I was going to write.) A month or two ago I decided not to do it, but I&#8217;ve changed my mind. Again. (Fifth time in four years. Sigh.) Anyway, this time it&#8217;s real. (I hope.)</p>

<h3>The goal</h3>

<p>Unearth the core set of features for genealogy software (the smallest set possible) and then do them really, really well. These are the principles I&#8217;m going for with Beyond:</p>

<ul>
<li>Simple</li>
<li>Fast</li>
<li>Beautiful</li>
<li>Minimal</li>
<li>Source-based</li>
<li>Open source (GitHub)</li>
<li>Central data store</li>
<li>Seamless synchronization</li>
<li>Multiple users</li>
<li>Easy import/export (GEDCOM, FamilySearch, etc.)</li>
</ul>

<p>Also, Beyond will <em>not</em> be chock-full of features. Only the most essential features will make it in. (That&#8217;s one of the huge problems I&#8217;ve seen with other genealogy apps out there &#8212; they try to do it all.)</p>

<h3>The plan</h3>

<p><strong>Web service.</strong> This will be the heart of Beyond, storing the genealogical data and providing access to it. The current plan is to write it in Python and use JSON for data transfer. I&#8217;m also looking into the possibility of using S3 for storage and Google App Engine for hosting, but that&#8217;s later on in the game. One nice advantage in going the web service route is that people can write clients for other OSes (Windows, Linux, Android, etc.).</p>

<p><strong>Command-line client.</strong> This&#8217;ll be a Unix-y client for geeks who love the terminal. I&#8217;m thinking something along the lines of the MySQL terminal client. It&#8217;ll play nicely with pipes, too, so you can use standard Unix tools (sort, grep, awk, etc.) to work with your data the way you want to. The command-line geek inside of me is giddy about this. Probably writing this in Python as well.</p>

<p><strong>Web client.</strong> A simple, minimalist web app, probably written in Python. I expect this client to be the one that I and my family will be using most often. (At least till I get the desktop client written.)</p>

<p><strong>Desktop Mac client.</strong> Written in Objective-C and Cocoa, this will sync seamlessly with the web service, but there&#8217;ll also be a standalone mode. This&#8217;ll be the &#8220;PAF for Mac&#8221; that people keep asking me about.</p>

<p><strong>iPhone client.</strong> My goal for this is to make it as seamless as Simplenote or Dropbox.</p>

<h3>Timeline</h3>

<p>No idea. The web service, command-line client, and web client will come along fastest, since I&#8217;ve mainly been focusing on web development for the past few years, but the desktop and iPhone clients hopefully won&#8217;t be too far behind.</p>

<p>Anyway, I&#8217;ll be blogging about all of this as I go along (starting soon with the design of the web service), so stay tuned.</p>
<img src="http://feeds.feedburner.com/~r/BenCrowder/~4/8XqWeyeizuE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bencrowder.net/blog/2010/02/beyond-revived/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://bencrowder.net/blog/2010/02/beyond-revived/</feedburner:origLink></item>
		<item>
		<title>My new filing system</title>
		<link>http://feedproxy.google.com/~r/BenCrowder/~3/68XCWZkx2rY/</link>
		<comments>http://bencrowder.net/blog/2010/02/my-new-filing-system/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 21:13:03 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://bencrowder.net/?p=4865</guid>
		<description><![CDATA[After years of living with a lame file organization scheme, I finally took a look at how I was working and revamped my system to match it.]]></description>
			<content:encoded><![CDATA[<p>After years of living with a lame file organization scheme, I finally took a look at how I was working and revamped my system to match it. This new system is bliss.</p>

<p>The main difference is a &#8220;current projects&#8221; folder, which I&#8217;m calling sandbox/ and which lives in my Dropbox folder. Everything I&#8217;m working on goes in there, one subfolder per project. When I finish a project, I move its folder to the archives.</p>

<p>As I mentioned in my <a href="http://bencrowder.net/blog/2010/01/my-minimalist-desktop/">minimalist desktop post</a>, I&#8217;ve cleaned off my desktop and switched to using an inbox/ folder, which lives in my home directory. All my downloads and other temp files (quick HTML prototypes, etc.) go there.</p>

<p>And finally, we have the archives, which are the standard Mac folders: Documents/, Pictures/, Movies/, and Music/. I&#8217;ve sorted Documents/ into general categories (Art/, Design/, Books/, Writing/, Receipts/, etc.) which contain finished projects/files.</p>

<p>That&#8217;s that. With the sandbox/ folder, I can see exactly what projects I&#8217;m working on at the moment and access those files no matter where I am. Oh, and did I mention the peace of mind of knowing that my current work is always backed up in a handful of different places? (My two computers, my external hard drives at both home and work, and the cloud. That&#8217;s five places. Mmm.)</p>
<img src="http://feeds.feedburner.com/~r/BenCrowder/~4/68XCWZkx2rY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bencrowder.net/blog/2010/02/my-new-filing-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bencrowder.net/blog/2010/02/my-new-filing-system/</feedburner:origLink></item>
		<item>
		<title>Forest Landing</title>
		<link>http://feedproxy.google.com/~r/BenCrowder/~3/HlQl2brGAQ4/</link>
		<comments>http://bencrowder.net/blog/2010/02/forest-landing/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 06:18:23 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Blender]]></category>

		<guid isPermaLink="false">http://bencrowder.net/?p=4848</guid>
		<description><![CDATA[Just finished another Blender-made sci-fi illustration. It's called "Forest Landing."]]></description>
			<content:encoded><![CDATA[<p>Just finished another Blender-made sci-fi illustration. It&#8217;s called &#8220;Forest Landing&#8221;:</p>

<p><a href="http://www.flickr.com/photos/crowderb/4369908068/"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/02/forest_landing_final-570x320.png" alt="" title="Forest Landing" width="570" height="320" class="size-large wp-image-4849" /></a></p>

<p>It started with a sketch in my Field Notes:</p>

<p><img src="http://bencrowder.net/wp/wp-content/uploads/2010/02/sketch.jpg" alt="" title="sketch" width="300" height="161" class="size-full wp-image-4850" /></p>

<p>This morning I came up with some ideas for the lighting and sketched out some quick concept art using Brushes on my iPhone:</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/02/painting.jpg" rel="shadowbox[post-4848];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/02/painting-300x200.jpg" alt="" title="painting" width="300" height="200" class="size-medium wp-image-4851" /></a></p>

<p>After I got home from work, I pulled open Blender and did initial composition/layout:</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/02/forest_landing01.png" rel="shadowbox[post-4848];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/02/forest_landing01-300x168.png" alt="" title="forest_landing01" width="300" height="168" class="size-medium wp-image-4852" /></a></p>

<p>Then I added some textures and tweaked the lighting to capture more of the mood I was going for:</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/02/forest_landing03.png" rel="shadowbox[post-4848];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/02/forest_landing03-300x168.png" alt="" title="forest_landing03" width="300" height="168" class="size-medium wp-image-4853" /></a></p>

<p>Next, I worked on the spaceship model (and fixed the grass):</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/02/forest_landing04.png" rel="shadowbox[post-4848];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/02/forest_landing04-300x168.png" alt="" title="forest_landing04" width="300" height="168" class="size-medium wp-image-4855" /></a></p>

<p>Tweaked the spaceship, got rid of the green light above, added a glowing green light inside and a rim light for the spaceship, and replaced the foreground placeholder foliage with the real thing:</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/02/forest_landing06.png" rel="shadowbox[post-4848];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/02/forest_landing06-300x168.png" alt="" title="forest_landing06" width="300" height="168" class="size-medium wp-image-4856" /></a></p>

<p>I tried using Blender&#8217;s depth of field (defocus node) to get the result I wanted with the foreground foliage, by the way, but it totally didn&#8217;t work, so I ended up getting some tree/leaf/branch brushes in Photoshop and painting the foliage onto a frame, running the lens blur filter on it, and then transparently sticking it on a foreground plane in Blender. Worked out fine.</p>

<p>Finally, I added more trees in the background, took the bubble off the ship (because of the weird yellow artifacts in the last image), and tweaked the foreground foliage a bit:</p>

<p><a href="http://bencrowder.net/wp/wp-content/uploads/2010/02/forest_landing07.png" rel="shadowbox[post-4848];player=img;"><img src="http://bencrowder.net/wp/wp-content/uploads/2010/02/forest_landing07-300x168.png" alt="" title="forest_landing07" width="300" height="168" class="alignnone size-medium wp-image-4857" /></a></p>

<p>I have to say, this artmaking thing is <em>so</em> fun. And Blender makes it really easy to get good results. I&#8217;m hooked. :)</p>
<img src="http://feeds.feedburner.com/~r/BenCrowder/~4/HlQl2brGAQ4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bencrowder.net/blog/2010/02/forest-landing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bencrowder.net/blog/2010/02/forest-landing/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.276 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-03-12 23:12:23 --><!-- Compression = gzip -->
