<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6955207</id><updated>2011-08-18T19:07:29.779-04:00</updated><category term='ruby'/><category term='couchdb'/><category term='openid'/><category term='beer'/><category term='podcast'/><category term='s3'/><category term='workflow'/><category term='s3fox'/><category term='ec2'/><category term='laconica'/><category term='beercation'/><category term='scifi'/><category term='perl'/><category term='burning wheel'/><category term='sematic web'/><category term='rightgrid'/><category term='starblazer adventures'/><category term='comic'/><category term='gencon2009'/><category term='open source'/><category term='api'/><category term='oscon09'/><category term='firefox'/><category term='rdf'/><category term='Gen Con'/><category term='rightscale'/><category term='rails'/><category term='drink'/><category term='sotc'/><category term='oauth'/><category term='traveller'/><category term='dnd'/><category term='aws'/><category term='PentaCon'/><category term='wave'/><category term='chef'/><category term='kids'/><category term='jets3t'/><category term='arduino'/><category term='linux'/><category term='pc project'/><category term='halo'/><category term='kegspy'/><category term='google maps'/><category term='mysql'/><category term='oscon'/><category term='diaspora'/><category term='cloud'/><category term='web services'/><category term='minis'/><category term='savage worlds'/><category term='Lego'/><category term='brewfest'/><category term='rest'/><category term='oscon08'/><category term='nerf'/><category term='android'/><category term='dread'/><category term='rpg'/><category term='twitter'/><category term='sinatra'/><category term='microsoft'/><category term='subversion'/><category term='full thrust'/><title type='text'>Braindump</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default?start-index=101&amp;max-results=100'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>235</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6955207.post-4906010349334512044</id><published>2010-06-21T12:53:00.001-04:00</published><updated>2010-06-21T12:55:28.318-04:00</updated><title type='text'>Ruby Stack Too Deep Error Generating Chef Metadata</title><content type='html'>If you get a "stack too deep" exception from the json gem when generating chef metadata (either rake metadata or knife cookbook metadata), you may need to roll back you json gem version to 1.4.2.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://lists.opscode.com/sympa/arc/chef-dev/2010-05/msg00000.html"&gt;this bug report&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-4906010349334512044?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/4906010349334512044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=4906010349334512044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4906010349334512044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4906010349334512044'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2010/06/ruby-stack-too-deep-error-generating.html' title='Ruby Stack Too Deep Error Generating Chef Metadata'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-9049505748356163621</id><published>2010-04-15T08:50:00.002-04:00</published><updated>2010-04-15T08:54:50.557-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='s3fox'/><title type='text'>Problems with S3Fox?</title><content type='html'>I've been using &lt;a href="http://www.s3fox.net/"&gt;S3Fox&lt;/a&gt; to access AWS S3 for quite a while now but recently I've had trouble with it. When I launch it from Tools | S3 Organizer, it fails with an "error connecting to server" message. Launching it in "dropbox mode" from the status bar works fine, though.&lt;br /&gt;&lt;br /&gt;I found &lt;a href="http://www.warriorforum.com/website-design/195860-s3-fox-crash-issue.html"&gt;this thread&lt;/a&gt; suggesting a workaround. Apparently you have to log out of your Google account before launching S3Fox. I don't know why this would cause problems, but it works for me.&lt;br /&gt;&lt;br /&gt;I'm using Firefox 3.6.2 and the most recent version of S3Fox on Windows 98&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-9049505748356163621?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/9049505748356163621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=9049505748356163621' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/9049505748356163621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/9049505748356163621'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2010/04/problems-with-s3fox.html' title='Problems with S3Fox?'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-2813391348512341900</id><published>2010-03-29T12:46:00.006-04:00</published><updated>2010-03-29T13:25:06.443-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='chef'/><title type='text'>More fun with Chef in the Cloud</title><content type='html'>I've been working with Chef on the RightScale platform for about six months now. I've written several cookbooks to stand up self-service applications for internal use at my company. I and my colleague think we know enough about how it works now to do it right.&lt;br /&gt;&lt;br /&gt;When we started out, RightScale hadn't yet released their chef infrastruture. So I started out by installing two chef servers: one in the public EC2 and one in our VPC. I used these to start writing and testing my cookbooks so that they'd be ready once RightScale released.&lt;br /&gt;&lt;br /&gt;Once RightScale did release, I shutdown my chef servers and forgot about them. But recently, we've been talking to Adam Jacob and his crew at Opscode and we want to see what a hybrid RightScale / Opscode environment would look like. That means going back to owning our own chef servers (and possibly later replacing them with the Opscode Platform).&lt;br /&gt;&lt;br /&gt;But Chef is moving pretty quickly. They've made a major release since I last had chef servers running in which they've changed the authentication system dramatically. Sadly, the CentOS RPM at ELFF hasn't caught up, so to take advantages of the new 0.8.x features, I had to install it myself.&lt;br /&gt;&lt;br /&gt;It hasn't been easy, so I'll post what I've done here in case someone else has the same problems I did. I'm using a custom AMI of CentOS 5.3 on Amazon's EC2 in our VPC, launched with RightScale&lt;br /&gt;&lt;br /&gt;First off, I followed the &lt;a href="http://wiki.opscode.com/display/chef/Preparing+Red+Hat+and+CentOS+5+for+RubyGems"&gt;directions at the Chef Wiki&lt;/a&gt; for preparing a CentOS host to be come a chef server. Next I followed the &lt;a href="http://wiki.opscode.com/display/chef/Bootstrap+Chef+RubyGems+Installation"&gt;directions for bootstrapping a server&lt;/a&gt;. The things that tripped me up were&lt;br /&gt;&lt;ul&gt;&lt;li&gt;RightScale runs their own AMQP service on their instances to manage communications with their infrastructure. You'll have to remove it, turn it off, or change the chef RabbitMQ port to something else. I just turned it off for this experiment. I don't know the implications of changing the chef RabbitMQ port.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Don't forget the final bit at the bottom of the first page that describes setting up the chef user, setting permissions on run diretories and starting the services for CentOS.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Be sure to use "init_style": "init" in your json file when bootstrapping.&lt;/li&gt;&lt;li&gt;Be sure to modify your init scripts to add -P $pidfile as in &lt;a href="http://tickets.opscode.com/browse/CHEF-1074"&gt;CHEF-1074&lt;/a&gt; so service stop/restart work properly.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Even after this I still had problems. Because I had re-run chef-solo a number of times, the default admin password in /etc/chef/server.rb had changed (though the one in the db had not). Lucky for me, chef backs up templated files so I was able to recover it. Once I had changed the admin account password, I got a 500 error from merb: "named route not found: new_nodes".&lt;br /&gt;&lt;br /&gt;Google found this &lt;a href="http://likens.us/logs/%23chef.03-23.log"&gt;IRC chat log&lt;/a&gt; (search for "BobFunk" and read on) which suggested I downgrade merb from 1.1.0 to 1.0.15 and that fixed the problem. Here are the commands to do that&lt;br /&gt;&lt;br /&gt;gem install merb-core merb-assets merb-haml merb-helpers merb-param-protection merb-slices -v=1.0.15&lt;br /&gt;gem uninstall -I merb-core merb-assets merb-haml merb-helpers merb-param-protection merb-slices -v=1.1.0&lt;br /&gt;&lt;br /&gt;So now I seem to have a working chef server once again. I just need to hide it behind an Apache proxy so I can serve it over SSL on port 443 (though I guess I'll need two secure ports, one for the webui and one for the api). Next I'll need to actually install my cookbooks and test them out on some new clients.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-2813391348512341900?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/2813391348512341900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=2813391348512341900' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2813391348512341900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2813391348512341900'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2010/03/more-fun-with-chef-in-cloud.html' title='More fun with Chef in the Cloud'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-4275295933403694542</id><published>2010-01-22T08:32:00.003-05:00</published><updated>2010-01-22T08:43:57.894-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dnd'/><title type='text'>Absentee Gamer Rules for 4th Edition D&amp;D</title><content type='html'>It's always tough to figure out what to do when a player can't make it to the game (or is coming, but will be late) but his character cannot be removed from the game without really stretching credibility. Many times, someone ends up running the absentee character as well as his own, which slows things down and makes it less fun. Sometimes you don't even have the absentee character's sheet, which makes this an impossible situation.&lt;br /&gt;&lt;br /&gt;So here's how I solved it last night. When a character is expected to be in a session, but the player cannot, the reset of the player characters gain the following Encounter Power:&lt;br /&gt;&lt;br /&gt;Encounter Power:&lt;br /&gt;Put a "Hell to Pay" token on the table and select one of the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Immediate interrupt (free action). Trigger: when you are hit by a melee or ranged attack. Effect: You don't take any damage.&lt;/li&gt;&lt;li&gt;Minor action: make a basic melee or basic ranged attack&lt;/li&gt;&lt;li&gt;Minor action: make a skill check in which the absentee character is trained. You are considered trained in this skill for this check only.&lt;/li&gt;&lt;li&gt;Minor action: One adjacent enemy grants combat advantage to you and all allies adjacent to the enemy.&lt;/li&gt;&lt;/ul&gt;When the absentee player returns to the game, all characters lose this power and the absentee character loses a healing surge for every "Hell to Pay" token on the table. If he has no more healing surges, he takes damage equal to one quarter his total hit points for every remaining tokens. Remove all "Hell to Pay" tokens from the table.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-4275295933403694542?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/4275295933403694542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=4275295933403694542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4275295933403694542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4275295933403694542'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2010/01/absentee-gamer-rules-for-4th-edition-d.html' title='Absentee Gamer Rules for 4th Edition D&amp;D'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-1471620822290860630</id><published>2010-01-06T22:07:00.003-05:00</published><updated>2010-01-06T22:12:56.609-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dnd'/><title type='text'>The Map to the Coterminous Bazaar</title><content type='html'>I haven't posted in a long time. Been busy I guess. Things like Facebook and Twitter kind of take the need to blog out of you. At any rate, here's a 4th Edition D&amp;amp;D ritual I made for my campaign. It allows the players to travel to an extra-dimensional marketplace where they can fence loot, shop for exotic items and get themselves into trouble. It's an idea I heisted from my previous 3rd Edition "Three Lakes" campaign.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;The Map of the Coterminous Bazaar&lt;/span&gt;&lt;br /&gt;You hold a large parchment bearing the map of a circular city on one side and an arcane ritual on the other. Each map has a unique ritual which drops the travelers to a specific location in the Coterminous Bazaar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Map Ritual&lt;/span&gt;&lt;br /&gt;Level: 8    Component Cost: 100 gp per traveler&lt;br /&gt;Category: Travel    Market Price: 1000 gp&lt;br /&gt;Time: 30 minutes    Duration: Instantaneous&lt;br /&gt;Key Skill: Arcana&lt;br /&gt;&lt;br /&gt;All creatures those touching the map (and the map itself) are instantly transported to the Coterminous Bazaar. The components are not actually arcane components but must be valuables equaling at least the cost described above. These are tribute to the ruler of the Bazaar. Upon arrival, each traveler loses a healing surge. You must succeed at a DC20 Arcana check to travel to the Bazaar.&lt;br /&gt;&lt;br /&gt;In order to return, you must perform this ritual again without the component cost but you must make an Arcana check to determine how much time has elapsed while you were visiting the Bazaar. You may pick a time ratio lower for a check result lower than the one you actually achieved.&lt;br /&gt;&lt;br /&gt;Arcana Check Result / Time Ratio (home : Bazaar)&lt;br /&gt;20 or lower / 2 : 1&lt;br /&gt;21-25 / 1 : 1&lt;br /&gt;26-30 / 1 : 2&lt;br /&gt;31-35 / 1 : 4&lt;br /&gt;35 or higher / no time elapses at home&lt;br /&gt;&lt;br /&gt;Focus: Each traveler must be holding the map.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-1471620822290860630?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/1471620822290860630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=1471620822290860630' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1471620822290860630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1471620822290860630'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2010/01/map-to-coterminous-bazaar.html' title='The Map to the Coterminous Bazaar'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8047359679525433603</id><published>2009-12-28T12:48:00.001-05:00</published><updated>2009-12-28T12:49:27.788-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dnd'/><title type='text'>Planet Algol</title><content type='html'>Check out this planetary romance take on D&amp;amp;D over at the &lt;a href="http://planetalgol.blogspot.com/"&gt;Planet Algol&lt;/a&gt; blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8047359679525433603?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8047359679525433603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8047359679525433603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8047359679525433603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8047359679525433603'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/12/planet-algol.html' title='Planet Algol'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-973017131277952126</id><published>2009-11-19T16:14:00.000-05:00</published><updated>2009-11-19T16:15:22.693-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Make perl modules easy to install automatically</title><content type='html'>Hey CPAN authors: please don't put prompts for yes/no questions in your installers! You are making it hard to install your modules with a script.&lt;br /&gt;&lt;br /&gt;I'm looking at you, BioPerl, you beast.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-973017131277952126?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/973017131277952126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=973017131277952126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/973017131277952126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/973017131277952126'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/11/make-perl-modules-easy-to-install.html' title='Make perl modules easy to install automatically'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-2324831384795317498</id><published>2009-11-17T12:49:00.006-05:00</published><updated>2009-11-19T16:17:29.364-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><title type='text'>Year of the Cloud</title><content type='html'>This has been the year of the cloud for me. I've spent almost all year learning the ins and outs of cloud computing, specifically Amazon Web Services. I've learned a lot about security, vpn, dns, linux administration, automated configuration management, ssh, encryption and a whole host of other things to get a self-serve portal off the ground.&lt;br /&gt;&lt;br /&gt;Here's just a list of the things I've done:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Written and delivered enterprise use cases to Rightscale.com&lt;/li&gt;&lt;li&gt;Used elasticfox firefox plugin on a daily basis&lt;/li&gt;&lt;li&gt;Set up a chef infrastructure to configure instances in both ec2 and the vpc&lt;/li&gt;&lt;li&gt;Built canned application stacks pre-configured for various uses (LAMP development, collaboration, scientific analysis)&lt;/li&gt;&lt;li&gt;Started to learn the condor scheduling system&lt;/li&gt;&lt;li&gt;Set up encrypted file systems with encfs to protect sensitive data once an instance is terminated&lt;/li&gt;&lt;li&gt;Built a vending machine computing demo using bitnami.org stacks&lt;/li&gt;&lt;li&gt;Spoken internally and externally about cloud computing as it applies to application development&lt;/li&gt;&lt;li&gt;Set up S3 backups of my home iPhoto library&lt;/li&gt;&lt;li&gt;Matured as a ruby developer (3 years experience now)&lt;/li&gt;&lt;li&gt;Moved an enterprise app to an Amazon VPC ec2 instance and automated its deployment&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;All this has been a great chance to solidify my linux administration skills, though I still consider myself a developer first and a sysadmin second.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-2324831384795317498?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/2324831384795317498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=2324831384795317498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2324831384795317498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2324831384795317498'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/11/year-of-cloud.html' title='Year of the Cloud'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-3257095863064733491</id><published>2009-11-12T08:34:00.002-05:00</published><updated>2009-11-12T08:38:33.466-05:00</updated><title type='text'>Today</title><content type='html'>&lt;ol&gt;&lt;li&gt;Coffee&lt;/li&gt;&lt;li&gt;ElasticFox&lt;/li&gt;&lt;li&gt;Start instances in vpc and public ec2&lt;/li&gt;&lt;li&gt;Install, config and test chef-server and chef-client in vpc and public ec2&lt;/li&gt;&lt;li&gt;Go to annoying meeting&lt;/li&gt;&lt;li&gt;Build cookbooks for encrypting mysql filesystem with encfs&lt;/li&gt;&lt;li&gt;Beer at Scotty's&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-3257095863064733491?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/3257095863064733491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=3257095863064733491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3257095863064733491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3257095863064733491'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/11/today.html' title='Today'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-3853900700134516538</id><published>2009-11-06T12:42:00.003-05:00</published><updated>2009-11-06T12:45:29.228-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chef'/><title type='text'>Chef Rocks</title><content type='html'>Ok, &lt;a href="http://wiki.opscode.com/display/chef/Home"&gt;Chef&lt;/a&gt; pretty much rocks. Hats off to Opscode. I've been messing around with chef, using it to configure Amazon EC2 instances running in the VPC.&lt;br /&gt;&lt;br /&gt;I haven't written my own cookbooks yet, but I'm about to. Turns out the boys at Opscode have &lt;a href="http://github.com/opscode/cookbooks/"&gt;written&lt;/a&gt; most of what I need already.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-3853900700134516538?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/3853900700134516538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=3853900700134516538' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3853900700134516538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3853900700134516538'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/11/chef-rocks.html' title='Chef Rocks'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-3288240865934450026</id><published>2009-11-01T08:48:00.001-05:00</published><updated>2009-11-01T08:50:18.304-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Which Android Phone?</title><content type='html'>Looks like I'm not the only one &lt;a href="http://www.google.com/search?q=htc+hero+samsung+moment&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a"&gt;torn between the HTC Hero and the Samsung Moment&lt;/a&gt; Sprint Android phones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-3288240865934450026?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/3288240865934450026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=3288240865934450026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3288240865934450026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3288240865934450026'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/11/which-android-phone.html' title='Which Android Phone?'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-2527853638671128807</id><published>2009-10-29T14:38:00.005-04:00</published><updated>2009-10-29T14:51:02.840-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openid'/><category scheme='http://www.blogger.com/atom/ns#' term='chef'/><title type='text'>Chef Server behind a proxy</title><content type='html'>I'm trying to stand up a Chef server behind our corporate firewall (actually on a Amazon EC2 instance running in the VPC). Setting the http_proxy variable is clearly necessary for yum but there are other gotchas.&lt;br /&gt;&lt;br /&gt;First, rpm doesn't obey $http_proxy. This is freaking annoying. So you have to use the --httpproxy and --httpport options.&lt;br /&gt;&lt;br /&gt;But the big one is that chef uses OpenID to authenticate users logging into the chef server web UI. The chef web app tries to contact my OpenID provider but it can't reach it through the proxy. Luckily, the ruby OpenID library makes it easy to use an http_proxy. Just add these two lines to the init.rb file of the chef server merb app in the Merb::BootLoader.after_app_loads block.&lt;br /&gt;&lt;br /&gt;/usr/lib/ruby/gems/1.8/gems/chef-server-0.7.10/config/init.rb:&lt;br /&gt;&lt;br /&gt;&lt;div class="mycode"&gt;&lt;br /&gt;Merb::BootLoader.after_app_loads do&lt;br /&gt;  # This will get executed after your app's classes have been loaded.&lt;br /&gt;  OpenID::Util.logger = Merb.logger&lt;br /&gt;  ENV['http_proxy'] = 'http://yourproxy.com:port' # &lt;- set your http_proxy env var&lt;br /&gt;  OpenID.fetcher_use_env_http_proxy                    # &lt;- tell OpenID to use http_proxy&lt;br /&gt;end&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-2527853638671128807?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/2527853638671128807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=2527853638671128807' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2527853638671128807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2527853638671128807'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/10/chef-server-behind-proxy.html' title='Chef Server behind a proxy'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-819351673175349868</id><published>2009-10-28T10:38:00.002-04:00</published><updated>2009-10-28T10:40:07.987-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>A request to all open source projects</title><content type='html'>Dear Open Source Projects,&lt;br /&gt;&lt;br /&gt;If you'd like your project to be used by enterprise shops, please, please, please make it easy to set an http proxy for all of your web calls. Do not always assume that your code will have free access to the internet.&lt;br /&gt;&lt;br /&gt;That is all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-819351673175349868?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/819351673175349868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=819351673175349868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/819351673175349868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/819351673175349868'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/10/request-to-all-open-source-projects.html' title='A request to all open source projects'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5374350844163764553</id><published>2009-10-01T09:57:00.002-04:00</published><updated>2009-10-01T09:58:26.628-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Google Wave -- I got an Invite!</title><content type='html'>I got an invitation to &lt;a href="http://wave.google.com"&gt;Google Wave&lt;/a&gt; this morning! Did you get one? Want to be my wave buddy?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5374350844163764553?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5374350844163764553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5374350844163764553' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5374350844163764553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5374350844163764553'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/10/google-wave-i-got-invite.html' title='Google Wave -- I got an Invite!'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-219862900981301521</id><published>2009-09-16T10:31:00.002-04:00</published><updated>2009-09-16T10:31:59.110-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><title type='text'>Subversion</title><content type='html'>Subversion is largely a communication tool and cannot fix a broken team dynamic.&lt;br /&gt;&lt;br /&gt;That is all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-219862900981301521?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/219862900981301521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=219862900981301521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/219862900981301521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/219862900981301521'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/09/subversion.html' title='Subversion'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-892682666452929449</id><published>2009-08-30T14:59:00.004-04:00</published><updated>2009-11-19T16:41:28.724-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><category scheme='http://www.blogger.com/atom/ns#' term='diaspora'/><title type='text'>Diaspora: New school take on an old school game</title><content type='html'>My first game purchase of Gencon wasn't even at the show. I bought &lt;a href="http://www.phreeow.net/wiki/tiki-index.php?page=Diaspora"&gt;Diaspora&lt;/a&gt; from &lt;a href="http://www.lulu.com/content/hardcover-book/diaspora/7388640"&gt;lulu.com&lt;/a&gt; the Tuesday before the con even started and I didn't get it until the week after. Over the last couple of weeks I've been reading it through and it's a wonderful game.&lt;br /&gt;&lt;br /&gt;Diaspora is the result of a typical game group hacking one of their new favorite games to play one of their old favorites. After playing Spirit of the Century, they decided to use those rules to play Traveller. But as they made changes, they realized they were making a completely new game, one other gamers would want to play.&lt;br /&gt;&lt;br /&gt;I've been following their work on their wiki and once I found out they were going to publish it, I was sure I would buy a copy. They've taken the fun things from Traveller (character, sector, starship generation) and updated them for the FATE system. They've even made those activities playable in less than a single game session. We are all older, we have families and other hobbies. We don't have the time we had in our youth. So I love games that have crunch, but have low preparation and quick play times.&lt;br /&gt;&lt;br /&gt;Another thing I like about this game is the book itself. It's attractive. And it's just the right size for stashing in a backpack or even carrying in the hand. I'm really getting tired of the huge dictionary-sized game books that seem to be all the rage. I had to lug Starblazer Adventures around one day at Gencon and that thing is heavy!&lt;br /&gt;&lt;br /&gt;As much as I like Starblazer Adventures, I like Diaspora better. Where SA tries to lay out every rule you'd need to play anything, Diaspora leaves alot to the group's imagination. SA also suffers from the only thing I really don't like about Spirit of the Century: the Stunt system. While the skills and aspects are very easy to use in play, the stunts have you flipping pages all the time to figure out how they work. Picking stunts is the slowest part of character creation, especially when you only have one book for the group. But in Diaspora, there are only several categories of stunts (which may be customized). This really speeds up play and saves a lot of space in the book.&lt;br /&gt;&lt;br /&gt;But probably the best thing about Diaspora is a good balance of boardgame with story game. Like its ancestor, Spirit of the Century, it's a story game. But there are several minigames that feel more like old school boardgame features: social combat, platoon combat and space combat all play like those sections of old games like Star Frontiers: Knight Hawks or Spacemaster Star Strike but without the complexity. These minigames mesh nicely with your regular RPG campaign or can be played out of context by themselves.&lt;br /&gt;&lt;br /&gt;The only knock I have on the game is that it's kind of expensive. It would be nice to have a softcover option. But honestly I think I'm happier with the hardback version.&lt;br /&gt;&lt;br /&gt;So if you like hard sci-fi gaming. If you are a fan of Traveller but want something a little more modern, then check out Diaspora.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-892682666452929449?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/892682666452929449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=892682666452929449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/892682666452929449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/892682666452929449'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/08/disapora-new-school-take-on-old-school.html' title='Diaspora: New school take on an old school game'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-461686337459563258</id><published>2009-08-07T08:46:00.003-04:00</published><updated>2009-08-07T09:26:29.681-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gencon2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Gen Con'/><title type='text'>Gencon 09 Watchlist</title><content type='html'>Gencon is less than a week away! Here are the things I'll be looking out for:&lt;br /&gt;&lt;a href="http://eclipsephase.com/"&gt;&lt;br /&gt;Eclipse Phase&lt;/a&gt; -- Transhumanist RPG. I was intrigued by the teasers they had for this last year so I'll have to check it out. I wonder if it can do &lt;a href="http://www.amazon.com/s/ref=nb_ss_gw_2_3?url=search-alias%3Daps&amp;amp;field-keywords=iain+m+banks&amp;amp;x=0&amp;amp;y=0&amp;amp;sprefix=iai"&gt;Iain M. Banks' Culture&lt;/a&gt;, &lt;a href="http://www.amazon.com/s/ref=nb_ss_gw_0_13?url=search-alias%3Daps&amp;amp;field-keywords=richard+k+morgan&amp;amp;x=0&amp;amp;y=0&amp;amp;sprefix=richard+k+mor"&gt;Richard K. Morgan's Kovacs&lt;/a&gt; novels or even &lt;a href="http://www.amazon.com/s/ref=nb_ss_gw_1_9?url=search-alias%3Daps&amp;amp;field-keywords=john+c+wright+golden+age&amp;amp;x=0&amp;amp;y=0&amp;amp;sprefix=john+c+wr"&gt;John C. Wright's Golden Age&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;Do -- Check out &lt;a href="http://story-games.com/forums/"&gt;StoryGames.com&lt;/a&gt; or &lt;a href="http://www.evilhat.com/home/?page_id=111"&gt;EvilHat.com's blog&lt;/a&gt;. This is a story game inspired by Avatar: The Last Airbender and looks like it will have some amazing art. And it uses Go pieces! I doubt this will be out yet, but it's worth a look.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dog-eared-designs.com/vanguard/"&gt;Vanguard &lt;/a&gt;-- This started out as Galactic (I've been seeing references to it on various message boards for a year now), a sci-fi story game by the same guy who did Primetime Adventures. There's a free playtest pdf out and I hope to get an ashcan hardcopy next week.&lt;br /&gt;&lt;br /&gt;Action Castle -- I have no idea what this is, but the &lt;a href="http://www.story-games.com/forums/comments.php?DiscussionID=9992&amp;amp;page=1#Comment_222233"&gt;logo on StoryGames.com&lt;/a&gt; is pretty cool. EDIT: looks like this is based on the &lt;a href="http://www.memento-mori.com/other/games/parsley.html"&gt;Parsely game&lt;/a&gt; where you play an rpg in the same way you would Zork.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.peginc.com/"&gt;Weird War II&lt;/a&gt; -- This is the Savage Worlds version of the old d20 Weird War II. There were some great playtest posts on the Pinnacle message boards which have been removed that really got me jazzed about this game. I'll definitely pick it up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-461686337459563258?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/461686337459563258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=461686337459563258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/461686337459563258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/461686337459563258'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/08/gencon-09-watchlist.html' title='Gencon 09 Watchlist'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5123377612816762501</id><published>2009-08-01T22:46:00.004-04:00</published><updated>2009-08-01T22:55:19.077-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gencon2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Gen Con'/><title type='text'>Savage World Stormtroopers</title><content type='html'>I've been putting the finishing touches on my Gencon games. The other day on the bus home I thought up a few ways to make my &lt;a href="http://chrischalfant.blogspot.com/2009/02/troops-tatooine.html"&gt;Troops game&lt;/a&gt; a little more interesting: Stormtrooper Edges and Hindrances.&lt;br /&gt;&lt;br /&gt;Here's what I have so far. Simple but fun, I think. The cross-training one is nice because it lets me be lazy in creating the player characters. They will all have the same stats and can differentiate themselves during play.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Hindrances&lt;/span&gt; (each player character will have these)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Stormtrooper Blaster Training&lt;/b&gt;: Any time you hit with a blaster, the GM may give you a benny to turn the hit into a miss.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Move Along&lt;/b&gt;: You automatically fail Spirit rolls made to resist the Jedi Mind Trick.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Edges&lt;/span&gt; (the first is for everyone, the second only the squad sergeant)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Stormtrooper Cross-training&lt;/b&gt;: You may spend a benny to gain one skill at d8 that you don't already have. You may not pick a skill that another player has already picked using this edge. You may only use this edge once during the session.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;TIE Bomber Air Strike&lt;/b&gt;: Spend a benny and an action to call in an air strike. Place the large blast template anywhere on the battlefield. All targets within the template take xdy damage. This damage counts as a Heavy Weapon. You may only use this edge once during the session.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5123377612816762501?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5123377612816762501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5123377612816762501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5123377612816762501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5123377612816762501'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/08/savage-world-stormtroopers.html' title='Savage World Stormtroopers'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-9039254235536693911</id><published>2009-07-31T08:50:00.004-04:00</published><updated>2009-07-31T08:56:05.983-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><category scheme='http://www.blogger.com/atom/ns#' term='gencon2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Gen Con'/><title type='text'>The Ram Announces its Gencon Brew</title><content type='html'>According to &lt;a href="http://community.gencon.com/forums/t/20800.aspx?PageIndex=4"&gt;a post&lt;/a&gt; on Gencon's forum, the Ram has brewed a honey brown this year called Sweet Retribution. You can also find information in that thread about ordering &lt;a href="http://egrandstand.com/grandstand/product/proof-20814.html"&gt;t-shirts&lt;/a&gt; and mugs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-9039254235536693911?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/9039254235536693911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=9039254235536693911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/9039254235536693911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/9039254235536693911'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/07/ram-announces-its-gencon-brew.html' title='The Ram Announces its Gencon Brew'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8566089348916192326</id><published>2009-07-30T14:30:00.001-04:00</published><updated>2009-07-30T14:42:08.826-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon09'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>OSCON Friday Sessions</title><content type='html'>&lt;u&gt;&lt;b&gt;Friday Sessions&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;The Freedom to Cure Cancer: Open Source Software in Genomics&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/7985" href="http://en.oreilly.com/oscon2009/public/schedule/detail/7985" id="pzcf"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/7985&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've been waiting for this talk for a while. From &lt;a title="WASHU Genome Center" href="http://genome.wustl.edu/" id="rjmc"&gt;WASHU Genome Center&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Building a tricorder. Examples: blood pressure, temperature, but what about cancer? Studying AML (leukemia). Standard of care hasn't changed much in 20 years. Half of this talk is going to be molecular biology and cancer biology 101. Ok more than half.&lt;br /&gt;&lt;br /&gt;The &lt;a title="Cancer Genome Atlas" href="http://genome.wustl.edu/projects/the_cancer_genome_atlas" id="n29h"&gt;Cancer Genome Atlas&lt;/a&gt;: tumor sequencing project.&lt;br /&gt;&lt;br /&gt;Four illumina genome analyzers can do a genome in 9 days. Using ubuntu lts, some redhat &amp;amp; oracle. some mysql and postgresql, platform lsf, hp polyserve for clustered file system, mostly perl.&lt;br /&gt;&lt;br /&gt;I had hoped for more architecture, algorithms. This talk was pretty much a waste for me.&lt;br /&gt;&lt;br /&gt;Oh wait, they are working on &lt;a title="open science grid" href="http://www.opensciencegrid.org/" id="fbor"&gt;open science grid&lt;/a&gt;, using &lt;a title="boinc" href="http://boinc.berkeley.edu/" id="fkl5"&gt;boinc&lt;/a&gt; and &lt;a title="aws" href="http://aws.amazon.com/" id="vfn:"&gt;aws&lt;/a&gt;. 3PB, 3000 cores, 4000 perl mods.&lt;br /&gt;&lt;br /&gt;&lt;a title="UR" href="http://search.cpan.org/%7Esakoht/UR-v0.10/lib/UR.pm" id="rk_9"&gt;UR&lt;/a&gt;: perl orm framework. Mentioned &lt;a title="circos" href="http://mkweb.bcgsc.ca/circos/" id="dbbp"&gt;circos&lt;/a&gt; graphs. Sequencing 150 cancer patients in one year. Less than $50k/patient ($25k/genome).&lt;br /&gt;&lt;br /&gt;References to free, os cancer tools.&lt;br /&gt;&lt;br /&gt;38 x 5 TB / week&lt;br /&gt;&lt;br /&gt;NCBI short read archive. In danger of becoming a write only database. Need a better way to share this data.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Automating the Cloud with Chef&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/9257" href="http://en.oreilly.com/oscon2009/public/schedule/detail/9257" id="e8om"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/9257&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Adam Jacob CTO of &lt;a title="opscode" href="http://www.opscode.com/" id="bmsj"&gt;opscode&lt;/a&gt;. Wrote much of chef. This will be an overview of &lt;a title="chef" href="http://wiki.opscode.com/display/chef/Home" id="ug1n"&gt;chef&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Devs are now in charge of provisioning. The infrastructure is the application and vice versa. Devs are not sysadmins. So you need tools that look like dev tools.&lt;br /&gt;&lt;br /&gt;The cloud makes sysadmins even more important than before. Why can't our guys see that?&lt;br /&gt;&lt;br /&gt;The method in three parts: 1) bootstrapping 2) configuration 3) command &amp;amp; control (&lt;a title="controltier" href="http://www.controltier.com/" id="stls"&gt;controltier&lt;/a&gt;, &lt;a title="capistrano" href="http://www.capify.org/index.php/Capistrano" id="ugs1"&gt;capistrano&lt;/a&gt;, &lt;a title="nanite" href="http://github.com/ezmobius/nanite/tree/master/" id="l8.s"&gt;nanite&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;EC2 Best Practices (almost everyone in the room has used ec2). Have one AMI w/ just enough os. Use pre-existing but rebundle with config and c&amp;amp;c. For speed, you may want to rebundle AMIs for specific roles to save time on installation. Shut off fsck!&lt;br /&gt;&lt;br /&gt;Instances: c1.medium is the best bang for your buck. Use userdata to inform config. Support indexed userdata to launch more than one at a time.&lt;br /&gt;&lt;br /&gt;Chef is a library for config management. Also a config management system. Also systems integration platform. Becomes an API to your entire infrastructure.&lt;br /&gt;&lt;br /&gt;Principles: 1) Idempotent 2) reasonability (you can understand your whole infra) 3) sane defaults easily changed 4) hackability 5) &lt;a title="TMTOWTDI" href="http://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it" id="mww3"&gt;TMTOWTDI&lt;/a&gt;&lt;br /&gt;Manage config as idempotent resources, put them together in recipes, track recipes like source code.&lt;br /&gt;&lt;br /&gt;Nanite (from engine yard): a self assembling cluster of ruby daemons. Uses AMQP (&lt;a title="rabbitMQ" href="http://www.rabbitmq.com/" id="wria"&gt;rabbitMQ&lt;/a&gt;) for a message bus. Actors request services.&lt;br /&gt;&lt;br /&gt;Web apps should only use ephemeral storage, use shared session state storage in either cookies or memcached, file uploads belong in s3.&lt;br /&gt;&lt;br /&gt;Databases: keep everything on ebs, snapshot frequently, keep a rolling backlog of snapshots, register db w/ chef in ways that are easily discoverable (keep masters/slaves separate). Maintenance, migrations and analytics can all be automated in c&amp;amp;c layer. Mysql: always have a slave.&lt;br /&gt;&lt;br /&gt;Monitoring and trending must be integrated with c&amp;amp;c. If you can't use monitoring with an api, get a different system. Make sure you monitor internally (in ec2) and externally (outside of ec2). &lt;a title="Nagios" href="http://www.nagios.org/" id="mhpn"&gt;Nagios&lt;/a&gt;: do all that crazy config you have been avoiding. Nagios is easy to automate.&lt;br /&gt;&lt;br /&gt;reference to &lt;a title="theo scholossnagle talk on web load spikes" href="http://lethargy.org/%7Ejesus/archives/118-Dissecting-todays-Internet-traffic-spikes.html" id="u.2o"&gt;theo scholossnagle talk on web load spikes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Load usually increases faster than you can provision new servers, even on ec2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8566089348916192326?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8566089348916192326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8566089348916192326' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8566089348916192326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8566089348916192326'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/07/oscon-friday-sessions.html' title='OSCON Friday Sessions'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-352697399373709112</id><published>2009-07-30T14:28:00.000-04:00</published><updated>2009-07-30T14:29:10.503-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon09'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>OSCON Thursday Sessions</title><content type='html'>&lt;b&gt;&lt;br /&gt;&lt;u&gt;Thursday Sessions&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;There Are No Unicorns: And Other Lessons Learned Running an Innovation Team&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/7920" href="http://en.oreilly.com/oscon2009/public/schedule/detail/7920" id="fnim"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/7920&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;How an innovation team got setup and shutdown. He was a systems scientist at eBay.&lt;br /&gt;&lt;br /&gt;2006-2008 RIP innovation team. 3 guys started in the team. Other two guys left to start companies. Then just him and another guy. Disruptive innovation/evangelism team. Team grew to six. They gave talks, did special projects, ran innovation contests. Their best work wasn't their most successful work. They weren't very successful in general. But they did work on Adobe air, iphone app, facebook using lamp, wordpress, etc. only one project is still funded--the iphone app. In late 2007 their executive patron left. So their people started getting loaned out and their engineers were being pulled off to work on other projects.&lt;br /&gt;&lt;br /&gt;What went wrong? A group of smart people is not a balanced team. They had no experience managing. The team had no mandate (only "do some cool stuff"). They couldn't agree on what was "cool". Most ideas had no clear path to action (money).&lt;br /&gt;&lt;br /&gt;His theory: &lt;b&gt;the will&lt;/b&gt; (passion to achieve and desire to continue including management), &lt;b&gt;the way&lt;/b&gt; (everything you need to make it happen) and &lt;b&gt;the metric&lt;/b&gt; (how do you measure success?)&lt;br /&gt;&lt;br /&gt;As a contributor ask about the will and the metric. As a leader, ask about the way. The will needs to be justified in budget meetings. &lt;i&gt;Dont take high-profile projects from low-ranking managers&lt;/i&gt;. Amen brother.&lt;br /&gt;&lt;br /&gt;Lots of talk about company culture and learning what works. Innovation on a team scale is treating the symptom not the illness. Lack of innovation is systemic. Its company culture. You really need to change the culture which cannot be done at a team level. Change has to come from the very top. So this becomes much more about influencing, not programming!&lt;br /&gt;&lt;br /&gt;two main strategies: &lt;b&gt;faith&lt;/b&gt; or &lt;b&gt;proof&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Faith: find the right exec, convince them (top down)&lt;br /&gt;Proof: find free time, build something cool, track why its good, convince a skip level manager that its good. (grassroots)&lt;br /&gt;&lt;br /&gt;Top down almost always comes from a new leader with help from external team. It requires changing culture which is hard from within.&lt;br /&gt;&lt;br /&gt;eBay has a successful internal innovation contest. Projects that are hacked on people's own time.&lt;br /&gt;&lt;br /&gt;Contest: Functional demos of stuff done on your own time. Big day for presenters. People's choice to narrow down to things the execs look at. Some teams submit bounties (I need a solution to do X). This is done as a big one-day event with lunch, tents outside, etc.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Untestable Code&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/7529" href="http://en.oreilly.com/oscon2009/public/schedule/detail/7529" id="ye.:"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/7529&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Guy who wrote &lt;a title="PHPUnit" href="http://www.phpunit.de/" id="yr3a"&gt;PHPUnit&lt;/a&gt;. Recommends refactoring legacy code to make it easier to test. The secret to testing is in writing testable code. So what makes code untestable?&lt;br /&gt;&lt;br /&gt;Methods which can't be mocked, writing long methods, making things private, putting too much logic in constructors.&lt;br /&gt;&lt;br /&gt;This talk is very php-centered.&lt;br /&gt;&lt;br /&gt;He says someone writing a 2nd edition pattern book suggested removing Singleton all-together because it makes it hard to test.&lt;br /&gt;&lt;br /&gt;Dependency on persistent data is bad. Also dependency on distributed data (like from memcached)&lt;br /&gt;&lt;br /&gt;Talked about global variables in PHP. The more I hear about php the more amazed I am that it's so popular. Maybe this is how java people used to feel about perl!&lt;br /&gt;&lt;br /&gt;I've seen all of this stuff before, I'm gonna bail and go get lunch early.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Secured Enterprise with OpenID&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/10436" href="http://en.oreilly.com/oscon2009/public/schedule/detail/10436" id="quf0"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/10436&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This guy is from &lt;a title="WSO2" href="http://wso2.com/" id="n87l"&gt;WSO2&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;HTTPS is good, but is it good enough? Limitations: message is only secured while it's traveling on the channel. Only works w/ HTTP.&lt;br /&gt;Alternative: message level security. Encrypt entire message. Can leave other parts in plaintext. Transport independent.&lt;br /&gt;&lt;br /&gt;These guys suggest message level security, but this talk doesn't give a compelling reason why.&lt;br /&gt;&lt;br /&gt;Confidentiality, Integrity and Authentication. How to do all this and still interoperate? &lt;a title="WS-SECURITY" href="http://en.wikipedia.org/wiki/WS-Security" id="ptca"&gt;WS-SECURITY&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Authentication: UserNameToken part of SOAP header.&lt;br /&gt;Confidentiality: &lt;a title="XML Encryption" href="http://www.w3.org/TR/xmlenc-core/" id="srhf"&gt;XML Encryption&lt;/a&gt; (shared key or key wrapping). Shared key: client and server need keys ahead of time. Key Wrapping, key is generated from the service's certificate.&lt;br /&gt;Integrity: &lt;a title="XML Signature" href="http://www.w3.org/TR/xmldsig-core/" id="t2o6"&gt;XML Signature&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Internal users this is ok (I don't agree), but what about external users? If we can trust the partner company, we can trust all of its users. Use &lt;a title="WS-TRUST" href="http://docs.oasis-open.org/ws-sx/ws-trust/200512/ws-trust-1.3-os.html" id="v31f"&gt;WS-TRUST&lt;/a&gt; for this (using SAML). This stuff looks just like the PING service we already have. But we don't have an internal secure token server for our own users.&lt;br /&gt;&lt;br /&gt;Some talk about design and run-time governance. I'm guessing WSO2 has a product that does this. Yep, &lt;a title="here it is" href="http://wso2.com/products/govern/" id="t_2b"&gt;here it is&lt;/a&gt;. It is available on their site as open source, though. They have a way to track services through their lifecycle.&lt;br /&gt;&lt;br /&gt;They use Message Gateway Interceptor Pattern (&lt;a title="Apache AXIS2" href="http://ws.apache.org/axis2/" id="p6fq"&gt;Apache AXIS2&lt;/a&gt; under the hood). Lots of reference to Java here, I hope it isn't totally java-centric.&lt;br /&gt;&lt;br /&gt;Oh he just said Enterprise Service Bus: drink! Their ESB authenticates internal users via LDAP.&lt;br /&gt;&lt;br /&gt;That's all on the backend, so now he's talking about using &lt;a title="OpenID" href="http://openid.net/" id="f..t"&gt;OpenID&lt;/a&gt; to access web frontend. Oh this is new to me, &lt;a title="infomation card" href="http://en.wikipedia.org/wiki/Information_Card" id="wb8i"&gt;infomation card&lt;/a&gt;. Is this a WS-SECURITY thing? Or WSO2 thing?&lt;br /&gt;&lt;br /&gt;So this is all great, but how can you secure REST services in an interoperable way? I asked and he just said HTTPS. Figures.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How to Become a RESTafarian WOArrior&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/10340" href="http://en.oreilly.com/oscon2009/public/schedule/detail/10340" id="f1mh"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/10340&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a guy from &lt;a title="Mindtouch" href="http://www.mindtouch.com/" id="ym_i"&gt;Mindtouch&lt;/a&gt;. They have a freaky rabbit costume guy walking the vendor hall. This should be a nice shift from the last presentation that was too SOAPy.&lt;br /&gt;&lt;br /&gt;Web Oriented Arch: &lt;a title="REST" href="http://en.wikipedia.org/wiki/REST" id="p7jn"&gt;REST&lt;/a&gt; + WWW. Basic intro to REST. &lt;a title="WOA" href="http://en.wikipedia.org/wiki/Web_Oriented_Architecture" id="u9zc"&gt;WOA&lt;/a&gt; enables &lt;a title="RAD" href="http://en.wikipedia.org/wiki/Rapid_application_development" id="t100"&gt;RAD&lt;/a&gt;. It's simpler.&lt;br /&gt;&lt;br /&gt;REST challenge: we have good interaction interface but not for behavior (application state). He says SOAP set us back 10 years. Hah! REST allows inexperienced programmers to rapidly prototype and extend existing systems. REST adds productivity&lt;br /&gt;&lt;br /&gt;Hmmm look at &lt;a title="ATOM pub" href="http://bitworking.org/projects/atom/rfc5023.html" id="qutr"&gt;ATOM pub&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I guess I should know what mindtouch does to understand these case studies. Hey mindtouch is written in c#. I'll be damned.&lt;br /&gt;&lt;br /&gt;Case Study (all from Mindtouch): &lt;a title="Bill Me Later" href="https://www.billmelater.com/index.xhtml" id="jyld"&gt;Bill Me Later&lt;/a&gt; bought by eBay, used mindtouch and extended it to federate their system. REST interfaces on existing applications&lt;br /&gt;Case Study: Amazon &lt;a title="Shelfari" href="http://www.shelfari.com/" id="xqti"&gt;Shelfari&lt;/a&gt;, built on mindtouch, extended existing application.&lt;br /&gt;Case Study: &lt;a title="Whorunsgov.com" href="http://www.whorunsgov.com/" id="mipl"&gt;Whorunsgov.com&lt;/a&gt; from wash post. Used it to integrate a bunch of existing services and put mindtouch on top of it to serve those aggregated srvcs.&lt;br /&gt;Case Study: TOPSPAN.org, NIH project for protein structures. built on mindtouch. Used to build a virtual reality representation of protein data pulled from REST srvcs. I can't find a link to this, I must have written it down wrong.&lt;br /&gt;Case Study: Mozilla developer center. Federated over several app servers. Since everything is HTTP, they can cache big time.&lt;br /&gt;&lt;br /&gt;REST improves interoperability, technical agnosticism.&lt;br /&gt;&lt;br /&gt;See &lt;a title="geekpac" href="http://www.geekpac.org/indexa.html" id="d:n4"&gt;geekpac&lt;/a&gt;, site about governmental issues geeks are interested.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-352697399373709112?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/352697399373709112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=352697399373709112' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/352697399373709112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/352697399373709112'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/07/oscon-thursday-sessions.html' title='OSCON Thursday Sessions'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-723282639624401803</id><published>2009-07-22T19:00:00.002-04:00</published><updated>2009-07-22T19:03:30.477-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon09'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><category scheme='http://www.blogger.com/atom/ns#' term='workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Project Trident: Microsoft's Scientific Workflow</title><content type='html'>I just got back from a break wandering the exhibit hall here at OSCON and this caught my eye. I had a brief demo and it looks like some work on top of Workflow 3.5. I might be worth a look at the &lt;a href="http://research.microsoft.com/en-us/collaboration/tools/trident.aspx"&gt;project website&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-723282639624401803?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/723282639624401803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=723282639624401803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/723282639624401803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/723282639624401803'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/07/project-trident-microsofts-scientific.html' title='Project Trident: Microsoft&apos;s Scientific Workflow'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8874014031923418926</id><published>2009-07-22T14:53:00.003-04:00</published><updated>2009-07-30T14:05:30.807-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon09'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>OSCON Sesssions Wednesday</title><content type='html'>&lt;u&gt;&lt;b&gt;Wednesday Sessions&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Building Applications on Ubuntu One&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/8843" href="http://en.oreilly.com/oscon2009/public/schedule/detail/8843" id="pl2-"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/8843&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; Talking about couchdb. Mentioned &lt;a title="futon" href="http://wiki.apache.org/couchdb/Getting_started_with_Futon" id="ylmh"&gt;futon&lt;/a&gt;, a gui admin tool for couchdb. Each ubuntu machine will have couchdb installed. Example: storing firefox bookmarks in couchdb. App to synch from db to firefox bookmarks. Also &lt;a title="tomboy" href="http://projects.gnome.org/tomboy/" id="stoi"&gt;tomboy&lt;/a&gt; (notetaking app). Also contact list. Ubuntu has built in easy replication between couchdb instances on different machines using oauth. &lt;a title="Ubuntu One" href="https://ubuntuone.com/" id="khkr"&gt;Ubuntu One&lt;/a&gt;, right now is just a file sharing service (sync files between machines). Next is shared, hosted couchdbs between your machines, online with a web interface (for non-ubuntu machines). Sync w/ mobile phones using &lt;a title="funambol" href="http://www.funambol.com/" id="tbav"&gt;funambol&lt;/a&gt; (phone syncing project?) Web apps can use this too.&lt;br /&gt;&lt;br /&gt;Canonical building an api on top of couchdb. They are trying to standardize on some common attributes used to store things in couchdb.&lt;br /&gt;&lt;br /&gt;Mentioned &lt;a title="quickly" href="https://launchpad.net/quickly" id="dtmd"&gt;quickly&lt;/a&gt;, a project builder for ubuntu desktop apps.&lt;br /&gt;&lt;br /&gt;You can use &lt;a title="greasemonkey" href="http://www.greasespot.net/" id="k6jb"&gt;greasemonkey&lt;/a&gt; to talk to a couchdb to get data and use it to modify web pages. This could be really cool! I could use it to do the: insert proper name in place of company system id app I've always wanted to do. Could just put ldap dumps into couchdb.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Gearman&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/8198" href="http://en.oreilly.com/oscon2009/public/schedule/detail/8198" id="hxrc"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/8198&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Used to do [a]synchronous processing. Digg, Yahoo!, Livejournal all using &lt;a title="Gearman" href="http://gearman.org/" id="hjlm"&gt;Gearman&lt;/a&gt;. HTTP api support. Async queue plus MapReduce? Could we use this for pipelining, workflow?&lt;br /&gt;&lt;br /&gt;Basics: Clients create jobs and sends to a job server, Workers grab jobs from job servers, Job servers manage jobs. Jobs should not contain large amounts of data, just include pointers to the data on nfs, cloud, etc.&lt;br /&gt;&lt;br /&gt;Could be useful for multi-language integration. Client and Worker can be implemented in different langs. Also useful for elastic computing: grow and shrink workers.&lt;br /&gt;&lt;br /&gt;What is &lt;a title="MogileFS" href="http://www.danga.com/mogilefs/" id="y_23"&gt;MogileFS&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;There is a gearman commandline tool useful for testing. It has a wrapper option that wraps arbitrary executables.&lt;br /&gt;&lt;br /&gt;You can implement MapReduce using clients that are also clients. You can also use multiple job servers to pipeline.&lt;br /&gt;&lt;br /&gt;Can push computation to the data by running workers on the same hosts as the data.&lt;br /&gt;&lt;br /&gt;Mentioned a &lt;a title="book" href="http://www.amazon.com/Developing-Applications-Apache-memcached-Programmer/dp/0470414642/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1248976267&amp;amp;sr=8-1" id="y2xf"&gt;book&lt;/a&gt; by Patrick Galbraith and a search engine called &lt;a title="Narada" href="https://launchpad.net/narada" id="ib7p"&gt;Narada&lt;/a&gt;. They used gearman to implement this.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Full Text Search with Sphinx&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/7950" href="http://en.oreilly.com/oscon2009/public/schedule/detail/7950" id="qwlk"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/7950&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://www.sphinxsearch.com/" href="http://www.sphinxsearch.com/" id="z4j2"&gt;http://www.sphinxsearch.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Biggest installation, 3TB documents at boardreader.com. 3TB of source text. Also craigslist.org, 50k queries/day.&lt;br /&gt;&lt;br /&gt;Quick indexing, quick searching, distrib searching, full-text query language, per-field weighting, non-text search constraints (native in engine), snippets builder (show context of match).&lt;br /&gt;&lt;br /&gt;Support for relevance ranking, many normal sql features, can connect to sphinx with mysql clients too (freaky--why?).&lt;br /&gt;&lt;br /&gt;Multi-queries: you can send a batch of queries and it will optimize, used for when a user does a main query and then may want to do sub-queries on that dataset. Expensive full-text search is only done once.&lt;br /&gt;&lt;br /&gt;Sphinx can store other attributes associated w/ doc (just like rdbms) and you can query them w/ sql. Has support for most single table sql selects.&lt;br /&gt;&lt;br /&gt;Optimized to not bring back full result set: most of the time no one wants the full result set: only the top x.&lt;br /&gt;&lt;br /&gt;Will soon have feature of pre-forked worker processes (ala multiple apache request handlers).&lt;br /&gt;&lt;br /&gt;No realtime addition of new documents&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Rails 3&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/7607" href="http://en.oreilly.com/oscon2009/public/schedule/detail/7607" id="g3n1"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/7607&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="Merb" href="http://www.merbivore.com/" id="gwyb"&gt;Merb&lt;/a&gt; and &lt;a title="Rails" href="http://rubyonrails.org/" id="c29c"&gt;Rails&lt;/a&gt; are merging, this happens in Rails 3. &lt;a title="Engine Yard" href="http://www.engineyard.com/" id="hsm1"&gt;Engine Yard&lt;/a&gt; created merb, this guy works for Engine Yard and now they are paying him to be a core member of the Rails team. Now there are two Engine Yard guys doing paired programming using &lt;a title="TDD" href="http://en.wikipedia.org/wiki/Test-driven_development" id="k1p1"&gt;TDD&lt;/a&gt;. Nice that he works for a company that hosts a zillion complicated ruby webapps, so he knows what needs to go in it.&lt;br /&gt;&lt;br /&gt;Suggests looking at Rails 0.5 ActionController source code. Rails is already 5 years old, sheesh.&lt;br /&gt;&lt;br /&gt;Lots of cruft has accrued over the years without refactoring. Many examples of tests that relied on deprecated features so these features were not removed: interesting &lt;a title="bad smell" href="http://en.wikipedia.org/wiki/Code_smell" id="jjk0"&gt;bad smell&lt;/a&gt;. So 3.0 is going to be a big refactoring.&lt;br /&gt;&lt;br /&gt;Decoupling is a major philosophy of 3.0. Too much coupling between ActionController, ActionView and ActiveRecord. They did this with "interface"-like classes. Now you can easily roll your own ActionView or ActiveRecord (now called ActiveModel).&lt;br /&gt;&lt;br /&gt;New model classes will not subclass from ActiveRecord, but will include some module.&lt;br /&gt;&lt;br /&gt;Some talk about building up your own controller from the "bare metal" if you need fast performance or just want to for some reason. Shows off some of the refactoring.&lt;br /&gt;&lt;br /&gt;Rails now built on &lt;a title="Rack" href="http://rack.rubyforge.org/" id="w90p"&gt;Rack&lt;/a&gt; (when did that happen?)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Large Scale Data Analysis w/ Hadoop&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/7378" href="http://en.oreilly.com/oscon2009/public/schedule/detail/7378" id="a050"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/7378&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Talk by CEO of &lt;a title="Cloudera" href="http://www.cloudera.com/" id="v2ta"&gt;Cloudera&lt;/a&gt;. Yahoo has a huge number of &lt;a title="hadoop" href="http://hadoop.apache.org/" id="qc-7"&gt;hadoop&lt;/a&gt; contribs. Big user. Multi-petabyte installations.&lt;br /&gt;&lt;br /&gt;Lots of bits and pieces to hadoop: avro, mapreduce, hdfs, pig, hive ,hbase, zookeeper, chukwa. Unfamiliar w/ most of these.&lt;br /&gt;&lt;br /&gt;&lt;a title="Hive" href="http://hadoop.apache.org/hive/" id="hrf2"&gt;Hive&lt;/a&gt;: sql interface to hadoop data built by Facebook; &lt;a title="Pig" href="http://hadoop.apache.org/pig/" id="jipu"&gt;Pig&lt;/a&gt;: high-level ad-hoc analysis lang by Yahoo!&lt;br /&gt;&lt;br /&gt;Case Study: &lt;a title="rackspace" href="http://www.rackspace.com/" id="xjor"&gt;rackspace&lt;/a&gt; analyzes email logs for customer support, find email route through servers w/ mapreduce, the setup search w/ &lt;a title="solr" href="http://lucene.apache.org/solr/" id="kfps"&gt;solr&lt;/a&gt;. Also using interactive mapreduce queries with hive.&lt;br /&gt;Case Study: Tennessee Valley Authority monitoring power grid sensors. 100TB/year.&lt;br /&gt;Case Study: Large Hadron Collider, using mostly for storage. Univ of Nebraska-Lincoln uses hadoop to process 400TB sized hdfs data. Not really using mapreduce but they are using &lt;a title="hdfs" href="http://hadoop.apache.org/hdfs/" id="jf23"&gt;hdfs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Cloudera hadoop distrib: &lt;a title="http://www.cloudera.com/hadoop" href="http://www.cloudera.com/hadoop" id="s0kh"&gt;http://www.cloudera.com/hadoop&lt;/a&gt;&lt;br /&gt;Training: &lt;a title="http://www.cloudera.com/hadoop-training" href="http://www.cloudera.com/hadoop-training" id="dowt"&gt;http://www.cloudera.com/hadoop-training&lt;/a&gt; (wow there's some good stuff here)&lt;br /&gt;&lt;br /&gt;&lt;a title="O'Reilly hadoop book" href="http://oreilly.com/catalog/9780596521974/" id="hc-x"&gt;O'Reilly hadoop book&lt;/a&gt; is by a cloudera engineer.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Open Source Analytics w/ R&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/8404" href="http://en.oreilly.com/oscon2009/public/schedule/detail/8404" id="me70"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/8404&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Michael Driscoll from &lt;a title="Dataspora" href="http://dataspora.com/" id="s_l2"&gt;Dataspora&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The three skills of analytics: munge, model, visualize [data]. Facebook calls their analytics guys &lt;i&gt;data scientists&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;References &lt;a title="NYT article on R" href="http://www.nytimes.com/2009/01/07/technology/business-computing/07program.html?_r=1&amp;amp;scp=1&amp;amp;sq=r%20stats&amp;amp;st=cse" id="suz:"&gt;NYT article on R&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Countries' GDP vs freetime from 'OECD' (?).&lt;br /&gt;&lt;br /&gt;Case Study: Guy worked on genomics data in grad school, reference to affy genechip: 100k genes. Bioconductor (sp?) bioinfx R packages?&lt;br /&gt;Case Study: credit card data used for behavior prediction. Hierarchical clustering technique + heatmap used.&lt;br /&gt;Case Study: clickthru behavior data.&lt;br /&gt;Case Study: MLB pitches: recording every pitch since 2007! Tons of pitching variables. Data is online for free. He compared two pitchers with visual fingerprints. Six dimensions of data in one chart.&lt;br /&gt;&lt;br /&gt;Used two dimensional color pallet. Very interesting.&lt;br /&gt;&lt;br /&gt;&lt;a title="The grammar of graphics" href="http://www.amazon.com/Grammar-Graphics-Leland-Wilkinson/dp/0387987746" id="sl_t"&gt;The grammar of graphics&lt;/a&gt; (book). C.F. ggplot2 R package.&lt;br /&gt;&lt;br /&gt;Describes the LAMR stack: R instead of PHP. see &lt;a title="http://labs.dataspora.com/gameday" href="http://labs.dataspora.com/gameday" id="ob3."&gt;http://labs.dataspora.com/gameday&lt;/a&gt;. Uses &lt;a title="rapache" href="http://biostat.mc.vanderbilt.edu/rapache/" id="cm20"&gt;rapache&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;"R is the tool for the modern data scientist"&lt;br /&gt;&lt;br /&gt;He wants to do an online flashmob for R on &lt;a title="stackoverflow" href="http://stackoverflow.com/" id="av4o"&gt;stackoverflow&lt;/a&gt; tonight. I like it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8874014031923418926?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8874014031923418926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8874014031923418926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8874014031923418926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8874014031923418926'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/07/oscon-sesssions-wednesday.html' title='OSCON Sesssions Wednesday'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-3813664742527215481</id><published>2009-07-21T17:15:00.001-04:00</published><updated>2009-07-30T13:27:59.974-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sematic web'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon09'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>OSCON Tuesday Afternoon Tutorial -- Learn to Use Sematic Technologies Using Open Source Tools</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Learn to Use Sematic Technologies Using Open Source Tools&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 21 July 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.oreilly.com/oscon2009/public/schedule/detail/8225" id="qhq2" title="http://en.oreilly.com/oscon2009/public/schedule/detail/8225"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/8225&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://semprog.com/presentations/oscon09/" id="ybuj" title="http://semprog.com/presentations/oscon09/"&gt;http://semprog.com/presentations/oscon09/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Take a look at the Semantic sites mentioned in the early slides.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://oreilly.com/catalog/9780596153816/"&gt;Programming the Semantic Web&lt;/a&gt;. Pick this book up.&lt;br /&gt;&lt;br /&gt;Semantics can help reduce huge schemas, refactoring/migration of schemas or sparse tables. Mention of the classic attribute/value pattern used for flexible databases. Explicit semantics can help. Merging datasets with overlapping semantic graphs can be done w/o changing a schema.&lt;br /&gt;&lt;br /&gt;The predicate vocabulary has to be very important: how do you make sure everyone uses the same predicates for the same associations?&lt;br /&gt;&lt;br /&gt;Speaker prefers &lt;a href="http://www.w3.org/2001/sw/RDFCore/ntriples/"&gt;N-Triples&lt;/a&gt; as best RDF serialization technique for viewing.&lt;br /&gt;&lt;br /&gt;URIs need to be unambiguous and unchanging! &lt;a href="http://www.freebase.com/"&gt;Freebase&lt;/a&gt; is built this way.&lt;br /&gt;&lt;br /&gt;Much talk about Freebase: contents, tools, data dumps, &lt;a href="http://code.google.com/p/freebase-suggest/"&gt;Freebase Suggest&lt;/a&gt; javascript thingee might be useful.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://richard.cyganiak.de/2007/10/lod/"&gt;Linked Open Data Cloud&lt;/a&gt;: All data sources that provide RDF dumps.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openrdf.org/"&gt;Sesame&lt;/a&gt;: Java-based triple store. Install in &lt;a href="http://www.mortbay.org/jetty/"&gt;Jetty&lt;/a&gt;. Tried to install this stuff on a fedora ec2 instance and failed due to a missing logger class. I guess I'll just follow along.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://protege.stanford.edu/overview/protege-owl.html"&gt;Protege&lt;/a&gt; is an open source tool used to create OWL ontologies.&lt;br /&gt;&lt;br /&gt;Much talk about python orm used to interact with triple store in OO way.&lt;br /&gt;&lt;br /&gt;Yahoo pulls down all rdf from pages that it indexes and you can use the &lt;a href="http://developer.yahoo.com/search/boss/"&gt;BOSS&lt;/a&gt; service to query it.&lt;br /&gt;&lt;br /&gt;Look into &lt;a href="http://www.commontag.org/Home"&gt;CommonTag&lt;/a&gt; for strong identifiers as tags. Cross-site tagging!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-3813664742527215481?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/3813664742527215481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=3813664742527215481' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3813664742527215481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3813664742527215481'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/07/tuesday-afternoon-oscon-tutorial.html' title='OSCON Tuesday Afternoon Tutorial -- Learn to Use Sematic Technologies Using Open Source Tools'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-4098070094114822055</id><published>2009-07-21T17:13:00.003-04:00</published><updated>2009-07-30T13:19:30.940-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon09'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>OSCON Tuesday Morning Tutorial -- 7 Principles of Better API Design</title><content type='html'>&lt;span style="font-weight: bold;"&gt;7 Principles of Better API Design&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Infamous Damian Conway&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;21 July 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/8062" href="http://en.oreilly.com/oscon2009/public/schedule/detail/8062" id="pv8n"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/8062&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;APIs should work as if by magic. They should do their thing with little to no user intervention. E.g. "use strict"&lt;br /&gt;&lt;br /&gt;Not gonna take many notes here, DC gave out a printed version of his slides as reference.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;It doesn't matter how small or trivial the task is if you do it often enough and its more than a line of code, put it in an interface/module.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Design by coding: have users write fake code calling your api the way they think it should be called. Use this to start designing the interface.&lt;br /&gt;&lt;br /&gt;DC is basically the mad scientist of perl. He might be the root of the perl community's penchant for crazy complicated, uber powerful snippets of code. I've been guilty of this myself many times but I don't agree with it. I guess if you hide fiendishly complicated code behind an api interface it might be ok, but what about the poor bastard that has to come behind you and make changes to it?&lt;br /&gt;&lt;br /&gt;I guess I should have gone to the Gearman tutorial. This is just a walkthru of DC's favorite modules (that he wrote).&lt;br /&gt;&lt;br /&gt;Subtract from your interface by choosing good defaults. Sometimes the defaults aren't static. Maybe you read them in from context and save them for reuse.&lt;br /&gt;&lt;br /&gt;The best code is no code at all...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-4098070094114822055?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/4098070094114822055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=4098070094114822055' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4098070094114822055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4098070094114822055'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/07/tuesday-morning-oscon-tutorial.html' title='OSCON Tuesday Morning Tutorial -- 7 Principles of Better API Design'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5965411062879884429</id><published>2009-07-20T19:23:00.003-04:00</published><updated>2009-07-30T13:19:14.013-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon09'/><category scheme='http://www.blogger.com/atom/ns#' term='couchdb'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>OSCON Monday Afternoon Tutorial -- Distributed Apps with CouchDB</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Distributed Applications with CouchDB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;20 July 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="http://en.oreilly.com/oscon2009/public/schedule/detail/8076" href="http://en.oreilly.com/oscon2009/public/schedule/detail/8076" id="can8"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/8076&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Speaker: Chris Anderson, director of &lt;a href="http://hosting.couch.io/"&gt;couch.io&lt;/a&gt;, a startup offering hosted &lt;a href="http://couchdb.apache.org/"&gt;couchDB&lt;/a&gt;. Slides are on the site above. See slides for an invite code to private beta of hosted couchdb @ couch.io&lt;br /&gt;&lt;br /&gt;Simplicity is the key philosophy of CouchDB development.&lt;br /&gt;&lt;br /&gt;Features&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Written in erlang for high concurrency.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Document-based key-value store.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;RESTful HTTP API.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Docs are stored in &lt;a href="http://www.json.org/"&gt;JSON&lt;/a&gt; (no schema).&lt;/li&gt;&lt;/ul&gt;All docs must have a db-wide id and a revision number. Attributes that start with underscore are reserved attributes (used by the db). CouchDB has no support for references to other documents (no FKs)&lt;br /&gt;&lt;br /&gt;HTTP API: Use PUTs for create op because its idempotent. You have to generate your own ids or you can request a couchdb-genereated uuid using a GET service. Client is responsible for creating _rev. Client must resolve any failed updates (updates will fail if someone has done an update since you last read the doc).&lt;br /&gt;&lt;br /&gt;Queries are implemented with JavaScript MapReduce routines. The queries are run on all documents. Each document can emit 0,1,more than one rows which are stored in a sorted b-tree.&lt;br /&gt;&lt;br /&gt;Replication: Trigger it with a service call. Diffs are sent to target. Call this periodically to keep things in sync. Easy to do N-master replication (all dbs replicate all writes to each other). "Replication mesh". Arbitrary replication topology.&lt;br /&gt;&lt;br /&gt;Each db is a file on the file system. Each operation is an append to that file. There is an operation to "defrag".&lt;br /&gt;&lt;br /&gt;BBC did a comparison of these type of data stores. Look for this paper. (I can't find it with a quick google search...)&lt;br /&gt;&lt;br /&gt;When you do an update, you have to send the _rev of the current document state. If they are different, there is a conflict (someone else updated that doc since you last read it) and the update fails.&lt;br /&gt;&lt;br /&gt;There is a GET service for uuids: http://server:port/_uuids or /_uuids?count=2&lt;br /&gt;&lt;br /&gt;POST /_replicate with some JSON that designates src and target. Response only comes back after replication (so watch HTTP timeouts).&lt;br /&gt;&lt;br /&gt;There is a statistics api too. Easy to get current and historic data on reads/writes/etc.&lt;br /&gt;&lt;br /&gt;Config is done through an .ini file but these can be changed by an admin via HTTP requests.&lt;br /&gt;&lt;br /&gt;Design Documents are special documents that define mapreduce views, operations to render json into html, replication filters (replicate only certain documents), and validations.&lt;br /&gt;&lt;br /&gt;View and validation routines are defined in javascript.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://groups.google.com/group/couchapp?pli=1"&gt;couchapp&lt;/a&gt;, a python application that helps you maintain couchdbs and add design documents to them.&lt;br /&gt;&lt;br /&gt;Since much of the application goes in the db and replication is so easy, this might be a good way to deploy datasets around the world.&lt;br /&gt;&lt;br /&gt;Indexes are maintained at the design document level: change a view in there and all the indexes have to change. In dev, just use new design docs, but in production consolidate all dev design docs into one.&lt;br /&gt;&lt;br /&gt;If you are using replication and you get conflicts, you'll need some process to resolve conflicts.&lt;br /&gt;&lt;br /&gt;New version will have a _changes GET which will give you a long-term connection and couchdb will write all new updates to that socket.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5965411062879884429?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5965411062879884429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5965411062879884429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5965411062879884429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5965411062879884429'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/07/oscon-monday-afternoon-tutorial.html' title='OSCON Monday Afternoon Tutorial -- Distributed Apps with CouchDB'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-2248576783402772508</id><published>2009-07-20T13:45:00.006-04:00</published><updated>2009-07-30T13:19:00.789-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openid'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon09'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><category scheme='http://www.blogger.com/atom/ns#' term='oauth'/><title type='text'>OSCON Monday Morning Tutorial -- The Open Social Web</title><content type='html'>&lt;span style="font-weight: bold;"&gt;The Open, Social Web Workshop&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;20 July 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.oreilly.com/oscon2009/public/schedule/detail/8575" id="jchf" title="http://en.oreilly.com/oscon2009/public/schedule/detail/8575"&gt;http://en.oreilly.com/oscon2009/public/schedule/detail/8575&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;O'Reilly's five rules of web 2.0&lt;br /&gt;&lt;ul&gt;&lt;li&gt;     Perpetual beta   &lt;/li&gt;&lt;li&gt;     share and share-alike data   &lt;/li&gt;&lt;li&gt;     ignore distinction of client/server   &lt;/li&gt;&lt;li&gt;     open apis and standard protocols   &lt;/li&gt;&lt;li&gt;     lock-in comes from data accrual, owning a namespace or non-std formats   &lt;/li&gt;&lt;/ul&gt;  The less accessible your data is, the less interesting you are. The more stagnant your data becomes&lt;br /&gt;&lt;br /&gt;Complicated APIs are too brittle, no one uses them, not portable.&lt;br /&gt;&lt;br /&gt;The future: how can we mashup feeds from multiple social networking apps/sites? How to do this with security and privacy in mind?&lt;br /&gt;&lt;br /&gt;Basic concepts of social networking (all this data should be portable)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;     Identity (who i am)&lt;br /&gt; &lt;/li&gt;&lt;li&gt;     Relationships (who i know)&lt;br /&gt; &lt;/li&gt;&lt;li&gt;     Activity (what am i doing)   &lt;/li&gt;&lt;/ul&gt;  Growing comfort with real identity: more and more sites using your real name.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://pinaxproject.com/"&gt;pinax&lt;/a&gt;: collection of open source modules for &lt;a href="http://www.djangoproject.com/"&gt;django&lt;/a&gt;. Much easier to reuse bits and pieces of social apps on sites.&lt;br /&gt;&lt;br /&gt;Every site doesn't have to ask for profile, photo, relationships, etc. How do we just reuse this data from sites the user already uses? You don't want to hardcode this reuse with certain sites because the big sites today were the little sites yesterday and this set will change over time.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://www.plaxo.com/"&gt;plaxo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Your api WILL change (see perpetual beta). It is a discussion between you and your api users. The api becomes the core product. 80% of twitter's traffic comes via their api. Api documentation is a wiki.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;OpenID is hard to use for the typical user. UI login is very confusing. UIs are getting better (pop-up flow).&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://www.google.com/friendconnect"&gt;google friendconnect&lt;/a&gt;. It allows you to use social gadgets just by adding javascript to a site.&lt;br /&gt;&lt;br /&gt;OpenID demo. Used mapquest. See &lt;a href="https://www.myopenid.com/"&gt;myopenid.com&lt;/a&gt; as a third party openid provider. OpenID does NOT specify how a user authenticates. It defers authentication to the provider. So the provider can use any level of authentication it wants. OpenID consuming sites can also request information about the user (email, name, etc)--"attribute exchange".&lt;br /&gt;&lt;br /&gt;Search for "password anti-pattern" blog post. &lt;a href="http://adactio.com/journal/1357"&gt;Here is is&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://vark.com/"&gt;aardvark&lt;/a&gt; and how it periodically autofills friendlist based on an external contact list.&lt;br /&gt;&lt;br /&gt;Sites can share info using &lt;a href="http://oauth.net/"&gt;OAuth&lt;/a&gt; without requiring the user to give a password. OAuth allows a site to get a temporary token (with expiration date) to access certain information.&lt;br /&gt;&lt;br /&gt;See portable contacts api (JSON), part of &lt;a href="http://code.google.com/apis/opensocial/"&gt;OpenSocial&lt;/a&gt;, integrated with OpenID and OAuth in gmail. What if we had this internally? Can we combine private/company contact lists this way?&lt;br /&gt;&lt;br /&gt;Man, its all about open, SIMPLE apis. Why haven't we learned that?&lt;br /&gt;&lt;br /&gt;See google &lt;a href="http://code.google.com/apis/socialgraph/"&gt;social graph api&lt;/a&gt;. Autofill your profile of all sites that the user is on by communicating with these sites via api and crawling that graph of interconnected sites.&lt;br /&gt;&lt;br /&gt;See &lt;a href="https://www.yammer.com/"&gt;yammer&lt;/a&gt;, an enterprise microblogging product.&lt;br /&gt;&lt;br /&gt;Many OpenID success stories. Huge adoption in the last year. The distribution of OpenID providers used by different sites varies quite a bit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-2248576783402772508?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/2248576783402772508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=2248576783402772508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2248576783402772508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2248576783402772508'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/07/oscon-monday-morning-tutorial.html' title='OSCON Monday Morning Tutorial -- The Open Social Web'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-3452352918388423617</id><published>2009-07-13T11:31:00.003-04:00</published><updated>2009-07-13T11:41:27.193-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon09'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>OSCON 2009</title><content type='html'>I'm getting excited about next my trip next week to &lt;a href="http://en.oreilly.com/oscon2009"&gt;OSCON 2009&lt;/a&gt;.  I plan to use this blog and Google Docs to cover the sessions I attend for three reasons:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I want my notes to be public&lt;/li&gt;&lt;li&gt;I'm taking my Macbook so I won't have access to my company's intranet.&lt;/li&gt;&lt;li&gt;My company's intranet runs Sharepoint, which sucks compared to Blogger and Google Docs.&lt;/li&gt;&lt;/ul&gt;Today I'm going to take a first look at the session schedule and make a list of the ones I want to attend. I'll be using the scheduling features of the OSCON website so I can &lt;a href="http://en.oreilly.com/oscon2009/public/schedule/share/9c54be3811144044e87cbd270fd5fdd6"&gt;share my schedule with you&lt;/a&gt; and I'll be able to post it to my Google Calendar. Very handy. Wish I could do things like that inside my company!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-3452352918388423617?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/3452352918388423617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=3452352918388423617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3452352918388423617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3452352918388423617'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/07/oscon-2009.html' title='OSCON 2009'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5802506551099712246</id><published>2009-06-19T13:53:00.004-04:00</published><updated>2009-06-19T13:55:50.871-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='starblazer adventures'/><category scheme='http://www.blogger.com/atom/ns#' term='gencon2009'/><title type='text'>Cyberslaver Victim #5: San Holo</title><content type='html'>The last character to attempt escape from the Cyberslavers is inspired by everyone's favorite space scoundrel. I'll be using a pic from Star Frontiers of the goggled guy that shows up in several illustrations.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;San Holo &lt;/u&gt;&lt;br /&gt;Aspects&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Homo neosapiens&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Former Imperial Starguard&lt;/li&gt;&lt;li&gt;Crack Shot With A Protonic Blaster&lt;/li&gt;&lt;li&gt;Rake, Rogue, Smuggler, Scoundrel&lt;/li&gt;&lt;li&gt;&lt;i&gt;Empty Slot (pick during play)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Empty Slot (pick during play)&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Stunts&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Shot on the Run (166): You may use Guns as a defense skill.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Trick Shot (166): Gain +2 to Guns skill checks to hit inanimate targets.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;One Shot Left (167): You may declare an attack to be your &lt;i&gt;last shot left&lt;/i&gt; and make a single Guns attack at +3. Then you need to find more ammo.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Skills&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Good (+3): Guns&lt;/li&gt;&lt;li&gt;Fair (+2): Investigation, Intimidation, Starship Pilot&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Average (+1): Endurance, &lt;i&gt;Pick 5 more during play&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5802506551099712246?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5802506551099712246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5802506551099712246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5802506551099712246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5802506551099712246'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/06/cyberslaver-victim-5-san-holo.html' title='Cyberslaver Victim #5: San Holo'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-6567806259821217891</id><published>2009-06-12T10:14:00.003-04:00</published><updated>2009-06-12T10:17:12.185-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='starblazer adventures'/><category scheme='http://www.blogger.com/atom/ns#' term='gencon2009'/><title type='text'>Cyberslaver Victim #4: Waana Waampa</title><content type='html'>This character is a three-armed yeti philosopher king who carries an ancient alien artifact. I wanted someone like Rygel from Farscape but a little more physically imposing. The artifact adds some complexity that the other PCs don't have, but sounds like fun.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Waana Waampa&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;&lt;b&gt;Aspects&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Arctic Tri-Primate (Three armed yeti)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I'm the Philosopher-King of the Thoh Nebula!&lt;/li&gt;&lt;li&gt;The Cudgel of Quantum Consciousness&lt;/li&gt;&lt;li&gt;High Gravity Homeworld&lt;/li&gt;&lt;li&gt;&lt;i&gt;Empty Slot (pick during play)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Empty Slot (pick during play)&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Stunts&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Personal Artifact (175): See Cudgel of Quantum Consciousness below&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Psychic (178): Use Mysteries in place of Alertness if supernatural forces are involved.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Weapon of Destiny (199): See Cudgel of Quantum Consciousness below&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Skills&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Good (+3): Mysteries&lt;/li&gt;&lt;li&gt;Fair (+2): Weapons, Leadership, Rapport&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Average (+1): Resolve, &lt;i&gt;Pick 5 more during play&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;The Cudgel of Quantum Consciousness&lt;/b&gt;&lt;br /&gt;Waana Waampa carries this staff as a symbol of office as Philosopher-King. It allows him to use Mysteries +1 instead of Guns to shoot psychic energy blasts. It can also be used as an energy shield which will reduce stress from energy weapon attacks by one and absorb one minor consequence (1/encounter). It can also be used in close combat (+1 stress damage). You may spend a Fate point to regain this weapon even if it seems impossible. The CoQC also has one additional effect which you may pick during play.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-6567806259821217891?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/6567806259821217891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=6567806259821217891' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/6567806259821217891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/6567806259821217891'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/06/cyberslaver-victim-4-waana-waampa.html' title='Cyberslaver Victim #4: Waana Waampa'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5466904488649910695</id><published>2009-06-10T22:39:00.001-04:00</published><updated>2009-06-10T22:43:59.354-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='starblazer adventures'/><category scheme='http://www.blogger.com/atom/ns#' term='gencon2009'/><title type='text'>Cyberslaver Victim #3: Granitar</title><content type='html'>A strange silcon-based lifeform? The result of alien superscience? How the heck is this creature held together?&lt;br /&gt;&lt;br /&gt;Granitar is almost a complete ripoff of the Tarn Idoun species in Galactic Races. These creatures are no doubt inspired by the Ioun Stones of AD&amp;amp;D fame (themselves inspired by magical bits of star matter mined from red dwarfs in Jack Vance's &lt;span style="font-style: italic;"&gt;The Dying Earth&lt;/span&gt; series).&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Granitar&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;&lt;b&gt;Aspects&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Gravitonic Silico-Sapient&lt;/li&gt;&lt;li&gt;Made of Levitating Shards of Rock&lt;/li&gt;&lt;li&gt;Experimental Creation of the Zero-Point Energons&lt;/li&gt;&lt;li&gt;Nothing Can Stop Granitar!&lt;/li&gt;&lt;li&gt;&lt;i&gt;Empty Slot (pick during play)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Empty Slot (pick during play)&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;b&gt;Stunts&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Last Leg (159): Spend a Fate point to defer a consequence or concession for one exchange.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Herculean Strength (175): All weight-based difficulties outside of combat are reduced by two steps.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Piledriver (175): Add four to Might attacks against inanimate targets.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Skills&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Good (+3): Might&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fair (+2): Endurance, Fists, Athletics&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Average (+1): Intimidation, &lt;i&gt;Pick 5 more during play&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5466904488649910695?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5466904488649910695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5466904488649910695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5466904488649910695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5466904488649910695'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/06/cyberslaver-victim-3-granitar.html' title='Cyberslaver Victim #3: Granitar'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-3683815160602188141</id><published>2009-06-09T21:09:00.004-04:00</published><updated>2009-06-09T21:41:04.510-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='starblazer adventures'/><category scheme='http://www.blogger.com/atom/ns#' term='gencon2009'/><title type='text'>Cyberslaver Victim #2: Krikk't</title><content type='html'>Inspired by the insectoid character in Planet Hulk, the Vrusk of Star Frontiers and the Thri-Kreen of AD&amp;amp;D, Krikk't is a sneaky bug guy who misses his phermonal connection with the hive.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Krikk't&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;&lt;b&gt;Aspects&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sapient Insectoid, Drone Caste&lt;/li&gt;&lt;li&gt;Disconnected From the Hive!&lt;/li&gt;&lt;li&gt;Heightened Olfactory Senses&lt;/li&gt;&lt;li&gt;Communo-Pheromonal Secretions&lt;/li&gt;&lt;li&gt;&lt;i&gt;Empty Slot (pick during play)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Empty Slot (pick during play)&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Stunts&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Lock Master (152): No penalty to Burglary for lack of tools. With tools, decrease time increment by one.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Bump and Grab (189): Spend a Fate point to use Sleight of Hand as a free action.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Hush (196): Make a Stealth check for the entire group.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Skills&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Good (+3): Stealth&lt;/li&gt;&lt;li&gt;Fair (+2): Alertness, Burglary, Sleight of Hand&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Average (+1): Resolve, &lt;i&gt;Pick 5 more during play&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-3683815160602188141?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/3683815160602188141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=3683815160602188141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3683815160602188141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3683815160602188141'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/06/cyberslaver-victim-2-krikkt.html' title='Cyberslaver Victim #2: Krikk&apos;t'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5845595660446582975</id><published>2009-06-08T16:11:00.003-04:00</published><updated>2009-06-08T16:19:17.443-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='starblazer adventures'/><category scheme='http://www.blogger.com/atom/ns#' term='gencon2009'/><title type='text'>Cyberslaver Victim #1: Oulb</title><content type='html'>Here's the first character for my Gen Con 2009 game Escape from the Cyberslavers of Galaxy X. He's an amorphous blob alien engineer inspired by both the Dralasite of Star Frontiers and the Ulb of the Dragonstar supplement Galactic Races.&lt;br /&gt;&lt;br /&gt;I'm using the Gritty rules for these characters (6 Aspects, 3 Stunts, 15 Skill points) but you'll notice I haven't filled everything in yet. I plan to give the players the chance to fill out some of the stuff during the game.&lt;br /&gt;&lt;br /&gt;Who is this alien? What's his species like? What was his ship like? No one knows but the future player of this character.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Oulb&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Aspects&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Sapient Amoebomorph&lt;/li&gt;&lt;li&gt;    Low visual/High Tactile-Aural Senses&lt;/li&gt;&lt;li&gt;    Extensible Psuedopodia&lt;/li&gt;&lt;li&gt;    Chief Engineer of the &lt;span style="font-style: italic;"&gt;Righteous Anger&lt;/span&gt;&lt;/li&gt;&lt;li&gt;    &lt;span style="font-style: italic;"&gt;Empty Slot (pick during play)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;    &lt;span style="font-style: italic;"&gt;Empty Slot (pick during play)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Stunts&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Computer Specialist (187): Gain +1 to program or hack computer systems&lt;/li&gt;&lt;li&gt;    More Power! (191): Add one level to a starship skill and reduce another skill one level&lt;/li&gt;&lt;li&gt;    We Need it Now! (191): Repair time is reduced by two steps&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Skills&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Good (+3): Starship Engineering&lt;/li&gt;&lt;li&gt;    Fair (+2): Starship Systems, Engineering, Science&lt;/li&gt;&lt;li&gt;    Average (+1): Endurance, &lt;span style="font-style: italic;"&gt;Pick 5 more during play&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5845595660446582975?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5845595660446582975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5845595660446582975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5845595660446582975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5845595660446582975'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/06/cyberslaver-victim-1-oulb.html' title='Cyberslaver Victim #1: Oulb'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-384320664677239521</id><published>2009-04-09T12:52:00.002-04:00</published><updated>2009-04-09T12:55:20.714-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>Geek Tip of the Day</title><content type='html'>MySQL's &lt;a href="http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat"&gt;GROUP_CONCAT()&lt;/a&gt; function.&lt;br /&gt;&lt;br /&gt;So, to export all bookmarks from a scuttle database...&lt;br /&gt;&lt;br /&gt;&lt;div class="mycode"&gt;&lt;br /&gt;select b.bId,&lt;br /&gt;       b.bTitle,&lt;br /&gt;       b.bAddress,&lt;br /&gt;       b.bDescription,&lt;br /&gt;       group_concat(t.tag order by tag separator ',') as tags&lt;br /&gt;from   sc_bookmarks b, sc_tags t&lt;br /&gt;where  b.bId=t.bId&lt;br /&gt;group by b.bId;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-384320664677239521?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/384320664677239521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=384320664677239521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/384320664677239521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/384320664677239521'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/04/geek-tip-of-day.html' title='Geek Tip of the Day'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-3732511429547392381</id><published>2009-03-29T14:21:00.005-04:00</published><updated>2009-03-29T14:48:50.185-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><category scheme='http://www.blogger.com/atom/ns#' term='kegspy'/><title type='text'>Project KegSpy</title><content type='html'>Progress at last!&lt;br /&gt;&lt;br /&gt;I've managed to get the thermistor circuit built for at least the temperature sensing part of Project KegSpy. I've got it soldered together on a perf board and mounted with the arduino in a Serpac plastic enclosure.&lt;br /&gt;&lt;br /&gt;What's Project KegSpy? I'm building an arduino-based sensor for my homebrew kegerator. When it's complete, it will report the temperature of the fridge and the number of pints remaining in the keg to a website in real time.&lt;br /&gt;&lt;br /&gt;It's not very impressive right now. I've been working mostly on the mechanical aspects (the enclosure for the electronics and the scale for the keg). But I'm finally making some progress. I've even registered kegspy.com for the upcoming web site. So stay tuned. Once I get this working, I'll post the plans and and a link to the kegspy.com site so others can build the sensors and report their stats to the site.&lt;br /&gt;&lt;br /&gt;Right now, the temp sensor seems to be about four degrees higher than a wireless thermometer I put right next to it. Earlier, when I prototyped the circuit on a breadboard it was almost exactly the same. I wonder if the arduino is heating up the thermistor or if I damaged it in some way when I was soldering it to the perf board.&lt;br /&gt;&lt;br /&gt;At any rate, here's the Wiring and Ruby code for the temp sensor bit.&lt;br /&gt;&lt;br /&gt;Wiring&lt;br /&gt;&lt;div class="mycode"&gt;&lt;br /&gt;// Reads analog input from the thermistor&lt;br /&gt;// and sends the value to the Serial port&lt;br /&gt;//&lt;br /&gt;// see http://sidmurthy.com/blog/?p=3&lt;br /&gt;&lt;br /&gt;int thermistor_pin = 0;&lt;br /&gt;int value = 0;&lt;br /&gt;&lt;br /&gt;void setup(){&lt;br /&gt; Serial.begin(9600);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void loop(){&lt;br /&gt; // read the value on analog input&lt;br /&gt; value =  analogRead(thermistor_pin);&lt;br /&gt;&lt;br /&gt; // print out value over the serial port&lt;br /&gt; Serial.println(value, DEC);&lt;br /&gt;&lt;br /&gt; // and a signal that serves as seperator between two values&lt;br /&gt; Serial.print(10, BYTE);&lt;br /&gt;&lt;br /&gt; delay(2000);&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Ruby&lt;br /&gt;&lt;div class="mycode"&gt;&lt;br /&gt;#simplest ruby program to read from arduino serial,&lt;br /&gt;#using Ruby/SerialPort library&lt;br /&gt;#(http://ruby-serialport.rubyforge.org)&lt;br /&gt;&lt;br /&gt;require 'rubygems'&lt;br /&gt;require 'serialport'&lt;br /&gt;port = '/dev/com5'&lt;br /&gt;baud_rate = 9600&lt;br /&gt;data_bits = 8&lt;br /&gt;stop_bits = 1&lt;br /&gt;parity = SerialPort::NONE&lt;br /&gt;&lt;br /&gt;RESISTOR = 10000.0&lt;br /&gt;SUPPLY_VOLTAGE = 5.0&lt;br /&gt;&lt;br /&gt;def get_temp(v_sample, v_supply, resistor)&lt;br /&gt; v_actual = v_supply * v_sample / 1024.0&lt;br /&gt; therm_resistance = resistor * (v_supply - v_actual)/v_actual&lt;br /&gt; therm_ref_resistance = 10000.0&lt;br /&gt;&lt;br /&gt; # Steinhart and Hart constants for Vishay thermistor NTCLE100E3103JB0&lt;br /&gt; a = 3.354016 * 10 ** -3&lt;br /&gt; b = 2.56985  * 10 ** -4&lt;br /&gt; c = 2.620131 * 10 ** -6&lt;br /&gt; d = 6.383091 * 10 ** -8&lt;br /&gt;&lt;br /&gt; log_ratio = Math::log(therm_resistance/therm_ref_resistance)&lt;br /&gt; celsius = 1.0/(a + b * log_ratio + c * log_ratio ** 2 + d * log_ratio ** 3) - 273&lt;br /&gt; fahrenheit = 9.0 / 5.0 * celsius + 32&lt;br /&gt;&lt;br /&gt; return fahrenheit&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;sp = SerialPort.new(port, baud_rate, data_bits, stop_bits, parity)&lt;br /&gt;&lt;br /&gt;#just read forever&lt;br /&gt;while true do&lt;br /&gt;&lt;br /&gt; value = sp.gets&lt;br /&gt; next if value == "\n"&lt;br /&gt; if !value.nil?&lt;br /&gt;   puts value&lt;br /&gt;   temp = get_temp(value.to_f, SUPPLY_VOLTAGE, RESISTOR)&lt;br /&gt;   puts sprintf("%.1f", temp)&lt;br /&gt;   sp.gets&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;sp.close&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-3732511429547392381?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/3732511429547392381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=3732511429547392381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3732511429547392381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3732511429547392381'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/03/project-kegspy.html' title='Project KegSpy'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-4218897526629236849</id><published>2009-03-01T11:19:00.002-05:00</published><updated>2009-03-01T11:29:08.466-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><title type='text'>Other Arduino Projects</title><content type='html'>Here are some other projects I've been thinking of doing with the Arduino.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Homebrew Keg Weight Sensor: How much beer is left in my keg? I've got a Flexiforce pressure/weight sensor coming from &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8685"&gt;Sparkfun.com&lt;/a&gt;. I'm going to rig it up so I can weigh my keg to estimate how many pints are left in it. I can even graph my beer consumption over time and display it on a website.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;LED Marquee: I bought a 16x64 LED array from &lt;a href="http://stores.shop.ebay.com/Sure-Electronics__W0QQ_armrsZ1"&gt;sure-electronics&lt;/a&gt; on eBay. I'm going to drive this from the Arduino to make a sign for my basement. I've even thought about using it to recreate the old school &lt;a href="http://www.handheldmuseum.com/Mattel/FB.htm"&gt;Mattel Football&lt;/a&gt; handheld game from the 70's.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-4218897526629236849?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/4218897526629236849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=4218897526629236849' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4218897526629236849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4218897526629236849'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/03/other-arduino-projects.html' title='Other Arduino Projects'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5804904730821286719</id><published>2009-03-01T10:59:00.003-05:00</published><updated>2009-03-01T11:18:47.676-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><title type='text'>DIY Radio DVR with Arduino</title><content type='html'>I want to listen to the &lt;a href="http://www.thebluesmobile.com/index.shtml"&gt;House of Blues Radio Hour&lt;/a&gt;, but I'm not going to stay up late to do it and they don't offer a podcast. So I've been looking for something like a DVR for FM radio. There are PC cards that do this, but they are expensive. So I pretty much gave up on the idea.&lt;br /&gt;&lt;br /&gt;But now I'm tinkering around with an &lt;a href="http://ardunio.cc"&gt;Arduino&lt;/a&gt;. I went digging in a box of old electronics and found a Sony WM-FX277 Walkman I once used to listen to books on tape in the car. It's got a digital tuner with 35 presets, meaning I should be able to control those switches from the Arduino.&lt;br /&gt;&lt;br /&gt;Here's the plan: I'll wire up the Arduino to the digial switches controlling the power and the tuner of the Walkman and hook the walkman's headphone jack to the line-in on my Ubuntu box. Then I can write a program to schedule recording sessions, power on the Walkman, set the tuner preset to the correct channel, and record from the soundcard with &lt;a href="http://alsa.opensrc.org/index.php/Arecord"&gt;arecord&lt;/a&gt;. After the recording session, I can encode the audio file to mp3 with &lt;a href="http://lame.sourceforge.net/"&gt;lame&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Once I get this working, I can host the mp3 files with apache and point my iTunes at the feed just like any other podcast.&lt;br /&gt;&lt;br /&gt;But there's a problem. The Walkman uses the headphone cord as the antenna and my Ubuntu box is in the basement and the reception is terrible. I was hoping to somehow hook this up to an external antenna but I don't know how. I guess I can use a headphone extender cable but I'm not sure how well that would work.&lt;br /&gt;&lt;br /&gt;Once I get this working, I'll post some pictures and circuit diagrams.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5804904730821286719?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5804904730821286719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5804904730821286719' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5804904730821286719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5804904730821286719'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/03/diy-radio-dvr-with-arduino.html' title='DIY Radio DVR with Arduino'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-1824272578208845025</id><published>2009-02-13T16:09:00.002-05:00</published><updated>2009-02-13T16:13:33.955-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><title type='text'>Software Architecture in The Cloud</title><content type='html'>I finally got around to cleaning out my Google Reader starred articles and came to &lt;a href="http://aws.typepad.com/aws/2008/12/running-everything-on-aws-soocialcom.html"&gt;this one&lt;/a&gt; from the AWS blog. It describes a pretty complicated architecture running on EC2.&lt;br /&gt;&lt;br /&gt;The thing that I thought was really interesting was how they do offline hot backups. Because they run their databases on EBS volumes, they can:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Snapshot the EBS volume with the data&lt;/li&gt;&lt;li&gt;Create a new EBS volume from the snapshot&lt;/li&gt;&lt;li&gt;Attach it to a running, offline database instance&lt;/li&gt;&lt;li&gt;Take the backup normally from the offline database.&lt;/li&gt;&lt;/ol&gt;This means they never affect the performance of the running, production database. Pretty cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-1824272578208845025?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/1824272578208845025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=1824272578208845025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1824272578208845025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1824272578208845025'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/02/software-architecture-in-cloud.html' title='Software Architecture in The Cloud'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7327281441004124514</id><published>2009-02-09T22:29:00.002-05:00</published><updated>2009-02-09T22:33:28.872-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gencon2009'/><title type='text'>Mutiny on the Eleanor Moraes</title><content type='html'>I've just submitted this event for Gen Con Indy 2009:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Get your old school sci-fi game on in this classic Star Frontiers adventure. While surveying a wilderness planet, the crew of the Eleanor Moraes must survive the sabotage and mutiny of her first mate.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I can't wait to run a session of one of my first RPGs: &lt;a href="http://starfrontiers.com/"&gt;Star Frontiers&lt;/a&gt;. I never actually got around to playing this one.&lt;br /&gt;&lt;br /&gt;Even though you can find a pdf of the module online, please don't ruin it for yourself. If I feel like someone's cheating, they might just find themselves being eaten by a queequeg.&lt;br /&gt;&lt;br /&gt;Keep an eye on this post for updates as we get closer to the con in August&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7327281441004124514?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7327281441004124514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7327281441004124514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7327281441004124514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7327281441004124514'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/02/mutiny-on-eleanor-moraes.html' title='Mutiny on the Eleanor Moraes'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7305915006005610209</id><published>2009-02-09T22:20:00.003-05:00</published><updated>2009-02-09T22:24:48.937-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gencon2009'/><title type='text'>Troops: Tatooine</title><content type='html'>I've just submitted this event for Gen Con Indy 2009:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Follow the "Boys in White" as they seek to recover stolen classified data in the Outer Rim. Play highly-trained commandos on an important mission for Lord Vader himself. Board hostile rebel starships! Ride dewbacks! Put jawas to the question! Man security checkpoints in Mos Eisley! And finish off your mission with a cold one in the cantina.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This event is inspired by the great fan film &lt;a href="http://www.theforce.net/fanfilms/shortfilms/troops/"&gt;Troops&lt;/a&gt;. I'll be using Savage Worlds Explorers Edition from &lt;a href="http://www.peginc.com/"&gt;Pinnacle&lt;/a&gt; for this one.&lt;br /&gt;&lt;br /&gt;Keep an eye on this post for updates as we get closer to the con in August.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7305915006005610209?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7305915006005610209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7305915006005610209' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7305915006005610209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7305915006005610209'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/02/troops-tatooine.html' title='Troops: Tatooine'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-256565748675177954</id><published>2009-02-09T22:17:00.003-05:00</published><updated>2009-02-09T22:19:42.863-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gencon2009'/><title type='text'>Escape From the Cyberslavers of Galaxy X!</title><content type='html'>I've just submitted this event to Gen Con Indy 2009:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Can your band of aliens escape from the colossal starship of the Cyberslavers of Galaxy X? Players will customize their characters and actually create the starship from which they must escape. Can you survive cruel space slavers, deadly traps and the dreaded Cybertooth Tigers?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'll be using the &lt;a href="http://www.cubicle-7.com/starblazer.htm"&gt;Starblazer Adventures&lt;/a&gt; rules for this event. Keep an eye on this post for updates as we get closer to the con in August.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-256565748675177954?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/256565748675177954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=256565748675177954' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/256565748675177954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/256565748675177954'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/02/escape-from-cyberslavers-of-galaxy-x.html' title='Escape From the Cyberslavers of Galaxy X!'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5146150167179393031</id><published>2009-02-06T09:59:00.002-05:00</published><updated>2009-02-06T10:02:55.895-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>Google Maps History</title><content type='html'>Here's a cool feature I just discovered in Google Maps: it saves your history.&lt;br /&gt;&lt;br /&gt;I've been invited over to a coworker's house for poker tonight but I've only just been over there once. I checked the My Maps feature of Google Maps to see if I saved his address but I hadn't. Then I saw a link at the top of the maps page: Web History.&lt;br /&gt;&lt;br /&gt;When I clicked on it, I realized that there is a Maps link in your web history. So, just like you can go back and search all of your previous Google searches, you can also review your previous Google Maps searches.&lt;br /&gt;&lt;br /&gt;Nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5146150167179393031?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5146150167179393031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5146150167179393031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5146150167179393031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5146150167179393031'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/02/google-maps-history.html' title='Google Maps History'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8449219833000857072</id><published>2009-02-05T08:03:00.003-05:00</published><updated>2009-02-05T08:38:11.481-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='rightscale'/><category scheme='http://www.blogger.com/atom/ns#' term='rightgrid'/><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><title type='text'>Scientific Computing on EC2 with RightScale</title><content type='html'>I recently completed a second batch processing system using &lt;a href="http://aws.amazon.com/ec2/"&gt;EC2&lt;/a&gt; and &lt;a href="http://www.rightscale.com/"&gt;RightScale's&lt;/a&gt; &lt;a href="http://wiki.rightscale.com/1._Tutorials/02-AWS/03-Grid_Edition/Basic_RightGrid_Example"&gt;RightGrid&lt;/a&gt;. I haven't been able to officially turn the key yet as I'm waiting for the OK to put proprietary data in The Cloud. But the whole thing is built and tested using public data.&lt;br /&gt;&lt;br /&gt;If your problem is easily broken up into small chunks, it's a great candidate for this design. My first use case was image analysis for an angiogenesis assay. Biologists grew cells in wells on a plate and imaged each well twice. We needed to analyze these two 15MB tiff images using ImageJ to produce some quantitative data for later analysis. The idea here was to build a production system for labs cranking away with roughly 20 plates a week. That's over fifteen thousand images (20 plates x 384 wells x 2 images/well)! Fortunately, each well can be analyzed independently.&lt;br /&gt;&lt;br /&gt;This is a great fit for RightGrid. We took one of their custom images and configured it, using their server template feature, to download and install java and our custom ImageJ code. Then we built a "job producer": a ruby program using RightScale's &lt;a href="http://rightaws.rubyforge.org/"&gt;right_aws&lt;/a&gt; gem which organizes the input data, encrypts it, uploads it to &lt;a href="http://aws.amazon.com/s3/"&gt;S3&lt;/a&gt; and loads an &lt;a href="http://aws.amazon.com/s3/"&gt;SQS&lt;/a&gt; input queue with job messages. Once we turned our servers on, using RightScale's server array feature, they began popping job messages off the queues, running our ImageJ analysis and uploading the results back to S3.&lt;br /&gt;&lt;br /&gt;This is alot easier than building all of this infrastructure yourself. Basically we only had to write the image analysis software, a job producer/consumer (which is only about 100 lines of ruby), and a single ruby class to run the image analysis code on the running instance (less than 50 lines).&lt;br /&gt;&lt;br /&gt;After this initial pilot, it was clear that I could do things to make this even easier. It would be nice to build some kind of project generator, similar to the rails command in Ruby on Rails, which sets up a project with easy-to-read config files, a stub worker class, and most of the job producer/consumer code. Ultimately, I think I'll do this so that any of our computational scientists can get up and running on EC2 quickly on their own.&lt;br /&gt;&lt;br /&gt;The second use case involved running pairwise comparisons on over 2.5 million compounds--kind of a compound structure diff. This analysis had already been broken down in to chunks of 15,000 compounds so that it could be run on our own internal cluster. But the investigator didn't want to compete for compute resources with production applications as this was an experiment. So here's another perfect use case for RightGrid: a single executable takes one or two input files and produces a single output file. Each job is atomic and doesn't depend on any other job. The only difference here was that the executable was 64-bit and was very compute-intensive. We opted for large instances and, after some initial timing runs, we figure the entire compound collection can be analyzed in about 1800 compute-hours. With 100 instances running, that's only a half day instead of a week to run it internally. It's going to cost about $750.&lt;br /&gt;&lt;br /&gt;This is the use case that has me excited. How many of our computational scientists think up experiments and instantly dismiss them due to a lack of compute resources? How many great experiments could we do if we just had a few more processors? With a couple hundred dollars we could do an experiment that would otherwise never have been attempted!&lt;br /&gt;&lt;br /&gt;Even better: now anyone can do these analyses. My company can afford a big linux cluster. But what about a college professor in a small university with very little grant money? What about a high school chemistry teacher with a great idea? Now even these folks can have access to a supercomputer. Amazon has even started &lt;a href="http://aws.amazon.com/publicdatasets/"&gt;partnering with public data sources&lt;/a&gt; to host them free of charge.&lt;br /&gt;&lt;br /&gt;So why not run a &lt;a href="http://aws.amazon.com/publicdatasets/#1"&gt;cross genome analysis&lt;/a&gt; &lt;a href="http://aws.typepad.com/aws/2009/02/iphone-console-for-ec2.html"&gt;from your iPhone&lt;/a&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8449219833000857072?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8449219833000857072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8449219833000857072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8449219833000857072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8449219833000857072'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/02/scientific-computing-on-ec2-with.html' title='Scientific Computing on EC2 with RightScale'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8272751076293271265</id><published>2009-01-27T13:13:00.001-05:00</published><updated>2009-01-27T13:15:13.063-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><title type='text'>Get your story on even when you fail.</title><content type='html'>This, from a story-games.com forum &lt;a href="http://www.story-games.com/forums/comments.php?DiscussionID=8570&amp;amp;page=1#Item_8"&gt;thread&lt;/a&gt; about adding more story to Savage Worlds, just blew my mind.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Corollary: When a player fails a roll and describes how the character failed, he or she doesn't have to actually fail. Instead, consider someone else succeeding more.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You: I want to find the plans to the Death Star in the central computer.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;GM: How do you do that?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You: I connect my braintrodes to my R2 unit, who plugs into the computer and translates for me. I'm an expert in computer security.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;GM: Roll dice. Difficulty 25.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You: Drats. A 20!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;GM: You fail.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You: I do not. I hack into the computers successfully! However, the Empire is one step ahead of me. "They have moved the plans to... a protocol droid in a secure sector. We'll have to do this on foot!"&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8272751076293271265?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8272751076293271265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8272751076293271265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8272751076293271265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8272751076293271265'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/01/get-your-story-on-even-when-you-fail.html' title='Get your story on even when you fail.'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7696011468757418084</id><published>2009-01-06T10:39:00.004-05:00</published><updated>2009-01-06T10:57:31.312-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><category scheme='http://www.blogger.com/atom/ns#' term='sinatra'/><title type='text'>Playing with Sinatra, Sequel, Sqlite and Thin</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;I'd like a framework that makes it very easy for developers to rapidly prototype RESTful web services. I discovered the &lt;/span&gt;&lt;a href="http://sinatra.rubyforge.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Sinatra framework&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt; while watching a &lt;/span&gt;&lt;/span&gt;&lt;a href="http://rubyconf2008.confreaks.com/lightweight-web-services.html"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;RubyConf2008 presentation&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt; and decided to give it a try. One of the presenters mentioned &lt;/span&gt;&lt;/span&gt;&lt;a href="http://rifgraf.heroku.com/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;rifgraf&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;, a lightweight service that provides a flash graphing tool for time series data. So I installed it on my Ubuntu workstation in order to graph post traffic on my laconica installation. Here's how I got it running.&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Rifgraf uses Sinatra and &lt;/span&gt;&lt;/span&gt;&lt;a href="http://sequel.rubyforge.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Sequel&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt; (a lightweight ORM) but doesn't require them, it includes them. Still, I wanted to install those gems so I could use them on other projects. I also wanted to install &lt;/span&gt;&lt;/span&gt;&lt;a href="http://github.com/adamwiggins/rest-client/tree/master"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;RestClient&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;, a REST client api that makes it really easy to consume REST services.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;sudo gem install sinatra sequel rest-client&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;After unpacking the tarball, you can just run the main.rb script and rifgraf will appear on the default sinatra port: 4567. You can access it using your browser or RestClient in irb.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;That's great, but I wanted to host it permanently and have the server start at boot time. After a lot of poking around, I found that the easiest way to do this was to host rifgraf with the &lt;/span&gt;&lt;/span&gt;&lt;a href="http://code.macournoyer.com/thin/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;thin&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt; web server. I have some experience with mongrel and rails, but I'd never used thin. There's also this thing called &lt;/span&gt;&lt;/span&gt;&lt;a href="http://rack.rubyforge.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;rack&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt; in the middle. Rack is a middle layer between web servers and web frameworks which abstracts the HTTP protocol busywork. So lets install these too.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;sudo gem install thin rack&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;If, like me, you are not a big ruby/rails community member you may find yourself asking the same questions I did. Why thin instead of mongrel? Indeed, why mongrel instead of apache? Why do I need rack? Where's the documentation for deploying all this stuff? I think this confusion is a result of the speed at which the ruby community moves. There doesn't seem to be much of a focus on documentation. Most of the HOWTO-type of communication goes on in blog posts or mailing lists and not so much in a README. It can be very frustrating and it makes it harder for me to champion ruby in my Big Company. Specifically, there seems to be a lot of work around deploying ruby web apps in a scalable, reliable fashion. There are tons of blog posts about mongrel, thin, fastcgi, apache, lighttpd, memcached, capistrano and others but there is no big single place for this collected knowledge. The usage of these tools would increase greatly if there were. I shouldn't have to work my googlefu so much just to get this stuff deployed!&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;For instance, thin includes an init script suitable for /etc/init.d, but I only found it when a google search located it far down in the changelog (who reads to the bottom of a changelog?) and later at &lt;/span&gt;&lt;/span&gt;&lt;a href="http://railsforum.com/viewtopic.php?id=17284"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;this post at railsforum&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;. You need only run the install command in the thin script itself and it will install the thin init script.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;sudo thin install&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;sudo /usr/sbin/update-rc.d -f thin defaults # on ubuntu&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;You can then write a thin yaml config file (which is very similar but frustratingly not the same as a mongrel_cluster config) and put it in /etc/thin. Here's my yaml:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;user: www-data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;group: www-data&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;chdir: /var/www/rifgraf&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;port: 8200&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;environment: production&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;address: 0.0.0.0&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;pid: log/rifgraf-1.pid&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;servers: 1&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;log: log/thin.log&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;rackup: config/rackup.ru&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;I had to recursively chown the rifgraf application directory to the web server user to get rifgraf to work properly&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;sudo chown -R www-data:www-data /var/www/rifgraf&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Then you can start the server like you would any other service.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;sudo /etc/init.d/thin start&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Now that I have rifgraf working, I can write a script that dumps the post timestamps from my laconica database and PUTs them to rifgraf. I'll save that for another post. First, lets take a look at how easy it is to write REST services with Sinatra.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;I'm not going to describe how rifgraf works, you can read about it at the &lt;/span&gt;&lt;/span&gt;&lt;a href="http://adam.blog.heroku.com/past/2008/3/9/rest_client/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;author's web site&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;. Take a look at main.rb. Scroll down past the Points module. Now you can see sinatra in action. Sinatra provides an HTTP request method DSL that allows you to trap GET, POST, PUT and DELETE method requests and reply to them in a straightforward manner. Each directive tells sinatra how to collect the data necessary to build a response from an erb template, basically.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Check out the post directive.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;post '/graphs/:id' do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Points.data &lt;&lt; { :graph =&gt; params[:id], :timestamp =&gt; (params[:timestamp] || Time.now), :value =&gt; params[:value] }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;"ok"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;When a POST request comes in with the url /graphs/:id, insert a new record in the points table for the graph indicated by :id with the indicated timestamp (or Time.now) with the indicated value then return the string "ok". Very simple.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;I love the simplicity--how sequel, sqlite and sinatra combine to make a very simple, one-file web service.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7696011468757418084?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7696011468757418084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7696011468757418084' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7696011468757418084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7696011468757418084'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2009/01/playing-with-sinatra-sequel-sqlite-and.html' title='Playing with Sinatra, Sequel, Sqlite and Thin'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-1915186451590055264</id><published>2008-12-26T19:46:00.004-05:00</published><updated>2008-12-26T19:53:52.127-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nerf'/><title type='text'>Weapons of Nerf Destruction</title><content type='html'>I totally just broke a glass ornament with an &lt;a href="http://www.hasbro.com/nerf/n-strike/shop/details.cfm?guid=9274D285-6D40-1014-8BF0-9EFBF894F9D4&amp;amp;product_id=15953&amp;amp;src=endeca"&gt;N-Strike Maverick Rev-6&lt;/a&gt;, the greatest thing you can buy for eight bucks. My wife got me one for Christmas this year along with a crap-ton of extra darts, including ones that whistle. I was shooting at her as she was headed for the fridge and I hit the centerpiece on the table, knocking a glass ball to the hardwood floor where it shattered.&lt;br /&gt;&lt;br /&gt;Sweet.&lt;br /&gt;&lt;br /&gt;This thing rocks on toast. It looks like Hellboy's revolver! It fires up to six shots pretty far. And apparently, you can mod it to make it shoot farther or to make the chamber come completely free of the frame so you can play Russian Roulette. Just search for "nerf maverick mod" on &lt;a href="http://www.youtube.com/results?search_query=nerf+maverick+mod&amp;amp;search_type=&amp;amp;aq=f"&gt;youtube&lt;/a&gt; or &lt;a href="http://www.google.com/search?q=nerf+maverick+mod&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=org.mozilla:en-US:official&amp;amp;client=firefox-a"&gt;google&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I think we are going back to the store to pick up a few more of these things for New Years.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-1915186451590055264?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/1915186451590055264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=1915186451590055264' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1915186451590055264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1915186451590055264'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/12/i-totally-just-broke-glass-ornament.html' title='Weapons of Nerf Destruction'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5464332592884537480</id><published>2008-12-16T20:03:00.003-05:00</published><updated>2008-12-16T20:40:14.750-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><title type='text'>More Indie Game Madness</title><content type='html'>I'm going crazy on these games. There's so much imagination and innovation going on in the indie scene and I can barely keep up with it. My wallet certainly can't!&lt;br /&gt;&lt;br /&gt;So here's a list of games I'm currently interested in buying at some point. Check these out and support their designers.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.projectdonut.com/"&gt;FreeMarket&lt;/a&gt;: A game by Jared Sorensen and Luke Crane? A game inspired by the workds of Bruce Sterling, Neal Stephenson and William Gibson? They are only printing 1,000 copies and once they are sold, releasing it as a free PDF? Sweet.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.phreeow.net/wiki/tiki-index.php?page=Diaspora"&gt;Diaspora&lt;/a&gt;: This one's a hard sci-fi hack of Fate 3.0, the rules powering Spirit of the Century. The cool bit is that you, as a group, create a "cluster" of star systems interlinked by an FTL network &lt;span style="font-style: italic;"&gt;and then&lt;/span&gt; make characters in that setting. This started as a Fate 3.0/Traveller mashup and turned into an indie rpg project.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.memento-mori.com/inspectres/"&gt;InSpectres:&lt;/a&gt; I'd heard about this a number of times and was reminded of it when my friend Ed was talking about running a Ghostbusters game using Savage Worlds. InSpectres is basically a Ghostbusters story game that has a unique take on solving mysteries in RPGs. The players actually add facts to the mystery until they accumulate enough mission points to narrate it's solution. Also check out a supplement, &lt;a href="http://www.lamemage.com/releases/1110-inspace/InSpace.pdf"&gt;InSpace&lt;/a&gt;, a sci-fi exploration of the mysteries of the cosmos.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.darkomengames.com/secrets.html"&gt;Dirty Secrets:&lt;/a&gt; This one's a noir crime story-telling game that uses liars' dice as a resolution mechanic (which I bet adds a nice in-genre bluffing feel to the game). You build the mystery as the game plays out and no one knows who's really guilty until the last dice fall. I just listened to a &lt;a href="http://independentinsurgency.com/index.php?post_id=411425"&gt;podcast interview&lt;/a&gt; of the designer on the (long) drive home tonight.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.arkenstonepublishing.net/zombiecinema"&gt;Zombie Cinema:&lt;/a&gt; I missed this one at Gencon (I should really pay more attention next year to the indie booths), but I heard about it on the This Just In From Gencon podcast and the Voice of the Revolution. It mixes boardgame elements with a story-teller rpg to tell a zombie survival tale. I'm interested in this because I finally convinced my wife to read World War Z and we've been talking about it a lot lately.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5464332592884537480?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5464332592884537480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5464332592884537480' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5464332592884537480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5464332592884537480'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/12/more-indie-game-madness.html' title='More Indie Game Madness'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5971754815866144526</id><published>2008-12-12T08:43:00.003-05:00</published><updated>2008-12-12T08:49:46.512-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><title type='text'>Jump Punk</title><content type='html'>Another &lt;a href="http://forum.rpg.net/showthread.php?t=428651"&gt;great thread&lt;/a&gt; on rpg.net.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A while back, my friend Brian put me on to &lt;a href="http://www.amazon.com/Getaway-Special-Jerry-Oltion/dp/0312877781/ref=pd_cp_b_1?pf_rd_p=413864201&amp;amp;pf_rd_s=center-41&amp;amp;pf_rd_t=201&amp;amp;pf_rd_i=0765306190&amp;amp;pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_r=0X5D82JXZ12WXY87N8T4"&gt;The Getaway Special&lt;/a&gt;, a book in which a guy invents and then open-sources(!) a cheap FTL hyperdrive. This book also spawned a &lt;a href="http://forum.rpg.net/showthread.php?t=274407"&gt;thread&lt;/a&gt; on rpg.net labeled FTL Y'all.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This &lt;a href="http://forum.rpg.net/showthread.php?t=428651"&gt;new thread&lt;/a&gt; advances the timeline to a point where anyone can build an open source hyperdrive that will take them to the other side of the galaxy, strap on their supertech intelligent space suit and go exploring, blogging about it the whole time on the hypernet.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5971754815866144526?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5971754815866144526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5971754815866144526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5971754815866144526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5971754815866144526'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/12/jump-punk.html' title='Jump Punk'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8733942345348454958</id><published>2008-12-12T08:33:00.004-05:00</published><updated>2008-12-13T10:13:11.028-05:00</updated><title type='text'>Your Ad Sucks</title><content type='html'>Dear &lt;a href="http://www.indystar.com/"&gt;IndyStar.com&lt;/a&gt;,&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That giant banner add at the top of your page which forces me to scroll down to read the news and, just as I start reading the headlines, retracts to the top of the page forcing all of the text to scroll back up by way of some clever, albeit heinous, act of javascript COMPLETELY BLOWS!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8733942345348454958?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8733942345348454958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8733942345348454958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8733942345348454958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8733942345348454958'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/12/you-ad-sucks.html' title='Your Ad Sucks'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-4968785634158367761</id><published>2008-12-08T22:02:00.003-05:00</published><updated>2008-12-08T22:44:58.656-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='burning wheel'/><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><category scheme='http://www.blogger.com/atom/ns#' term='pc project'/><title type='text'>Burning Wheel Character</title><content type='html'>I finally got around to making another PC, this time for Burning Wheel. BW seems like a good game, if a bit complicated. The complicated rules bits don't have to come into play, in fact, the game suggests that you only bring them out for very important story/plot reasons.&lt;br /&gt;&lt;br /&gt;Character creation follows a lifepath system similar to that of the old Traveller RPG, though there's more of a nod to the indie game style of creating mechanical incentives to make an interesting story. There are also mechanics to back up the traditional fantasy tropes (see the Greed stat mentioned below).&lt;br /&gt;&lt;br /&gt;There's a whole book dedicated to making characters: The Character Burner. It has lifepaths for Dwarves, Elves, Men and Orcs. I chose to make a Dwarf because it was the first one in the book and because I wanted to create a craftsman sort of character. Leafing through the possible "Settings" I found one that included the path of brewer. Perfect.&lt;br /&gt;&lt;br /&gt;So my basic character concept is this: an up and coming master brewer loses his family brewery to a business rival and is outcast, penniless, from his home under the mountain. Outside, he makes his way the best he can, all the while scheming to regain his lost riches.&lt;br /&gt;&lt;br /&gt;So I chose four lifepaths: Born Craftsman, Miller, Brewer and Adventurer. Lifepaths sometimes have pre-requisites and, if your GM allows you a high enough lifepath budget, you can play generals and kings. Brewer required that I first choose Miller, for instance.&lt;br /&gt;&lt;br /&gt;It turns out that all of your stats come from these choices. Each lifepath gives you a budget of skill, trait and resource points to spend. They also define the skills and traits from which you may select. You are basically building your own class in which to advance. An interesting aspect of the skill selection is that each race has its own exclusive skills that set them apart from the others. I was able to take the Nogger skill, for instance, which allows a dwarf to make a special brew that fortifies him for battle.&lt;br /&gt;&lt;br /&gt;So, after selecting and improving my skills with skill points and spending the trait and resource points, this is what I have:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Will&lt;/span&gt; B5, &lt;span style="font-weight: bold;"&gt;Perception&lt;/span&gt; B5, &lt;span style="font-weight: bold;"&gt;Power&lt;/span&gt; B5, &lt;span style="font-weight: bold;"&gt;Forte&lt;/span&gt; B5, &lt;span style="font-weight: bold;"&gt;Agility&lt;/span&gt; B4, &lt;span style="font-weight: bold;"&gt;Speed&lt;/span&gt; B3.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Health&lt;/span&gt; B6, &lt;span style="font-weight: bold;"&gt;Mortal Wound&lt;/span&gt; B11, &lt;span style="font-weight: bold;"&gt;Reflexes&lt;/span&gt; B4, &lt;span style="font-weight: bold;"&gt;Steel&lt;/span&gt; B5, &lt;span style="font-weight: bold;"&gt;Circles&lt;/span&gt; B2, &lt;span style="font-weight: bold;"&gt;Resources&lt;/span&gt; B1, &lt;span style="font-weight: bold;"&gt;Greed&lt;/span&gt; B3.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Skills:&lt;/span&gt; Brewer and Crossbow (each at B4); Beer Appraisal, Nogger, Beer-Wise, Haggling, and Knives (each at B3); Grain Appraisal, Survival, Mending, Climbing, Brawling, Lockpick, Drinking, Herbalism and Miller (each at B2).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Traits:&lt;/span&gt; All common Dwarven traits, Adventurer, Boaster, Bitter, Grudge Keeper and Skinflint.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Relationships:&lt;/span&gt; Dunder, the son of the chieftain who stole my family's brewery, is my sworn enemy.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Age:&lt;/span&gt; 96&lt;br /&gt;&lt;br /&gt;[&lt;span style="font-style: italic;"&gt;If you're wondering what the B stands for in the stats above, it means "black shade". That's just BW jargon to indicate the target number for success when making an attribute test. BW uses a dice pool system, so when my dwarf needs to test his Perception, he rolls five six-sided dice and counts the number of dice that come up 4 or higher: these are successes. If his attribute were "gray shade" the number to beat would be 3 or higher, "white shade" attributes need only roll a 2 or higher for success.&lt;/span&gt;]&lt;br /&gt;&lt;br /&gt;Roleplaying Traits is one way to gain hero points, called Artha in BW. You can spend Artha to improve your chances of success on tests. If you want to advance a skill or attribute, you must use it. In fact, you must use it many times against a varying set of difficulties before you can advance it. I really dig this mechanic. It encourages players to push the story in directions that allow them to make rolls against the skills they want to improve.&lt;br /&gt;&lt;br /&gt;This is where that Greed stat comes in. Only dwarves have a Greed stat. It has many effects: it makes it harder for you to spend your money when your resources are low, you may have to make a test when exposed to the target of your greed in order to avoid immediately doing anything in your power to obtain it. If your Greed becomes too great, you go mad with greed and lock yourself away with your riches never to be seen again.&lt;br /&gt;&lt;br /&gt;By playing to your Greed, you increase your chances that your fellow players will vote you in for Artha rewards that you can use later in your quest to improve your skills. It all seems to hang together nicely.&lt;br /&gt;&lt;br /&gt;The last thing to do is to pick Beliefs and Instincts. Beliefs are more Artha-generating character traits. Think of them almost like Spirit of the Century's Aspects--they are story wishlists to the GM. Instincts, on the other hand, are IF/THEN statements that will always come true for your character. The example in the book is: "If I'm surprised, I always draw my sword". These are behaviors that your character will always undertake. You get to pick up to three Beliefs and up to three Instincts.&lt;br /&gt;&lt;br /&gt;Because I picked the trait Grudge Keeper, I get the option to pick one more Belief, but it has to be a grudge against another character. Sweet. I pick one that tells my GM what I'd like my character's ultimate goal to be. I'll pick one Instinct too. I figure if I were making this character with a group of other players, I'd add more Beliefs and Instincts in that complemented theirs. So...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Belief:&lt;/span&gt; "I will not rest until I regain my family's brewery from Dunder Son of Dander."&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Instinct:&lt;/span&gt; "I always save back a few coins for a rainy day--you never know when they may be useful."&lt;br /&gt;&lt;br /&gt;I also spend some of my resource points on Gear. Among other mundane things, I pick up a keg of the magical nog, a fine Dwarven crossbow, some Dwarven armor and the tools necessary to brew a good batch of beer. I also spend some points on a relationship with a local crime family which I've been forced to work for due to my dwindling funds and I purchase a reputation as the best brewer in town.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-4968785634158367761?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/4968785634158367761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=4968785634158367761' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4968785634158367761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4968785634158367761'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/12/burning-wheel-character.html' title='Burning Wheel Character'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-1352493597412838206</id><published>2008-12-06T18:56:00.003-05:00</published><updated>2008-12-06T18:57:46.724-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sotc'/><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><title type='text'>Change the Century -- World Aspects for Spirit of the Century</title><content type='html'>There's a &lt;a href="http://forum.rpg.net/showthread.php?t=426173"&gt;cool thread&lt;/a&gt; at rpg.net talking about adding world aspects after each game session to make the game setting more "pulpy".&lt;br /&gt;&lt;br /&gt;Cool stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-1352493597412838206?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/1352493597412838206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=1352493597412838206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1352493597412838206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1352493597412838206'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/12/change-century-world-aspects-for-spirit.html' title='Change the Century -- World Aspects for Spirit of the Century'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5655940587730261063</id><published>2008-11-28T17:28:00.004-05:00</published><updated>2008-11-28T17:32:34.772-05:00</updated><title type='text'>Cybertooth Tiger</title><content type='html'>I misspoke this afternoon trying to say "&lt;a href="http://en.wikipedia.org/wiki/Sabertooth_tiger"&gt;Sabertooth Tiger&lt;/a&gt;" and said "Cybertooth Tiger" instead.&lt;br /&gt;&lt;br /&gt;I immediately thought of cloned sabertooths with cybernetic enhancements chasing down hapless humans in a Terminator-like future.&lt;br /&gt;&lt;br /&gt;Cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5655940587730261063?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5655940587730261063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5655940587730261063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5655940587730261063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5655940587730261063'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/11/cybertooth-tiger.html' title='Cybertooth Tiger'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-6370828644474398627</id><published>2008-11-13T16:04:00.004-05:00</published><updated>2008-11-14T08:49:18.900-05:00</updated><title type='text'>Soap4r and Rails: Am I Gonna Have to Separate You Two?</title><content type='html'>The fact that rails and soap4r don't play well with each other is &lt;a href="http://dev.ctor.org/soap4r/ticket/433"&gt;well documented&lt;/a&gt;. When you install soap4r using gem, it jacks up rails. Then you have to modify your config/environment.rb to include soap4r. I lost some time to this a while back and thought I had it fixed.&lt;br /&gt;&lt;br /&gt;I'm working on migrating project tracking data out of SourceForge Enterprise Edition 4.2 (&lt;a href="http://sourceforge.net/powerbar/sfee/"&gt;SFEE&lt;/a&gt;) and into &lt;a href="http://www.redmine.org/"&gt;Redmine&lt;/a&gt;. SFEE has a nice web service API so it's easy to get the data out. Redmine is a rails app, so it's relatively easy to understand the ORM and write scripts to insert the data.&lt;br /&gt;&lt;br /&gt;Redmine integrates with subversion. It uses a web service to allow scripts to create new subversion repositories for new projects. That web service is built on &lt;a href="http://rubyforge.org/projects/aws/"&gt;ActionWebService,&lt;/a&gt; the rails SOAP plugin.&lt;br /&gt;&lt;br /&gt;After I installed soap4r in order to use wsdl2ruby.rb to create ruby client APIs for SFEE, it seems I broke the repository creation web service. Here's the first lines of the misleading error from my production.log which sent me on a snipe hunt in config/routes.rb:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;ActionController::MissingTemplate (Missing template sys/wsdl.html.erb &lt;br /&gt;in view path /var/www/redmine/app/views):&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/19d44f2c431261ac/7c003e7ca6523f0a?lnk=raot"&gt;This thread&lt;/a&gt; shows I'm not the only person having this problem.&lt;br /&gt;&lt;br /&gt;Here's the problem: how do I use soap4r to extract data from SFEE but have it not jack up the rails web services. Here's how I did it.&lt;br /&gt;&lt;br /&gt;First, I uninstalled soap4r.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;gem uninstall soap4r&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then I reinstalled it in a nonstandard location.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;gem install soap4r -i $MY_GEMS&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now if I want to run scripts that require soap4r I need to set the GEM_PATH environment variable and everything works.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;export GEM_PATH=$MY_GEMS&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;My rails application is fine: my base ruby installation with its standard gem location can't see soap4r so ActionWebService works now. But here's my next problem: my migration script both extracts data and loads it into Redmine using the rails models. So I need soap4r and rails to play well together. That's where the standard hack for soap4r and rails comes in handy.&lt;br /&gt;&lt;br /&gt;I just need to add two lines to the beginning of my migration script, right before I pull in the rails environment.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;require 'rubygems'&lt;br /&gt;gem 'soap4r'&lt;br /&gt;&lt;br /&gt;RAILS_ENV = 'development'&lt;br /&gt;require '/var/www/redmine/config/environment'&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-6370828644474398627?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/6370828644474398627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=6370828644474398627' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/6370828644474398627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/6370828644474398627'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/11/soap4r-and-rails-am-i-gonna-have-to.html' title='Soap4r and Rails: Am I Gonna Have to Separate You Two?'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-3858516191500034541</id><published>2008-11-12T19:47:00.002-05:00</published><updated>2008-11-12T19:49:26.884-05:00</updated><title type='text'>The Xtacles</title><content type='html'>Adult Swim does it again with the &lt;a href="http://en.wikipedia.org/wiki/The_Xtacles"&gt;Xtacles&lt;/a&gt;, a jacked up fusion of Sealab 2021 and G.I. Joe. I caught the first two episodes on DVR last night and they were pretty damn funny.&lt;br /&gt;&lt;br /&gt;Those Williams Street guys smoke just the right amount of weed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-3858516191500034541?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/3858516191500034541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=3858516191500034541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3858516191500034541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3858516191500034541'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/11/xtacles.html' title='The Xtacles'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-4513709402253418509</id><published>2008-11-11T20:05:00.002-05:00</published><updated>2008-11-11T20:18:50.302-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><category scheme='http://www.blogger.com/atom/ns#' term='PentaCon'/><title type='text'>Pentacon After Action Report</title><content type='html'>Saturday I went up to Fort Wayne for Pentacon with Scott and Ed. In the morning, I played a D-Day Invasion minis game that was astounding. I kind of wish I hadn't signed up for anything else so I could have played this game all day.&lt;br /&gt;&lt;br /&gt;The guy who set it up went all out. He had researched everything down to the number of guys on the beach and the number of German soldiers defending the hills. He even had the right models for the landing craft.&lt;br /&gt;&lt;br /&gt;Unfortunately, I was only able to just reach the base of the hills at the end of the four hour session. In the next turn, one of my squads would be able to take out an anti-tank bunker with grenades. I was lucky, though. I actually got to do some damage against the defenders when my radio man made his contact rolls and called in a strike from a destroyer off shore.&lt;br /&gt;&lt;br /&gt;Check out these &lt;a href="http://www.flickr.com/photos/22163980@N07/"&gt;pics&lt;/a&gt;. In one, you can just see my Dirty Dozen about to take the bunker.&lt;br /&gt;&lt;br /&gt;In the second session, I ran 3:16 Carnage Amongst the Stars. I love these indie rpgs that take no preparation for con games. The group of guys I played with were great. They took to the player-controlled narrative and had a blast. We were able to get in three missions and in the last, I let a player who'd made lieutenant give the mission briefing and pretty much set the whole thing up. These guys were a lot of fun, even going as far as setting themselves obstacles and pacing their own narration on each mission so that the story moved along to a satisfying conclusion. And like all good sci-fi games, it ended with the Lt. called in an orbital bombardment destroying all alien life on the planet (for which he was demoted back to Sergeant).&lt;br /&gt;&lt;br /&gt;Ed's game was canceled when none of the players showed up, so we played in a 2nd edition AD&amp;amp;D game Scott had signed up for which needed a couple more players. It was fun going old school and playing high-level characters again. Ed even got a chance to learn &lt;a href="http://en.wikipedia.org/wiki/THAC0"&gt;thaco&lt;/a&gt;. My wizard managed to fend off monsters with a few illusions and a summoned lion all without spilling the open bottle of wine he was holding.&lt;br /&gt;&lt;br /&gt;It was a fine day of adventuring.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-4513709402253418509?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/4513709402253418509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=4513709402253418509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4513709402253418509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4513709402253418509'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/11/pentacon-after-action-report.html' title='Pentacon After Action Report'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-817133411457871764</id><published>2008-11-06T08:50:00.002-05:00</published><updated>2008-11-06T08:52:19.008-05:00</updated><title type='text'>Voter Turnout</title><content type='html'>According to the &lt;a href="http://www.indystar.com/article/20081106/NEWS0502/811060460"&gt;IndyStar&lt;/a&gt;, about 75% of eligible voters in Hamilton county voted this week. If anything, this election really brought people to the polls.&lt;br /&gt;&lt;br /&gt;Welcome to democracy folks, I hope you stick around.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-817133411457871764?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/817133411457871764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=817133411457871764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/817133411457871764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/817133411457871764'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/11/voter-turnout.html' title='Voter Turnout'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5171239899285004811</id><published>2008-10-29T19:36:00.001-04:00</published><updated>2008-10-29T19:57:11.514-04:00</updated><title type='text'>More Words of Wisdom</title><content type='html'>Anyone who says they don't like &lt;a href="http://www.mtvmusic.com/video/?id=58780"&gt;Prince&lt;/a&gt; is lying to themselves.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5171239899285004811?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5171239899285004811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5171239899285004811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5171239899285004811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5171239899285004811'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/10/more-words-of-wisdom.html' title='More Words of Wisdom'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-2160003845881036277</id><published>2008-10-29T08:42:00.003-04:00</published><updated>2008-10-29T08:45:02.545-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><category scheme='http://www.blogger.com/atom/ns#' term='PentaCon'/><title type='text'>PentaCon XXIV</title><content type='html'>I just sent off my prereg for &lt;a href="http://www.pentacongames.com/"&gt;PentaCon&lt;/a&gt; in Fort Wayne, IN. I'll be running a game of &lt;a href="http://gregorhutton.com/boxninja/threesixteen/index.html"&gt;3:16 Carnage Amongst the Stars&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is the &lt;span style="font-style: italic;"&gt;nineteenth&lt;/span&gt; anniversary of my first PentaCon (and first game convention ever).&lt;br /&gt;&lt;br /&gt;HFS!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-2160003845881036277?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/2160003845881036277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=2160003845881036277' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2160003845881036277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2160003845881036277'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/10/pentacon-xxiv.html' title='PentaCon XXIV'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5497009760209265142</id><published>2008-10-29T08:35:00.001-04:00</published><updated>2008-10-29T08:35:34.120-04:00</updated><title type='text'>Words of Wisdom</title><content type='html'>If you're going to do something stupid, be smart about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5497009760209265142?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5497009760209265142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5497009760209265142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5497009760209265142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5497009760209265142'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/10/words-of-wisdom.html' title='Words of Wisdom'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7888483486679364454</id><published>2008-10-26T21:42:00.001-04:00</published><updated>2008-10-26T21:45:56.210-04:00</updated><title type='text'>We Love Our Gadgets</title><content type='html'>I put my two-year-old boy down for a nap this afternoon. He insisted on taking a cheap pair of binoculars to bed with him. He carefully pulled his blanket up over them and tucked them in before sticking his thumb in his mouth and laying down.&lt;br /&gt;&lt;br /&gt;I can think of at least two computers, a PDA, a playstation, and a zillion games to which I could do the same.&lt;br /&gt;&lt;br /&gt;If I was two.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7888483486679364454?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7888483486679364454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7888483486679364454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7888483486679364454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7888483486679364454'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/10/we-love-our-gadgets.html' title='We Love Our Gadgets'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8696496423546137734</id><published>2008-10-22T15:35:00.003-04:00</published><updated>2008-10-22T15:45:41.083-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><title type='text'>New Beer Geek Place in Fishers</title><content type='html'>I've been to the Old Town Ale House (&lt;a href="http://www.nuvo.net/articles/corner_wine_bar_s_new_venture_in_fishers_has_some_work_to_do/"&gt;nuvo review&lt;/a&gt;) three times now. It's a new place next to Archer's butcher shop right downtown Fishers on 116th street. They have an excellent beer selection with about a dozen great beers on tap. On Tuesdays and Wednesdays draft pints are $2.75.&lt;br /&gt;&lt;br /&gt;Last night T and I went there after parent-teacher conference. She had a &lt;a href="http://www.brooklynbrewery.com/beer/?id=BLACK%20CHOCOLATE%20STOUT"&gt;Brooklyn Black Chocolate Stout&lt;/a&gt; and I had a &lt;a href="http://www.stonebrew.com/ruin/"&gt;Stone Ruination IPA&lt;/a&gt;. Those are some pretty nice (and alcoholic) beers for $2.75 each. We also had their fish and chips (thankfully not "fish planks").&lt;br /&gt;&lt;br /&gt;Still, their food isn't all that great. Why can't the places with great beer selection (hey &lt;a href="http://hotshotzpub.com/"&gt;Hotshotz&lt;/a&gt;, I'm looking at you) have good food too? They need a real standout dish to bring me back.&lt;br /&gt;&lt;br /&gt;And they need to redecorate. The place is pretty open and drab inside. They need some more booths to make it cozy and should brighten up the place a bit.&lt;br /&gt;&lt;br /&gt;But I'll still be going back for those $2.75 pints of Stone, Founders, and Bells!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8696496423546137734?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8696496423546137734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8696496423546137734' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8696496423546137734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8696496423546137734'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/10/new-beer-geek-place-in-fishers.html' title='New Beer Geek Place in Fishers'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-6696270674328862611</id><published>2008-10-12T08:42:00.001-04:00</published><updated>2008-10-12T08:44:06.660-04:00</updated><title type='text'>Lord British in space!</title><content type='html'>Back when I was playing Ultima on my C-64, I never would have imagined &lt;a href="http://ap.google.com/article/ALeqM5gVmXiJGB7S--M-E06nd_2DUW5sqQD93OTL7O0"&gt;Lord British would be an astronaut&lt;/a&gt; someday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-6696270674328862611?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/6696270674328862611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=6696270674328862611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/6696270674328862611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/6696270674328862611'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/10/lord-british-in-space.html' title='Lord British in space!'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-433264400238405130</id><published>2008-10-11T08:45:00.003-04:00</published><updated>2008-10-11T09:07:19.571-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jets3t'/><category scheme='http://www.blogger.com/atom/ns#' term='s3'/><category scheme='http://www.blogger.com/atom/ns#' term='aws'/><title type='text'>Backing up family photos to Amazon S3</title><content type='html'>Here's the setup. My wife uses a Macbook to download family photos from our digital camera and she organizes them with iPhoto. Before the Mac, when we had a PC, we used Picasa and stored the pics on an &lt;a href="http://www.k0lee.com/hpmediavault/"&gt;HPMediaVault&lt;/a&gt; NAS. But when we started using the Mac, it copied all of the photos to its local drive in order to manage them with iPhoto.&lt;br /&gt;&lt;br /&gt;So now our pics are not being backed up to the NAS. And what happens if the NAS fails?&lt;br /&gt;&lt;br /&gt;I took the day off yesterday to be a slacker and decided to fix this. Here's what I did: I &lt;a href="http://support.apple.com/kb/HT1229"&gt;moved the iPhoto library&lt;/a&gt; to the NAS where it belongs and I used jets3t to backup that directory to S3. &lt;a href="https://jets3t.dev.java.net/"&gt;Jets3t&lt;/a&gt; has a nice command-line tool called &lt;a href="http://jets3t.s3.amazonaws.com/applications/synchronize.html"&gt;synchronize&lt;/a&gt; which you can use for this purpose. I setup a cron job on my linux machine calling synchronize once a week on the iPhoto library directory.&lt;br /&gt;&lt;br /&gt;My initial upload was 4.2gb and it took over nine hours on my comcast cable modem connection. The weekly deltas shouldn't be all that bad, though. At most a couple dozen files of less than half a meg each.&lt;br /&gt;&lt;br /&gt;So for about 15,000 files, 4.2 Gb, it cost me about $0.60 for the initial upload. It'll cost me another $0.60 for storage each month, and if I run the cron job weekly, about $0.08 for the synchronization requests (checking to see if there are any new files). So considering growth, I can have offsite backups of my pics for about $12 a year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-433264400238405130?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/433264400238405130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=433264400238405130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/433264400238405130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/433264400238405130'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/10/backing-up-family-photos-to-amazon-s3.html' title='Backing up family photos to Amazon S3'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7779616882765274053</id><published>2008-10-06T18:28:00.002-04:00</published><updated>2008-10-06T18:28:47.655-04:00</updated><title type='text'>Life as seen through my eyes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.franksemails.com/pics/godsend.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://www.franksemails.com/pics/godsend.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7779616882765274053?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7779616882765274053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7779616882765274053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7779616882765274053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7779616882765274053'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/10/life-as-seen-through-my-eyes.html' title='Life as seen through my eyes'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8311702787480915357</id><published>2008-09-28T19:57:00.001-04:00</published><updated>2008-09-28T20:00:26.997-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drink'/><title type='text'>Make a drink out of it!</title><content type='html'>What do you do when you use only 1/2 cup of coconut milk out of a 12 oz can?&lt;br /&gt;&lt;br /&gt;You make a &lt;a href="http://www.thaikitchen.com/recipes/beverages/bevsumbreeze.html"&gt;drink&lt;/a&gt; out of the rest of it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8311702787480915357?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8311702787480915357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8311702787480915357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8311702787480915357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8311702787480915357'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/09/make-drink-out-of-it.html' title='Make a drink out of it!'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-962539655277010592</id><published>2008-09-28T13:13:00.002-04:00</published><updated>2008-09-28T13:18:39.286-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><category scheme='http://www.blogger.com/atom/ns#' term='dnd'/><category scheme='http://www.blogger.com/atom/ns#' term='minis'/><title type='text'>Playing with Menards</title><content type='html'>I was in Menards this morning getting potting soil and mulch and decided to check out the Halloween decorations with the kids. They had a display of haunted houses, much like the Christmas houses you can find. What really caught my eye were the little figures you could buy to add to your Halloween display.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They had two sets (for $2.00 each!) that I got: &lt;a href="http://www.lemaxcollection.com/product_details.jsp?choice=2&amp;amp;catId=&amp;amp;themeId=8&amp;amp;pid=1754&amp;amp;curr=114&amp;amp;currPage=10"&gt;a set of three piles of skulls&lt;/a&gt; and a &lt;a href="http://www.lemaxcollection.com/product_details.jsp?choice=2&amp;amp;catId=&amp;amp;themeId=8&amp;amp;pid=1763&amp;amp;curr=140&amp;amp;currPage=12"&gt;set of snakes and rats&lt;/a&gt;. These are perfect for fantasy gaming! I can't wait to use the skull piles in my next game.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-962539655277010592?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/962539655277010592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=962539655277010592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/962539655277010592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/962539655277010592'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/09/playing-with-menards.html' title='Playing with Menards'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7159366982147431360</id><published>2008-09-13T16:18:00.003-04:00</published><updated>2008-09-13T16:24:19.556-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='laconica'/><title type='text'>Configuring Laconica with Google Talk</title><content type='html'>Damn if I didn't finally get this working. You can post messages to laconica through jabber IM networks like google talk. But for the life of me, I couldn't get this configured. One problem was getting through the corporate firewall (which I solved temporarily by using proxytunnel and ssh) to port 5222 at talk.google.com. But the other problem was getting the laconica config.php set up just right.&lt;br /&gt;&lt;br /&gt;Turns out it was just a quick search away. Check out &lt;a href="http://laconi.ca/trac/wiki/InstallationWindows"&gt;this tutorial&lt;/a&gt; in the laconica trac wiki and scroll down to the xmpp config section. Right there it is. You need both the host and server settings, not just the server.&lt;br /&gt;&lt;br /&gt;Now I just need to setup xmppdaemon.php as a daemon and get the firewall guys to setup port forwarding and I'm in business!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7159366982147431360?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7159366982147431360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7159366982147431360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7159366982147431360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7159366982147431360'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/09/configuring-laconica-with-google-talk.html' title='Configuring Laconica with Google Talk'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-1116713150267803472</id><published>2008-09-13T09:30:00.004-04:00</published><updated>2008-09-13T09:41:30.614-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>Internal TinyURL?</title><content type='html'>After installing laconica, I started thinking: What other useful things could I install to make life easier inside the corporate firewall? The first thing I thought of was tinyurl.&lt;br /&gt;&lt;br /&gt;My company uses Sharepoint. Sharepoint generates some of the biggest, most heinous urls I've ever encountered. It's not unusual to have people tossing these big urls around, pointing to documents, presentations, images and whatnot. What if you want to post one of these links in a laconica notice? You'll use up half your byte budget right there!&lt;br /&gt;&lt;br /&gt;At first, I was just going to hack up a rails project to do this. Originally, I wanted people to be able to specify their own url. But surely someone has done this before. Surely there's open source code out there to do this.&lt;br /&gt;&lt;br /&gt;Turns out there are a couple of projects. There's &lt;a href="http://lilurl.sourceforge.net/"&gt;lilURL&lt;/a&gt;, which looks like a no-frills simple implementation; &lt;a href="http://kissa.be/index.php"&gt;Kissa.be&lt;/a&gt;, which looks great and has a couple extra features (but is in Turkish!); and &lt;a href="http://www.tighturl.com/"&gt;tighturl&lt;/a&gt; which is what I ultimately decided to use.&lt;br /&gt;&lt;br /&gt;Tighturl is written in php, so I guess I better start learning that language. It's very configurable and it seems easy to change the look-and-feel using templates. It should be a snap to configure my apache server to handle the redirects. I figure about an hour and a half to install and config.&lt;br /&gt;&lt;br /&gt;What other tools might be out there that I can install? I'm on a mission here to show my company that it doesn't have to cost thousands of dollars and dozens of consultant-hours to provide useful tools to a wide audience. All you need is a linux server and someone with a little familiarity with open source technologies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-1116713150267803472?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/1116713150267803472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=1116713150267803472' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1116713150267803472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1116713150267803472'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/09/internal-tinyurl.html' title='Internal TinyURL?'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-2618141072274480593</id><published>2008-09-11T12:28:00.002-04:00</published><updated>2008-09-11T12:46:12.397-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='laconica'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Setting up Laconica for Microblogging</title><content type='html'>I realized that most of this blog is gaming and other nonsense and I never post anything about my work. Here goes...&lt;br /&gt;&lt;br /&gt;I've been playing around with an open source microblogging service called &lt;a href="http://laconi.ca/trac/"&gt;Laconica&lt;/a&gt; lately. It's the software running the open source twitter clone identi.ca. I first saw &lt;a href="http://identi.ca/"&gt;identi.ca&lt;/a&gt; at OSCON back in July. I've played with &lt;a href="http://twitter.com"&gt;twitter&lt;/a&gt; a bit, but since I don't use it from my mobile phone, I don't really find it all that useful. That, and I'm part of the generation just before all this social stuff started popping up on the net, so not many of my friends participate either.&lt;br /&gt;&lt;br /&gt;But I was in a meeting with some folks who are interested in social networking at my company and they were lamenting how hard it was to get our corporate IT group to help them out. They wanted to play with a twitter-inside-the-firewall and ran up against all the usual IT bureaucracy: who can we buy it from, how expensive is it, do you have a business case, can't we just get this from Microsoft, etc. This claptrap always comes up and it really pisses me off.&lt;br /&gt;&lt;br /&gt;So, to make a point, I installed laconica on my ubuntu linux workstation and sent the link out. Before I knew it I had a couple dozen users!&lt;br /&gt;&lt;br /&gt;Laconica doesn't have much in the way of documentation. There are a couple of tutorials out there (&lt;a href="http://decafbad.com/blog/2008/07/03/getting-laconica-up-and-running"&gt;here&lt;/a&gt; and &lt;a href="http://www.saigonnezumi.com/2008/08/09/setting-up-lamp-server-and-laconica-050-in-ubuntu-hardy-heron/"&gt;here&lt;/a&gt;) but none address setting up SMS or XMPP. I'd really like to get this thing configured so people could text or IM posts in. Unfortunately, laconica only supports SMS-out (your cell phone can receive, but not send messages). And IM requires that the server contact a Jabber server outside of our firewall through port 5222 so that's not working. I'm considering setting up an http tunnel through port 80 to an Amazon EC2 instance, but that's probably going to get me in trouble with the security folks.&lt;br /&gt;&lt;br /&gt;Another thing I'd like to change is authentication. Laconica uses &lt;a href="http://en.wikipedia.org/wiki/Openid"&gt;OpenID&lt;/a&gt;, which is really cool, but I need to authenticate against our corporate LDAP service. There's an OpenID/LDAP bridge webapp out there (&lt;a href="http://www.openid-ldap.org/"&gt;OpenID-LDAP&lt;/a&gt;) but its got zero documentation and I couldn't quite get it working with our LDAP. Maybe given a couple of days of php hacking (something I'm not that good at) I could get it working, but for now, I'm just using a local access list (meh).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-2618141072274480593?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/2618141072274480593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=2618141072274480593' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2618141072274480593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2618141072274480593'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/09/setting-up-laconica-for-microblogging.html' title='Setting up Laconica for Microblogging'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5707972201553666528</id><published>2008-09-08T21:40:00.002-04:00</published><updated>2008-09-08T21:43:14.888-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><title type='text'>Obsidian Portal</title><content type='html'>There's this great gamer site called &lt;a href="http://www.obsidianportal.com"&gt;Obsidian Portal&lt;/a&gt; which helps a gaming group keep track of their RPG campaigns.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I created a site for my &lt;a href="http://www.obsidianportal.com/campaign/dogsofwar"&gt;Dogs of War campaign&lt;/a&gt;. Check it out.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And it's built on &lt;a href="http://www.rubyonrails.org/"&gt;ruby on rails&lt;/a&gt;...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5707972201553666528?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5707972201553666528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5707972201553666528' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5707972201553666528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5707972201553666528'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/09/obsidian-portal.html' title='Obsidian Portal'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-185893290461307994</id><published>2008-09-02T21:16:00.002-04:00</published><updated>2008-09-02T21:17:23.283-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><title type='text'>Game Design Series</title><content type='html'>John Wick, the author of Houses of the Blooded, has been creating game design videos on youtube. Here's the first.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre; "&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/F6aoMQJdDyY&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/F6aoMQJdDyY&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-185893290461307994?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/185893290461307994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=185893290461307994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/185893290461307994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/185893290461307994'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/09/game-design-series.html' title='Game Design Series'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7130235703138593298</id><published>2008-09-02T20:06:00.001-04:00</published><updated>2008-09-02T20:07:33.982-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gen Con'/><title type='text'>Gen Con 2008 Photos</title><content type='html'>I finally got around to uploading my &lt;a href="http://www.flickr.com/photos/22163980@N07/sets/72157607082351491/"&gt;photos&lt;/a&gt; to flickr. And once again, I regret not taking more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7130235703138593298?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7130235703138593298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7130235703138593298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7130235703138593298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7130235703138593298'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/09/gen-con-2008-photos.html' title='Gen Con 2008 Photos'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-3871540016045714477</id><published>2008-08-24T13:58:00.002-04:00</published><updated>2008-08-24T14:18:09.350-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><category scheme='http://www.blogger.com/atom/ns#' term='Gen Con'/><title type='text'>Starblazer Adventures</title><content type='html'>This is the second game on my must-buy list for Gen Con, though I have to admit most of the reason was that I was a playtester and a the book contains a rule I wrote for the Starship Creation section.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cubicle-7.com/starblazer.htm"&gt;Starblazer Adventures&lt;/a&gt; is an RPG based on a 1980's UK sci-fi comic anthology series. It uses the FATE 3.0 system introduced in Spirit of the Century. It's also a monster of a book at close to 630 pages! A good chunk of it basically paraphrases the entire ruleset of Spirit of the Century but with a gonzo space opera feel to it. It also adds tons of rules to that system including starship creation and battles, fleet battles, world creation, starmonster creation, and rules for running large organizations.&lt;br /&gt;&lt;br /&gt;Honestly, though, the book didn't need to be this large. It probably could have benefited from some more aggressive editing. And much of the rules are fairly obvious extensions to the FATE system. On the other hand, so many pages gives the authors lots of room to reprint art from the original comic series. This sets the tone for the game and takes me back to the days of reading early Star Wars comic books in the late 70's and early 80's. In this game, players should have an easy time gaining Fate points by using all of the space opera cliches of bug-eyed monsters, two-fisted space pilots, cyborg detectives and science fantasy &lt;a href="http://www.imdb.com/title/tt0062711/"&gt;Barbarellas&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;After reading Spirit of the Century, the first thing I wanted to do with the FATE system was to play a space opera sci-fi game. If you'd like to do the same, Starblazer Adventures is much better than writing your own conversion. I'm willing to look over its lack of serious editing due to its sheer enthusiasm. Just listen to the &lt;a href="http://masterplanpodcast.net/index.php?post_id=364439"&gt;Master Plan episode&lt;/a&gt; with the inteview with the author, Chris Birch, and tell me this guy isn't in love with the setting. I talked to Chris at his booth at Gen Con and I have to say that I would love to play in one of his games.&lt;br /&gt;&lt;br /&gt;I've already got an idea for a convention game: &lt;span style="font-style: italic;"&gt;Escape from the Star Collectors&lt;/span&gt;! You are one of several specimens captures by the Star Collectors who scour the universe cataloging intelligent alien life. But you've managed to escape your stasis pod and you must find a way out of their collection ship alive.&lt;br /&gt;&lt;br /&gt;And, yes, there will be thermic lances in it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-3871540016045714477?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/3871540016045714477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=3871540016045714477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3871540016045714477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3871540016045714477'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/08/starblazer-adventures.html' title='Starblazer Adventures'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-4028509435702789266</id><published>2008-08-22T13:59:00.003-04:00</published><updated>2008-08-22T14:23:43.448-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><category scheme='http://www.blogger.com/atom/ns#' term='Gen Con'/><title type='text'>Houses of the Blooded</title><content type='html'>This &lt;a href="http://housesoftheblooded.net/"&gt;game&lt;/a&gt; by John Wick was one of the two games I had to buy at Gen Con. I had been hearing a lot about it on various rpg podcasts and was very excited to check it out. I'm glad to say that it's lived up to my expectations. You can learn more by reading this &lt;a href="http://www.rpg.net/reviews/archive/12/12816.phtml"&gt;review on rpg.net&lt;/a&gt;, though it's a review of the playtest rules written back in February.&lt;br /&gt;&lt;br /&gt;This game nails the political intrigue genre. You play ruthless nobles seeking land and power over their peers. You'll throw insults and parties, duel your enemies, spy on their lands and assassinate their minions, use forbidden sorceries to gain the upper hand. You may even choose to write an opera! There are game mechanics for all of these.&lt;br /&gt;&lt;br /&gt;All of the rules stem from one mechanic: roll a number of d6, add them together and beat a 10. That's it. If you have tons of dice and think you can hit a 10 easily, you can set some aside before the roll as "wagers". If you succeed, you may spend each wager to add one fact to the game world. This puts much of the narrative power in the hands of the players. One cool example of this is in the game master advice section. When the author had no time to prepare a game, he told the players that they had caught a an assassin in their castle. Then he had them roll Wisdom risks (as tests are called in this game) and let &lt;span style="font-style: italic;"&gt;them&lt;/span&gt; tell &lt;span style="font-style: italic;"&gt;him&lt;/span&gt; facts about her. The players essentially created the story.&lt;br /&gt;&lt;br /&gt;Since you are playing a noble, you'll have lands to control. Each character starts with a domain, a province made up of up to ten regions. The player gets to describe the regions. Each region produces certain goods which can be spent by using Season Actions. The characters will spend a certain number of Season Actions each Season which can be used to spy on neighbors, invade enemy lands, or create a fancy hat.&lt;br /&gt;&lt;br /&gt;That's right, there's a mechanical reason to have a fancy hat. You're going to want a lot of &lt;span style="font-style: italic;"&gt;Style Points&lt;/span&gt;. These fuel your Aspects (cribbed right from Spirit of the Century) and you use them to improve your character. But you may only bank a small number of points between game sessions. The more fancy things you have, the more style you have and the more Style Points you can save back.&lt;br /&gt;&lt;br /&gt;You don't have to make a fancy hat, you can make the other players give you one as a gift. If you throw a party (a week-long binge of debauchery, dueling and death), each attendant must bring you a gift. Of course, there are other reasons to throw a party as well such as tempting foes into a duel so you can kill them or to start a romance (or both at the same time--it's that kind of game).&lt;br /&gt;&lt;br /&gt;A romance? Why would you want that? If you have a romance, you get a free Aspect you can invoke when dealing with your paramour. So start a romance with your enemy's wife. Use her as a spy. Use the romance Aspect when rolling risks against your foe then kill him and take his lands.&lt;br /&gt;&lt;br /&gt;I'm leaving out a ton of other cool things. You can build up your lands. You can worship not-quite-so-dead ancestors. You can dabble in illegal sorcery. You can explore the dangerous ruins of the extinct sorcerer-kings and take their loot. But most of all you'll be charting your character's tragic downfall.&lt;br /&gt;&lt;br /&gt;Can't wait to try it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-4028509435702789266?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/4028509435702789266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=4028509435702789266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4028509435702789266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/4028509435702789266'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/08/houses-of-blooded.html' title='Houses of the Blooded'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-982348898125603237</id><published>2008-08-20T09:13:00.002-04:00</published><updated>2008-08-20T09:14:59.832-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><category scheme='http://www.blogger.com/atom/ns#' term='Gen Con'/><title type='text'>The (Latest) Ultimate Gaming Table</title><content type='html'>Check out &lt;a href="http://www.gamingreport.com/article.php?sid=25555"&gt;this gaming table&lt;/a&gt;. It's a beautiful, huge custom-made table that I saw at Gen Con. It would be perfect for the basement. Of course, at about $10k its a little more expensive than the free hand-me-down table I've got down there now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-982348898125603237?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/982348898125603237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=982348898125603237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/982348898125603237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/982348898125603237'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/08/latest-ultimate-gaming-table.html' title='The (Latest) Ultimate Gaming Table'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7415444073294162913</id><published>2008-08-19T22:17:00.003-04:00</published><updated>2008-08-20T09:15:07.614-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gen Con'/><title type='text'>God Dice</title><content type='html'>I'll be posting about the games I picked up at Gen Con last week over the next couple of days. I didn't buy as many as I thought I would. Instead I spent my money on beer at the Ram and to get my family in on Sunday.&lt;br /&gt;&lt;br /&gt;The first game I'll talk about is &lt;a href="http://goddice.com/main.sc"&gt;God Dice&lt;/a&gt;. This game really hits a sweet spot for me. Its for 2-4 players and runs about an hour to play. Game play centers around nine custom dice and trying to come up with certain combinations after a set number of rerolls in order to resolve attacks between two fantasy-style characters. Each player gets three or four characters and each has a different set of attacks or healing powers. The last player standing wins.&lt;br /&gt;&lt;br /&gt;My friends and I played a demo at the designer's booth and he invited us to play a full game. Once we had a chance to play, we were hooked and bought a couple copies. Since that initial game with three players, I've had a chance to play with two players as well. The two player game isn't quite as exciting (there's a play-order-reversal mechanism that's meaningless with only two players) but it's still fun.&lt;br /&gt;&lt;br /&gt;There's a lot of randomness but there is some strategy in picking which character will attack or defend and which attack to try for after seeing what your initial roll is. It's not deep strategy, so the game is great for when you want to socialize. God Dice seems to be a good game you play while you are waiting for the rest of your friends to show up, as my friend Sam says.&lt;br /&gt;&lt;br /&gt;There isn't a lot about this game on the web yet. You can go to the developer's site and order a copy but he might get more interest if he posts the rules. He's also got to get active on boardgamegeek.com. But I expect to be seeing more about this game in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7415444073294162913?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7415444073294162913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7415444073294162913' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7415444073294162913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7415444073294162913'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/08/god-dice.html' title='God Dice'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-1911994939165673475</id><published>2008-08-18T16:51:00.002-04:00</published><updated>2008-08-18T17:10:01.647-04:00</updated><title type='text'>Star Wars: Clone Wars</title><content type='html'>It's getting terrible reviews. People think the plot sucks, the animation sucks and the action scenes drag on too long. They think it's too cutesy.&lt;br /&gt;&lt;br /&gt;But I liked it!&lt;br /&gt;&lt;br /&gt;Maybe it's because I went with three kids.  I took my five-year-0ld daughter and her eight- and twelve-year old cousins. They loved it and their excitement was contagious. But I think I would have liked it anyway.&lt;br /&gt;&lt;br /&gt;Of course the plot is simple: it's Star Wars for crying out loud. I thought it was cool that they gave Anakin an apprentice that was much too young and brash. It felt like during these dark times of war, the Jedi have become desperate and have had to do things they normally would not.&lt;br /&gt;&lt;br /&gt;And I liked the animation. Many reviewers are saying that they went cheap on it but I think it was a style choice. Many times I found myself looking at the characters or the scenery and enjoying the brushed look of the colors. I particularly enjoyed the droid minions of Jabba the Hutt's uncle--their metal skins looked pitted and decorated with flaking paint.&lt;br /&gt;&lt;br /&gt;I thought the action was paced well (after all, that's what we see a Star Wars movie for, right?) and there were a couple of cool lightsaber duels. They weren't as high-powered as the Clone Wars cartoons but that's a different style. I don't think something like the Mace Windu episode of the Clone Wars cartoons would have worked here.&lt;br /&gt;&lt;br /&gt;As far as the "cute" scenes go, I thought they hit the mark for a kids movie. Trying to evoke sympathy for a little slug creature is hard but my daughter certainly liked it. There's nothing like Jar Jar in this movie, though Jabba's uncle comes pretty close to being too annoying. And there's a scene where the good guys get past an entire droid army by using the Scooby Doo-hiding-under-a-box trick that's a little hard to swallow.&lt;br /&gt;&lt;br /&gt;I thought the movie better than the Phantom Menace (though that's not saying alot). The voice actors were very good and they even got Samuel Jackson and Christopher Lee to return. The actor who played Anakin did a much better job than Hayden Christensen and the guy who plays Obi Wan Kenobi is very good at nailing Ewen McGregor's take on a young Kenobi.&lt;br /&gt;&lt;br /&gt;The movie is exactly what it is: a television pilot for a kid's show played on the big screen. And it's a fun Sunday afternoon matinee.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-1911994939165673475?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/1911994939165673475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=1911994939165673475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1911994939165673475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1911994939165673475'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/08/star-wars-clone-wars.html' title='Star Wars: Clone Wars'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5433355083825795244</id><published>2008-08-10T13:25:00.001-04:00</published><updated>2008-08-10T13:26:31.274-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><title type='text'>Cold Beer on Sunday!</title><content type='html'>Check out the &lt;a href="http://www.beveragechoices.com/"&gt;Hoosiers for Beverage Choices&lt;/a&gt; website and sign their petition. They are trying to get Indiana law changed so that people can buy cold beer in the grocery store and carry-out alcohol on Sundays.&lt;br /&gt;&lt;br /&gt;If I ever ran for office, this would be my only platform...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5433355083825795244?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5433355083825795244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5433355083825795244' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5433355083825795244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5433355083825795244'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/08/cold-beer-on-sunday.html' title='Cold Beer on Sunday!'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-1011028767715080940</id><published>2008-08-04T11:26:00.000-04:00</published><updated>2008-08-04T11:27:00.938-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gen Con'/><title type='text'>Gencon!</title><content type='html'>It's only a week and a half to Gencon!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-1011028767715080940?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/1011028767715080940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=1011028767715080940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1011028767715080940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1011028767715080940'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/08/gencon.html' title='Gencon!'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5771708241050984299</id><published>2008-08-03T09:35:00.002-04:00</published><updated>2008-08-03T09:40:04.199-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><category scheme='http://www.blogger.com/atom/ns#' term='brewfest'/><title type='text'>Indiana Microbrewers Festival 2008</title><content type='html'>I put the pics from &lt;a href="http://www.brewersofindianaguild.com/festival.html"&gt;brewfest&lt;/a&gt; up on &lt;a href="http://www.flickr.com/photos/22163980@N07/sets/72157606518829177/"&gt;flickr&lt;/a&gt;. Another great time. I spent more time chatting this year and paced the drinking very well. Still, there were many beers I didn't get to (I missed the Dread Lord AGAIN this year).&lt;br /&gt;&lt;br /&gt;IndianaBeer.com has &lt;a href="http://indianabeer.com/events/08/brewfest/index.html"&gt;some pics&lt;/a&gt; too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5771708241050984299?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5771708241050984299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5771708241050984299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5771708241050984299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5771708241050984299'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/08/indiana-microbrewers-festival-2008.html' title='Indiana Microbrewers Festival 2008'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7198838880578462636</id><published>2008-07-31T15:35:00.005-04:00</published><updated>2008-07-31T15:39:19.776-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><title type='text'>Carnage Amongst the Stars</title><content type='html'>I recently read &lt;a href="http://www.amazon.com/Old-Mans-War-John-Scalzi/dp/0765348276/ref=pd_bbs_sr_5?ie=UTF8&amp;amp;s=books&amp;amp;qid=1217533048&amp;amp;sr=8-5"&gt;John Scalzi's Old Man's War&lt;/a&gt; and, in the words of the guy from &lt;a href="http://starshipsofa.com/"&gt;StarshipSofa&lt;/a&gt;, "it was a crackin' book". It reminded me of Ender's Game and Starship Troopers.&lt;br /&gt;&lt;br /&gt;So how cool is it that there's an indie RPG coming out very similar to the premise of Old Man's War called &lt;a href="https://www.indiepressrevolution.com/xcart/product.php?productid=16652"&gt;3:16 Carnage Amongst the Stars&lt;/a&gt;. This &lt;a href="http://www.story-games.com/forums/comments.php?DiscussionID=7044&amp;amp;page=1#Item_0"&gt;thread on story-games.com&lt;/a&gt; tells you more than I could.&lt;br /&gt;&lt;br /&gt;I'm adding this game to my GenCon watchlist.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7198838880578462636?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7198838880578462636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7198838880578462636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7198838880578462636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7198838880578462636'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/carnage-amongst-stars.html' title='Carnage Amongst the Stars'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8565086942660269782</id><published>2008-07-28T14:27:00.004-04:00</published><updated>2008-07-28T14:37:54.373-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon08'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>OSCON Session Notes</title><content type='html'>I took a bunch of notes. The sessions were 45m each and went by pretty fast. You can find &lt;a href="http://oscon.blip.tv/"&gt;videos of the keynotes&lt;/a&gt; and &lt;a href="http://en.oreilly.com/oscon2008/public/schedule/proceedings"&gt;presentation slides&lt;/a&gt; at the OSCON site.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.google.com/Doc?id=djf6kww_155fqqjmsg5"&gt;Wednesday Sessions&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span id="hvr33"  style="font-size:100%;"&gt;Data Services: Mashing and Shredding Data w/ XAware&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="hvr33"  style="font-size:100%;"&gt;Metaprogramming Ruby&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="hvr33"  style="font-size:100%;"&gt;Perl 6 Update&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="hvr33"  style="font-size:100%;"&gt;Hypertable: An Open Source, High Performance, Scalable Database&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="hvr33"  style="font-size:100%;"&gt;Introduction to LucidDB&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span id="hvr34"&gt;Trac: Project and Process Management for Developers and Sys Admins&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://docs.google.com/Doc?id=djf6kww_156c4cb2gdf"&gt;Thursday Sessions&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Processing Large Data with Hadoop and EC2&lt;/li&gt;&lt;li&gt;Prophet, Your Path Out of the Cloud&lt;/li&gt;&lt;li&gt;Ruby 1.9, What to Expect&lt;/li&gt;&lt;li&gt;Open Source as Liberal Art&lt;/li&gt;&lt;li&gt;Machine Learning for Knowledge Extraction&lt;/li&gt;&lt;li&gt;A Tasting Tour of Haskell&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://docs.google.com/Doc?id=djf6kww_157tp2rz8c4"&gt;Friday Sessions&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span id="ncka0"  style="font-size:100%;"&gt;Open Source Software in Satellite Science Data &lt;/span&gt;&lt;span id="l7k60"  style="font-size:100%;"&gt;Processing at NASA&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Searching for Neutrinos Using Open Source at the Bottom of the World&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8565086942660269782?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8565086942660269782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8565086942660269782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8565086942660269782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8565086942660269782'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/oscon-session-notes.html' title='OSCON Session Notes'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7446930878768577646</id><published>2008-07-24T16:35:00.002-04:00</published><updated>2008-07-24T16:37:57.786-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon08'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>Coming Soon: More from OSCON08</title><content type='html'>I've been flying through sessions without much time to post my notes. I've even reverted to taking paper notes now and again so I have to transcribe them to google docs.&lt;br /&gt;&lt;br /&gt;But while you wait, you can watch a &lt;a href="http://youtube.com/watch?v=OuXfL0_-uwE"&gt;video I made&lt;/a&gt; about the swag I picked up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7446930878768577646?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7446930878768577646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7446930878768577646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7446930878768577646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7446930878768577646'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/coming-soon-more-from-oscon08.html' title='Coming Soon: More from OSCON08'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-1424948262597269142</id><published>2008-07-23T00:21:00.003-04:00</published><updated>2008-07-23T00:30:22.289-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon08'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>Rogue Public House</title><content type='html'>&lt;a href="http://www.rogue.com/"&gt;Rogue&lt;/a&gt; Mocha Porter is my all-time favorite beer. It turns out that Rogue's main brewery is about an hour outside Portland and they have a public house here in town. Tom and I once again took the Max across the river (for free!) and hiked a few blocks to sample the sweet sweet nectar of their fermenters.&lt;br /&gt;&lt;br /&gt;The previous night, we'd visited &lt;a href="http://www.deschutesbrewery.com/Splash/default.aspx"&gt;Deschutes Brewery&lt;/a&gt;. They had some good brews and some great food (we sampled their wild mushroom ragout with wort sauce and goat cheese--a recipe I'm going to have to replicate back home). But Rogue blew their doors off with their brew. We had some samplers and then a few pints at the bar. The dining room was taken up with a beer/cheese tasting event. But this actually worked out because we got to sit at the bar and talk to the bartenders about the beer. I resisted the urge to buy a couple of t-shirts and left with an excellent pint glass instead.&lt;br /&gt;&lt;br /&gt;Our favorites were the Imperial IPA, the Imperial Porter, the Mocha Porter and their Scotch Ale. We even tried a Chipotle ale that had a not-so-subtle chipotle pepper flavor that rose to the forfront at the end. Not exactly hot, but distinctly hot peppery.&lt;br /&gt;&lt;br /&gt;What am I doing here back at the hotel? We should have stayed and closed the place!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-1424948262597269142?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/1424948262597269142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=1424948262597269142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1424948262597269142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/1424948262597269142'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/rogue-public-house.html' title='Rogue Public House'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7410907908582171815</id><published>2008-07-23T00:14:00.002-04:00</published><updated>2008-07-23T00:20:53.722-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon08'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>Actors for Concurrency</title><content type='html'>&lt;a href="http://docs.google.com/Doc?id=djf6kww_154dd4m9tfc"&gt;Obligatory link to my notes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This tutorial was kind of disorganized. The guy should have started out with a brief introduction to the concept of Actors and then gone into some code examples. For some mysterious reason, he did the opposite. As a result, I spent most of the session trying to parse Erlang code (which I'm not all that familiar with) and try to reverse engineer the concept.&lt;br /&gt;&lt;br /&gt;But I did manage to squeeze some meaning out of the session. It seems that the Actor pattern is a good way to deal with the usual complexity of concurrency with threads. It's got its own freakiness, but, just like functional programming, it requires some mental retooling to get the idea. If anything, the session has encouraged me to look closer at Erlang.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7410907908582171815?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7410907908582171815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7410907908582171815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7410907908582171815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7410907908582171815'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/actors-for-concurrency.html' title='Actors for Concurrency'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7456883226069810596</id><published>2008-07-22T13:54:00.002-04:00</published><updated>2008-07-22T13:56:28.820-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon08'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>3 Hour Startup</title><content type='html'>This was a talk given by some guys who host Startup Weekend where volunteers in a city get together for a weekend and actually create a startup over that weekend. The talk described how best to go about this and their experiences from these events. Here are &lt;a href="http://docs.google.com/Doc?id=djf6kww_153dqc5x2cq"&gt;my notes&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7456883226069810596?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7456883226069810596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7456883226069810596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7456883226069810596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7456883226069810596'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/3-hour-startup.html' title='3 Hour Startup'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7784846026715349897</id><published>2008-07-21T19:28:00.003-04:00</published><updated>2008-07-21T19:33:01.991-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon08'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Test Driven Development in Perl Tutorial</title><content type='html'>I thought this was going to be a higher-level discussion about TDD strategies, but it turned out to be TDD techniques in Perl only. Still, I learned some new things (&lt;a href="http://docs.google.com/Doc?id=djf6kww_152d564j6dt"&gt;see my notes&lt;/a&gt;). I'll link to the slides later if I can find them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7784846026715349897?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7784846026715349897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7784846026715349897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7784846026715349897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7784846026715349897'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/test-driven-development-in-perl.html' title='Test Driven Development in Perl Tutorial'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8004014023422150829</id><published>2008-07-21T14:42:00.002-04:00</published><updated>2008-07-21T14:43:09.672-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon08'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>Extending Rails Tutorial</title><content type='html'>You can find my &lt;a href="http://docs.google.com/Doc?id=djf6kww_151cqts94d9"&gt;notes&lt;/a&gt; at google docs. I'll update this post later with a link to the presentation slides.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8004014023422150829?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8004014023422150829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8004014023422150829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8004014023422150829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8004014023422150829'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/extending-rails-tutorial.html' title='Extending Rails Tutorial'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-2728412600204434632</id><published>2008-07-21T13:24:00.004-04:00</published><updated>2008-07-21T17:42:03.157-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon08'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>OSCON First Impressions</title><content type='html'>&lt;ul&gt;&lt;li&gt;Breakfast and lunch are included: sweet.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Vast majority of people are using Macs&lt;/li&gt;&lt;li&gt;cvs -&gt; svn -&gt; git&lt;/li&gt;&lt;li&gt;very well organized&lt;/li&gt;&lt;li&gt;O'Reilly books are 30% off!&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.slideshare.net/"&gt;Slideshare&lt;/a&gt; is like youtube for slideshows.&lt;/li&gt;&lt;li&gt;The convention center is doing a heckuva job recycling: they composted our lunch trash.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-2728412600204434632?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/2728412600204434632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=2728412600204434632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2728412600204434632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2728412600204434632'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/oscon-first-impressions.html' title='OSCON First Impressions'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-5799731805023676156</id><published>2008-07-20T21:41:00.005-04:00</published><updated>2008-07-21T13:24:45.114-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon08'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><title type='text'>OSCON, Travel Day</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CRtkG4s3WSg/SIPrHLtkAMI/AAAAAAAAAS0/m7mMvqCV5rE/s1600-h/Photo+64.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_CRtkG4s3WSg/SIPrHLtkAMI/AAAAAAAAAS0/m7mMvqCV5rE/s320/Photo+64.jpg" alt="" id="BLOGGER_PHOTO_ID_5225278501315412162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I'm finally in Portland and I'm trying to figure out what to do with myself tonight. I don't think I'm quite up to heading across the river to the brewpubs, but I'd like to find a place with good beer and something better than the crappy fast food I had at my layover in Denver.&lt;br /&gt;&lt;br /&gt;I checked in and got my bag-o-swag. I've also looked over my schedule (that I made way back in March). In the morning I'm attending a &lt;a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2321"&gt;Rails tutorial&lt;/a&gt; by a guy whose also an RPG writer, believe it or not. The &lt;a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4219"&gt;afternoon tutorial&lt;/a&gt; is on Test Driven Development, given by a guy from Google.&lt;br /&gt;&lt;br /&gt;Later this week I'll be talking to &lt;a href="http://www.rightscale.com/"&gt;RightScale&lt;/a&gt; about their cloud computing tools and even get to attend Larry Wall's infamous State of the Onion Address. And I think there's even a huge &lt;a href="http://www.oregonbrewfest.com/"&gt;brewfest&lt;/a&gt; here this weekend (because, you know, the Indiana Microbrewfest on Saturday wasn't enough).&lt;br /&gt;&lt;br /&gt;I'm really jazzed to be hobnobbing with the alpha geeks this week. I even brought the MacBook in lieu of the work laptop, a PC, in a lame attempt to hide the fact that I'm a corporate poser.&lt;br /&gt;&lt;br /&gt;I'll try to keep good notes and post them here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-5799731805023676156?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/5799731805023676156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=5799731805023676156' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5799731805023676156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/5799731805023676156'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/oscon-day-1.html' title='OSCON, Travel Day'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_CRtkG4s3WSg/SIPrHLtkAMI/AAAAAAAAAS0/m7mMvqCV5rE/s72-c/Photo+64.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8727325075982045594</id><published>2008-07-18T09:27:00.003-04:00</published><updated>2008-07-18T09:29:04.424-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><title type='text'>Why I Love RPGs #5623907834</title><content type='html'>This is one of the many reasons I love playing RPGs: learning crazy trivia.&lt;br /&gt;&lt;br /&gt;There's a &lt;a href="http://forum.rpg.net/showthread.php?t=405177"&gt;thread on rpg.net&lt;/a&gt; discussing how much money you can carry in a briefcase. You want that in $100 USD bills or 500 Euro bills?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8727325075982045594?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8727325075982045594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8727325075982045594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8727325075982045594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8727325075982045594'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/why-i-love-rpgs-5623907834.html' title='Why I Love RPGs #5623907834'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8135989973907350920</id><published>2008-07-13T14:05:00.002-04:00</published><updated>2008-07-13T21:24:04.617-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><category scheme='http://www.blogger.com/atom/ns#' term='dnd'/><title type='text'>No Flasks of Oil!?</title><content type='html'>There is no listing for a flask of oil in the 4th Edition D&amp;amp;D PHB. How can this be called Dungeons and Dragons without Molotov Cocktails?&lt;br /&gt;&lt;br /&gt;This came up in our first session of a new campaign last night when the players wanted to buy a cask of oil to use against some centipede swarms. I had to wing it.&lt;br /&gt;&lt;br /&gt;There are little bits of evidence that 4th Edition was either rushed or there were conscious business decisions to leave some stuff out for later books. The light equipment list is one of them, I think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8135989973907350920?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8135989973907350920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8135989973907350920' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8135989973907350920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8135989973907350920'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/no-flasks-of-oil.html' title='No Flasks of Oil!?'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-3856203212002440197</id><published>2008-07-03T22:48:00.002-04:00</published><updated>2008-07-03T22:54:05.259-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><title type='text'>Character Backstory and Campaign Plot</title><content type='html'>We're starting up a new campaign after ending the Savage Worlds/Rocketship Empires campaign last Thursday. The players are emailing me their character backstories and I'm trying to work them into my loose plotline.&lt;br /&gt;&lt;br /&gt;Here's an idea I came up with. I'm going to go through each backstory and list every possible NPC that could come from it. Then I'll make a couple of tables: one for incidental and one for major NPCs. When I get in a spot where I need to come up with a contact or other interesting NPC on the fly, I'll roll on that table.&lt;br /&gt;&lt;br /&gt;That way, when the characters go looking for information, they are more likely to run into someone from their village, or a fellow soldier, or a student from their old arcane academy than Joe the Dirt Farmer. If there's a major NPC to be met, I'll use a brother, a mother, an old mentor, or someone like that. Maybe this will bring the players closer to the plot and give them more of a reason to adventure than just "kill monsters and take their stuff".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-3856203212002440197?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/3856203212002440197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=3856203212002440197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3856203212002440197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3856203212002440197'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/character-backstory-and-campaign-plot.html' title='Character Backstory and Campaign Plot'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-3527827736171575040</id><published>2008-07-03T22:44:00.004-04:00</published><updated>2008-07-03T22:47:40.986-04:00</updated><title type='text'>Jumper</title><content type='html'>The movie blew. It had so much potential: What would you do if you could teleport? Maybe it was the sucky acting of Angstikin Skywalker? I dunno. We aren't out a lot of cash, though. T picked it up from some vending machine at the grocery story for $1.&lt;br /&gt;&lt;br /&gt;I remember reading the book years ago but I only vaguely remember the storyline. I think the movie drastically departed from the novel. I may have to go back and read it again.&lt;br /&gt;&lt;br /&gt;Still, what a cool idea for a short, one-to-three session RPG campaign. You are an otherwise normal person, but you can teleport.&lt;br /&gt;&lt;br /&gt;What do you do?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-3527827736171575040?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/3527827736171575040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=3527827736171575040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3527827736171575040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/3527827736171575040'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/jumper.html' title='Jumper'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-7656770527710117413</id><published>2008-07-03T22:31:00.005-04:00</published><updated>2008-07-03T22:44:02.283-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><title type='text'>Broadripple Boardroom Blowout Bonanza</title><content type='html'>Boardroom Games in Broadripple is going out of business. I guess the guy that runs it wants to retire. It's too bad, that place had a great selection of new and used games. He's blowing his stuff out at 20% off, so last time I was down there I had to check it out.&lt;br /&gt;&lt;br /&gt;I had a huge stack of stuff and had to make some hard choices. I need to save some gamer budget for Gen Con! I ended up getting Low Life, Andy Hopp's crazy Savage Worlds setting book, and the Burning Wheel two-pack including the main book and the character burner.&lt;br /&gt;&lt;br /&gt;I've had a chance to mostly read through the Burning Wheel rule book and I now see what everyone is saying online and on the gamer podcasts. There's some really good stuff in this book. The core mechanism is very simple, but what the author does with it to expand into more crunchy systems (but only when needed and the story demands it) is very nice. The subsystems for resources, circles, and Duels of Wit are everything Paul Tevis says they are. And I don't see any of the pretentiousness commonly attributed to this game. Maybe that was lost in a later printing? Or maybe I just don't mind the game master advice, especially when it aligns with my GM style so well.&lt;br /&gt;&lt;br /&gt;I think this will be another one of those games that I really want to play, but don't have time to. My group is getting swept up in the 4th Edition D&amp;amp;D craziness right now (who am I kidding, so am I) but I really hope to give Burning Wheel a shot sometime.&lt;br /&gt;&lt;br /&gt;And what can I say about Low Life that hasn't already been said. Andy has funky style. One of my friends has his art work on the wall; another hired him to produce artwork for his upcoming PC game. I'll be sure to have him sign my copy of Low Life at Gen Con.&lt;br /&gt;&lt;br /&gt;Which reminds me of something I've been thinking about lately: a gamer bucket list, if you will. Or maybe more like a Gen Con Scavanger Hunt. I want to make a list of gamer experiences and try to get them all in. For instance, I hear that the author of Burning Wheel, Luke Crane, is really passionate about his game and a great GM. I'd like to acost him at Gen Con with my gamer buddies and get him to run a demo for us. Similarly, I'd like to play in one of the legendary Low Life games run by Andy Hopp himself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-7656770527710117413?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/7656770527710117413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=7656770527710117413' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7656770527710117413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/7656770527710117413'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/broadripple-boardroom-blowout-bonanza.html' title='Broadripple Boardroom Blowout Bonanza'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-526182324218190057</id><published>2008-07-03T22:22:00.006-04:00</published><updated>2008-07-03T22:29:59.911-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beercation'/><title type='text'>Beercation, Day 4</title><content type='html'>We were all moving a bit slowly after our marathon day of beer tasting. We hit a coffee shop and checked out of our hotel, but not before hitting Founders once more for a few pints. The girls got a drink I'd never heard of: Founder Rubaeus with lemonade. It seemed like the perfect thing for a nice summer day.&lt;br /&gt;&lt;br /&gt;We left GR and headed to Battle Creek where we found ourselves at &lt;a href="http://www.arcadiabrewingcompany.com/"&gt;Aracadia Brewing Company&lt;/a&gt;. This place is the kind of place I'd love to have someday. They have basically three store fronts worth of space, half of that is brewery and the other half brewpub. They've got a brick wood fire pizza oven and a huge list of beers. Their stout was really good and I picked up a sixer of it.&lt;br /&gt;&lt;br /&gt;After Aracadia, we said our goodbyes and headed out for home. We needed to get back to Indy to relieve the grandparents. It was a great trip and now I have some beer swag to wear to the brewfest! The only downside is that, as I sit here drinking one of my own homebrewed porters, it pales in comparison to all the find brews we sampled over the last few days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-526182324218190057?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/526182324218190057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=526182324218190057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/526182324218190057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/526182324218190057'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/beercation-day-4.html' title='Beercation, Day 4'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8322178479846659117</id><published>2008-07-03T21:39:00.004-04:00</published><updated>2008-07-03T22:30:45.522-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beercation'/><title type='text'>Beercation, Day 3</title><content type='html'>The third day required much planning. We had two secondary objectives: &lt;a href="http://www.bellsbeer.com/"&gt;Bell's&lt;/a&gt; in Kalamazoo and &lt;a href="http://www.darkhorsebrewery.com/"&gt;Dark Horse&lt;/a&gt; in Marshall. Dark Horse opens at 3pm so we couldn't hit it on the way home like we had originally planned and make it back to Indy at a decent time. So Day 3 would be a marathon: Bells, followed by &lt;a href="http://oldepen.com/"&gt;Olde Peninsula&lt;/a&gt; (also in Kalamazoo), Dark Horse, then back to GR for &lt;a href="http://www.schmohz.com/"&gt;Schmohz&lt;/a&gt; and &lt;a href="http://www.hopcatgr.com/"&gt;Hop Cat&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've had a lot of Bell's brews. Their original location, the Eccentric Cafe has to be seen to be believed. It's got a lot of character. It's located in an old railroad district of Kalamazoo in an ancient brick building. They've got antique maps, collections of freaky bugs and a demolished piano hanging on the wall. But it turns out they have a lot of rules: no glass on the patio, turn in your ID for a sampler (people gank their sampler platters which are carved in the shapes of Michigan's peninsulas) and... NO CREDIT CARDS. They do have a nice swag shop, though, which doubles as a homebrew supply shop. They even had hop rhizomes for sale! I picked up a hat and a disc golf disc (turns out there seems to be some kind of connection between craft brewing and disc golf). I got a bunch of Bell's bottle opener keychains for the gaming group too.&lt;br /&gt;&lt;br /&gt;The Michigan brewery book once again led us to a great place: Olde Peninsula. We tried a few of their brews and I had a very fresh perch sandwhich. They were brewing something when we were there, too, so I got to check that out. I noticed a common thread throughout the history of these places: some guy either lost his job or had a pants-full with it and turned his homebrew hobby into a business. Maybe there's hope for me yet. We even discussed the possibility of starting a yeast culture business. With a biologist, lab automation specialist and an informaticist, we figured we could engineer new strains of yeast by extensively studying the metabolic pathways involved in fermentation. Surely the big brewers have done such research, but have they done it with the same meticulous care of a team of drug hunters?&lt;br /&gt;&lt;br /&gt;Then it was on to Dark Horse. I've really been looking forward to checking this place after my cousin and his wife talked it up while pouring bottle after bottle of Crooked Tree IPA (my favorite IPA in the world now) at Christmas two years ago. Dark Horse looks like a biker bar. From the road you'd almost be scared to go there. But it houses some of the finest beer in the Midwest--and the hands down coolest mug club of any brewpub I've ever encountered. Every member of the mug club gets a custom turned clay mug from a local artist. These things hang from every square inch of the place and bear witness to the popularity of their beer. At Dark Horse I nabbed a funky uniform workshirt with their logo and a few stickers for the kids. They had some great blown glass tap handles that I would have loved to pick up for my future kegerator but they started at $75. After checking out their patio and wishing we'd had our pints out there amongst the hop bines we got back in the van for the ride back to base.&lt;br /&gt;&lt;br /&gt;Once we got back to GR, we hit Schmohz, which is basically a half step above a dive bar with free peanuts and popcorn and a fairly good selection of beer. They had a very good root beer too. We oggled the pair of Triumph convertibles in the lot, had a sampler, and took off back for downtown.&lt;br /&gt;&lt;br /&gt;The last stop would be Hop Cat. This is classy joint in downtown GR that just opened back in January. They had good food and a great selection of brews. I guess they are just getting into brewing their own, but they had none for us to sample. By this time, I was well in my cups. That's why I hesitated before telling my travelling companions that not only was there a &lt;a href="http://www.cyburbia.org/gallery/showphoto.php/photo/19219/size/big"&gt;wicked looking gargoyle&lt;/a&gt; on the building across the way, but ITS EYES WERE GLOWING RED. I expected the coming of Gozer the Gozerian at any time.&lt;br /&gt;&lt;br /&gt;But, alas, it was no mere alcohol-induced hallucination. There were indeed gargoyles and they did have glowing red eyes. Our server told us that it was a really old building and that she'd heard that some "really interesting stuff" went on there. Our imaginations conjured all sorts of eldritch tantric nastiness going on there--no doubt much cooler than what actually happened there. I think the building had the name "Waldron" on it. One of our party checked out the rear of the building, looking for a stealthy way up but came up empty. Probably for the better, I think. I'd love to know the history of this building.&lt;br /&gt;&lt;br /&gt;After that, it was back to the hotel for a few glasses of ice water and a dose of ibuprofin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8322178479846659117?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8322178479846659117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8322178479846659117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8322178479846659117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8322178479846659117'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/beercation-day-3.html' title='Beercation, Day 3'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-2010592384844285058</id><published>2008-07-03T21:30:00.004-04:00</published><updated>2008-07-03T22:06:10.266-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beercation'/><title type='text'>Beercation, Day 2</title><content type='html'>We met up with our friends at &lt;a href="http://www.newhollandbrew.com/"&gt;New Holland Brewing Company&lt;/a&gt; after driving up to Lake Macatawa. Brew was good, but the swag wasn't all that interesting. I love the Holland area, though. We might have to take the kids up there sometime and rent a cabin or something.&lt;br /&gt;&lt;br /&gt;After New Holland, we did some shopping in Holland's downtown area. There are lots of cool shops there. We ended up at an &lt;a href="http://www.viamariatrattoria.com/"&gt;Italian restaurant&lt;/a&gt; with a fairly good beer selection that was mentioned in a &lt;a href="http://www.amazon.com/Michigan-Breweries-Paul-Ruschmann/dp/0811732991/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1215137071&amp;amp;sr=8-1"&gt;Michigan Brewery book&lt;/a&gt; our friends picked up that day. After a pint there, we moved on to Grand Rapids which would be our home base for the rest of the trip.&lt;br /&gt;&lt;br /&gt;We stayed at the &lt;a href="http://www.marriott.com/hotels/travel/grrdt-courtyard-grand-rapids-downtown/"&gt;Courtyard&lt;/a&gt; in downtown GR. It's only a couple blocks down from Beercation's primary objective: &lt;a href="http://www.foundersbrewing.com/home.php"&gt;Founders&lt;/a&gt;. Home of the Breakfast Stout and many other amazing brews. Monday night was cheap pint night ($2.00 pints!). We started our first of many pubgrub meals and downed quite a few of their brew.&lt;br /&gt;&lt;br /&gt;Founders new location is very cool. It's a large structure with one whole side sporting garage doors which can be opened. This made it feel like a real outdoor venue. They also have a pretty large brewing operation there. I saw three rows of fermenters.&lt;br /&gt;&lt;br /&gt;Swag at Founders was first class. I picked up a pint glass and a shirt with the great Breakfast Stout label featuring a baby going nuts on a bowl of oatmeal. We hauled our loot and beer-swelled bellies back to the hotel for a relaxing night away from the kids.&lt;br /&gt;&lt;br /&gt;Oh dear God, how nice it is to sleep in. I forgot what that was like.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-2010592384844285058?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/2010592384844285058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=2010592384844285058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2010592384844285058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/2010592384844285058'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/beercation-day-2.html' title='Beercation, Day 2'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-6348831006826197635</id><published>2008-07-03T21:29:00.000-04:00</published><updated>2008-07-03T21:30:04.429-04:00</updated><title type='text'>Night of a Thousand Posts</title><content type='html'>Get ready, I'm going to make a bunch of posts...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-6348831006826197635?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/6348831006826197635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=6348831006826197635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/6348831006826197635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/6348831006826197635'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/07/night-of-thousand-posts.html' title='Night of a Thousand Posts'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6955207.post-8083162535128629712</id><published>2008-06-30T08:52:00.003-04:00</published><updated>2008-06-30T08:57:59.720-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beercation'/><title type='text'>Beercation, Day 1</title><content type='html'>We left home, sans kids, around 10am Sunday and drove North on I-69. We stopped at the greatest bookstore in the known universe, &lt;a href="http://www.hydebros.com/about.htm"&gt;Hyde Brothers&lt;/a&gt;, in Fort Wayne after a quick lunch.&lt;br /&gt;&lt;br /&gt;We didn't know exactly where we were going, so we made a few wrong turns. It was nice to be on a road trip, just the two of us, blasting music we'd never play in front of the kids and enjoying the fact that we could complete a sentence without being interrupted.&lt;br /&gt;&lt;br /&gt;This morning we are in Holland, Michigan. The weather is going to be perfect. We don't have to meet our friends until about 1pm so we are just hanging out. We'll probably hit a coffee shop and read our new used books.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6955207-8083162535128629712?l=chrischalfant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chrischalfant.blogspot.com/feeds/8083162535128629712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6955207&amp;postID=8083162535128629712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8083162535128629712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6955207/posts/default/8083162535128629712'/><link rel='alternate' type='text/html' href='http://chrischalfant.blogspot.com/2008/06/beercation-day-1.html' title='Beercation, Day 1'/><author><name>Chris Chalfant</name><uri>http://www.blogger.com/profile/07380781421442408403</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_CRtkG4s3WSg/SnLwwsjnRzI/AAAAAAAAAas/XqDn6CEZHrM/S220/avatar.jpg'/></author><thr:total>0</thr:total></entry></feed>
