<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Swarling Black Mable</title>
	<atom:link href="http://blainegarrett.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blainegarrett.com</link>
	<description>Blaine Garrett's Home on the Web - Art, Programming, Ideas, and more</description>
	<lastBuildDate>Tue, 02 Aug 2011 18:50:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Appengine: Transaction Safe Reference Properties with Ancestor Queries</title>
		<link>http://blainegarrett.com/2011/08/02/transaction-safe-reference-properties-ancestor-queries/</link>
		<comments>http://blainegarrett.com/2011/08/02/transaction-safe-reference-properties-ancestor-queries/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 15:44:48 +0000</pubDate>
		<dc:creator>blainegarrett</dc:creator>
				<category><![CDATA[Google AppEngine]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[entity groups]]></category>
		<category><![CDATA[transactions]]></category>

		<guid isPermaLink="false">http://blainegarrett.com/?p=1022</guid>
		<description><![CDATA[This is a quick article on transactions with &#8220;one to many&#8221; relationship queries within a single by utilizing entity groups and ancestor queries. If you find it helpful, please feel free to link to it and help spread the google juice. Special thanks to co-worker Robert Kluin for helping me figure this out last week. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blainegarrett.com/files/2010/01/saupload_google_appengine.png"><img src="http://blainegarrett.com/files/2010/01/saupload_google_appengine.png" alt="" width="250" height="250" class="alignleft size-full wp-image-840" /></a><br />
This is a quick article on transactions with &#8220;one to many&#8221; relationship queries within a single by utilizing entity groups and ancestor queries. If you find it helpful, please feel free to link to it and help spread the google juice. Special thanks to co-worker <a href="http://ezoxsystems.com" target="_new">Robert Kluin</a> for helping me figure this out last week. </p>
<h2>My Problem</h2>
<p>My initial problem was that I was working inside a transaction and needed to fetch all the entities of a one to many relationship. In my case, I designed my data to be in the same entity group, thus I figured it was transaction safe. However, I was getting the error: <b>BadRequestError: Only ancestor queries are allowed inside transactions.</b>.  This had me a bit stumped since I was not actually doing any queries inside of the code. However, Appengine itself was under the hood.</p>
<h2>The Issue</h2>
<p>With a bit of discussion with my coworkers, I traced the problematic query back to the underlying query behind Appengine&#8217;s handy named reference property.<br />
I had a kind (we&#8217;ll call it Hand) that had a one-to-many relationship on a kind (we&#8217;ll call Finger). The issue is that <b>hand.fingers</b> does not run an ancestor query. In my specific case, this did not make sense, since all the <em>fingers</em> were in the same entity group as their parent <em>hand</em>. However, since reference properties do not have to be in the same entity group, the query resembles <b>Finger.all().filter(&#8216;hand =&#8217;, hand)</b> which is obviously not a ancestor query. </p>
<h2>The solution</h2>
<p>The solution is to avoid using the reference property and manually query <b>fingers = Finger.all().ancestor(hand)</b>. This will fetch all of the finger entities that have an ancestor (parent) of hand. Note: that this is not the same as a reference property query and that the links between parent/child entities among an entity group have a different purpose than reference properties even though they often coincidentally have an overlap in the data. This solution leverages this coincidence. </p>
<h2>Example Code</h2>
<p>Note: I didn&#8217;t actually run this specific code. Use at your own risk.</p>
<pre class="brush: python">
from google.appengine.ext import db
from base.datastore.util import transaction

class Hand(db.Model):
    is_right = db.BooleanProperty()
    is_dominant = db.BooleanProperty()

class Finger(db.Model):
	position = db.IntegerProperty(default=0)
	hand = db.ReferenceProperty(Hand, collection_name=&#039;fingers&#039;)

	def trim_nail(self):
		#... do work
		pass

def trim_my_nails(hand):
	@transaction
	def txn(hand):
		#fingers = hand.fingers # NOT TRANSACTION SAFE
		fingers = Finger.all().ancestor(hand) # Transaction safe
		for finger in fingers:
			finger.trim_nail()
		#... do whatever transaction friendly tasks
		return hand
	trimmed_hand = txn(hand)
    return hand
</pre>
<h2>Quick Notes and Pitfalls</h2>
<p>* Transactions only allow ancestor queries<br />
* Ancestor queries only work when the data is in the same entity group<br />
* Given the above, transactions can only query data in the same entity group.<br />
* Ancestor queries are far faster than regular queries because of the way that GAE stores their data for entity groups.<br />
* Entity groups are recommended to only be &#8220;about the size of one user&#8217;s data&#8221; and should not get too big. In the example above, you probably don&#8217;t want &#8220;everyone&#8217;s hands and their fingers&#8221; in the same entity group just to be able to work inside of transactions. Model your workflow better to avoid this.<br />
* If you are on high-replication datastore (HRD), then this works even faster.<br />
* If you have a long chain of parent relationships and the model in the ancestor query is the parent of the parent, you may get more entities back than you expect. The hand/finger example is a bad analogy in this case. However, if you think of Forums with Sub-Forums and you try to get all the posts with the ancestor some forum entity, you might be getting back all the posts of that forum as well as any of its child forums. This is ideal for some situations and is unexpected  behavior for others. </p>
<p>Further Reading</p>
<ul>
<li><a href="http://code.google.com/appengine/docs/python/datastore/queries.html" target="_new">Datastore Indexes and Queries</a> Google App Engine Docs</li>
<li><a href="http://code.google.com/appengine/docs/python/datastore/transactions.html" target="_new">Transactions</a> Google App Engine Docs</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blainegarrett.com/2011/08/02/transaction-safe-reference-properties-ancestor-queries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Appengine Files Api &#8211; part 1: Storing/Fetching remote images in Blobstore using Django</title>
		<link>http://blainegarrett.com/2011/04/02/appengine-files-api-part-1-storingfetching-remote-images-in-blobstore-using-django/</link>
		<comments>http://blainegarrett.com/2011/04/02/appengine-files-api-part-1-storingfetching-remote-images-in-blobstore-using-django/#comments</comments>
		<pubDate>Sat, 02 Apr 2011 19:00:23 +0000</pubDate>
		<dc:creator>blainegarrett</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Google AppEngine]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blainegarrett.com/?p=1009</guid>
		<description><![CDATA[Here is a quick tutorial on how to fetch remote images with the new Files API on Google Appengine 1.4.3 released March 30th. These examples use Django. Before we begin, read up on how to write files to blobstore using the Files API. Prior to the 1.4.3 release of the SDK, the only way to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blainegarrett.com/2010/01/25/appengine-djangogql-ensuring-uniqueness-of-model-type-on-edit/saupload_google_appengine/" rel="attachment wp-att-840"><img src="http://blainegarrett.com/files/2010/01/saupload_google_appengine.png" alt="" width="150" height="150" class="alignleft size-full wp-image-840" /></a>Here is a quick tutorial on how to fetch remote images with the new Files API on Google Appengine 1.4.3 released March 30th. These examples use Django.</p>
<p>Before we begin, read <a href="http://code.google.com/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore">up on how to write files to blobstore using the Files API</a>. Prior to the 1.4.3 release of the SDK, the only way to get files into the blobstore (and thus leverage things like BlobInfo) was to upload them via a POST request. To do what I am attempting below required a really confusing multistep process to fetch the file data and then generate a post request to the blobstore upload url. This was very error prone and awkward, but it worked. With 1.4.3, the solution is fairly straight forward. Also, note, the below example works with any file data, not just images. </p>
<p>First lets set up a simple url to handle the fetching and displaying.</p>
<pre class="brush: python">
# Put this in your /urls.py
from django.conf.urls.defaults import *
urlpatterns = patterns(&#039;&#039;,
...
(r&#039;^remote_fetch_image/$&#039;, &#039;cdn.views.remote_fetch_image&#039;),
(r&#039;^remote_display_image/(?P[^/]+)/$&#039;, &#039;cdn.views.remote_display_image&#039;),
...
)
</pre>
<p>Next create a folder in your main application called &#8220;cdn&#8221;. Inside of it, add and empty <strong>__init__.py</strong> file as well as a <strong>views.py</strong>.<br />
You may also need to add to add &#8220;cdn&#8221; to your list of installed apps in <strong>settings.py</strong></p>
<pre class="brush: python">
INSTALLED_APPS = (
...
&#039;cdn&#039;,
...
)
</pre>
<p>Next, open up <strong>cdn/views.py</strong> and add the following code:</p>
<pre class="brush: python">
from __future__ import with_statement # Note this MUST go at the top of your views.py
from google.appengine.ext import blobstore
from django import http
from google.appengine.ext import db
def remote_fetch_image(request):
    from google.appengine.api import files, urlfetch
    from django.core import urlresolvers
    from django import http

    # Fetch image content
    image_url = request.GET.get(&#039;image_url&#039;, None)
    if not image_url:
        return http.HttpResponse(&#039;Please provide a query argument named &quot;image_url&quot; that is the full url to an image. &#039;)
    fetch_response = urlfetch.fetch(image_url)

    file_data = fetch_response.content
    content_type = fetch_response.headers.get(&#039;content-type&#039;, None)

    # Create the file
    file_name = files.blobstore.create(mime_type=content_type)

    # Open the file and write to it
    with files.open(file_name, &#039;a&#039;) as f:
      f.write(file_data)

    # Finalize the file. Do this before attempting to read it.
    files.finalize(file_name)

    # Get the file&#039;s blob key
    blob_key = files.blobstore.get_blob_key(file_name)
    # We&#039;re technically done, but lets redirect and display the image
    return http.HttpResponseRedirect(urlresolvers.reverse(remote_display_image, args=[blob_key]))

def remote_display_image(request, blob_key):
    # Fetch blob by key from blobstore
    blob_info = blobstore.BlobInfo.get(blob_key)
    if not blob_info:
        raise Exception(&#039;Blob Key does not exist&#039;)

    blob_file_size = blob_info.size
    blob_content_type = blob_info.content_type

    # Attempt to fetch the blob in one or more chunks depending on size and api limits
    blob_concat = &quot;&quot;
    start = 0
    end = blobstore.MAX_BLOB_FETCH_SIZE - 1
    step = blobstore.MAX_BLOB_FETCH_SIZE - 1

    while(start &amp;lt; blob_file_size):
        blob_concat += blobstore.fetch_data(blob_key, start, end)
        temp_end = end
        start = temp_end + 1
        end = temp_end + step
    return http.HttpResponse(blob_concat, mimetype=blob_content_type)
</pre>
<p>Finally, open your app in the browser with the url to a file. For me, my sdk is mapped to the domain garrettclan.org:<br />
example: 	<em>http://garrettclan.org/remote_fetch_image/?image_url=<a href="http://storyofdim.com/2010/03/23/neuroma-flare/" target="_new">http://blainegarrett.com/files/2010/01/birthmarks2.jpg</a></em></p>
<p>You should see the image at the url and it is now in the blobstore. This is an example usage of the new files api. Please note that this is experimental and may change as Appengine progresses. Also, not that the above processes is subject to the urlfetch quota, blobstore quota, and cpu quotas. See more details about the <a href="http://code.google.com/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore" target="_new">files API here</a>.</p>
<p>Also, if interested, the image I used is a painting my <a href="http://storyofdim.com">collaborative art crew</a> did called <a href="http://storyofdim.com/2010/03/23/neuroma-flare/">&#8220;Nuroma Flare&#8221;</a>, part of the <a href="http://storyofdim.com/category/artwork/series/birthmarks/">Birthmarks</a> series.</p>
<p>The next steps:</p>
<ol>
<li>Part 2: Fetching the Facebook Profile Image and attaching it to a user</li>
<li>Part 3: Scale/crop down large uploaded images to a reasonable size before storing in blobstore to save on disk space quotas</li>
<li>Part 4: Utilizing existing blobstore features to dynamically generate thumbnails and sized images</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blainegarrett.com/2011/04/02/appengine-files-api-part-1-storingfetching-remote-images-in-blobstore-using-django/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Cost of Internetting</title>
		<link>http://blainegarrett.com/2011/03/21/the-cost-of-internetting/</link>
		<comments>http://blainegarrett.com/2011/03/21/the-cost-of-internetting/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 02:27:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cyber Culture]]></category>
		<category><![CDATA[Wasting Time]]></category>

		<guid isPermaLink="false">http://blainegarrett.com/?p=1005</guid>
		<description><![CDATA[I paid a couple website related bills today and it got me thinking about how much all this costs &#8211; it was more than I thought. Today while at the gym, I was thinking of all the random bills I had to pay that all seemed to be due at the same time. This included [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blainegarrett.com/files/2011/03/girl_money.jpg"><img class="alignright size-full wp-image-1006" title="Oh hi" src="http://blainegarrett.com/files/2011/03/girl_money.jpg" alt="" width="298" height="447" /></a>I paid a couple website related bills today and it got me thinking about how much all this costs &#8211; it was more than I thought.</p>
<p>Today while at the gym, I was thinking of all the random bills I had to pay that all seemed to be due at the same time. This included things like my car insurance, a recent doctor visit bill, the final payment on my credit card bill, some domain name renewals, and the hosting package for my podcast. I cringed as I paid all of them. However, I got to thinking a bit about how much having a website costs me personally and what I get in return from it. A reasonable person, especially in this economy, would look at the numbers and make cuts as needed.</p>
<p>So the facts:</p>
<p>I own 25 domains from various sites over the years. These include <a href="http://midwestpodcast.com">midwestpodcast.com</a> (which was podcast convention that never got off the ground), <a href="http://ADAMANTINEARTS.ORG">adamantinearts.org</a> (my old non-profit that closed a few years ago),  as well as a handful of domains I am managing for other people&#8230; free of charge apparently. This list also includes the important ones I am using for projects or will be using shortly. Given Godaddy charges around $11 per domain name, I have $275 per year in domain name fees.</p>
<p>I have Dreamhost hosting for my podcast, Krapp&#8217;s Last Cast. I use this mainly for their unlimited bandwidth, although, we have been on a year plus hiatus so the bandwidth usage is minimal now. However, we&#8217;re planning on starting again soon as well as launching a new podcast strictly for Dim Media. This costs me $7 per month (by paying for 3 years in advance). This costs me $84 per year.</p>
<p>I have Linode hosting for all my other other non-GAE projects. I use this to run the <a href="http://storyofdim.com">Dim Media</a> site, <a href="http://blainegarrett.com">this site</a>, as well as a handful of other blogs for others. This is also, the cdn for one of my upcoming projects. I kinda need this. However, it is pricey and costs $330 per year.</p>
<p>So, that brings us to $689 annually to run all these sites.</p>
<p>Now, I make just less than $100 per year on Google ads &#8211; mostly from domain parking interestingly enough. The site that has the most non-monetary return is probably the <a href="http://storyofdim.com">Dim Media</a> site. We refer a lot of our potential buyers to it and do a lot of marketing through it for our events. It is far harder to gauge if the money spent is made up for in the returns. However, Dim is its own business anyway, so it might be unfair to include it. Otherwise, it appears that I am in the whole nearly $600 per year in internet costs. Yikes.</p>
<p>I think my goal this year is to make that number at least break even through a combination of cutting out some things and trying to monetize more.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blainegarrett.com/2011/03/21/the-cost-of-internetting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2010 Reflections p2.3 &#8211; The Snowy Epic Conclusion</title>
		<link>http://blainegarrett.com/2011/01/03/2010-reflections-p2-3-the-snowy-epic-conclusion/</link>
		<comments>http://blainegarrett.com/2011/01/03/2010-reflections-p2-3-the-snowy-epic-conclusion/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 20:02:59 +0000</pubDate>
		<dc:creator>blainegarrett</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Reflection]]></category>

		<guid isPermaLink="false">http://blainegarrett.com/?p=974</guid>
		<description><![CDATA[This is a continuation of the story of my truck accident earlier this year. You can read part 2 here or start from the beginning here. When I left off, I had just hitchhiked through a rural Iowa town holding a bloody towel and was chain smoking in my hotel room wondering how I was [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blainegarrett.com/files/2010/12/69118828.jpg"><img class="alignleft size-medium wp-image-975" src="http://blainegarrett.com/files/2010/12/69118828-300x225.jpg" alt="69118828" width="300" height="225" /></a> This is a continuation of the story of my truck accident earlier this year. You <a href="http://blainegarrett.com/2010/12/29/2010-reflections-p2-2-people-look-at-you-wierd-when-you-are-bloody/">can read part 2 here</a> or <a href="http://blainegarrett.com/2010/11/27/2010-reflections-p2-1-crashing-trucks-for-new-outlooks/">start from the beginning here</a>.</p>
<p>When I left off, I had just hitchhiked through a rural Iowa town holding a bloody towel and was chain smoking in my hotel room wondering how I was going to get home.</p>
<p>I woke up in the morning around 7 A.M. I immediately started trying to figure out how to get home. I started looking up flights from Des Moines as well as Grey Hound tickets back to Minneapolis.  Both involved getting out of Story City, which was around 40 minutes from Des Moines and 20 from Ames. I started looking at cab companies and made some calls. Very few wanted to drive that far on the still ice covered roads. I called the towing place that I dropped my keys off at the night before. They said the roads were too poor still to get my truck out and they were not planning on doing it now until the next day most likely. One of my dad&#8217;s favorite sayings came to mind : &#8220;what a fuck story&#8221;.</p>
<p>I began to start thinking that I would be stuck in Iowa for another night. I emailed my boss at AOL saying that I got into an accident and that I might not be able to work for another day or two while I try to get home. I had never met this boss since it was a new telecommuting project and she was in New York. Her eventual reply was something brief and cold like &#8220;Hope you feel better. Keep me posted.&#8221;</p>
<p>Meanwhile, the HR person at Webfilings called to check in. She was very concerned and very helpful. She told me she had contacted the hotel and paid for my room. Wow. Then we started trying to figure out how to get me home. I told her that I was thinking of taking a Grey Hound but was worried about the transportation to the nearest pickup spot back in Ames. She then said she would make some calls.</p>
<p>I continued looking online for flights. Even though Des Moines is only 4 hours away from Minneapolis, there was only one direct flight and it was $800.  The few others had layovers in Milwaukee. Sure, fine, whatever &#8211; I just wanted to get home. I decided I wanted to try for it, but the last flight was leaving in only 3 hours. I finally called a cab company in Des Moines willing to drive up to Story City and set up a cab for in about an hour. I bought my ticket online, quickly packed my things and had one more cigarette. While cleaning out my pocket and putting non-essential items in my suitcase,  I pulled out a two dollar bill.  I stared at it for a second, smiled, and tucked it in the suitcase pocket with my toiletries. Just as I was zipping the last zipper on my luggage,  the HR woman at Webfilings called back and said that one of their admins, Katrina, was driving to the air port to drop off some friends and that she could pick me up and take me wherever I needed to go. Excellent! She was going to be there in a half hour. I called the cab company back and canceled.</p>
<p>I checked out of the hotel. There was a older Swedish man with a thick accent working this time &#8211; perhaps he was married to the women from the night before. I thought to myself, I wonder when they get to see each other? Then I thought of Arika and got a bit bummed that I hadn&#8217;t gotten to talk to her yet. I walked to a nearby gas station and bought a sandwich and some sunglasses. It was bright out. Although, sun blindness being on the top of my list of concerns was a nice change from only hours before.</p>
<p>I walked back to the hotel and sat in the lobby waiting for my ride. While out having a cigarette, a man started making small talk. He was in town helping his brother with his laundry and staying at the hotel for a reason I forget. I was preoccupied and his story was non-nonsensical to me. When I said I was from Minneapolis, he started telling me stories about people from there, perhaps his relatives? I felt a bit bad for not being more engaging, but I had a sandwich to eat and was still having weird flashbacks of the crash.</p>
<p>Eventually, Katrina showed and we zipped to Des Moines. This was my first time on the freeway since the crash and I was super anxious. I gripped the door handle as if my life depended on it. The roads were still very icy and, regardless of how fast Katrina was driving, it seemed <em>too fast</em>. Her friends were flying out to Vegas and were entertaining everyone with stories of their anticipated misadventures. I told my story again. I think the count was up to 10 times telling it now. I was already tired of telling the story&#8230;</p>
<p>Insurance called while on the way. They were marking the truck as a total loss and going to move it to their Des Moines office once the roads were better. Hey, I was still alive and I had my tire pressure gauge so it wasn&#8217;t a total loss. Ha.</p>
<p>I got to the air port and thanked Katrina for the ride. I had one last cigarette and entered the security gauntlet. Luckily, it wasn&#8217;t very busy. However, as I exited the scanner, the TSA guy watching the X-Rays said in a robotic voice &#8220;uh sir, we have a size limit on liquids of&#8230;&#8221; I cut him off. He was holding my liquid soap, toothpaste, and some hair gel &#8211; I wasn&#8217;t anticipating flying this trip. &#8220;Can we just toss it&#8221;. &#8220;Uh sir, that would be easiest for us, but I can&#8217;t require you to&#8230;&#8221; I picked up the items and tossed them in a garbage full of other toiletries too big to fly&#8230; sorta like Kevin Smith. As I put my tooth brush and other items back in the inner pocked of my carry on, I saw the two dollar bill I had tucked away. I pulled it out &#8220;This is my lucky two dollar bill&#8221; I said to the man. &#8220;I survived a rollover crash on the freeway with this guy&#8221;. The TSA guy broke his stoic professional demeanor, &#8220;Wow, how long have you had it?&#8221; &#8220;Since yesterday&#8221;. The TSA guy had a bewildered gaze as gears started spinning what that meant and then smiled and said &#8220;Have a great flight sir&#8221;.</p>
<p>The plane ride was uneventful. I sat and relived the accident a million times in my head.  I thought of my warm bed. I thought of what Arika must be going through &#8211; god I wish I could just call her. I landed in Milwaukee. It was snowing. I had a two hour layover in one of the coolest cities in the world. I decided to call my cousin in Milwaukee to see if she wanted to get together. She couldn&#8217;t on such short notice, so I got lunch and a couple cocktails. The snow continued. My flight was going to be delayed another hour because of the storm. I stared out the window of the gates watching the snow slowly swallow the landscape. I was getting anxious, so I decided to go out for a cigarette.  I hung out in baggage claim for a bit and bought the airport internet service. I then checked in on Facebook and saw all the wonderful messages of concern from my friends. Someone suggested going to Tracy&#8217;s Saloon to celebrate my return &#8211; what a wonderful idea! I emailed Arika telling her the plan. I was expecting to be in by 7pm now with the delay. Excited, I went out for one more cigarette and then went back through security the security gauntlet.</p>
<p>I walked back to my gate. The snow was still coming down. It was announced that the flight was delayed again. Then it was announced that the air port was closing because of the snow. I didn&#8217;t fret. I had a smile on my face. I looked out the big windows. There were some airport staff playfully throwing snow balls at each other. I stared off into the snow thinking again how lucky I was to be alive. I thought about how I&#8217;m not going to let anything bother me again. I thought about how I need to not take my time on earth for granted and I need to wear a smile from here on out because I am on borrowed time. Life was great!</p>
<p>The nice thought was interrupted. A lady with a crying baby was screaming at the woman at the ticket booth about the air port closure. I looked around at all the fellow passengers waiting to fly to my city. I started associating people with various characters from the show LOST. Our plane&#8217;s version of Kate with her criminal record was a girl who looked like a meth head. There was an obese man who didn&#8217;t look nearly as heroic as Hurley. The rest seemed like the people on the LOST plane that you never really saw.  I pictured myself as Locke &#8211; lucky to be alive. I munched on cheese curds from a gift shop in the air port. If our plane were to go down and land on a mysterious island in Lake Michigan, we&#8217;re all screwed.</p>
<p>Hours passed. I kept thinking about how this was a wonderful life changing event. There was more restlessness among the people at the gate. The lady with the crying baby kept screaming. She wasn&#8217;t even really watching her kid. It kept running off. Finally, the air port reopened and we all cheered. It still looked horrible outside, but the runway was mostly clear. We quickly filed onto the plane. There was a long wait to take off. There was concern that the airport was going to close <em>again</em>.  The pilot came on and in a calm tone said something like the equivalent of &#8220;fuck it, we&#8217;re going&#8221;. In retrospect, reading about the tale of <span>the KLM pilot <a href="http://en.wikipedia.org/wiki/Jacob_Veldhuyzen_van_Zanten">Jacob Van Zanten</a> in the book SWAY, a hurried take off to beat the closing of the air port maybe wasn&#8217;t an awesome idea. However, we made it up into the air. As the lights of the wonderful city of Milwaukee got smaller and blurrier in the falling snow, I sighed with relief to be finally going home&#8230; only 5 hours after I was supposed to leave.<br />
</span></p>
<p>I landed. There was no blizzard in Minneapolis &#8211; only clear skies and a crisp cold snap. I texted a bunch of people saying I had arrived and I&#8217;d be at Tracy&#8217;s soon. I  called my friend Jon who was planning on coming up and asked if he could pick me up from the light rail. I messaged Arika to get ready. As I walked through the parking garage to the terminal lightrail station, a girl was walking near. We chatted for a bit. I told my story and she told hers. Her grandmother died in Portland and she was flying to Portland the funeral. She was crying when I first saw her, but I think after telling my tale and my new lust for life, she looked at things differently. That, or she was just weirded out by stranger talking to her in a parking garage.</p>
<p>I rode the light rail back with a smile on my face. I was excited to be back in my city. I was excited about life. I got off at the Franklin station and Jon and his girlfriend Katie pulled up with perfect timing. I was so excited to see them. I refrained from telling the story since I knew moments later I anticipated telling it again and again at the bar. We stopped at my place to drop off my luggage and pick up Arika. I gave her a huge hug when I saw her. It felt really good. She was excited to see me but she was a mess. She didn&#8217;t sleep the night before. It took a lot of coaxing to get her to go out, but she finally did.</p>
<p>At the bar, a bunch of my friends were waiting &#8211; Adam, Mike, Caityee, Joe, Colleen, and others. We ordered lots of rounds and toasted to being alive. I drunkenly retold the story about the crash, bloody hitchhiking in Story City, the blizzard in Milwaukee, the long interview process, and my adventures the night before the interview in Ames. It was great to be back in my city, surrounded by good friends. More so, it was good to be alive and have a renewed lust for life.</p>
<p>In the aftermath of the crash, a few things happened. Insurance totaled out my truck and since I had full coverage, I was able to buy a newer version of the same truck. Webfilings expensed my plane ticket as well as my hotel from the night before the interview. They also offered me the job and I took it. Arika&#8217;s behavior surrounding the accident and the weeks to follow was the nail in the coffin for us, and within a few months we split. It took quite a while to be comfortable driving again. I have made the trip to Ames since, but have yet to drive it in the snow. My new passion for life continued for quite a while and is even a bit rejuvenated by simply recounting the whole experience. Whenever things get bad, I just remember that whole incident and chuckle. Even though the original mysteriously disappeared, I try to keep a $2 bill on me at all times. Arika and I are good friends again. I now try to smile by default. Since the accident, life has had its ups and downs, but I only look at life optimistically now. I&#8217;m living quite happily on barrowed time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blainegarrett.com/2011/01/03/2010-reflections-p2-3-the-snowy-epic-conclusion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2010 Reflections p2.2 : People Look At You Weird When You Are Bloody</title>
		<link>http://blainegarrett.com/2010/12/29/2010-reflections-p2-2-people-look-at-you-wierd-when-you-are-bloody/</link>
		<comments>http://blainegarrett.com/2010/12/29/2010-reflections-p2-2-people-look-at-you-wierd-when-you-are-bloody/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 16:17:31 +0000</pubDate>
		<dc:creator>blainegarrett</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Reflection]]></category>

		<guid isPermaLink="false">http://blainegarrett.com/?p=969</guid>
		<description><![CDATA[This is a continuation of the story of my truck accident earlier this year. You can read the lead up here. When I left off, my truck had just rolled twice on the freeway at 70 miles per hour, I was standing knee deep in snow, and really not excited about life at that point. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blainegarrett.com/files/2010/12/fargo.1165959880.jpg"><img class="alignleft size-full wp-image-971" src="http://blainegarrett.com/files/2010/12/fargo.1165959880.jpg" alt="fargo.1165959880" width="400" height="271" /></a>This is a continuation of the story of my truck accident earlier this year. <a href="http://blainegarrett.com/2010/11/27/2010-reflections-p2-1-crashing-trucks-for-new-outlooks/">You can read the lead up here.</a></p>
<p>When I left off, my truck had just rolled twice on the freeway at 70 miles per hour, I was standing knee deep in snow, and really not excited about life at that point.</p>
<p>As I stalked around trying to figure out what to do, a guardian angel coincidentally passed by &#8211; an ambulance stopped that was returning to base from a previous call. I may have thanked God at that point, it is all sorta blurry. Two blond haired medics around my age hopped out and helped me up into the back. They asked me if I had any pain or if I hit my head&#8230; no. Then they went to work figuring out the source of the blood. As they were getting me cleaned up, they spoke non-nonchalantly. They said they were just returning from another city when they saw the accident and stopped.  As I sat, I spit out some pieces of glass and picked glass out of my pockets. The source of the blood on my face was from rubbing my  hands on my face.  The source of the blood on my hands were two big  gashes on the backs of  my hands from where the caved in windshield must  have struck as I was  holding the steering wheel. Luckily, that was the  extent of the damage.  To this day, I have two stigmata-like scars on  the backs of my hands as  reminders of the day. They bandaged me up and I started to warm up, still in a bit of shock over everything. Was this really happening?</p>
<p>The back of the ambulance was open and I had a clear picture of oncoming traffic. It was crawling along &#8211; partially from gawkers and partially from people realizing the conditions were bad. One vehicle must not have been either and hit the brakes hard. I saw it fish tail and spin into the median coming to rest in the snow just as I did, but without the roll. The ambulance guys called it in &#8211; &#8220;He&#8217;ll be fine. He just went off the road. One at a time&#8230;&#8221;</p>
<p>I messaged Arika on Gchat on my phone &#8220;Crashed my car. I&#8217;m fine. Probably not coming home tonight. I&#8217;ll let you know more in a bit&#8221;</p>
<p>Eventually a state trooper showed up on the other side of the of the freeway and trudged over. The ambulance drivers said I didn&#8217;t need to go to the hospital unless I wanted to &#8211; which I didn&#8217;t. After they finished bandaging my hands, I bid them farewell and stepped out with the trooper. He was a friendly enough guy. He was older &#8211; the kind of guy that you could picture having a failed hog farm, some grandkids in and out of jail, maybe fought in the gulf war &#8211; but wouldn&#8217;t let any of this ruin his good midwest humor. We stopped at my truck and I grabbed my insurance cards tucked in the overhead compartment. I did a quick once-over of the truck to grab things. My selections were odd: my tire pressure gauge, a baseball, a old C programming language book I had been drawing in, a Altoids tin with random bolts and screws that somehow made its way into my truck.</p>
<p>I got in the trooper&#8217;s squad. He took my report of the incident and fumbled with the operating system in his dashboard computer making a diagram of the accident. It was the sort of awkwardness of when you are looking over someones shoulder as they try to show you a video they really want you to see they think is hilarious and you don&#8217;t feel the same. He broke the silence, &#8220;The roads are bad tonight. At least nine other cars went in north of here. You&#8217;re lucky to be alive looking at your truck&#8221;. I think that was the first time I really realized how much worse things could have been. I was alive. I didn&#8217;t lose any limbs. No one else got hurt. Wow.</p>
<p>After a bit, the trooper gave me a slip with the incident number on it. He took me back to story city to a Super 8 hotel just across the street from the Casey&#8217;s station I stopped at earlier for gas. I then realized, I had a full tank of gas when I flipped. That could have been bad &#8211; en flambe. I checked in with the little old thickly accented Swedish lady at the front desk. Once I was set, the trooper shook my hand with a smile and went on his way to go help some other poor souls. I had a &#8220;oh god, thank you&#8221; moment as he walked out the door. I didn&#8217;t get a ticket. I had gotten a ticket for &#8220;driving too fast for conditions&#8221; when I was in high school for skidding in unplowed streets and hitting a snow bank that my front wheel drive car couldn&#8217;t back out of. I challenged it and the judge thought it was bogus. However, if there was ever a time I was &#8220;driving too fast for conditions&#8221;, it would have been an hour earlier. I also thought it was odd that I didn&#8217;t even get asked if I had been drinking or using drugs. I wasn&#8217;t, but it seems like a reasonable question. What a nice trooper. Thank you.</p>
<p>I got into my room and before even taking off my coat, I called Progressive insurance. This was my first claim ever. I didn&#8217;t know how it worked. Flo from the commercials didn&#8217;t answer, but someone equally congenial did. They were going to take care of everything, but I had to drop off my keys at the auto body place in town at Story City where the car would be towed to in the morning. I looked it up on my phone and it appeared to be only a mile walk. Story City is tiny and there was no way of getting a cab. I was thinking of hitchhiking, but I welcomed the alone time to process everything. I decided to make the walk.</p>
<p>Before I headed out into the cold, I called my roommate Caityee and told the situation and arranged to let Arika use her phone later so I could actually talk to Arika. I then called my folks. They didn&#8217;t even know I was going for the job interview. I love my folks, but their reaction was funny and refreshing. It could be summarized as &#8220;so, you are alive and don&#8217;t need us to do anything? Why&#8217;d you call?&#8221; I then posted something on Facebook about the accident because I apparently love to broadcast my life on the Internet.</p>
<p>I then wrapped a white hotel towel around my head as a scarf and started on my way. By now, the temperature had dropped to below zero. I was freezing. Only a few cars passed along the main drag through the tiny town. However, every time a car did, I thought I might try to hitch with the the <em>next</em> car. At every intersection, I looked at the street sign and checked my phone to see how much further. It always seemed like it was just a mile more. I ended up turning off the main road onto some gravel lane. I passed a trailer court. I passed a closed down VFW. Finally, in the darkness I could see a run-down shack that was the auto body place. I checked the address with my phone just to be sure. On the front door were some envelopes for key drop. I filled out the information and dropped in my keys. I put it in the slot and walked away. In true Blaine fashion, I then tried to fetch the envelope back out to double check it. I worried I had filled everything in or if I perhaps put it in the wrong slot. I nearly had a panic attack. It was short lived as my toes started to get numb and I started on my way back.</p>
<p>It seemed like it was getting colder still. I wasn&#8217;t wearing gloves and I kept having to alternate hands I was using my phone with to navigate. The opposite hand was buried in my pocket until the other got cold. Doing this enough times  started to peel off my bandages and my hands started bleeding again. While the warmth coating my hands were welcome, it wasn&#8217;t really something I was otherwise excited about. I took my makeshift  white hotel towel scarf off and wrapped it around my hand to soak up the blood. As I walked, I returned to the main drag and noticed a gas station up ahead. I hurried to it in hopes of getting warm and maybe catching a ride.</p>
<p>I&#8217;m sure I was a sight &#8211; a near freezing guy wearing an ominous looking black wool trench coat  holding a blood soaked white towel  drinking coffee. I tried to make small talk with the older clerk to somehow seem less weird and threatening, but he seemed really uneasy about my presence. I&#8217;m sure it looked like a scene out of a Coen Brother&#8217;s movie. For a second I felt like Steve Buscemi in Fargo. My toes were still numb, but I decided to avoid being awkward any further and ventured back out into the cold.</p>
<p>Very shortly after stepping back out into the sub zero temperature I became extremely cold again and decided that I better hitch a ride or else I might get frost bite. I attempted to flag down a few vehicles unsuccessfully until a car finally pulled up. The driver was some high school kid. I told him I only needed to go up about a mile to the Super 8. It was a long mile for both of us. I think he noticed the bloody towel after I was in the car and was excited that I got out when he dropped me off. I pictured myself at his age. I had picked up hitch hikers before and it would have been just my luck picking up a hitchhiker who ended up killing and eating me.  I did no such thing. I&#8217;m going to assume it was a karma thing. Then again, most of the serial killers come from Wisconsin. Oh wait, that is where I am from. Hmm. I stopped thinking on the topic, thanked him, and walked into the hotel.</p>
<p>Back in my room, I popped on my laptop to read all the words of inspirations from all my friends via Facebook. A few people called to check in. One of them was Mike, my old co-worker who put me on to the Webfilings job which I had been interviewing for hours before. He said he called the HR manager and they were going to do whatever it took to make sure I was squared away and taken care of. This was such wonderful news.</p>
<p>Meanwhile, I started chatting with Arika on G-Chat. Apparently, Caityee had her door closed and Arika didn&#8217;t want to bother her to use her phone to talk. I felt pretty badly about this. Even though Arika and I had been having problems, all I wanted at that point was to be at home snuggling with her and her dog. Even though she seemed really distraught over the whole thing, she didn&#8217;t even want to bother our roommate to use her phone to talk. hmm.</p>
<p>After some more emails and phone calls, I shed off my layers and took a long hot bath. I was a wreak. I just sort of lay there in the water staring at the suds chain smoking (it was a smoking room). I had come down with pityriasis rosea the week before and had nasty red spots all over my chest. Blood still leaking from my hands was mixing with the soap suds. I felt like shit and looked like shit, but was feeling so damn lucky to be alive.  Why would my hands not stop bleeding? How am I getting home?</p>
<p>After just making the 11 o&#8217;clock closing at McDonalds across the parking lot, I ate a burger and starting thinking of what I would have to do in the morning with insurance and how the hell I was getting home. As I took the last few bites of my fries, I figured this was enough craziness for one day and turned out the light. Little did I know, the craziness was not over&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blainegarrett.com/2010/12/29/2010-reflections-p2-2-people-look-at-you-wierd-when-you-are-bloody/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>2010 Reflections p2.1 : Crashing Trucks for New Outlooks</title>
		<link>http://blainegarrett.com/2010/11/27/2010-reflections-p2-1-crashing-trucks-for-new-outlooks/</link>
		<comments>http://blainegarrett.com/2010/11/27/2010-reflections-p2-1-crashing-trucks-for-new-outlooks/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 00:54:27 +0000</pubDate>
		<dc:creator>blainegarrett</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Reflection]]></category>
		<category><![CDATA[blazer]]></category>
		<category><![CDATA[blizzard]]></category>
		<category><![CDATA[blood]]></category>
		<category><![CDATA[crash]]></category>
		<category><![CDATA[snow]]></category>
		<category><![CDATA[webfilings]]></category>

		<guid isPermaLink="false">http://blainegarrett.com/?p=943</guid>
		<description><![CDATA[This is the second installment in a series where I reflect upon the year in order to understand where I am and appreciate all that happened in the last twelve months. In this post I revisit my truck accident in February and how it changed quite a few things for me. Shortly after it happened, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blainegarrett.com/files/2010/11/1e350c23-a2f9-4bf2-86f3-fce37b5f334e.jpeg.jpg"><img class="alignleft size-full wp-image-944" src="http://blainegarrett.com/files/2010/11/1e350c23-a2f9-4bf2-86f3-fce37b5f334e.jpeg.jpg" alt="1e350c23-a2f9-4bf2-86f3-fce37b5f334e.jpeg" width="348" height="260" /></a>This is the second installment in a series where I reflect upon the year in order to understand where I am and appreciate all that happened in the last twelve months. In this post I revisit my truck accident in February and how it changed quite a few things for me.</p>
<p>Shortly after it happened, <a href="http://blainegarrett.com/2010/03/09/rip-victory-red-2000-chevy-blazer-hello-navy-2001-chevy-blazer-ames-adventures/" target="_blank">I wrote about some of the details of the accident</a>. I had to leave out a few key bits, including the reason I was down in Ames, Iowa in the first place: <a href="http://blainegarrett.com/2010/11/24/2010-reflections-p1-switching-jobs/" target="_blank">my job interview with Webfiling.</a> After a brutal full day of interviewing with numerous people asking similar questions, I was exhausted. This was worsened by that fact that I was really anxious the night before and hardly sleep. However, I felt really good about the interview and was excited to get back home and celebrate with my then girlfriend Arika and some friends at my favorite neighborhood watering hole, Tracy&#8217;s Saloon. Before heading back, I needed gas and some food, but I decided to stop on the way rather than get caught up further in rush hour traffic in Ames. Arika didn&#8217;t have a phone, so I sent her a G-Chat message quoting Ozzy &#8220;Mamma, I&#8217;m coming home&#8221; and started on my way.</p>
<p>Now, I hate to talk about the weather, but it played a role in my accident. The temperature was 15 degrees F and it had been a bright beautiful clear day. However, the great northern Iowa crosswinds were in full brutal force as well. These factors combined to create a lethal trap of which I was not the only victim. The winds blew snow onto the freeway. The bright sun melted the snow. Then as the sun vanished and the temperatures dropped, turning the melted snow into an icy glaze.</p>
<p>As I was driving out of Ames, the roads seemed fine. I was cruising along at the speed limit and dreaming of sleeping in my own bed again. I stopped at Casey&#8217;s General Store in Story City and fueled up. I grabbed some coffee, some smokes, and a slice of pizza to tide me over. I pulled back onto the freeway and was ready to make the three hour journey.</p>
<p>A few miles in, I noticed a lot of cars in the right lane driving well below the speed limit so I slowed down and switched lanes to pass. As I passed, I noticed they were older people and my stereotypes of the elderly driving slow kicked in and I returned to the 70 mph speed limit.</p>
<p>No sooner than I did this, I hit a patch of ice and started to skid towards the median. Instinctively, I tried to correct the wheel. However, this was futile as it jerked the truck and suddenly I started to feel the Gs. I started to tip sideways &#8211; still moving forward at  the speed limit. Everything in the car started to fly up towards the ceiling. I saw a field of white ahead of me as the windshield shattered. Next, all the things floating about in the car fell back down &#8211; this time mixed with bits of broken glass and snow. No sooner did they land, they rose up again hurling themselves at the ceiling. More glass. More snow. This time, blood. Finally, the items fell one last time back down from the ceiling and I realized what was going on. Yup, I rolled my truck. I took a quick glance about. The drivers side door was flung open. The windshield was caved. My coffee cup was in the back of the truck. My luggage was in the front of the truck.  I could see my phone on the floor sticking out of the snow. It looked like my truck was a snow globe someone had shaken up.</p>
<p>As I rolled, my life didn&#8217;t flash before my eyes like people have later asked. Actually, I was just thinking the whole time &#8220;really? We&#8217;re doing this?&#8221;</p>
<p>I crawled out of the drivers seat into the knee deep snow. The truck had landed right-side-up but the rear wheels were sticking up in the air still spinning. Little pieces of fender and grill were strewn about. I then noticed drops of blood in the snow. I touched my face to see if I still had everything. I looked down at my hands which were numb. They were covered in blood. I frantically trudged about heading towards the road bed. People were slowing down to gawk but no one was stopping to help. I felt like some sort of leper people wanted to avoid. I figured I should call 911, so I ran back and grabbed my phone out of the snow drift that was now my floor. My phone appeared to be working but my hands were too numb to dial. The touch screen on my phone became smudged with blood as I tried to work it. I was miserable and felt so cold and alone and wanted to cry. I would later describe this as the second most desolate feeling I have ever experienced.</p>
<p>Cliffhanger! I hate to leave you here, but this was getting really long and I decided to break it up into a few parts. Since I am writing this, you know I didn&#8217;t bleed to death in the snow.<br />
<a href="http://blainegarrett.com/2010/12/29/2010-reflections-p2-2-people-look-at-you-wierd-when-you-are-bloody/">Next up, tales of hitchhiking, getting stuck in blizzards, and reflections on it all.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blainegarrett.com/2010/11/27/2010-reflections-p2-1-crashing-trucks-for-new-outlooks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>2010 Reflections p1 : Switching Jobs</title>
		<link>http://blainegarrett.com/2010/11/24/2010-reflections-p1-switching-jobs/</link>
		<comments>http://blainegarrett.com/2010/11/24/2010-reflections-p1-switching-jobs/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 21:25:04 +0000</pubDate>
		<dc:creator>blainegarrett</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Reflection]]></category>

		<guid isPermaLink="false">http://blainegarrett.com/?p=935</guid>
		<description><![CDATA[Switching jobs in this hectic economy was one of the harder things for me to do this year, but ultimately was a huge win. This is just one of the many events this year that I&#8217;ll be reflecting upon over the next few weeks that helped write this chapter of my story. I had been [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://webfilings.com" target="_blank"><img class="alignleft size-full wp-image-936" src="http://blainegarrett.com/files/2010/11/75044v1-max-450x450.jpg" alt="75044v1-max-450x450" width="316" height="208" /></a>Switching jobs in this hectic economy was one of the harder things for me to do this year, but ultimately was a huge win. This is just one of the many events this year that I&#8217;ll be reflecting upon over the next few weeks that helped write this chapter of my story.</p>
<p>I had been working at AOL since 2006 and survived a lot of restructuring and layoffs with the company. For much of that period, I worked on a single project that I greatly enjoyed, <a href="http://propeller.com" target="_new">Propeller.com</a>, a &#8220;social news&#8221; network. I also had some really wonderful coworkers that I respected and admired.</p>
<p>Late last year however, it was announced that AOL would be splitting away from Time Warner and that another wave of layoffs were coming. It was also announced that active development on Propeller.com was being discontinued. In the mean time, my project boss <a href="http://tdrapeau.com/" target="_blank">Tom</a> was moved to lead a new project. <a href="http://ryanbudke.com/" target="_blank">Ryan</a>, one of his staff was promoted to the new project boss. Meanwhile, my engineering boss and a few of my co-workers were moved to help on other projects within AOL. When the dust settled, my project boss and team were assimilated by another group. Ryan, the project boss was laid off. Meanwhile, me and the other remaining developer, <a href="http://richwklein.com/" target="_blank">Rich</a>, discovered we were in limbo once we realized we had no boss. Out of self preservation, we found someone to give us work within AOL, but it didn&#8217;t match our skill set and we were unexcited about the project overall.</p>
<p>While on this new project, both Rich and I interviewed at an Iowa based company called <a href="http://webfilings.com" target="_new">Webfilings</a> that one of our AOL co-workers Mike helped to get started. Mike had been harassing us to join his team for nearly a year. However, previously, the idea of leaving the security and pay of AOL for a start up seemed foolish. With the new project at AOL making our lives miserable, we decided to finally check it out.</p>
<p>After an intense eight hour interview gauntlet and a few follow up calls weeks later, we were both hired. Since my May start, I have been quite happy at a job for the first time in since the height of Propeller.com. By taking the job at Webfilings, I was able to get better pay, better benefits, have coworkers I could relate to, and felt like I was working on project that had a future. Additionally, while still telecommuting, I am able to actually meet my co-workers and work with them in person every few months. I work with some really great people, but most of all I feel fortunate to be able to continue to work with Rich. He is one of the best developers I have ever worked with and a great guy.</p>
<p>Ultimately, switching jobs in this economy was one of the hardest decisions I could make. However, it paid off for me in the end and I have no regrets. Propeller.com is now officially closed and both Ryan and Tom moved on to bigger and better things. This three year chapter of my life has ended and the stories and adventures with the Propeller.com team in LA, SXSW, etc get to live on in infamy. As an aside, you can view <a href="http://www.crunchbase.com/company/webfilings" target="_blank">Webfilings and their rise on CrunchBase</a>.</p>
<p>Next up &#8211; Part 2 in the series: A new lease on life &#8211; car crashes to cleanse the soul.</p>
<p><a href="http://blainegarrett.com/files/2010/11/1-goodbye_propeller.gif"><img class="size-full wp-image-937" style="width: 100%" src="http://blainegarrett.com/files/2010/11/1-goodbye_propeller.gif" alt="Good Bye Propeller" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blainegarrett.com/2010/11/24/2010-reflections-p1-switching-jobs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Preview of Dim graffiti series &#8220;Corrosion Maintained&#8221;</title>
		<link>http://blainegarrett.com/2010/11/24/preview-of-dim-graffiti-series-corrosion-maintained/</link>
		<comments>http://blainegarrett.com/2010/11/24/preview-of-dim-graffiti-series-corrosion-maintained/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 19:52:23 +0000</pubDate>
		<dc:creator>blainegarrett</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[DIM Media]]></category>

		<guid isPermaLink="false">http://blainegarrett.com/?p=930</guid>
		<description><![CDATA[Here is  an unfinished  preview of the newest painting series from Dim Media, the artist collaborative I am a part of. The series is titled &#8220;Corrosion Maintained&#8221; and is a analysis of graffiti artwork. The series incorporates recognizable visuals from pop culture, original art, the build up of images by multiple artists to create a [...]]]></description>
			<content:encoded><![CDATA[<p>Here is  an unfinished  preview of the newest painting series from <a href="http://storyofdim.com">Dim Media</a>, the artist collaborative I am a part of.</p>
<p>The series is titled &#8220;Corrosion Maintained&#8221; and is a analysis of graffiti artwork. The series incorporates recognizable visuals from pop culture, original art, the build up of images by multiple artists to create a single composition, different styles and media of graffiti, and more.</p>
<p><a href="http://blainegarrett.com/files/2010/11/MG_5150.jpg"><img class="size-large wp-image-931" src="http://blainegarrett.com/files/2010/11/MG_5150-493x1024.jpg" alt="_MG_5150" width="493" height="1024" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blainegarrett.com/2010/11/24/preview-of-dim-graffiti-series-corrosion-maintained/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turning Parking Lots into Farms in Minneapolis and Vertical Gardening</title>
		<link>http://blainegarrett.com/2010/07/23/turning-parking-lots-into-farms-in-minneapolis-and-vertical-gardening/</link>
		<comments>http://blainegarrett.com/2010/07/23/turning-parking-lots-into-farms-in-minneapolis-and-vertical-gardening/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 16:59:39 +0000</pubDate>
		<dc:creator>blainegarrett</dc:creator>
				<category><![CDATA[Gardening]]></category>

		<guid isPermaLink="false">http://blainegarrett.com/?p=909</guid>
		<description><![CDATA[Stefan Meyer of Growing Lots, turns vacant Minneapolis parking lots into urban farms &#8211; a welcome addition to my little neighborhood. The last time I came back from Iowa for work, I was riding the Hiawatha light rail from the Mall of America where I was dropped off. While sitting on the train, I was [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_917" class="wp-caption alignleft" style="width: 325px"><a rel="attachment wp-att-917" href="http://blainegarrett.com/2010/07/23/turning-parking-lots-into-farms-in-minneapolis-and-vertical-gardening/growinlots201007_071/"><img class="size-medium wp-image-917" src="http://blainegarrett.com/files/2010/07/GrowinLots201007_071-200x300.jpg" alt="Photo by ..." width="315" height="472" /></a><p class="wp-caption-text">Photo by Chris Bohnhoff Used with permission. </p></div>
<p>Stefan Meyer of <a href="http://growinglots.blogspot.com/" target="_blank">Growing Lots</a>, turns vacant Minneapolis parking lots into urban farms &#8211; a welcome addition to my little neighborhood.</p>
<p>The last time I came back from Iowa for work, I was riding the Hiawatha light rail from the Mall of America where I was dropped off. While sitting on the train, I was reflecting on how great Minneapolis is after spending a long week in Ames stuck in a hotel room. This thought was cemented further as I took a different path than I normally do from the Franklin LRT station to my house. What I stumbled upon was a parking lot filled with wire structures with plants growing in them. I stood in amazement for a few minutes taking it all in. However, sadly, I forgot the name of the operation as to look it up when I got home.</p>
<p>A few weeks later, via the <a href="http://forums.e-democracy.org/groups/mpls-seward" target="_blank">Seward E-Democracy list</a>, I discovered it was called &#8220;Growing Lots&#8221; &#8211; a project lead up by local urban farmer Stefan Meyer (aka &#8220;Farmer Stefan) and supported by <a href="http://www.sewardredesign.org/" target="_blank">Seward Redesign</a>. Rather than covering the pavement with soil, Stefan created low cost &#8220;planters&#8221; using rolled wire fencing lined with hay to hold in the soil. The whole structure costs less than $2 each and supports many plants for such a small footprint. Growing Lots provides produce for local restaurants and also offers <a href="http://growinglots.blogspot.com/p/csa-memberships-local-markets.html" target="_self">CSA shares</a>. If you think this is a grand idea, I highly recommend patronizing it.</p>
<p>I have been thinking a lot about how to grow plants in non-traditional manners &#8211; especially to save space and water. This was initially spurred after learning on the History Channel about NASA&#8217;s growing of vegetables in space based on George Washington Carver&#8217;s work involving vertical mesh drip situations. However, after seeing <a href="http://calendar.walkerart.org/canopy.wac?id=4488" target="_blank">Tomás Saraceno&#8217;s Lighter than Air</a> exhibit at the Walker a few years ago, I started thinking about how to do it all in a beautiful manner. I would like to eventually move my garden into my front yard, but obviously a patch of open dirt doesn&#8217;t have the most curb appeal. However, at the same time, vegetable plants can be very decorative later in the season. A lot of my ideas for structures were based on Saraceno&#8217;a grass covered floating orbs, however the biggest mental hurdle for me was how to keep the soil in a wire mesh structure. I think as Stefan demonstrated, lining the structure with hay is the solution. Perhaps, I will get these designed this fall yet to implement for next spring. Wish me luck&#8230; and check out <a href="Growing Lots Urban Farm Official Site" target="_blank">Growing Lots</a>.</p>
<p>Related Links:</p>
<ul>
<li><a href="http://growinglots.blogspot.com/p/about-farm.html" target="_blank">Growing Lots Urban Farm Official Site</a></li>
<li><a href="http://www.chrisbohnhoff.com/blog/2010/07/12/growing-lots-farm-july/" target="_blank">Chris Bohnhoff&#8217;s photo collection </a> of his visit to Growing Lots</li>
<li><a href="http://calendar.walkerart.org/canopy.wac?id=4488">Tomás Saraceno&#8217;s</a> &#8220;Lighter than Air&#8221; at the Walker &#8211; See the Flying Garden piece in the photos</li>
<li><a href="http://www.squidoo.com/verticalfarming" target="_blank">Vertical Gardening</a> &#8211; An interesting collection of topics on the future of gardening in the growing shortage of space.</li>
<li><a href="http://www.startribune.com/lifestyle/homegarden/103937708.html?page=1&amp;c=y" target="_blank">Star Tribune Writeup on Growing Lots</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blainegarrett.com/2010/07/23/turning-parking-lots-into-farms-in-minneapolis-and-vertical-gardening/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing WordPress for android</title>
		<link>http://blainegarrett.com/2010/07/14/testing-wordpress-for-android/</link>
		<comments>http://blainegarrett.com/2010/07/14/testing-wordpress-for-android/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 14:52:54 +0000</pubDate>
		<dc:creator>blainegarrett</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://blainegarrett.com/?p=905</guid>
		<description><![CDATA[I decided to check out the android app for wordpress so I might be write a bit more. So far so good.]]></description>
			<content:encoded><![CDATA[<p><img style="margin-right:auto;margin-left:auto" src="http://blainegarrett.com/files/2010/07/wpid-1279119129247.jpg" alt="image" /></p>
<p>I decided to check out the <a href="http://android.wordpress.org/" target="_blank">android app for </a>wordpress so I might be write a bit more. So far so good.</p>
]]></content:encoded>
			<wfw:commentRss>http://blainegarrett.com/2010/07/14/testing-wordpress-for-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

