<?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-9151524213677958740</id><updated>2011-07-17T08:49:25.377-07:00</updated><category term='Fosters'/><category term='gun fight wang'/><category term='atd arcade tower defense devlog xna indie games'/><category term='Cheese'/><category term='Prist Fost'/><category term='breakfast cake'/><category term='divorce'/><category term='commercial'/><category term='awesome'/><title type='text'>Veripolis</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-2894279081073665575</id><published>2010-08-13T02:45:00.001-07:00</published><updated>2010-08-13T02:51:43.336-07:00</updated><title type='text'>Chuck Close: Artist</title><content type='html'>&lt;p&gt;I was watching The Colbert Report tonight, and his interview guest was portrait artist, &lt;a href="http://en.wikipedia.org/wiki/Chuck_close" target="_blank"&gt;Chuck Close&lt;/a&gt;.&amp;#160; First impression, some artist in a wheelchair. I was waiting until the shoe dropped and Stephen was able to make a pre-approved joke about his handicap, to spice up the boring talk of his drawrings.&amp;#160; I didn't think much of him until they flashed his self portrait. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_J-lHGj8-f0s/TGUUT4GMf_I/AAAAAAAAAsY/ugsCg5gHudQ/s1600-h/309923848_3d52c4fdc7%5B1%5D%5B4%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="309923848_3d52c4fdc7[1]" border="0" alt="309923848_3d52c4fdc7[1]" src="http://lh4.ggpht.com/_J-lHGj8-f0s/TGUUUaDhpUI/AAAAAAAAAsc/RsiQaqzHeoU/309923848_3d52c4fdc7%5B1%5D_thumb%5B2%5D.jpg?imgmax=800" width="428" height="538" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;That picture triggered a well-ensconced memory in me. &lt;/p&gt;  &lt;p&gt;Oh so many years ago, as a kid on a high school field trip in Minnesota, I saw this self portrait hanging before the beginning of a tour of the Walker Art Center. I remember being enthralled by this incredible piece. It was placed a story above the entrance into the main exhibits, but it still felt so huge… larger than life, as the hacks would say. I could tell that the guides were proud of it, but I was the only one in our group memorized by its depth, its detail, its humanity. It's not much to see from a picture on teh internets, but to see this towering visage made my cynical teenage mind pause and appreciate the craftsmanship, the vision, the raw beauty. I remember everybody entering the hall while I reluctantly followed, staring up all the way in.&lt;/p&gt;  &lt;p&gt;I picked up some fun tidbits about him tonight, from the origins of his most obvious handicap (what he calls “&lt;a href="http://en.wikipedia.org/wiki/Chuck_close#.22The_Event.22" target="_blank"&gt;The Event&lt;/a&gt;”), to a gift from the Gods of Irony, his inability to recognize faces, known as &lt;a href="http://en.wikipedia.org/wiki/Prosopagnosia" target="_blank"&gt;Prosopagnosia&lt;/a&gt;.&amp;#160; He even threw in a disparaging joke or two about Bush, revealing his personal politics.&lt;/p&gt;  &lt;p&gt;I’ve learned two lessons tonight.&lt;/p&gt;  &lt;p&gt;First, I went 15 or so years without knowing anything about the artist, even though that one piece has always stuck with me. And, that’s fine. In a week where &lt;a href="http://hotair.com/archives/2010/08/12/devastating-americas-new-folk-hero-might-actually-be-total-jackass/" target="_blank"&gt;Steven Slater&lt;/a&gt; is really a just a drunken dick, and &lt;a href="http://techcrunch.com/2010/08/11/elyse-porterfield/" target="_blank"&gt;Jenny&lt;/a&gt; didn't really quit her job, even my most cynical self must appreciate the art they created and the visceral emotions evoked in me.&lt;/p&gt;  &lt;p&gt;Second, he’s been a man stubbornly, and respectably, in love with the idea of limitations.&lt;/p&gt;  &lt;p&gt;Via &lt;a href="http://en.wikipedia.org/wiki/Chuck_close" target="_blank"&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;As he explained in a 2009 interview with the Cleveland Ohio Plain Dealer, he made a choice in 1967 to make art hard for himself and force a personal artistic breakthrough by abandoning the paintbrush. &amp;quot;I threw away my tools&amp;quot;, Close said. &amp;quot;I chose to do things I had no facility with. The choice not to do something is in a funny way more positive than the choice to do something. If you impose a limit to not do something you've done before, it will push you to where you've never gone before.&amp;quot;&lt;sup&gt;&lt;a href="http://en.wikipedia.org/#cite_note-1"&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I think that’s something that appeals to the wanderlust in me, and speaks generally about the rugged, American spirit. To choose the hard path is the most unnatural thing we can do. But, those folks are the people I respect the most.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.colbertnation.com/full-episodes/thu-august-12-2010-chuck-close" target="_blank"&gt;The episode&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I looked back on that painting all the way out of the museum, even after seeing all the incredible productions inside. Nothing on display inside hit me so bluntly in the chest as that piece.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-2894279081073665575?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/2894279081073665575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=2894279081073665575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/2894279081073665575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/2894279081073665575'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2010/08/chuck-close-artist.html' title='Chuck Close: Artist'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_J-lHGj8-f0s/TGUUUaDhpUI/AAAAAAAAAsc/RsiQaqzHeoU/s72-c/309923848_3d52c4fdc7%5B1%5D_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-8382053051639611774</id><published>2010-07-02T21:54:00.001-07:00</published><updated>2010-07-02T22:33:07.802-07:00</updated><title type='text'>Oh, that makes it better, Apple</title><content type='html'>&lt;p&gt;Apple has posted an &lt;a href="http://www.apple.com/pr/library/2010/07/02appleletter.html"&gt;open letter&lt;/a&gt; explaining the &lt;a href="http://gizmodo.com/5571171/iphone-4-loses-reception-when-you-hold-it-by-the-antenna-band"&gt;precipitous drop&lt;/a&gt; in signal strength when their new iPhone 4 is manhandled inappropriately. Jobs’ advice to the “Doctor, it hurts when I do this” has been, of course, to “don’t do &lt;a href="http://www.engadget.com/2010/06/24/apple-responds-over-iphone-4-reception-issues-youre-holding-th/"&gt;this&lt;/a&gt;”.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Upon investigation, we were stunned to find that the formula we use to calculate how many bars of signal strength to display is totally wrong. Our formula, in many instances, mistakenly displays 2 more bars than it should for a given signal strength. For example, we sometimes display 4 bars when we should be displaying as few as 2 bars. Users observing a drop of several bars when they grip their iPhone in a certain way are most likely in an area with very weak signal strength, but they don’t know it because we are erroneously displaying 4 or 5 bars. Their big drop in bars is because their high bars were never real in the first place.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Yup. Seems the same reason that one Mars-bound robot mission augured into a planet, or the reason the stock market dropped 1000 points in a minute, made it past Apple quality control and into the market this release. Added to that is a tinge of “it’s your fault”.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;We will issue a free software update within a few weeks that incorporates the corrected formula. Since this mistake has been present since the original iPhone, this software update will also be available for the iPhone 3GS and iPhone 3G.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Wait, make that ALL releases… for the last couple of years. Well, thanks for fixing that now.&lt;/p&gt;  &lt;p&gt;So what does Apple’s explanation tell us?&lt;/p&gt;  &lt;p&gt;Maybe Apple is poor at engineering, testing and quality control.&amp;#160; They didn’t realize for 3 years that the &lt;strong&gt;&lt;em&gt;phone&lt;/em&gt;&lt;/strong&gt; function of their &lt;strong&gt;&lt;em&gt;phone&lt;/em&gt;&lt;/strong&gt; wasn’t performing as the screen proclaimed. I spent the last year cursing Apple, AT&amp;amp;T, Jesus, nature, myself, my cat for walking too close, the wind, the lack of wind… any pattern I could find that would explain why I would go from 5 bars to dropped call every minute during a conversation. Turns out I lived in a fallout shelter, but the imagineers who imagineered the # of bars display were giving me shotty data.&lt;/p&gt;  &lt;p&gt;So, was Apple really just grossly negligent in its assessment of signal strength, or was it protecting its ill-advised exclusivity deal with AT&amp;amp;T when the carrier was unable to support the heavy load?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Never ascribe to malice that which is adequately explained by incompetence.&lt;/p&gt;    &lt;p&gt;- Napolean, 1800… or so&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I’d like to believe that Apple didn’t deliberately doctor the bars to make me feel like AT&amp;amp;T was doing a better job than it really was upholding their end of an exclusive data contract. But, the corollary to this quote, in this case, should probably be:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Never underestimate the willingness of the vested to overlook incompetence when it works to their advantage.&lt;/p&gt;    &lt;p&gt;- Brett, just now&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I’m not sure if I can take the “Whoops, we got the algorithm wrong… it’s very complicated and technical, don’t worry we fixed it now” excuse as full forgiveness. It’s well played spin, probably to be eaten up by most of their existing and potential customers. They make compelling products; quite pretty and well loved.&lt;/p&gt;  &lt;p&gt;I’ve had a bit of a love-hate relationship with Apple over the last year. I have an iPhone 3G and a used MacBook Pro (which you’re experiencing right now). They have their awesome points, and their glaring pitfalls.&lt;/p&gt;  &lt;p&gt;The aesthetic part is pretty on the outside, but on closer inspection, it’s typically a jumble of hastily-wrapped parts basically performing their function long enough to make the user happy. I &lt;strong&gt;could&lt;/strong&gt; cite several examples of this in specificity, ranging from attempting to do iPhone programming in Objective C, to the impenetrable iTunes interface, to watching my friend attempt to replace a drive in an MacBook, to repeatedly trying to make a phone call to my parents, to the ever-slowening of the iPhone OS, to the computer I’m typing on right now…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_J-lHGj8-f0s/TC7CkLssuVI/AAAAAAAAAsI/qmHbUlDNmEU/s1600-h/IMG_0605%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0605" border="0" alt="IMG_0605" src="http://lh3.ggpht.com/_J-lHGj8-f0s/TC7CkrwSy7I/AAAAAAAAAsM/wvQJFHdDfAg/IMG_0605_thumb%5B2%5D.jpg?imgmax=800" width="452" height="348" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Those lines on the screen are always there, but move every time I type a letter. It’s apparently one of &lt;strong&gt;many&lt;/strong&gt; known issues with the MacBook Pro laptops of that generation. There are sites and forums dedicated to cataloging these kinds of &lt;a href="http://appledefects.com/wiki/index.php?title=MacBook_Pro"&gt;problems&lt;/a&gt;. Even though it’s on a heat-dissipating pad, it’s burning my hands and creating artifacts from the heat-fatigued GPU. Worse, my iPhone 3G suddenly refuses to join any WiFi network, thus forcing me to burden AT&amp;amp;T’s already stretched 3G antennas beyond their abilities.&lt;/p&gt;  &lt;p&gt;I’m not sure where I land here. From a design standpoint, they make a really nice box. It basically does what I need it to do most of the time. Stray one bit from that, or just wait long enough for the components to fall apart, and you’re just boned.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_J-lHGj8-f0s/TC7G8R-coyI/AAAAAAAAAsQ/UsnboFlOf7U/s1600-h/ron-burgundy-3717%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ron-burgundy-3717" border="0" alt="ron-burgundy-3717" src="http://lh3.ggpht.com/_J-lHGj8-f0s/TC7G867V9UI/AAAAAAAAAsU/kEg3BD-rRDo/ron-burgundy-3717_thumb%5B1%5D.jpg?imgmax=800" width="306" height="417" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;60% of the time it works, every time.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Full disclosure: I’m a Microsoft employee, currently doing some work in the mobile space, though my thoughts here are completely divorced from any and all Microsoft activities, statements, positions, gambles, Kins, cats, or bacons. I’m paid by them for my engineering expertise, though not endorsed to opine on the state of the industry.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-8382053051639611774?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/8382053051639611774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=8382053051639611774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8382053051639611774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8382053051639611774'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2010/07/oh-that-makes-it-better-apple.html' title='Oh, that makes it better, Apple'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_J-lHGj8-f0s/TC7CkrwSy7I/AAAAAAAAAsM/wvQJFHdDfAg/s72-c/IMG_0605_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-5201607831197889280</id><published>2010-03-18T00:16:00.001-07:00</published><updated>2010-03-18T00:16:03.404-07:00</updated><title type='text'>It’s St. Patrick’s!</title><content type='html'>&lt;p&gt;Can’t beat that.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="75999010[1]" border="0" alt="75999010[1]" src="http://lh5.ggpht.com/_J-lHGj8-f0s/S6HTMLdT-nI/AAAAAAAAAr0/A2gLUOWzG50/75999010%5B1%5D_thumb%5B1%5D.png?imgmax=800" width="451" height="591" /&gt;&lt;/p&gt;  &lt;p&gt;Thank you, Nathan Fillion&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-5201607831197889280?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/5201607831197889280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=5201607831197889280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/5201607831197889280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/5201607831197889280'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2010/03/its-st-patricks.html' title='It’s St. Patrick’s!'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_J-lHGj8-f0s/S6HTMLdT-nI/AAAAAAAAAr0/A2gLUOWzG50/s72-c/75999010%5B1%5D_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-1526571631192676314</id><published>2010-03-17T21:23:00.000-07:00</published><updated>2010-03-17T21:37:36.540-07:00</updated><title type='text'>Get off my lawn!</title><content type='html'>SON, I AM DISAPPOINT. &lt;br /&gt;&lt;br /&gt;Well, more to the point, radio! I'm disappointed in you. Please see me after class.&lt;br /&gt;&lt;br /&gt;It wasn't until I was listening to the local hips hops station that I realized how bad things had gotten. Birthday Sex still comes on the radio at least once an hour. And, have you heard this? Have you seen this?&lt;br /&gt;&lt;br /&gt;Birthday Sex is an actual, honest to goodness, produced, legitimate, for-serious-reals version of "Dick in a Box." Seriously. Listen to the lyrics, and come back! I'll wait. This post will still be waiting for you, and the extra advertising impression is always a welcome guest in these halls! &lt;br /&gt;&lt;br /&gt;Dick in a Box is satire, but is frustratingly close to reality! Every song is some Usher-sound-a-like singing about banging teh hoez. Well, not even hoez at this point! It's even worse than that. &lt;span style="font-style:italic;"&gt; I wanna make love in this club! &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Another fun game I like to play on teh hips hops station is "seconds until autotune." It's usually zero.&lt;br /&gt;&lt;br /&gt;So, I'll just change the station! I'll listen to some award winning rock/alternative station, even though "alternative" means "every station ever" now.&lt;br /&gt;&lt;br /&gt;Wow. Is that... is that Alice and Chains? On the hour, every hour? &lt;span style="font-style:italic;"&gt;That is so two thousand and late.&lt;/span&gt; I mean, nineteen ninety &lt;span style="font-style:italic;"&gt;late&lt;/span&gt;. I mean, 1986. Am I getting this right? The go-to station for new, relevant music is playing the top hits from (at least) &lt;span style="font-style:italic;"&gt;fifteen years ago?&lt;/span&gt; Fifteen? Fifteen years ago? This is award-winning music relevant to this generation? And, was that seriously followed by &lt;span style="font-style:italic;"&gt;Red Hot Chili Peppers&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Are you kidding me?&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-1526571631192676314?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/1526571631192676314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=1526571631192676314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/1526571631192676314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/1526571631192676314'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2010/03/get-off-my-lawn.html' title='Get off my lawn!'/><author><name>gisenberg</name><uri>http://www.blogger.com/profile/04967839612962143919</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-8755191386611756797</id><published>2010-01-29T22:00:00.000-08:00</published><updated>2010-01-29T22:07:58.391-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='atd arcade tower defense devlog xna indie games'/><title type='text'>Arcade Tower Defense Dev Log: New Age Music Might Be Bullshit</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; "&gt;&lt;div style="margin-top: 6px; margin-right: 6px; margin-bottom: 6px; margin-left: 6px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana; font-size: 10pt; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); min-height: 1100px; counter-reset: __goog_page__ 0; line-height: normal; "&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;Hello, everyone!&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;a href="http://www.youtube.com/gisenberg00#p/u/4/l8aYKKOo3MI"&gt;This is my game&lt;/a&gt;. It's a work in progress, and I'm hoping to have it up on XNA Indie Games sometime before July.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;The audio that you hear today is not the audio that the game started with. As part of my effort to avoid spending too much time on The Small Things, I initially generated sound effects using SFXR. SFXR is a sound generation tool that produces effects that are very reminiscent of 8-bit games of old.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;A Flash version of SFXR can be found at &lt;a href="http://www.superflashbros.net/as3sfxr/" style="color: rgb(85, 26, 139); "&gt;http://www.superflashbros.net/as3sfxr/&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;So, the first revision of sounds used by ATD were generated by SFXR. And it was great! My ship made little sounds, and the game started to feel somewhat legitimate!&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;Throughout development, I added more features that made use of these sounds. The most profound of these features was turrets, which would fire relentlessly at nearby enemies. Enemies would blow up, and life was grand!&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;But then, something happened.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;I'm not sure exactly when, but somewhere along the 100th time I launched my game to check something out, my generated sounds turned against me. No longer were they pleasing to the ear! No, they were the opposite of that. They were little stabby things that produced pain to all who heard them! &lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;Something had to be done. But what? I'm too cheap to buy sounds, and don't really have the know-how to produce my own.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;Dejected, and sick of listening to my generated audio, I sauntered off to the back room to practice guitar. &lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;Several days prior, I had played with Brian Eno's &lt;a href="http://www.youtube.com/watch?v=dlgV0X_GMPw"&gt;Trope&lt;/a&gt; and &lt;a href="http://www.youtube.com/watch?v=-swFqAT8yaA"&gt;Bloom&lt;/a&gt;. Generated audio would certainly play nicely with the skills I have. That's hard, though, and I'm not terribly bright.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;So, as I'm practicing guitar, I'm mulling over this generated music stuff. I started playing with note combinations that worked well together. I played natural harmonics along the 7th and 12th fret of the guitar, and no matter what combination of things I had, it appeared to sound good. So, what if my turrets, which are a good random seed, had those same sounds?&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;I set forth into the recording studio with a new-found purpose! I was going to record audio for my game. I ran my guitar through my Spider III 120 with some echo, ran the amplifier output through an Mbox Mini and started recording each individual natural harmonic along the 7th and 12th frets of the guitar in ProTools LE.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;I armed a track, recorded a note, armed the next track, recorded the next note, and so on. Each track was recorded independently and sounded pretty good on its own. &lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;When I was done and had 12 tracks staring at me, I thought, hey! What the hell. What does 12 channels of unplanned audio sound like?&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;Pretty good, actually. &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/F4ltXrf41QQ&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/F4ltXrf41QQ&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;Doesn't that sound awfully familiar? I'm pretty sure I've heard this track before!&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;i&gt;tl;dr I hated my audio, was inspired by procedurally generated audio and recorded some sounds, and they sounded good when played together.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-8755191386611756797?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/8755191386611756797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=8755191386611756797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8755191386611756797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8755191386611756797'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2010/01/arcade-tower-defense-dev-log-new-age.html' title='Arcade Tower Defense Dev Log: New Age Music Might Be Bullshit'/><author><name>gisenberg</name><uri>http://www.blogger.com/profile/04967839612962143919</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-8922657482093277168</id><published>2009-12-09T22:55:00.001-08:00</published><updated>2009-12-09T22:55:48.984-08:00</updated><title type='text'>Representing a mutable game state using continuation-passing and aspect-oriented concepts.</title><content type='html'>&lt;p&gt;I've been a fan of the World of Warcraft Trading Card Game for a while now. As a geek that somehow missed the Magic: The Gathering rush, I feel like I'm retroactively patching up some holes in my nerd-dom defense.&lt;/p&gt;  &lt;p&gt;The game makes me cringe when I look at it through developer eyes. It has an interesting hook; while there are basic rules associated with the game, the printed card text always trumps the rules. And new cards are coming out all the time. As I play and watch absurd card after absurd card completely change up the game, I think... can this be implemented in a sane way? &lt;/p&gt;  &lt;p&gt;The game state is completely mutable. No rules are truly set in stone. For example, cards have class restrictions, but class restrictions can be circumvented. Players take one turn, but might be able to play a card to take another turn. Cards can bring in cards that don't even exist in the concept of a game. I've read horror stories of games where a player's deck is crafted in such a way that the player can eventually swap their deck out with a raid deck.&lt;/p&gt;  &lt;p&gt;In fact, there are cards that turn resource cards into ally cards while still providing the benefits of a resource card. &lt;/p&gt;  &lt;p&gt;So, how do I model &lt;em&gt;that&lt;/em&gt;?&lt;/p&gt;  &lt;p&gt;I was knee-deep in implementation on something that sort of kind of worked. I had the idea of &amp;quot;firm&amp;quot; rules with cards that were somewhat dynamic. This worked up to a point. I had a good majority of my common cases working, but as the less-common cases rolled in, I realized that the most intuitive, charge-in-ask-questions-later approach wouldn't work. Ever. In a million years. I was way off.&lt;/p&gt;  &lt;p&gt;I bounced ideas off of my own personal design committee for hours. I'd highly recommend throwing one of these together if you haven't already, by the way. They're really great about reminding me that my designs are awful and I'm almost completely inept. &lt;/p&gt;  &lt;p&gt;What we came up with was pretty spectacular. I didn't know it at the time, but we implemented a continuation-passing style design pattern in the context of modeling a card game. And, we threw a dash of aspect oriented programming in there, too!&lt;/p&gt;  &lt;p&gt;Consider an object graph that contains several nodes. Each node on the graph contains several lists of functions (pre-, default or mask, and post-functions). Pre-functions evaluate, followed by either default or mask functions, followed by post-functions. That's our aspect-oriented flavor and allows us to do cool things like, &amp;quot;Before a player draws a card, make them take a billionty damage.&amp;quot; More AOP goodness can be found here: &lt;a href="http://en.wikipedia.org/wiki/Aspect_oriented_programming"&gt;http://en.wikipedia.org/wiki/Aspect_oriented_programming&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The default functions associated with each node on the graph are responsible for doing something and then putting another node on the queue of nodes to evaluate. For example, let's say we have a set of rules for picking a player. Once we've evaluated those rules, we want to move on to the &amp;quot;Play the game&amp;quot; part of our code. This is where we get our continuation-passing style influences from. For more information on CPS, check out this informative Wiki: &lt;a href="http://en.wikipedia.org/wiki/Continuation_passing_style"&gt;http://en.wikipedia.org/wiki/Continuation_passing_style&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To see if this approach would fly, I decided to implement The Game of War (&lt;a href="http://en.wikipedia.org/wiki/War_(card_game"&gt;http://en.wikipedia.org/wiki/War_(card_game&lt;/a&gt;) ). The Game of War is one of the easiest card games to implement, and I figured this would be a great test bed for introducing the kinds of game-changing rules I would expect from more complex card games.&lt;/p&gt;  &lt;p&gt;When we consider The Game of War in the context of our object graph, we end up with something like this:&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 0. Shuffle the deck.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 1. Determine the active player.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 2. Draw a card for the active player.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 3. Compare card values with the opposing player. If the opposing player doesn't have a card, GOTO 1. If there's a tie, make each player draw three cards and GOTO 1. &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 4. Declare a winner.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 5. GOTO 1.&lt;/p&gt;  &lt;p&gt;This flow represents the &amp;quot;ideal&amp;quot; state of the game; that is, the default rules. And hey, this worked out pretty well! Not bad for implementing one of the simplest card games in the world within a series of obscure design patterns.&lt;/p&gt;  &lt;p&gt;So now, with epic Game of War in place, I decided to add a slight twist. Each player would have a deck of standard playing cards. However, each player would also have a side deck of ability cards. In step 0, each player's side deck of abilities gets shuffled into the deck of standard playing cards. &lt;/p&gt;  &lt;p&gt;I want ability cards to be able to mutate the state of the game. When an ability card is drawn, I want functions associated with the card to evaluate and cause weird stuff to happen. Weird stuff is good! They make games interesting.&lt;/p&gt;  &lt;p&gt;The ability cards I decided to implement were:&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Gain 1 Point&lt;/i&gt;: &amp;quot;Immediately gain one point and draw another card.&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Fortune&lt;/i&gt;: &amp;quot;Immediately draw until you have 5 standard cards. Choose the card with the highest value and add the remaining cards to the pot.&amp;quot;&lt;/p&gt;  &lt;p&gt;&amp;quot;Gain 1 Point&amp;quot; isn't terribly interesting, but does throw an interesting wrench into our standard game flow. In step 2, we draw a card and move to step 3. However, in this case, we draw a card and go back to draw a card. The card has manipulated the flow of the game, and this is exactly what I want to enable.&lt;/p&gt;  &lt;p&gt;The &amp;quot;Gain 1 Point&amp;quot; card does this by... well, I'm one of the unfortunate types that can't explain anything without a whiteboard, so let's take a look at the code instead.&lt;/p&gt;  &lt;blockquote&gt;new AbilityCard    &lt;p&gt;{&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Name = &lt;/p&gt;    &lt;p&gt;&amp;quot;Gain 1 Point&amp;quot;,&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Description = &lt;/p&gt;    &lt;p&gt;&amp;quot;Upon drawing this card, immediately gain one point and draw another card.&amp;quot;,&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Action = () =&amp;gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; { &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; testGame.GameState.ActivePlayer.Points++;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; testGame.GameWorkflow.ExecutionQueue.Add(testGame.DrawCardNode);&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Okay, so a card has an Action. The Action is evaluated when the card is drawn. In this case, the action of the card is to grant the active player (determined by step 1) a point. And then, we take the execution queue and add a &amp;quot;DrawCardNode&amp;quot; to it. A DrawCardNode is just the typed representation of Step 2. So, we drew a card (we were in the draw card node!) and added another draw card node to the queue of stuff to evaluate. We went from step 2 right back to step 2 again, and in a convoluted way! Joy!&lt;/p&gt;  &lt;p&gt;Don't worry about GameWorkflow or ExecutionQueue just yet. Suffice to say, the execution queue is responsible for evaluating each node in the object graph I described above. &lt;/p&gt;  &lt;p&gt;So, Fortune is a bit trickier. We have to draw 5 cards, and then pick the high card, and then use that for comparison. We also have to add all the cards we drew to the pot. Our game isn't conducive to this at all! It has no notion of the absurd stuff this card is trying to do. Luckily, it doesn't have to!&lt;/p&gt;  &lt;p&gt;Let's take a look at the Fortune card code. Apologies in advance! There's a lot going here:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;new AbilityCard&lt;/p&gt;    &lt;p&gt;{&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Name = &lt;/p&gt;    &lt;p&gt;&amp;quot;Fortune!&amp;quot;,&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Description = &lt;/p&gt;    &lt;p&gt;&amp;quot;Upon drawing this card, draw until you have 5 standard cards. Choose the highest card and add the remaining cards to the pot.&amp;quot;,&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Action = () =&amp;gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;Card&amp;gt; cards = new List&amp;lt;Card&amp;gt;();&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; while((from card in cards where card is StandardCard select card).Count() &amp;lt; 5)&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Card cardToAdd = testGame.GameState.ActivePlayer.Deck.Draw();&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cards.Add(cardToAdd);&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; StandardCard highCard = (from StandardCard card in cards where card is StandardCard orderby card.Value descending select card).First(); &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; testGame.GameState.ActivePlayer.HighCard = highCard;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int potValue = cards.Count;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; testGame.CompareCardNode.PreRules.Add(&lt;/p&gt;    &lt;p&gt;&amp;quot;fortune&amp;quot;, () =&amp;gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (testGame.GameState.Player1.HighCard != null &amp;amp;&amp;amp; testGame.GameState.Player2.HighCard != null)&lt;/p&gt;    &lt;p&gt;{&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (testGame.GameState.Player1.HighCard.Value &amp;gt; testGame.GameState.Player2.HighCard.Value)&lt;/p&gt;    &lt;p&gt;{&lt;/p&gt;    &lt;p&gt;testGame.GameState.Player1.Points = testGame.GameState.Player1.Points + potValue;&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else if (testGame.GameState.Player2.HighCard.Value &amp;gt; testGame.GameState.Player1.HighCard.Value)&lt;/p&gt;    &lt;p&gt;{&lt;/p&gt;    &lt;p&gt;testGame.GameState.Player2.Points = testGame.GameState.Player2.Points + potValue;&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt;    &lt;p&gt;testGame.GameWorkflow.ExecutionQueue.Add(testGame.CompareCardNode);&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt;    &lt;p&gt;}&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Okay, the Fortune card looks scary. It manipulates quite a bit of game state. It's also responsible for quite a bit. The first 10 lines or so of the action are dedicated to drawing up to 5 standard cards and picking the highest card. This process also determines the pot value. Can you tell that I love LINQ? So far, so good?&lt;/p&gt;  &lt;p&gt;Immediately after that, we add a pre-rule to the &amp;quot;Compare Card&amp;quot; node in which we determine that, if both players have drawn cards, give the winning player the pot determined by the fortune card. This means that, the next time we evaluate Step 3, run this arbitrary function that our Fortune card has just created.&lt;/p&gt;  &lt;p&gt;Okay, so there's a nuance here! You might be wondering why this is a pre-condition of comparing cards. Consider that, in The Game Of War, when a tie happens, each player draws three cards. Those cards get added to the pot. &lt;/p&gt;  &lt;p&gt;So, we might have a particularly crazy Game of War With A Twist (GOWWAT?) in which a player draws a fortune card, picks the high card, but ties with the other player! And has to go back and draw three more cards, and then do a comparison again.&lt;/p&gt;  &lt;p&gt;Here's the output of such a game, with these game rules hooked up to a test harness:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Player 1 drew a Fortune card! &lt;/p&gt;    &lt;p&gt;Player 1 drew 2 of Hearts&lt;/p&gt;    &lt;p&gt;Player 1 drew 1 of Clubs&lt;/p&gt;    &lt;p&gt;Player 1 drew 11 of Clubs&lt;/p&gt;    &lt;p&gt;Player 1 drew 0 of Hearts&lt;/p&gt;    &lt;p&gt;Player 1 drew 7 of Hearts&lt;/p&gt;    &lt;p&gt;Player 2 drew a 11 of Clubs&lt;/p&gt;    &lt;p&gt;Draw! Drawing three cards...&lt;/p&gt;    &lt;p&gt;Player 2 drew a 1 of Clubs&lt;/p&gt;    &lt;p&gt;Player 1 drew a 12 of Spades&lt;/p&gt;    &lt;p&gt;Player 1 wins the Fortune pot!&lt;/p&gt;    &lt;p&gt;Player 1 wins with 12 points!&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So, we have a somewhat tricky design that allows us to deal with some rather tricky cards. In this implementation, the gameplay is almost entirely mutable. We can take a rather mundane concept and mutate it to add flare.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-8922657482093277168?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/8922657482093277168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=8922657482093277168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8922657482093277168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8922657482093277168'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2009/12/representing-mutable-game-state-using.html' title='Representing a mutable game state using continuation-passing and aspect-oriented concepts.'/><author><name>gisenberg</name><uri>http://www.blogger.com/profile/04967839612962143919</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-471458736986860141</id><published>2009-10-29T00:27:00.000-07:00</published><updated>2009-10-29T00:29:48.630-07:00</updated><title type='text'>Three Wolf Pumpkin</title><content type='html'>&lt;div&gt;I'm pretty proud of my Halloween pumpkin :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_J-lHGj8-f0s/SulEO08ZxnI/AAAAAAAAArk/A70CZ5iXA7A/s1600-h/3+wolf+pumpkin.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_J-lHGj8-f0s/SulEO08ZxnI/AAAAAAAAArk/A70CZ5iXA7A/s320/3+wolf+pumpkin.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5397920649901098610" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-471458736986860141?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/471458736986860141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=471458736986860141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/471458736986860141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/471458736986860141'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2009/10/three-wolf-pumpkin.html' title='Three Wolf Pumpkin'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_J-lHGj8-f0s/SulEO08ZxnI/AAAAAAAAArk/A70CZ5iXA7A/s72-c/3+wolf+pumpkin.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-29769497476999093</id><published>2009-09-24T00:48:00.001-07:00</published><updated>2009-09-24T00:49:00.395-07:00</updated><title type='text'>Noooo…..</title><content type='html'>&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Jeff_Dunham"&gt;Jeff Dunham&lt;/a&gt; has a whole &lt;a href="http://www.comedycentral.com/shows/jeff_dunham/index.jhtml"&gt;new series&lt;/a&gt;, starting October 22.&lt;/p&gt;  &lt;p&gt;No.&lt;/p&gt;  &lt;p&gt;No.&lt;/p&gt;  &lt;p&gt;No.&lt;/p&gt;  &lt;p&gt;There are a lot of pains I will accept.&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;World hunger &lt;/li&gt;    &lt;li&gt;AIDS in Africa &lt;/li&gt;    &lt;li&gt;Blasphemy &lt;/li&gt;    &lt;li&gt;Rising tides &lt;/li&gt;    &lt;li&gt;Global thermonuclear war &lt;/li&gt;    &lt;li&gt;Evil, compounded by evil, committing evil against evil, with innocence in the crossfire &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;But, a bad ventriloquist, with his own show?&amp;#160; No.&amp;#160; This will not stand.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:8f6e511d-c530-49b2-bc60-2258bb2316a3" class="wlWriterEditableSmartContent"&gt;&lt;div id="46709371-3896-4fcd-88cb-ee466718f4a0" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=47DT41m86N4&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/_J-lHGj8-f0s/SrskPyCH93I/AAAAAAAAArc/2wjL7K8XMWU/video4d1e161f38e3%5B8%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('46709371-3896-4fcd-88cb-ee466718f4a0'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/47DT41m86N4&amp;amp;hl=en&amp;amp;fs=1&amp;amp;&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/47DT41m86N4&amp;amp;hl=en&amp;amp;fs=1&amp;amp;&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;He’s been doing this whole “on a stick” schtick for over 2 decades.&amp;#160; He’s safe comedy, invoking shock to the level that would titillate your older aunt who mocks outrage at the slightest mention of vulgarity or the most timid racial references, like she’s never heard it before.&amp;#160; Jay Leno is more controversial and entertaining… with Pat Morita…&lt;/p&gt;  &lt;p&gt;It’s lazy.&amp;#160; I don’t tolerate rewarded laziness.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-29769497476999093?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/29769497476999093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=29769497476999093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/29769497476999093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/29769497476999093'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2009/09/noooo.html' title='Noooo…..'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_J-lHGj8-f0s/SrskPyCH93I/AAAAAAAAArc/2wjL7K8XMWU/s72-c/video4d1e161f38e3%5B8%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-4867322605578739190</id><published>2009-05-04T23:30:00.001-07:00</published><updated>2009-05-04T23:35:46.483-07:00</updated><title type='text'>Mr. Wizard and the Atari Joystick</title><content type='html'>&lt;p&gt;I found it. I finally found it. After 15 years of having access to the internets, I've finally found this clip.&lt;/p&gt;  &lt;p&gt;This Mr. Wizard segment was about 50% responsible for my current career as a programmer. It was my first realization that I could actually understand how computers worked, and could bend them to my will.&lt;/p&gt;  &lt;p&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="gtembed" width="480" height="392"&gt;	&lt;param name="allowScriptAccess" value="sameDomain" /&gt; &lt;param name="allowFullScreen" value="true" /&gt; &lt;param name="movie" value="http://www.gametrailers.com/remote_wrap.php?umid=294322" /&gt; &lt;param name="quality" value="high" /&gt; &lt;embed src="http://www.gametrailers.com/remote_wrap.php?umid=294322" swLiveConnect="true" name="gtembed" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="480" height="392"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;/p&gt;  &lt;p&gt;Now, clearly, Mr. Wizard is way out of his league here.&amp;#160; It’s the early 80’s and computers are taking everything we knew about science and electronics and shoving them into some tiny little array of microchips.&amp;#160; Science and TV exposure isn’t going to help an old man come to grips with a new world in which a single person can’t possibly understand a technology from top to bottom.&lt;/p&gt;  &lt;p&gt;In this clip, we see such basic errors as&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Radioactive interference – he thought the metal casing shielded the rest of the world from the computer’s television station, rather than outside interference mucking with the computer’s internals.&lt;/li&gt;    &lt;li&gt;He did get chips vs. their housings concept right (clearly through much coaching).&amp;#160; I have to give him credit there… though, he did call the connections “bumps”, and kind of mumbled off into something about other places… glossing over the difference between ROM and RAM.&amp;#160; Common rookie mistakes.&lt;/li&gt;    &lt;li&gt;8-bit computer - thinking 8 chips meant 8-bit, rather than the width of the data bus.&amp;#160; And he thought that each sends a “byte” off to the screen and each little “dot” has to have a signal from each one of them.&lt;/li&gt;    &lt;li&gt; Input controlling –&amp;#160; it goes through all the little things and goes all over the place… something something…&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The man concedes the value of the engineers who put this marvel together.&amp;#160; However, it was the controller stuff that stuck with me most, lodged in my memory for decades almost completely unmolested by time.&lt;/p&gt;  &lt;p&gt;Let’s leave aside all the horribly inept aspects of Mr. Wizard’s understanding of computers.&amp;#160; At a very young age, through this clip, I was unknowingly introduced to the idea of abstraction.&amp;#160; It’s the idea that a programmer can rely on the layers below him to make it possible to produce something great for those above him, without fully understanding what’s happening below.&lt;/p&gt;  &lt;p&gt;In this clip, it was told to me that controlling video games was as simple as mastering these 5 switches for up, down, left, right and the “start” button.&amp;#160; To make a video game, I just needed to write something to react to up, down, left, right and “start”.&lt;/p&gt;  &lt;p&gt;It’s more complex than that, but in a completely different way than the complexity we deal with now.&amp;#160; Inheritance, inversion of control, decorators, database access, html rendering, persistence frameworks… it’s all just flavors of the same concept…&amp;#160; It doesn’t matter where you are in the chain, you’re always a middleman (unless you’re drawing traces in some p-charged well in a substrate… which, even now, is abstracted).&amp;#160; This is what makes this field great.&lt;/p&gt;  &lt;p&gt;Somebody always has an interest in the layer below you, and sometimes it’s you who is that layer.&amp;#160; It’s thrilling to use what someone else has done to improve the lives of those above you.&amp;#160; Sometimes, it’s enjoyable to be the top of the software chain making it possible for real-world users to do their job better.&lt;/p&gt;  &lt;p&gt;It’s what software people do.&amp;#160; They solve the hard problems so others don’t have to.&amp;#160; We thrive on this.&lt;/p&gt;  &lt;p&gt;It reminds me of the old yarn about dwarfs and &lt;a href="http://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants"&gt;giants&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;quot;Bernard of Chartres used to say that we are like dwarfs on the shoulders of giants, so that we can see more than they, and things at a greater distance, not by virtue of any sharpness of sight on our part, or any physical distinction, but because we are carried high and raised up by their giant size.&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Which brings us to an all-time great comeback by the &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=ronald+reagan+quotes&amp;amp;aq=2s"&gt;Gipper&lt;/a&gt;.&amp;#160; I’m not sure if it’s genuine, but it’s great nonetheless.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;At one campus meeting, a student told Reagan that it was impossible for people of Reagan's generation to understand young people. [The student said] 'You grew up in a different world. Today we have television, jet planes, space travel, nuclear energy, computers.' Without missing a beat Reagan replied, 'You’re right. It's true that we didn't have those things when we were young. We invented them.'&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;So, enjoy your frameworks.&amp;#160; Love your languages.&amp;#160; Everything becomes too complex at some point to completely understand from top to bottom.&amp;#160; Rely on those below you to make your tools, and use them to make something better for those above.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-4867322605578739190?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/4867322605578739190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=4867322605578739190' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/4867322605578739190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/4867322605578739190'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2009/05/mr-wizard-and-atari-joystick.html' title='Mr. Wizard and the Atari Joystick'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-2255857438364295167</id><published>2009-03-18T23:45:00.000-07:00</published><updated>2009-03-19T10:55:26.215-07:00</updated><title type='text'>Take away this kid's screwdriver!!!</title><content type='html'>Watch this sweet commercial. He's so precocious.&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_eudMNgpxlA&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/_eudMNgpxlA&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Watch again... Watch it!!!&lt;br /&gt;&lt;br /&gt;I know this commercial is supposed to be all adorable and about how the kid is exploring his world of electronics, and his parents have big dreams of his future in the world of computer science. He's taking things apart, learning about computers and electrical systems... I was that kid. I took things apart to see how they worked, and not everything went back together quite right (always had a pile of important looking shit left over).&lt;br /&gt;&lt;br /&gt;But he's taking a screwdriver and digging up the traces on the motherboard, before he jams that wretched tool into the IDE and power ports and bends all the pins into a completely unusable state!&lt;br /&gt;&lt;br /&gt;He's destroyed what would be, to a consummate computer professional as myself, merely a $100 piece of equipment. But, given his retard parents, he's probably demolishing their entire $1000 Dell desktop with no hope of repair. Say goodbye to all that savings you devoted to Lit 101 and 102!&lt;br /&gt;&lt;br /&gt;I want to encourage any kid I have someday to explore his interests. But I don't want him opening the hood to my car, jamming a screwdriver through the fuel line, knifing the timing belt and trying his hand with the wire cutters on the brake lines. That's not learning... it's just vandalism.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-2255857438364295167?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/2255857438364295167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=2255857438364295167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/2255857438364295167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/2255857438364295167'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2009/03/take-this-away-this-kids-screwdriver.html' title='Take away this kid&apos;s screwdriver!!!'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-6417906290327792450</id><published>2009-02-18T22:05:00.001-08:00</published><updated>2009-02-18T22:07:33.589-08:00</updated><title type='text'>Fairness doctrine in action</title><content type='html'>&lt;p&gt;Tonight I gave a chance to a reprehensively bad episode of the new Fox breakout: &lt;a href="http://www.imdb.com/title/tt1235099/"&gt;Lie to Me&lt;/a&gt;.&amp;#160; Besides the criminal use of &lt;a href="http://www.imdb.com/name/nm0000619/"&gt;Tim Roth&lt;/a&gt; in this one-trick pony of a team of deus ex machina truth detectors, I saw the Fairness Doctrine in action without the need for government intervention. &lt;/p&gt;  &lt;p&gt;I saw the team, over the course of an hour, demonstrate the effect of &amp;quot;&lt;a href="http://en.wikipedia.org/wiki/Microexpression"&gt;microexpressions&lt;/a&gt;&amp;quot; (in the form of ham-fisted displays of obviousness) to solve their crimes CSI-style.&amp;#160; They even-handedly used images and video of Condoleezza Rice, Donald Rumsfeld and Chief Justice John Roberts, juxtaposed over the hour with videos of President Obama and President Bill Clinton to illustrate examples of people lying. &lt;/p&gt;  &lt;p&gt;This show decided to use government officials as example of liars, which is well within reason.&amp;#160; But it knew not to go the now standard Bush-bashing route (oddly, I didn't see any imagery of Bush himself) to sell its product. &lt;/p&gt;  &lt;p&gt;It does a decent job of using the weaknesses of our government controlling a message or keeping a secret, but at least it doesn't paint the whole apparatus as an institutional lie factory.&lt;/p&gt;  &lt;p&gt;Still… terrible show.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-6417906290327792450?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/6417906290327792450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=6417906290327792450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/6417906290327792450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/6417906290327792450'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2009/02/fairness-doctrine-in-action.html' title='Fairness doctrine in action'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-3473426920107961984</id><published>2009-02-05T22:43:00.000-08:00</published><updated>2009-02-05T23:50:04.051-08:00</updated><title type='text'>Just a weapons malfuction... how are you?</title><content type='html'>Holy Christ, this old guy isn't afraid of death.&lt;br /&gt;&lt;br /&gt;Your delta-wing plane has no engines. Physics dictates that you and your passengers are doomed to a fiery death. How do you deal with it?&lt;br /&gt;&lt;br /&gt;Apparently, when you're a millionty years old... calm and composed.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;iframe height="339" src="http://www.msnbc.msn.com/id/22425001/vp/29033586#29033586" frameborder="0" width="425" scrolling="no"&gt;&lt;/iframe&gt;&lt;style type="text/css"&gt;.msnbcLinks {font-size:11px; font-family:Arial, Helvetica, sans-serif; color: #999; margin-top: 5px; background: transparent; text-align: center; width: 425px;} .msnbcLinks a {text-decoration:none !important; border-bottom: 1px dotted #999 !important; font-weight:normal !important; height: 13px;} .msnbcLinks a:link, .msnbcLinks a:visited {color: #5799db !important;} .msnbcLinks a:hover, .msnbcLinks a:active {color:#CC0000 !important;} &lt;/style&gt;&lt;br /&gt;&lt;p class="msnbcLinks"&gt;Visit msnbc.com for &lt;a href="http://www.msnbc.msn.com/"&gt;Breaking News&lt;/a&gt;, &lt;a href="http://www.msnbc.msn.com/id/3032507"&gt;World News&lt;/a&gt;, and &lt;a href="http://www.msnbc.msn.com/id/3032072"&gt;News about the Economy&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Hats off, of course. Enough crazy has happened in the last couple of weeks to wipe clean the achievement of a perfect water landing (in layman's terms, a horrific firey drowning exercise). But the composure of not only the pilot jarting headlong into hydro-doom... but of the air traffic controller executing emergency procedures and activating emergency response in the unlikely event that some star child were to survive the splashdown. Wow... just, wow. How are you?&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/KbOl64z9DnU&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/KbOl64z9DnU&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;My favorite part is the guy on the edge of the wing falling into the water.  When you're the considerate nice guy first out of the plane, you walk to the furthest edge of the wing.  What's your reward?  Wet coldness with your life-raft (read: AirBus 320) floating away.  I feel for you, Properly-Walking-To-The-End-Of-The-Wing-Guy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-3473426920107961984?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/3473426920107961984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=3473426920107961984' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/3473426920107961984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/3473426920107961984'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2009/02/just-weapons-malfuction-how-are-you.html' title='Just a weapons malfuction... how are you?'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-7487757730414304050</id><published>2009-02-05T22:10:00.001-08:00</published><updated>2009-02-05T22:59:45.718-08:00</updated><title type='text'>Awwwww</title><content type='html'>We give trophies to dipshit kids for losing every game in the season.&lt;br /&gt;&lt;br /&gt;Then, this happens. Sometimes, the most inspiring things come from the least exceptional of us.&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript" src="http://i.cdn.turner.com/cnn/.element/js/2.0/video/evp/module.js?loc=dom&amp;amp;vid=/video/living/2009/02/05/pkg.me.down.basketball.wcsh"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;br /&gt;This gives me a happy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-7487757730414304050?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/7487757730414304050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=7487757730414304050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/7487757730414304050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/7487757730414304050'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2009/02/awwwww.html' title='Awwwww'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-8160700457813647923</id><published>2008-12-04T20:23:00.000-08:00</published><updated>2008-12-04T20:29:17.197-08:00</updated><title type='text'>Commercial addendum addendum</title><content type='html'>A new entry in the &lt;a href="http://veripolis.blogspot.com/2008/11/best-commercial-addendum.html"&gt;Commercial Olympics&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/N0gb9v4LI4o&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/N0gb9v4LI4o&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Pretty sure it's not real... but... real Cook County (Chicago) phone number...&lt;br /&gt;site: &lt;a href="http://www.jonesbigasstruckrentalandstorage.com/"&gt;Jones Bigass Truck Rental &amp; Storage&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;via: &lt;a href="http://www.geekologie.com/2008/12/toby_jones_stores_your_stuff_o.php"&gt;Geekologie&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-8160700457813647923?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/8160700457813647923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=8160700457813647923' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8160700457813647923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8160700457813647923'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/12/commercial-addendum-addendum.html' title='Commercial addendum addendum'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-1525986058407736108</id><published>2008-11-28T04:19:00.001-08:00</published><updated>2008-11-28T04:19:14.770-08:00</updated><title type='text'>Rickrolling tastes funny</title><content type='html'>&lt;p&gt;What arguably could be considered the &lt;a href="http://hotair.com/archives/2008/11/27/heart-ache-america-gets-rickrolled/" target="_blank"&gt;best moment in parade history&lt;/a&gt;.&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:8fe22fd9-5995-4533-8d9b-8df56c736395" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div id="e416f659-2512-4c84-adda-8b06a40f257d" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=wL-hNMJvcyI&amp;amp;hl=en&amp;amp;fs=1" target="_new"&gt;&lt;img src="http://lh3.ggpht.com/_J-lHGj8-f0s/SS_hwYgSKBI/AAAAAAAAApc/Zpx_hCM5_jE/video75ea4049a9f5%5B2%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('e416f659-2512-4c84-adda-8b06a40f257d'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/wL-hNMJvcyI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/wL-hNMJvcyI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;I know he’s lip-synching, but he showed up.&amp;#160; You wouldn’t get this from any other guy.&lt;/p&gt;  &lt;p&gt;Also, &lt;a href="http://veripolis.blogspot.com/2008/10/cheese.html" target="_blank"&gt;Cheese&lt;/a&gt;!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-1525986058407736108?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/1525986058407736108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=1525986058407736108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/1525986058407736108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/1525986058407736108'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/11/rickrolling-tastes-funny.html' title='Rickrolling tastes funny'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_J-lHGj8-f0s/SS_hwYgSKBI/AAAAAAAAApc/Zpx_hCM5_jE/s72-c/video75ea4049a9f5%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-6595559414383910855</id><published>2008-11-28T04:06:00.001-08:00</published><updated>2008-11-28T04:06:08.309-08:00</updated><title type='text'>Best Commercial Addendum</title><content type='html'>&lt;p&gt;Yes, this continues to be the best commercial ever created… &lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:2ed54aa7-df1c-4530-b7c3-ec16e248cb67" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div id="336dcba6-af1f-4c1f-9172-6886ff0dd8bc" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=8QjnoW4d_Io&amp;amp;hl=en&amp;amp;fs=1" target="_new"&gt;&lt;img src="http://lh4.ggpht.com/_J-lHGj8-f0s/SS_erTS7ZRI/AAAAAAAAApU/pUastu0guHM/videoe5849dd172aa%5B2%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('336dcba6-af1f-4c1f-9172-6886ff0dd8bc'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/8QjnoW4d_Io&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/8QjnoW4d_Io&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;via: &lt;a title="Greatest commercial evar" href="http://veripolis.blogspot.com/2008/11/greatest-commercial-evar.html"&gt;Greatest commercial evar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;However, a VERY honorable runner up goes to this commercial (tap hit: Kent) -&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:c5be478c-f907-4335-bed2-f3b6a216b647" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div id="1c221e88-cc27-41a0-a810-7cf225e5247f" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=FJ3oHpup-pk&amp;amp;hl=en&amp;amp;fs=1" target="_new"&gt;&lt;img src="http://lh4.ggpht.com/_J-lHGj8-f0s/SS_er2lh51I/AAAAAAAAApY/FhOyc3QAXmA/videof3cf553ad1fb%5B2%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('1c221e88-cc27-41a0-a810-7cf225e5247f'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/FJ3oHpup-pk&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/FJ3oHpup-pk&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&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/9151524213677958740-6595559414383910855?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/6595559414383910855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=6595559414383910855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/6595559414383910855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/6595559414383910855'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/11/best-commercial-addendum.html' title='Best Commercial Addendum'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_J-lHGj8-f0s/SS_erTS7ZRI/AAAAAAAAApU/pUastu0guHM/s72-c/videoe5849dd172aa%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-4425330393332115833</id><published>2008-11-28T03:52:00.001-08:00</published><updated>2008-11-28T03:52:55.998-08:00</updated><title type='text'>My Cats</title><content type='html'>&lt;p&gt;As if anybody cared.&amp;#160; These are the cats I know I know… these are the cats I know.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_J-lHGj8-f0s/SS_bkBXxnOI/AAAAAAAAAo4/yZWHNOE9teE/s1600-h/DSC04348%5B2%5D.jpg"&gt;&lt;img title="DSC04348" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="284" alt="DSC04348" src="http://lh6.ggpht.com/_J-lHGj8-f0s/SS_bkSDxLPI/AAAAAAAAAo8/6HMAjYbyoJ0/DSC04348_thumb.jpg?imgmax=800" width="424" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This, above, is Dusky.&amp;#160; She’s a &lt;a href="http://en.wikipedia.org/wiki/Maine_coon" target="_blank"&gt;Maine Coon&lt;/a&gt; who loves foods, chirping, T.O.Y.S. and laser pointers.&amp;#160; Here’s Dusky chasing her tail with a piece of yellow yarn tied to it.&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:91b6f3f9-fbf0-4c98-842c-d3fdf6973180" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div id="e14967c3-ae94-42dc-b223-0136cfe22616" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=LknJK6ybvYE&amp;amp;hl=en&amp;amp;fs=1" target="_new"&gt;&lt;img src="http://lh4.ggpht.com/_J-lHGj8-f0s/SS_bkmQi2VI/AAAAAAAAApA/QAZedqcSc7g/videoac9d150d90e0%5B2%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('e14967c3-ae94-42dc-b223-0136cfe22616'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/LknJK6ybvYE&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/LknJK6ybvYE&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;And, below, is my kitten Putita.&amp;#160; Her name is a dirty Spanish word that fits her well.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_J-lHGj8-f0s/SS_bk6lxYaI/AAAAAAAAApE/utr9dNaiJVw/s1600-h/DSC04349%5B2%5D.jpg"&gt;&lt;img title="DSC04349" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="284" alt="DSC04349" src="http://lh5.ggpht.com/_J-lHGj8-f0s/SS_blY_E9cI/AAAAAAAAApI/xiHJP4drCag/DSC04349_thumb.jpg?imgmax=800" width="424" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_J-lHGj8-f0s/SS_blkiLOfI/AAAAAAAAApM/I2L-tm_D6NY/s1600-h/DSC00648%5B2%5D.jpg"&gt;&lt;img title="DSC00648" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="284" alt="DSC00648" src="http://lh4.ggpht.com/_J-lHGj8-f0s/SS_bl-LRGWI/AAAAAAAAApQ/0NiimSByohg/DSC00648_thumb.jpg?imgmax=800" width="424" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;She really is a bitch-cat.&amp;#160; I picked her up off the mean streets of Tucson, delivering her from a harsh life of kangaroo mice and little birdies for sustenance.&amp;#160; She hates strangers and voyeur cats, and she beats up on her kitten friends.&amp;#160; She’s a sweetheart, but very particular about who gives her the lovin’.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-4425330393332115833?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/4425330393332115833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=4425330393332115833' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/4425330393332115833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/4425330393332115833'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/11/my-cats.html' title='My Cats'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_J-lHGj8-f0s/SS_bkSDxLPI/AAAAAAAAAo8/6HMAjYbyoJ0/s72-c/DSC04348_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-7591301776150135202</id><published>2008-11-28T02:36:00.000-08:00</published><updated>2008-11-28T02:38:05.144-08:00</updated><title type='text'>My Milwaukee</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HLWP45AGE-o&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/HLWP45AGE-o&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;What am I supposed to make of this?&lt;br /&gt;&lt;br /&gt;via: &lt;a href="http://www.thisismymilwaukee.com/"&gt;http://www.thisismymilwaukee.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;P.S.  Must watch the whole thing.  There's payoff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-7591301776150135202?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/7591301776150135202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=7591301776150135202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/7591301776150135202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/7591301776150135202'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/11/my-milwaukee.html' title='My Milwaukee'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-8606107140813157026</id><published>2008-11-17T21:08:00.000-08:00</published><updated>2008-11-17T21:09:39.102-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='commercial'/><category scheme='http://www.blogger.com/atom/ns#' term='divorce'/><category scheme='http://www.blogger.com/atom/ns#' term='awesome'/><title type='text'>Greatest commercial evar</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/8QjnoW4d_Io&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/8QjnoW4d_Io&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;I dare you to find a better commercial.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-8606107140813157026?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/8606107140813157026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=8606107140813157026' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8606107140813157026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8606107140813157026'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/11/greatest-commercial-evar.html' title='Greatest commercial evar'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-8363187716164032113</id><published>2008-11-12T23:04:00.000-08:00</published><updated>2008-11-12T23:20:51.413-08:00</updated><title type='text'>"Famous" ventriloquism</title><content type='html'>Jeff Dunham is a "famous" ventriloquist.  There's a few words in that sentence that send me into a rage.&lt;br /&gt;&lt;br /&gt;First, there's "ventriloquist".  You're one step below "mime".  At least the mime has the good sense to not pretend somebody else is telling his unfunny shit.&lt;br /&gt;&lt;br /&gt;Then, more importantly, there's "famous".  This bothers me in two ways.  First, it means he's actually making money doing this shit.  That makes me angry at him.  Second, it means there are people who like his antics.  That makes me disappointed with America.&lt;br /&gt;&lt;br /&gt;He's not funny, and he's not good at it.  It's well known that there are tricks to speaking without moving your lips (replacing m's with n's, p's with t's), hopefully seamlessly enough.  But, one would assume that after something like 2 decades becoming all famous at this, he'd at least be good at it... or funny.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wskT6YfVB6E&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/wskT6YfVB6E&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;I'm all for some good racial humor.  ESPECIALLY some good terrorism humor.  But this just doesn't even try to be funny... or good at ventriloquism.&lt;br /&gt;&lt;br /&gt;This guy showed up at my high school senior party (or maybe it was sometime in college... I don't know... I've swiss-cheesed my memory a bit since then), but I distinctly remembering him bombing hard, except when his little Jalapeno buddy said "on a stick".  And that marks the moment I started to hate this man and resent the entirety of his efforts in life.&lt;br /&gt;&lt;br /&gt;I've seen better ventriloquists... but I've also seen more entertaining sleeping cats.&lt;br /&gt;&lt;br /&gt;Guess who has &lt;strong&gt;another&lt;/strong&gt; special on Comedy Central this weekend?  Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-8363187716164032113?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/8363187716164032113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=8363187716164032113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8363187716164032113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8363187716164032113'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/11/famous-ventriloquism.html' title='&quot;Famous&quot; ventriloquism'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-8467343126229195756</id><published>2008-11-05T00:10:00.000-08:00</published><updated>2008-11-05T00:46:16.281-08:00</updated><title type='text'>It's over!!!</title><content type='html'>It's Over!!!!&lt;br /&gt;&lt;br /&gt;Or, is it?  Good luck folks.  I hope all the change and hope you get hopes the change you need to hope for the future of the changing hope.&lt;br /&gt;&lt;br /&gt;I hung around with a lot of people tonight yelling "we won!!!!"  It went so far as to the playing of Queen's "We are the Champions"... and it makes me wonder whether the quotes should go around "we" or "won"...  "We"?  Well, Obama, for sure, won.  "won"?  Well, something happened to this "we," or else they wouldn't be partying.&lt;br /&gt;&lt;br /&gt;I live near Seattle, and hung out downtown tonight, moving from bar to bar.  Everywhere I went, I heard the same thing... exhuberation.  I was at one bar holding a Obama congratulations party where the Queen song came on.  One man stood up in front of the screen during the McCain conceeding speech, thumbs down, trying to shut down John's last moments of the campaign.  He was ushered away, but not out, and not exactly booed.  At another bar, a couple were gloating over the victory.  Driving from place to place, I heard honks and screams and howls... saw signs and dancing.&lt;br /&gt;&lt;br /&gt;I voted for Bush twice.  I think it's safe, at this point, to admit that.  The first time was an understandably subdued reaction, bled out over a month, relief that the Clinton administration was over.  The second time was merely a feeling of relief tht John Kerry wouldn't be taking over at a critical time.  Never fist-pumping, high-fiving, horn-honking, party-throwing excitement.  It's new to me to see people so personally vested in the success of a candidate.&lt;br /&gt;&lt;br /&gt;I think what made the evening fun (aside from the amazing company I held) was the schadenfreude thought of the disillusionment they're going to be feeling someday soon.  I can't seperate the feeling from that of your favorite sports team winning the BIG game.  But your team leaves the field and goes to Disney World.  This isn't a contest, it's an interview and a hiring.  This matters.&lt;br /&gt;&lt;br /&gt;I want to think that America will be a better place over the next 2 years.  The natural business cycle should be swinging back during this time.  And, I don't want to be in the position the liberals have been in for the last 8 years, where bad news for America meant good news for the party (though, it seems to have worked).  But, I'm fully expecting some really bad policy decisions down the line here and I expect some scratched heads.  Even Vice President Elect Biden agrees that we'll be left wondering.&lt;br /&gt;&lt;br /&gt;Congrats, Obama.  I truly hope your change is for the good, not for the change.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-8467343126229195756?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/8467343126229195756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=8467343126229195756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8467343126229195756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8467343126229195756'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/11/its-over.html' title='It&apos;s over!!!'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-4947643312893422954</id><published>2008-10-25T19:50:00.001-07:00</published><updated>2008-10-28T11:14:12.228-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fosters'/><category scheme='http://www.blogger.com/atom/ns#' term='Cheese'/><title type='text'>Cheese!</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bNC4I6qiauI&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&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/bNC4I6qiauI&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;*hearts*&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-4947643312893422954?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/4947643312893422954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=4947643312893422954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/4947643312893422954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/4947643312893422954'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/10/cheese.html' title='Cheese!'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-4708846815831485679</id><published>2008-10-06T21:12:00.001-07:00</published><updated>2008-10-06T21:26:40.365-07:00</updated><title type='text'>Don’t Mock Me</title><content type='html'>&lt;p&gt;Michael and I came up with something pretty cool for mocking in unit tests.&lt;/p&gt;  &lt;p&gt;So, you have a class:&lt;/p&gt;  &lt;p&gt;&lt;font face="consol" color="#008080" size="1"&gt;public class Thing     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public int Do() { return 1; }      &lt;br /&gt;} &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;And you want to mock it because “return 1;” really means “call off to a web service that won’t be there during unit testing”.&amp;#160; Obviously, the traditional creating of that whole Interface/Class set thing so you can return a mock version of it sucks (maintenance).&amp;#160; Also, you don’t want to put code in your production code which is specifically test code.&amp;#160; So, how about we let our unit test project have its own derived version of the class?&amp;#160; Then it can override the methods that call out with some simple stubs.&lt;/p&gt; &lt;font face="consol" color="#008080" size="1"&gt;public class Thing   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public virtual int Do() { return 1; }    &lt;br /&gt;} &lt;/font&gt;  &lt;p&gt;&lt;font face="conso" color="#008080" size="1"&gt;public class MockThing : Thing     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public override int Do() { return 0; }      &lt;br /&gt;}&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;Getting closer, but now there’s still the problem of instantiating our class instead of the original.&amp;#160; How about we just get in the way of instantiating the class when in test mode?&lt;/p&gt;  &lt;p&gt;&lt;font face="conso" color="#008080" size="1"&gt;public delegate Thing GetThingInstanceDelegate();     &lt;br /&gt;public class Thing      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; protected Thing() { }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public virtual int Do() { return 1; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; protected static GetThingInstanceDelegate _getInst =      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; () =&amp;gt; new Thing();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static Thing GetInstance()      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return _getInst();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}      &lt;br /&gt;// located only in your unit test project      &lt;br /&gt;public class MockThing : Thing      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; /// &amp;lt;summary&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; /// Temporarily used to force static constructor      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; /// &amp;lt;/summary&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static void Initialize() { }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; static MockThing()      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _getInst = () =&amp;gt; new MockThing();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; protected MockThing() : base() { }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public override int Do() { return 0; }      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Now, to call it from your production code:&lt;/p&gt;  &lt;p&gt;&lt;font face="consol" color="#008080" size="1"&gt;Thing thing = Thing.GetInstance();     &lt;br /&gt;System.Diagnostics.Trace.WriteLine(thing.Do().ToString(), &amp;quot;DoThing&amp;quot;); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The cost you pay is a slight performance hit due to using delegation for instantiation (who cares?), a little more complexity and readability trouble, that Initialize method and opening up your design for extension where it probably shouldn’t be allowed.&lt;/p&gt;  &lt;p&gt;These can be mitigated as such:&lt;/p&gt;  &lt;p&gt;· The performance hit of a delegation is nothing compared to the hit of calling a service over the web.&amp;#160; Forget about it.&lt;/p&gt;  &lt;p&gt;· Complexity can be commented, and the boilerplate stuff really can be in a base class of Thing if it requires no other base class.&lt;/p&gt;  &lt;p&gt;· The initialize method can be skipped as long as there’s a way of triggering the static initialize… which can be done through a marker interface (or attribute) and forced in a method, using reflection, triggering all those classes.&lt;/p&gt;  &lt;p&gt;· The opened up design can be mitigated somewhat using visible internals and some other trickery, but this is still a much smaller hit to the design than building all your objects as class/interface pairs.&lt;/p&gt;  &lt;p&gt;Nifty?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-4708846815831485679?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/4708846815831485679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=4708846815831485679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/4708846815831485679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/4708846815831485679'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/10/dont-mock-me.html' title='Don’t Mock Me'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-7609042261120774426</id><published>2008-09-26T00:18:00.001-07:00</published><updated>2008-09-26T00:36:47.146-07:00</updated><title type='text'>WA Gov Race</title><content type='html'>&lt;p&gt;Washington is clearly a pretty blue state.&amp;#160; It's known for its hackey-sack flacking douches, and its Pacific Northwest liberal attitude (which I'm coming to love).&lt;/p&gt;  &lt;p&gt;It's undeniable that it's a liberal haven, and I moved right into the heart of it.&lt;/p&gt;  &lt;p&gt;Though, my first sunlight day here, I went to the Issaquah Target for supplies, and I saw a guy wearing a &lt;a href="http://neveryetmelted.com/wp-images/ClubGitmo.jpg" target="_blank"&gt;Club Gitmo&lt;/a&gt; t-shirt.&amp;#160;&amp;#160; It was comforting.&amp;#160; I even complemented him on it and he was very cordial.&amp;#160; I knew I could never get far from my people.&amp;#160; I even quickly found 3 AM stations playing nothing but conservative talk.&lt;/p&gt;  &lt;p&gt;Fast forward a couple of years, and we're in the latest gubernatorial race between incumbent Christine Gregoire and&amp;#160; Dino Rossi.&amp;#160; It's one of the more brutal races in the nation right now.&amp;#160; You know how I know?&amp;#160; Because I watch Wheel of Fortune and Jeopardy every night, and I have to see both groups' campaign's ads.&lt;/p&gt;  &lt;p&gt;Here's a little sample of fucked up:&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:80853234-a9c0-48fa-b725-b6cb7cb45e39" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1rSITfYSxa8&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/1rSITfYSxa8&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Dude... seriously... dude...&lt;/p&gt;  &lt;p&gt;A couple of days ago, I decided to respond to this YouTube entry, and I was greated with this.&amp;#160; They never approved my comment.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/bmorien/SNyOJGjtgyI/AAAAAAAAAfQ/UDzm9ICoHcw/s1600-h/cropped%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="340" alt="cropped" src="http://lh6.ggpht.com/bmorien/SNyOJXDEQuI/AAAAAAAAAfU/bHgHfNY0pG8/cropped_thumb%5B1%5D.jpg?imgmax=800" width="424" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Rossi's response:&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:9fddb2c5-9252-48ca-a622-6716fe6a8352" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6F2huI7cw30&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/6F2huI7cw30&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;This isn't the best response, but it at least underscores the dishonesty of one side...&lt;/p&gt;  &lt;p&gt;President Bush only banned federal money supporting the destruction of embryos, but never made any prohibitions against private research.&amp;#160; There have been incredible &lt;a href="http://en.wikipedia.org/wiki/Adult_stem_cell" target="_blank"&gt;advances&lt;/a&gt; in the use of adult stem-cells in the areas of disease research in the last year or so.&amp;#160; There's enough science here that embryonic should be pretty much off the table.&amp;#160; It's a very early field, but there's enough promise to stop demonifying somebody for holding out for a non-destructive method.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-7609042261120774426?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/7609042261120774426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=7609042261120774426' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/7609042261120774426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/7609042261120774426'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/09/wa-gov-race.html' title='WA Gov Race'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/bmorien/SNyOJXDEQuI/AAAAAAAAAfU/bHgHfNY0pG8/s72-c/cropped_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-7843147820394211043</id><published>2008-09-04T22:26:00.001-07:00</published><updated>2008-09-04T22:26:23.128-07:00</updated><title type='text'>PAX!</title><content type='html'>&lt;p&gt;So, that's it. PAX is over and we're left with nothing but memories.   &lt;br /&gt;My favorite memories, in no particular order:    &lt;br /&gt;1) I got to hug &lt;a href="http://www.hulu.com/watch/28343/dr-horribles-sing-along-blog" target="_blank"&gt;Felicia Day&lt;/a&gt; and get it on film    &lt;br /&gt;2) OMG, I hugged Felicia Day&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/bmorien/SMDC93B6SiI/AAAAAAAAAeg/NMLeDSU--84/s1600-h/DSC04251%5B2%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC04251" src="http://lh6.ggpht.com/bmorien/SMDC-SlEJyI/AAAAAAAAAek/DO3WNzTtS_A/DSC04251_thumb.jpg?imgmax=800" width="424" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;she was really quite a sweetheart.   &lt;br /&gt;3) I saw Felicia and Jonathan Coulton singing &amp;quot;Still Alive&amp;quot;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:5dfafd34-6342-4918-bb98-3d9b03ed822e" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/OkU5599GD30&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/OkU5599GD30&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;4) I shook hands with &lt;a href="http://www.stepto.com/default.aspx" target="_blank"&gt;StepTo&lt;/a&gt; after he sang a rousing Pearl Jam song on the Rock Band 2 stage    &lt;br /&gt;5) During the Friday night concert, I enjoyed the hell out of the 1Ups and Freezepop until some mulleted and hugely bearded sweaty bastard showed up and wanged my friend in the tit, and then the Douchebag Train busted onto the scene dropping off a bunch of 16-year-old sweaty high-school dance fuckers... and all of them started hopping and mosh-pitting in front of us. Horribley horrible, but memorable.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:e7d01901-8408-49da-a92c-7e8a5878b49e" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ugX0hqRYj5E&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ugX0hqRYj5E&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;6) I met the &lt;a href="http://www.evilavatar.com/" target="_blank"&gt;EvAv&lt;/a&gt; crew. Hi guys!    &lt;br /&gt;7) I got into the background of an entire G4 show (XPlay, was on around 8PM Tuesday... replayed this weekend as &amp;quot;PAX Day 1&amp;quot;). &lt;a href="http://www.vgcats.com/comics/?strip_id=218" target="_blank"&gt;Morgan Manjaw&lt;/a&gt; is WAY better looking in person (despite the pancake makeup), and I probably look like a total tool trying not to stare at her ass for a half hour.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/bmorien/SMDC-5taDOI/AAAAAAAAAeo/pf4Aj55vyvI/s1600-h/DSC04255%5B2%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC04255" src="http://lh4.ggpht.com/bmorien/SMDC_j_Jx8I/AAAAAAAAAes/mbdqtrzXh2I/DSC04255_thumb.jpg?imgmax=800" width="424" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;8) Snagging a bar table at Gordon Biersch 3 minutes after showing up (shunting a 1.5 hour wait). Yay garlic fries!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://viewmorepics.myspace.com/index.cfm?fuseaction=viewImage&amp;amp;friendID=28197394&amp;amp;albumID=2151486&amp;amp;imageID=42115635#a=2151486&amp;amp;i=42115637"&gt;&lt;img height="333" src="http://a693.ac-images.myspacecdn.com/images01/31/l_7f62dd7a9ba003018269bb308512de84.jpg" width="441" /&gt;&lt;/a&gt;    &lt;br /&gt;9) Best pizza ever at Bill's Off Broadway    &lt;br /&gt;&lt;a href="http://viewmorepics.myspace.com/index.cfm?fuseaction=viewImage&amp;amp;friendID=28197394&amp;amp;albumID=2151486&amp;amp;imageID=42115674#a=2151486&amp;amp;i=42115676"&gt;&lt;img height="353" src="http://a922.ac-images.myspacecdn.com/images01/85/l_383fb43d34b1f4141b13e34f8196b8c9.jpg" width="449" /&gt;&lt;/a&gt;10) Getting nailed for 40 bucks on a $7.00 parking spot because I wrote 12 instead of 16 on a make-shift envelope.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;That wasn't meant to be a top-10 list, but 10 seemed like a great spot to stop writing.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-7843147820394211043?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/7843147820394211043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=7843147820394211043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/7843147820394211043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/7843147820394211043'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/09/pax.html' title='PAX!'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/bmorien/SMDC-SlEJyI/AAAAAAAAAek/DO3WNzTtS_A/s72-c/DSC04251_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-3533558537577391254</id><published>2008-08-09T20:15:00.001-07:00</published><updated>2008-08-09T20:45:29.101-07:00</updated><title type='text'>Beijing Opening Ceremony Oddity</title><content type='html'>&lt;p&gt;I watched the entirety of the opening ceremony, and this was an amazing, tear-extracting spectacular.&amp;#160; Each of the performances was more amazing than the last, leading up to the most amazing torch lighting ever.&lt;/p&gt;  &lt;p&gt;Then again, I've never really watched the opening ceremonies before... or really much Olympics in general... But this is a very exciting time for a country who has taken some pretty drastic measures to put a spit-shine on their little country.&lt;/p&gt;  &lt;p&gt;All that said, tell me I'm not the only one who noticed this.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://english.eastday.com/eastday/englishedition/node20676/images/01353970.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Notice something a little odd about the little guy's flag?&amp;#160; He's an amazing little boy, with quite the story of heroism and duty in the face of the Sichuan earthquake.&amp;#160; I can't believe he'd have a political agenda, and I'm not even sure that flying a flag upside down in China has the same connotation it does here... but still.&lt;/p&gt;  &lt;p&gt;Perhaps just shoddy manufacturing quality at the old flag factory?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-3533558537577391254?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/3533558537577391254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=3533558537577391254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/3533558537577391254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/3533558537577391254'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/08/beijing-opening-ceremony-oddity.html' title='Beijing Opening Ceremony Oddity'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-8028491456019588591</id><published>2008-07-27T00:54:00.001-07:00</published><updated>2008-07-27T11:29:37.338-07:00</updated><title type='text'>My logging technique is supreme</title><content type='html'>&lt;p&gt;So, thought I'd share my awesome logging technique in .Net.&amp;#160; Here's your basic super-dumb program... a main method that calls into &amp;quot;MyMethod&amp;quot; and writes a value out to the screen entered by the user (which must be an integer).&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas" color="#800000" size="1"&gt;class Program     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MyMethod(Console.ReadLine());      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static void MyMethod(string value)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.Write(Int32.Parse(value));      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch (Exception)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;That wasn't a number...&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;So, you want to log/trace your method entries and method exits.&amp;#160; Here's the naive approach:&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas" color="#800000" size="1"&gt;class Program     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MyMethod(Console.ReadLine());      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas" color="#800000" size="1"&gt;&amp;#160;&amp;#160;&amp;#160; public static void MyMethod(string value)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Logger.LogEnter(&amp;quot;MyMethod&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.Write(Int32.Parse(value));      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch (Exception)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;That wasn't a number...&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Logger.LogExit(&amp;quot;MyMethod&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas" color="#800000" size="1"&gt;public class Logger     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static void LogEnter(string methodName)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(string.Format(&amp;quot;Enter {0}&amp;quot;, methodName));      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static void LogExit(string methodName)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(string.Format(&amp;quot;Exit {0}&amp;quot;, methodName));      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;What sucks about that?&amp;#160; Well, you've written your method name 3 times!&amp;#160; Plus, you have to assure that your catch logic captures all cases and never returns early.&amp;#160; That's a very limiting approach.&lt;/p&gt;  &lt;p&gt;The next approach, using the stack frame:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#800000" size="1"&gt;class Program     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MyMethod(Console.ReadLine());      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#800000" size="1"&gt;&amp;#160;&amp;#160;&amp;#160; public static void MyMethod(int value)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Logger.LogEnter();      &lt;br /&gt;&lt;/font&gt;&lt;/p&gt; &lt;font face="Courier New" color="#800000" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.Write(Int32.Parse(value));    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch (Exception)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;That wasn't a number...&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;font face="Courier New" color="#800000" size="1"&gt;   &lt;br /&gt;&lt;font face="Courier New" color="#800000" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Logger.LogExit();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}      &lt;br /&gt;public class Logger      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static void LogEnter()      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Diagnostics.StackFrame frame = new System.Diagnostics.StackFrame(1);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(frame.GetMethod().Name);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static void LogExit()      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Diagnostics.StackFrame frame = new System.Diagnostics.StackFrame(1);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(frame.GetMethod().Name);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/font&gt;&lt;/font&gt;   &lt;p&gt;Well, that's pretty cool, and solves one of the above problems (of writing your method name over and over), but aside from being an INCREDIBLY expensive call going into the stack frame, you're still stuck with making sure you don't leave your method early.&amp;#160; Sure, you can mitigate that with proper use of a try/finally block... but you're about to be bitten by something FAR worse: your compiler and your Jitter.&amp;#160; Guess what... they know better than you once in release mode.&amp;#160; They're going to do all sorts of crazy-smart stuff like sometimes optimizing out your method altogether.&amp;#160; This approach is going to work just fine in debug mode, but once you go release, you're going to find out that your little method is going to (without your control) optimize out your method depending on its complexity.&amp;#160; Now, your stack walk is going to be completely wrong and your logging is going to write out &amp;quot;Main&amp;quot; when you expected &amp;quot;MyMethod&amp;quot;.&lt;/p&gt;  &lt;p&gt;So, balancing out all the problems, what's a good approach?&amp;#160; Well, I have one.&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#800000" size="1"&gt;class Program     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MyMethod(Console.ReadLine());      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static void MyMethod(string value)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; using (Logger.Enter(&amp;quot;MyMethod&amp;quot;))      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.Write(Int32.Parse(value));      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch (Exception)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;That wasn't a number...&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}      &lt;br /&gt;public struct Logger : IDisposable      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; private string _methodName;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static Logger Enter(string methodName)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Logger logger = new Logger();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; logger._methodName = methodName;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;{0} enter&amp;quot;, logger._methodName);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return logger;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public void Dispose()      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;{0} exit&amp;quot;, this._methodName);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Wow...&amp;#160; So, now, when you enter your method, you just have one copy of your method name... good tradeoff.&amp;#160; And, no matter how you leave your method,&amp;#160; you're going to get your method enter/exit thanks to the IDisposable pattern + a using block.&lt;/p&gt;  &lt;p&gt;So... why a struct?&amp;#160; Well, let's say you're in a high-performance application and somebody really has a bug-up-their-butt about object instantiations on the heap... well, guess what... this gets allocated on the stack, and gets cleaned up when you leave this scope.&amp;#160; Oh!&amp;#160; But there's a hole in my logic!&amp;#160; When I cast to an IDisposable in at the end of the using block, it gets boxed and dropped on the heap!&amp;#160; Oh, but yay,&amp;#160; we have smart people over in the compiler...&amp;#160; This dude looked through the IL and I verified that what he put forth is true.&amp;#160; Straight-up callvirt on the Dispose function in the case of structs.&amp;#160; Brilliant.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://haacked.com/archive/2006/08/11/TheUsingStatementAndDisposableValueTypes.aspx" href="http://haacked.com/archive/2006/08/11/TheUsingStatementAndDisposableValueTypes.aspx"&gt;http://haacked.com/archive/2006/08/11/TheUsingStatementAndDisposableValueTypes.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So, here's the overall usage of this awesomeness, including inline tracing, for good measure:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#800000" size="1"&gt;class Program     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MyMethod(Console.ReadLine());      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static void MyMethod(string value)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; using (Logger logger = Logger.Enter(&amp;quot;MyMethod&amp;quot;))      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; logger.Trace(&amp;quot;Before parsing&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.Write(Int32.Parse(value));      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; logger.Trace(&amp;quot;Parsed successfully&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch (Exception)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;That wasn't a number...&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; logger.Trace(&amp;quot;Found a bad number&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}      &lt;br /&gt;public struct Logger : IDisposable      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; private string _methodName;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static Logger Enter(string methodName)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Logger logger = new Logger();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; logger._methodName = methodName;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;{0} enter&amp;quot;, logger._methodName);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return logger;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#800000" size="1"&gt;&amp;#160;&amp;#160;&amp;#160; public void Trace(string operation)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;{0} : {1}&amp;quot;, _methodName, operation);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public void Dispose()      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;{0} exit&amp;quot;, this._methodName);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;You can expand upon this amazingly simple, and low-impact method of doing effective logging and tracing of your methods where the only compromise is keeping track of your method name in one place, conveniently very close to the actual name of the method.&amp;#160; What you gain is one very effective logging and tracing technique.&amp;#160; What amazes me is that I've seen resistance to this method.&amp;#160; Sigh...&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-8028491456019588591?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/8028491456019588591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=8028491456019588591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8028491456019588591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/8028491456019588591'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/07/my-logging-technique-is-supreme.html' title='My logging technique is supreme'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-2300005350790031424</id><published>2008-07-07T22:30:00.001-07:00</published><updated>2008-07-09T21:59:36.943-07:00</updated><title type='text'>Regional Vindication</title><content type='html'>&lt;p&gt;Thank you, &lt;a href="http://www.codinghorror.com/blog/archives/001147.html"&gt;Jeff&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I've long been an opponent of the over-use of regions in code in Microsoft's IDE.&amp;#160; It serves a unique purpose of hiding undesirable code, but it also serves the cost of hiding undesirable code. &lt;/p&gt;  &lt;p&gt;So few developers know when to use this sort of uber-comment correctly.&amp;#160; I've always felt that comments, themselves, often serve as a cover for bad code.&amp;#160; I've actually seen regions used to separate out test functions by developer who implemented them.&amp;#160; I put a stop to that quickly in code review.&lt;/p&gt;  &lt;p&gt;Distracted... I saw a spider coming down from the ceiling in front of the TV (watching &lt;a href="http://www.imdb.com/title/tt0898266/"&gt;The Big Bang Theory&lt;/a&gt;) and I did something messed.&amp;#160; I grabbed him by the web up high, and carried him at arms-length to the toilet where I flushed him into his new sanitary sewer home. &lt;/p&gt;  &lt;p&gt;So, yes.&amp;#160; Regions.&amp;#160; From some unknown project in coding land.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/bmorien/SHWXN_OBdzI/AAAAAAAAAeA/ePFABsywCII/s1600-h/bad%20regions%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="204" alt="bad regions" src="http://lh5.ggpht.com/bmorien/SHWXOHJXNPI/AAAAAAAAAeE/SQzpjZusKN4/bad%20regions_thumb%5B3%5D.jpg?imgmax=800" width="449" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Seriously... how is that useful?&amp;#160; They even spent time counting the stars to line up properly in somebody's IDE.&lt;/p&gt;  &lt;p&gt;I'd love to see the line numbers on that file.&amp;#160; I'm guessing that the &amp;quot;Properties&amp;quot; section has half a dozen public properties, 3 public fields, and a couple private members.&amp;#160; Constructor has one vestigial empty constructor.&amp;#160; Methods has 19 private functions, and 2 newly-public ones.&amp;#160; 2 private variables are now public members.&lt;/p&gt;  &lt;p&gt;My semi-educated guess here is actually not that far off.&amp;#160; The details are not important, but it points to a maintenance nightmare... not to mention readability.&amp;#160; Look at that code and tell me what it does.&amp;#160; You have exactly the name of the class to go by.&amp;#160; No comment on the class.... Why not a quick grep of the method names for help?&lt;/p&gt;  &lt;p&gt;My modus operandi is to see a new code file and hit Ctrl-M,O.&amp;#160; This reduces the class down to its most basics:&amp;#160; the class name, its properties and the methods.&amp;#160; If all that doesn't fit on 2 pages of scrolling, your class is too big.&amp;#160; It does too much.&amp;#160; It's not one cohesive functional thingy.&amp;#160; If I can't describe it in an elevator pitch... or if it has, in the name something like &amp;quot;manager&amp;quot;, &amp;quot;utilities&amp;quot;, &amp;quot;common&amp;quot;, &amp;quot;tasks&amp;quot;...&amp;#160; it's doing too much.&amp;#160; Regions are a poor-man's organization.&lt;/p&gt;  &lt;p&gt;I believe, at this point, the languages facilitate a class definition that can be inferred from a glance.&amp;#160; Comments should compliment the code, not explain what should be clearly visible.&amp;#160; I'll get into, later, the use of comments externally, as well is within a function.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-2300005350790031424?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/2300005350790031424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=2300005350790031424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/2300005350790031424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/2300005350790031424'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/07/regional-vindication.html' title='Regional Vindication'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/bmorien/SHWXOHJXNPI/AAAAAAAAAeE/SQzpjZusKN4/s72-c/bad%20regions_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-7507479659510307159</id><published>2008-07-07T20:38:00.001-07:00</published><updated>2008-07-07T20:54:43.326-07:00</updated><title type='text'>Silverlight Streaming Service</title><content type='html'>I'm pretty proud of this. This is a great cross-team integration between some folks in another building and our team at Publisher. Not to toot my own horn, but I did quite a bit to make this work.&lt;br /&gt;&lt;br /&gt;Via &lt;a href="http://arstechnica.com/journals/microsoft.ars/2008/07/03/silverlight-streaming-ads-pilot-program-adding-more-testers"&gt;ars Technica&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;The program is the first time a Windows Live service that gives access to the Microsoft adCenter Publisher platform has been opened to developers. The selected participants will become adCenter Publisher account holders, as the account provisioning into the ads platform is done directly when they decide to enable ads in their SLS-based video playback options.&lt;br /&gt;&lt;br /&gt;US testers who fill out a W-9 form have the opportunity to make money from their videos with this pilot program. The video content uploaded to Silverlight Streaming plays back with contextual ads relevant to the playback experience, based on keywords provided.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;So, if you've got a blog, and have some movies you run, and you don't want to use YouTube (understandable given the latest &lt;a href="http://www.theregister.co.uk/2008/07/03/google_to_turn_over_youtube_database/"&gt;court decision&lt;/a&gt;), you have a great option, with a couple bucks coming your way.  Go ahead and sign up.  We made it &lt;em&gt;REAL&lt;/em&gt; easy, and you've got a great shot of getting in if you have a site that can pass the smell test.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-7507479659510307159?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/7507479659510307159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=7507479659510307159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/7507479659510307159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/7507479659510307159'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/07/silverlight-streaming-service.html' title='Silverlight Streaming Service'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-3873199516347004136</id><published>2008-07-07T20:26:00.000-07:00</published><updated>2008-07-09T00:49:06.358-07:00</updated><title type='text'>White Ninjas</title><content type='html'>This just proves, you even have to watch for the white ninjas.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-EvPvfVOUV8&amp;hl=en&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/-EvPvfVOUV8&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Of course, the original White Ninja:&lt;br /&gt;&lt;img src="http://i3.photobucket.com/albums/y83/emotionsickness05/trampoline.jpg" width="425" height="344" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-3873199516347004136?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/3873199516347004136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=3873199516347004136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/3873199516347004136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/3873199516347004136'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/07/white-ninjas.html' title='White Ninjas'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-4645796745822208171</id><published>2008-06-20T00:10:00.000-07:00</published><updated>2008-06-20T00:16:29.514-07:00</updated><title type='text'>Bob Log III</title><content type='html'>Ladies and gentlemen.  Tucson's own... Bob Log III&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/uu_BnyjjzgE&amp;hl=en"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/uu_BnyjjzgE&amp;hl=en" type="application/x-shockwave-flash" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Now, I've seen this guy live.  He's a real hoot.  &lt;a href="http://en.wikipedia.org/wiki/Bob_Log_III"&gt;Bob Log III&lt;/a&gt; is a Tucson favorite, playing straight, down-home slide guitar with his own percussion, a real treat to see.  Turns out he's a real nice guy off stage too, not afraid to say hi to a fan who recognizes him without his trademark helmet.&lt;br /&gt;&lt;br /&gt;He introduces himself:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Bob Log the third, one-man band, Tucson, Arizona. Heyeeeh! Lemme introduce the band to ya. On cymbals, left foot. Over here on the bass drum we got right foot. Shut up! This is my left hand that does all the slide work, right hand does the pickin'. My mouth hole does most o' the talkin'. And you're looking at my finger."&lt;/blockquote&gt; &lt;br /&gt;If you live in Tucson, or he's coming to your area, go on and see him live.  If not, do what you can to find some of his music or look up a video or two on &lt;a href="http://www.youtube.com/results?search_query=bob+log&amp;search_type=&amp;aq=f"&gt;teh youtube&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-4645796745822208171?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/4645796745822208171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=4645796745822208171' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/4645796745822208171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/4645796745822208171'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/06/bob-log-iii.html' title='Bob Log III'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-7196673775128148191</id><published>2008-06-01T18:53:00.000-07:00</published><updated>2008-06-02T18:27:45.299-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='breakfast cake'/><title type='text'>Breakfast Cake</title><content type='html'>&lt;p&gt;So, Gabe brings the idea to me to make &amp;quot;Breakfast Cake.&amp;quot;&amp;#160; He was inspired by breakfast casserole a few weeks ago, and intrigued by the concept of bringing more inappropriate things to breakfast time.&amp;#160; It's a good thing the Idea Man lives with the Implementer.&lt;/p&gt;  &lt;p&gt;This thing is chock-full of breakfast...&lt;a href="http://lh5.ggpht.com/bmorien/SENhl9lOHgI/AAAAAAAAATw/PSyYmUKFLqI/DSC03889%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03889" src="http://lh5.ggpht.com/bmorien/SENdh9lOHPI/AAAAAAAAAT4/SwzD3cQRv4w/DSC03889_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Started off with thawing some frozen Italian sausage&lt;a href="http://lh6.ggpht.com/bmorien/SENctNlOFQI/AAAAAAAAAT8/5Hn0Ic5ehFY/DSC03634%5B9%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03634" src="http://lh3.ggpht.com/bmorien/SENcudlOFRI/AAAAAAAAAUA/DbNaSiURn5Y/DSC03634_thumb%5B7%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Brown up that sausage a bit&lt;a href="http://lh4.ggpht.com/bmorien/SENcvtlOFSI/AAAAAAAAAUE/d6TzlLFXj_o/DSC03641%5B7%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03635" src="http://lh5.ggpht.com/bmorien/SENcv9lOFTI/AAAAAAAAAUI/yoPSlHddHf4/DSC03641_thumb%5B5%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; That looks plenty good&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03641" src="http://lh5.ggpht.com/bmorien/SENcw9lOFVI/AAAAAAAAAUU/if0R_LxXVi4/DSC03642_thumb%5B3%5D.jpg" width="424" border="0" /&gt; Chop up some red, yellow and orange peppers&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03638" src="http://lh6.ggpht.com/bmorien/SENcyNlOFXI/AAAAAAAAAUc/BLSNI1HGt6c/DSC03638_thumb%5B4%5D.jpg" width="424" border="0" /&gt; That's a colorful bunch &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03642" src="http://lh4.ggpht.com/bmorien/SENcxtlOFWI/AAAAAAAAAUY/TBOdJvvui04/DSC03646_thumb%5B3%5D.jpg" width="424" border="0" /&gt; Some awesome sharp white cheddar&lt;a href="http://lh6.ggpht.com/bmorien/SENczNlOFaI/AAAAAAAAAUo/2joHAFT-aeo/DSC03649%5B6%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03649" src="http://lh3.ggpht.com/bmorien/SENczdlOFbI/AAAAAAAAAUs/LMhAsOYbOCA/DSC03649_thumb%5B4%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Cheese is grated&lt;a href="http://lh4.ggpht.com/bmorien/SENcztlOFcI/AAAAAAAAAUw/bYSUR7BXD4c/DSC03652%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03652" src="http://lh5.ggpht.com/bmorien/SENcz9lOFdI/AAAAAAAAAU0/hvzOPkDpyiI/DSC03652_thumb%5B3%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; The missing ingredients... including cake pans.&amp;#160; Also, these are not my World of Warcraft cards.&lt;a&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03648" src="http://lh3.ggpht.com/bmorien/SENc0dlOFfI/AAAAAAAAAU8/N4ayFQVIE24/DSC03648_thumb%5B3%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Gabe is back with the groceries&lt;a href="http://lh4.ggpht.com/bmorien/SENc0tlOFgI/AAAAAAAAAVA/qrT-SPNDJnM/DSC03654%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03654" src="http://lh6.ggpht.com/bmorien/SENc1NlOFhI/AAAAAAAAAVE/MR3Sbm4RJ-w/DSC03654_thumb%5B3%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; 8 eggs, 2 cups of Bisquick, 2 cups of milk, whisked briskly&lt;a href="http://lh3.ggpht.com/bmorien/SENvzdlOHiI/AAAAAAAAAc4/esxMd_aci50/DSC03657%5B2%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03657" src="http://lh4.ggpht.com/bmorien/SENvztlOHjI/AAAAAAAAAdA/nCbC4f5t6hg/DSC03657_thumb.jpg" width="424" border="0" /&gt; &lt;/a&gt;Add peppers&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03663" src="http://lh5.ggpht.com/bmorien/SENc19lOFjI/AAAAAAAAAVM/qsoJc61YY7U/DSC03663_thumb%5B3%5D.jpg" width="424" border="0" /&gt; And onions&lt;a href="http://lh6.ggpht.com/bmorien/SENc2NlOFkI/AAAAAAAAAVQ/xa9L-FggKPc/DSC03664%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03664" src="http://lh4.ggpht.com/bmorien/SENc2tlOFlI/AAAAAAAAAVU/TYk0DIZMxf8/DSC03664_thumb%5B3%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; And Italian sausage&lt;a href="http://lh6.ggpht.com/bmorien/SENv0NlOHkI/AAAAAAAAAdI/0LClgvXM2FY/DSC03665%5B6%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03665" src="http://lh3.ggpht.com/bmorien/SENv0dlOHlI/AAAAAAAAAdQ/_w57WS3IH4A/DSC03665_thumb%5B2%5D.jpg" width="424" border="0" /&gt; &lt;/a&gt;Stir it all together... but this doesn't seem done yet...&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03667" src="http://lh5.ggpht.com/bmorien/SENc39lOFpI/AAAAAAAAAVk/DJiZQZ66rN8/DSC03667_thumb%5B3%5D.jpg" width="424" border="0" /&gt; Ah, bacon.&amp;#160; Now we're on the right track.&lt;a href="http://lh3.ggpht.com/bmorien/SENc4dlOFqI/AAAAAAAAAVo/uJH6avZWdrk/DSC03673%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03673" src="http://lh5.ggpht.com/bmorien/SENc49lOFrI/AAAAAAAAAVs/bxeWrPc7YQ0/DSC03673_thumb%5B3%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Let's just stir that in&lt;a href="http://lh6.ggpht.com/bmorien/SENc5NlOFsI/AAAAAAAAAVw/2rvZJDLZZcQ/DSC03676%5B8%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03676" src="http://lh3.ggpht.com/bmorien/SENc5dlOFtI/AAAAAAAAAV0/2bJRvqxvRhY/DSC03676_thumb%5B6%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Don't forget that cheese. Add about a handful or two&lt;a&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03678" src="http://lh5.ggpht.com/bmorien/SENc59lOFvI/AAAAAAAAAV8/MLGqkkijkh0/DSC03678_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Tough as it may be, stir away.&lt;a href="http://lh6.ggpht.com/bmorien/SENc6NlOFwI/AAAAAAAAAWA/ENP8qH9EF6Y/DSC03681%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03681" src="http://lh4.ggpht.com/bmorien/SENc6tlOFxI/AAAAAAAAAWE/lFQf6cN-Fog/DSC03681_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; This is about where the doubts start creeping in.&lt;a href="http://lh5.ggpht.com/bmorien/SENc69lOFyI/AAAAAAAAAWI/I7y3sSDTUMc/DSC03683%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03683" src="http://lh6.ggpht.com/bmorien/SENc7NlOFzI/AAAAAAAAAWM/_C3UilkoOcA/DSC03683_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Add some spices (garlic, cumin, oregano, white pepper, paprika, red pepper, kosher salt)&lt;a href="http://lh3.ggpht.com/bmorien/SENc7dlOF0I/AAAAAAAAAWQ/PS8zr5FLkjw/DSC03688%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03688" src="http://lh4.ggpht.com/bmorien/SENc8tlOF1I/AAAAAAAAAWU/UsGNY3Di7ps/DSC03688_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Whisk whisk whisk!&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03690" src="http://lh4.ggpht.com/bmorien/SENc9tlOF3I/AAAAAAAAAWc/c0PlpWuu0NQ/DSC03690_thumb%5B2%5D.jpg" width="424" border="0" /&gt; Mmmmmm, that's a beautiful bowl of vomit.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/bmorien/SENc99lOF4I/AAAAAAAAAWg/W4vmlTdDuAo/DSC03696%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03696" src="http://lh6.ggpht.com/bmorien/SENc-NlOF5I/AAAAAAAAAWk/3YCOOpMeSKs/DSC03696_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; The kitten is uninterested.&lt;a&gt;&lt;a&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03700" src="http://lh6.ggpht.com/bmorien/SENc_NlOF8I/AAAAAAAAAWw/afDHjsm2tps/DSC03700_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt;&lt;/a&gt; Pam up some of those brand new cake pans&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03698" src="http://lh3.ggpht.com/bmorien/SENc_dlOF9I/AAAAAAAAAW0/hGiRc5wa3iE/DSC03698_thumb%5B2%5D.jpg" width="424" border="0" /&gt; Scoop the vomitous blobs into the cake pans&lt;a href="http://lh5.ggpht.com/bmorien/SENc_9lOF-I/AAAAAAAAAW4/VCbJA0q0EL0/DSC03706%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03706" src="http://lh3.ggpht.com/bmorien/SENdAdlOF_I/AAAAAAAAAW8/dLJFPEgLAIQ/DSC03706_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Yeah.&amp;#160; Plan on eating that later.&lt;a href="http://lh5.ggpht.com/bmorien/SENdA9lOGAI/AAAAAAAAAXA/5Qvovw3Hp50/DSC03718%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03718" src="http://lh6.ggpht.com/bmorien/SENdBNlOGBI/AAAAAAAAAXE/iLxqqhMEmh4/DSC03718_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Cover in tin foil, throw in the oven at 375 for, like, an hour.&lt;a href="http://lh3.ggpht.com/bmorien/SENdBdlOGCI/AAAAAAAAAXI/hj2idKenQyg/DSC03720%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03720" src="http://lh5.ggpht.com/bmorien/SENdB9lOGDI/AAAAAAAAAXM/CIoIynsrzjo/DSC03720_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; May as well go mow the lawn&lt;a href="http://lh3.ggpht.com/bmorien/SENdCdlOGEI/AAAAAAAAAXQ/RTN041ailZ4/DSC03722%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03722" src="http://lh5.ggpht.com/bmorien/SENdC9lOGFI/AAAAAAAAAXU/aABwH-81WJ4/DSC03722_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Cakes are getting close, time to start getting going again.&lt;a href="http://lh6.ggpht.com/bmorien/SENdDNlOGGI/AAAAAAAAAXY/bnrr03oAeow/DSC03729%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03729" src="http://lh4.ggpht.com/bmorien/SENdDtlOGHI/AAAAAAAAAXc/aetSrk-o-qU/DSC03729_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Time to cook up that country gravy.&amp;#160; Yeah, it's packets, but we're not puritans around here.&amp;#160; Instead of 2 packets and 4 cups of water, we used 2 packets, 1 cup of water, 2 cups of milk and an egg... for some reason. &lt;a href="http://lh5.ggpht.com/bmorien/SENdD9lOGII/AAAAAAAAAXg/TijqTWr-FI4/DSC03730%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03730" src="http://lh6.ggpht.com/bmorien/SENdENlOGJI/AAAAAAAAAXk/Gfyuw-1TXZo/DSC03730_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Breakfast wouldn't be breakfast without beer and coffee &lt;a href="http://lh3.ggpht.com/bmorien/SENdEdlOGKI/AAAAAAAAAXo/SLkiVS7ZMiA/DSC03738%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03738" src="http://lh5.ggpht.com/bmorien/SENdE9lOGLI/AAAAAAAAAXs/M8P6Kr6lFTY/DSC03738_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; This is looking good.&amp;#160; The toothpick comes out clean.&lt;a href="http://lh6.ggpht.com/bmorien/SENdFNlOGMI/AAAAAAAAAXw/8x_kjiRXcS0/DSC03741%5B6%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03741" src="http://lh3.ggpht.com/bmorien/SENdFdlOGNI/AAAAAAAAAX0/RGbqZY1AA9E/DSC03741_thumb%5B4%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; No cooling rack, but we have super cheepo pans &lt;a href="http://lh4.ggpht.com/bmorien/SENdFtlOGOI/AAAAAAAAAX4/G6pWyzigbIs/DSC03743%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03743" src="http://lh6.ggpht.com/bmorien/SENdGNlOGPI/AAAAAAAAAX8/K_imyjct--M/DSC03743_thumb%5B3%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; OMG OMG OMG!&amp;#160; This is about the point where we realized that this may actually be possible.  You're basically looking at a stiff enough quiche to support another layer.&lt;a href="http://lh3.ggpht.com/bmorien/SENdGdlOGQI/AAAAAAAAAYA/OUI7LrTKMVc/DSC03744%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03744" src="http://lh4.ggpht.com/bmorien/SENdGtlOGRI/AAAAAAAAAYE/0DC13JVaePc/DSC03744_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Touch.&amp;#160; Sproing.&lt;a href="http://lh5.ggpht.com/bmorien/SENdG9lOGSI/AAAAAAAAAYI/EA7WqKtfBZs/DSC03745%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03745" src="http://lh4.ggpht.com/bmorien/SENdHtlOGTI/AAAAAAAAAYM/6Jgi0onWwlU/DSC03745_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; More bacon, fried up in the microwave, chopped and mixed with some onions to saut&amp;#233;.&lt;a href="http://lh5.ggpht.com/bmorien/SENdH9lOGUI/AAAAAAAAAYQ/x9bOVAKodWY/DSC03755%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03755" src="http://lh6.ggpht.com/bmorien/SENdINlOGVI/AAAAAAAAAYU/lnBm0AZuax0/DSC03755_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; The other, thicker cake half came out just as beautiful as the first.&amp;#160; Time to begin the 'icing' process.&amp;#160; The country gravy thickened up awful nicely. &lt;a href="http://lh3.ggpht.com/bmorien/SENdIdlOGWI/AAAAAAAAAYY/i6GE8Aw3UnQ/DSC03758%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03758" src="http://lh5.ggpht.com/bmorien/SENdI9lOGXI/AAAAAAAAAYc/Dj4L1_ttLgs/DSC03758_thumb%5B3%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; The bottom half is covered with a nice healthy layer of country gravy.&lt;a href="http://lh6.ggpht.com/bmorien/SENdJNlOGYI/AAAAAAAAAYg/LRSL7C2Utwc/DSC03763%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03763" src="http://lh3.ggpht.com/bmorien/SENdJdlOGZI/AAAAAAAAAYk/d8sHv8K5cdE/DSC03763_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Time to add a layer of Italian sausage.&lt;a href="http://lh6.ggpht.com/bmorien/SENdKNlOGaI/AAAAAAAAAYo/-O_fQAMDBkE/DSC03764%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03764" src="http://lh3.ggpht.com/bmorien/SENdKdlOGbI/AAAAAAAAAYs/XKeibF-8nZE/DSC03764_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Beautiful.&lt;a href="http://lh4.ggpht.com/bmorien/SENdKtlOGcI/AAAAAAAAAYw/aC7Jrhs0d_w/DSC03769%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03769" src="http://lh3.ggpht.com/bmorien/SENdLdlOGdI/AAAAAAAAAY0/_xCKJmMG6U8/DSC03769_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Here's that bacon and onions.&amp;#160; We'll throw that into the middle layer.&lt;a href="http://lh4.ggpht.com/bmorien/SENdLtlOGeI/AAAAAAAAAY4/rkfj7s8hXNk/DSC03770%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03770" src="http://lh5.ggpht.com/bmorien/SENdL9lOGfI/AAAAAAAAAY8/8ucHckKEjNA/DSC03770_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Oh, don't forget the cheese&lt;a href="http://lh4.ggpht.com/bmorien/SENdNtlOGgI/AAAAAAAAAZA/xUBcZiiBATc/DSC03779%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03779" src="http://lh3.ggpht.com/bmorien/SENdOdlOGhI/AAAAAAAAAZE/hyIWAFSrBS0/DSC03779_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Just want to bake this up for about 5 minutes to melt the cheese and get things gellin' a little&lt;a href="http://lh5.ggpht.com/bmorien/SENdO9lOGiI/AAAAAAAAAZI/YQmnblh5-Hk/DSC03783%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03783" src="http://lh6.ggpht.com/bmorien/SENdPNlOGjI/AAAAAAAAAZM/LPaITrA4OLA/DSC03783_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; It looks good!&amp;#160; Transfer it to its final serving place&lt;a href="http://lh3.ggpht.com/bmorien/SENdPdlOGkI/AAAAAAAAAZQ/j7yzZYMxei8/DSC03788%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03788" src="http://lh6.ggpht.com/bmorien/SENdQNlOGlI/AAAAAAAAAZU/SSJgkdH1rtU/DSC03788_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Take the top half, flip it and cover with another layer of 'icing'&lt;a href="http://lh3.ggpht.com/bmorien/SENdQdlOGmI/AAAAAAAAAZY/UIgbgms_hvU/DSC03794%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03794" src="http://lh6.ggpht.com/bmorien/SENdRNlOGnI/AAAAAAAAAZc/UITOS8gmql8/DSC03794_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Sammich the whole works together&lt;a href="http://lh5.ggpht.com/bmorien/SENdR9lOGoI/AAAAAAAAAZg/D5LfIVsmFlQ/DSC03796%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03796" src="http://lh6.ggpht.com/bmorien/SENdSNlOGpI/AAAAAAAAAZk/t538-bSBHL4/DSC03796_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Mmmm, cake burger&lt;a href="http://lh4.ggpht.com/bmorien/SENdStlOGqI/AAAAAAAAAZo/shndxP-2-Vo/DSC03798%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03798" src="http://lh6.ggpht.com/bmorien/SENdTNlOGrI/AAAAAAAAAZs/9c2PsOMSW3Q/DSC03798_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; The icing process begins&lt;a href="http://lh4.ggpht.com/bmorien/SENdTtlOGsI/AAAAAAAAAZw/AVUvH949au0/DSC03804%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03804" src="http://lh6.ggpht.com/bmorien/SENdUNlOGtI/AAAAAAAAAZ0/b7DPT0pALko/DSC03804_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; More icing&lt;a href="http://lh3.ggpht.com/bmorien/SENdUdlOGuI/AAAAAAAAAZ4/cesNwfn6AwE/DSC03808%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03808" src="http://lh4.ggpht.com/bmorien/SENdUtlOGvI/AAAAAAAAAZ8/DpcD8F2Q-qE/DSC03808_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Doesn't that look great?&lt;a href="http://lh3.ggpht.com/bmorien/SENdVdlOGwI/AAAAAAAAAaA/U-tWKoECU3g/DSC03817%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03817" src="http://lh5.ggpht.com/bmorien/SENdV9lOGxI/AAAAAAAAAaE/oSQZMO0Dn6E/DSC03817_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; The cat, still, could not care less&lt;a href="http://lh3.ggpht.com/bmorien/SENdWdlOGyI/AAAAAAAAAaI/melihxNnmwI/DSC03827%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03827" src="http://lh4.ggpht.com/bmorien/SENdWtlOGzI/AAAAAAAAAaM/tCqFAOJ83wc/DSC03827_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Let's seal that last little bit up&lt;a href="http://lh5.ggpht.com/bmorien/SENdW9lOG0I/AAAAAAAAAaQ/xHi41HzB2As/DSC03839%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03839" src="http://lh5.ggpht.com/bmorien/SENdW9lOG1I/AAAAAAAAAaU/Wok4jnRxnOY/DSC03839_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Now Kayla comes along to work the decoration tip.&amp;#160; Plastic baggie, filled with remaining gravy, with a corner cut out.&lt;a href="http://lh3.ggpht.com/bmorien/SENdXdlOG2I/AAAAAAAAAaY/nPTByP4dLdg/DSC03844%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03844" src="http://lh4.ggpht.com/bmorien/SENdXtlOG3I/AAAAAAAAAac/2M_0yiM5_b0/DSC03844_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Squirt squirt&lt;a href="http://lh5.ggpht.com/bmorien/SENdX9lOG4I/AAAAAAAAAag/G3dbGEKMq40/DSC03846%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03846" src="http://lh6.ggpht.com/bmorien/SENdYNlOG5I/AAAAAAAAAak/MlmRzdwZDx4/DSC03846_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Pretty pretty&lt;a href="http://lh4.ggpht.com/bmorien/SENdYtlOG6I/AAAAAAAAAao/cnl25cCCp2c/DSC03848%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03848" src="http://lh5.ggpht.com/bmorien/SENdZ9lOG7I/AAAAAAAAAas/NZUIHiLAxCQ/DSC03848_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Took the remaining peppers and softened them up a bit over low heat for decoration&lt;a href="http://lh3.ggpht.com/bmorien/SENdadlOG8I/AAAAAAAAAaw/LaPBneORnmc/DSC03849%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03849" src="http://lh3.ggpht.com/bmorien/SENdbdlOG9I/AAAAAAAAAa0/ge3tTPERBt4/DSC03849_thumb%5B3%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Oh my god that's a cake&lt;a href="http://lh6.ggpht.com/bmorien/SENdcNlOG-I/AAAAAAAAAa4/au5FuxOrj-8/DSC03852%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03852" src="http://lh3.ggpht.com/bmorien/SENdcdlOG_I/AAAAAAAAAa8/OaTfVIcaQtE/DSC03852_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Well, we have remaining sausage.&amp;#160; At this point, we're just playing with our food&lt;a href="http://lh4.ggpht.com/bmorien/SENdctlOHAI/AAAAAAAAAbA/0_ckshCJmpk/DSC03854%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03854" src="http://lh5.ggpht.com/bmorien/SENdc9lOHBI/AAAAAAAAAbE/ZXjstVUDWG0/DSC03854_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Decorating crew&lt;a href="http://lh6.ggpht.com/bmorien/SENddNlOHCI/AAAAAAAAAbI/6xfKQRxBQpY/DSC03861%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03861" src="http://lh3.ggpht.com/bmorien/SENdddlOHDI/AAAAAAAAAbM/Dnb0xAY07bc/DSC03861_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Holy hell&lt;a href="http://lh6.ggpht.com/bmorien/SENdeNlOHEI/AAAAAAAAAbQ/CaavsGKjy4k/DSC03870%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03870" src="http://lh4.ggpht.com/bmorien/SENdetlOHFI/AAAAAAAAAbU/rABSeMD0Z2I/DSC03870_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Is so pretty.&amp;#160; And packed full of delicious.&lt;a href="http://lh5.ggpht.com/bmorien/SENde9lOHGI/AAAAAAAAAbY/M5s5th3RVEQ/DSC03879%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03879" src="http://lh6.ggpht.com/bmorien/SENdfNlOHHI/AAAAAAAAAbc/wOVgQqT1fY4/DSC03879_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Adding the peppers and bacon for a little color.&amp;#160; Top it off with some Red Hot for color, and we're golden&lt;a href="http://lh3.ggpht.com/bmorien/SENdfdlOHII/AAAAAAAAAbg/14dryycQ1ws/DSC03881%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03881" src="http://lh4.ggpht.com/bmorien/SENdftlOHJI/AAAAAAAAAbk/oNtQX2YC_so/DSC03881_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Enjoy it while you still have arteries, you fools&lt;a href="http://lh6.ggpht.com/bmorien/SENdgNlOHKI/AAAAAAAAAbo/Pr9oXkmzvog/DSC03885%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03885" src="http://lh3.ggpht.com/bmorien/SENdgdlOHLI/AAAAAAAAAbs/UNosVnPUKzo/DSC03885_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Winnar.&lt;a href="http://lh4.ggpht.com/bmorien/SENdgtlOHMI/AAAAAAAAAbw/RTtP5HtMUmQ/DSC03887%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03887" src="http://lh5.ggpht.com/bmorien/SENdg9lOHNI/AAAAAAAAAb0/AvtAECSYzjw/DSC03887_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Time to cut it.&amp;#160; Is this actually going to work?&lt;a href="http://lh5.ggpht.com/bmorien/SENhl9lOHgI/AAAAAAAAATw/PSyYmUKFLqI/DSC03889%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03889" src="http://lh5.ggpht.com/bmorien/SENdh9lOHPI/AAAAAAAAAT4/SwzD3cQRv4w/DSC03889_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; That is a damned cake.&lt;a href="http://lh6.ggpht.com/bmorien/SENdiNlOHQI/AAAAAAAAAb4/s5qClZKEaEw/DSC03892%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03892" src="http://lh3.ggpht.com/bmorien/SENdidlOHRI/AAAAAAAAAb8/-f7tIgdr19E/DSC03892_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Dish up!&amp;#160; It's only 6:30PM and we're already having breakfast!&lt;a href="http://lh4.ggpht.com/bmorien/SENditlOHSI/AAAAAAAAAcA/aFs5TswhxF0/DSC03896%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03896" src="http://lh6.ggpht.com/bmorien/SENdjNlOHTI/AAAAAAAAAcE/icJ-sbbUUn0/DSC03896_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; This looks surprisingly like a cake.&lt;a href="http://lh3.ggpht.com/bmorien/SENdjdlOHUI/AAAAAAAAAcI/vEFGu1RtCQs/DSC03898%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03898" src="http://lh4.ggpht.com/bmorien/SENdjtlOHVI/AAAAAAAAAcM/sJQpsgA4m-E/DSC03898_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; No baking and bacon experience would be complete without Michael.&amp;#160; So we had him drive up from Issaquah to join us&lt;a href="http://lh5.ggpht.com/bmorien/SENdj9lOHWI/AAAAAAAAAcQ/MHYml3ByjNU/DSC03901%5B4%5D.jpg"&gt;.&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03901" src="http://lh6.ggpht.com/bmorien/SENdkNlOHXI/AAAAAAAAAcU/zyaOy8Nuu68/DSC03901_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; I am literally filled with joy in cake form&lt;a href="http://lh3.ggpht.com/bmorien/SENdkdlOHYI/AAAAAAAAAcY/eOrrQYh8oPg/DSC03902%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03902" src="http://lh5.ggpht.com/bmorien/SENdk9lOHZI/AAAAAAAAAcc/ar9N-DMa1dM/DSC03902_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Apprehensive girl is apprehensive.&lt;a href="http://lh5.ggpht.com/bmorien/SENdk9lOHaI/AAAAAAAAAcg/yEVl102EB2M/DSC03903%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03903" src="http://lh3.ggpht.com/bmorien/SENdldlOHbI/AAAAAAAAAck/oCu1fuPC_aI/DSC03903_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; Gabe is less apprehensive.&lt;a href="http://lh4.ggpht.com/bmorien/SENdltlOHcI/AAAAAAAAAco/5HFSJsR3Fmo/DSC03907%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03907" src="http://lh5.ggpht.com/bmorien/SENdl9lOHdI/AAAAAAAAAcs/zMzHtniyAZo/DSC03907_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; The remainder so far.&lt;a href="http://lh6.ggpht.com/bmorien/SENdmNlOHeI/AAAAAAAAAcw/3Ku51Irxx98/DSC03908%5B4%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="DSC03908" src="http://lh3.ggpht.com/bmorien/SENdmdlOHfI/AAAAAAAAAc0/atQ2lCEKaPE/DSC03908_thumb%5B2%5D.jpg" width="424" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It was delicious.&amp;#160; It was so so delicious.&amp;#160; This was a day I feel I can be proud of forever.&amp;#160; I can die knowing I've accomplished something great in this world.&amp;#160; I'm assuming it'll be tonight when my heart realizes the futility of trying to keep up with my taste buds.&lt;/p&gt;&lt;br /&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-7196673775128148191?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/7196673775128148191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=7196673775128148191' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/7196673775128148191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/7196673775128148191'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/06/breakfast-cake.html' title='Breakfast Cake'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/bmorien/SENdh9lOHPI/AAAAAAAAAT4/SwzD3cQRv4w/s72-c/DSC03889_thumb%5B2%5D.jpg' height='72' width='72'/><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-5163076651778408858</id><published>2008-05-21T21:19:00.000-07:00</published><updated>2008-05-21T21:20:20.422-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gun fight wang'/><title type='text'>Gun fight</title><content type='html'>Probably the best wang-based gunfight ever filmed.&lt;br /&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FWXA8xvaYy4&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/FWXA8xvaYy4&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-5163076651778408858?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/5163076651778408858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=5163076651778408858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/5163076651778408858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/5163076651778408858'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/05/gun-fight.html' title='Gun fight'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-5733974063319964567</id><published>2008-05-09T22:46:00.000-07:00</published><updated>2008-06-01T21:33:36.588-07:00</updated><title type='text'>Ads By Microsoft</title><content type='html'>So, you may notice this cool thing on the right side of the page... Ads By Microsoft.  Well, this is the cool thing I've been working on for the last year and a half.&lt;br /&gt;&lt;br /&gt;Edit:  Pulling the remainder of the article due to 'concerns.' ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-5733974063319964567?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/5733974063319964567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=5733974063319964567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/5733974063319964567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/5733974063319964567'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/05/ads-by-microsoft.html' title='Ads By Microsoft'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-1657259248291102538</id><published>2008-05-08T01:10:00.000-07:00</published><updated>2008-05-08T01:26:17.901-07:00</updated><title type='text'>Plinko</title><content type='html'>Ok. This is a litmus test.&lt;br /&gt;Your roommate turns on the TV and announces, "Plinko!"&lt;br /&gt;What do you do?&lt;br /&gt;&lt;br /&gt;The correct response, as beautifully expressed by &lt;a href="http://shashingallery.blogspot.com/"&gt;Kent&lt;/a&gt;:&lt;br /&gt;"ohh, I fuckin' run and hop the couch"&lt;br /&gt;&lt;br /&gt;I'm finding some of my best friends don't feel the same way. I'm really questioning their childhood. Were they ever home sick and watching TV? Did they ever wake up before 11AM during the summer? How is Plinko not one of the most exciting moments of their childhood?!?&lt;br /&gt;&lt;br /&gt;It's the one guilt-free game on The Price is Right. It's the one game you can lose and not go, "man, I should have guessed 3, not 4!!!" It's an exercise in absolute luck, tempered by a basic understanding of binary trees and bell curves.&lt;br /&gt;&lt;br /&gt;Tell me this isn't exciting&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vuMir11YFPs&amp;hl=en"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/vuMir11YFPs&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-1657259248291102538?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/1657259248291102538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=1657259248291102538' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/1657259248291102538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/1657259248291102538'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/05/plinko.html' title='Plinko'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-3560724261560267541</id><published>2008-04-25T00:21:00.001-07:00</published><updated>2008-04-25T00:21:14.547-07:00</updated><title type='text'>Compact Parking Spots</title><content type='html'>&lt;p&gt;Something new I've discovered in moving to the Seattle area.&amp;#160; The &amp;quot;Compact&amp;quot; parking spot.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/bmorien/SBGGaZfg3II/AAAAAAAAABU/OR-ZcOxqvIs/s1600-h/compact%5B3%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="338" alt="compact" src="http://lh4.ggpht.com/bmorien/SBGGapfg3JI/AAAAAAAAABg/c_tMxv84314/compact_thumb%5B1%5D.jpg?imgmax=800" width="442" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I've never lived anywhere before with this artifact of public do-goodery meets business's need for more parking.&amp;#160; In Minnesota, where I worked in surveying for a couple years, parking spots had to be a certain width, no matter what.&amp;#160; There was no exception based on whether you spray-painted down some letters.&lt;/p&gt;  &lt;p&gt;The insidious part is that so many places (including my work) have something like 50% of the spots marked as &amp;quot;compact&amp;quot;, while the clientele (or employees) don't come anywhere near that demographic.&amp;#160; So, what do you do?&amp;#160; Obey the markings?&amp;#160; Butt your door up against your neighbor and hope for the best?&amp;#160; Just take the door dings as part of the job?&amp;#160; Sell your already-paid-for-car and buy a &amp;quot;compact&amp;quot; car?&amp;#160; Or, be like the hero above and reserve the space necessary for your vehicle?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-3560724261560267541?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/3560724261560267541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=3560724261560267541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/3560724261560267541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/3560724261560267541'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/04/compact-parking-spots.html' title='Compact Parking Spots'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/bmorien/SBGGapfg3JI/AAAAAAAAABg/c_tMxv84314/s72-c/compact_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-5614779035584628752</id><published>2008-03-17T23:01:00.001-07:00</published><updated>2008-03-17T23:02:06.593-07:00</updated><title type='text'>My favorite youtube</title><content type='html'>This is my favorite video on the entirety of teh internets&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/VVXtawJXcbg&amp;hl=en"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/VVXtawJXcbg&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-5614779035584628752?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/5614779035584628752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=5614779035584628752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/5614779035584628752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/5614779035584628752'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/03/my-favorite-youtube.html' title='My favorite youtube'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-6796438480651013685</id><published>2008-03-17T22:54:00.000-07:00</published><updated>2008-03-17T22:56:49.423-07:00</updated><title type='text'>Where da gold at?</title><content type='html'>Absolutely stolen (hat tip &lt;a href="http://hotair.com/archives/2008/03/17/video-the-internets-greatest-viral-news-clip/"&gt;Hotair&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/nda_OSWeyn8&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/nda_OSWeyn8&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The remix:&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bZfyrIPw3wY&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/bZfyrIPw3wY&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-6796438480651013685?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/6796438480651013685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=6796438480651013685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/6796438480651013685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/6796438480651013685'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/03/where-da-gold-at.html' title='Where da gold at?'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-2239913708146854654</id><published>2008-03-12T00:33:00.000-07:00</published><updated>2008-03-12T00:41:31.324-07:00</updated><title type='text'></title><content type='html'>&lt;embed src="http://eplayer.clipsyndicate.com/cs_api/get_swf?swfHome=eplayer.clipsyndicate.com&amp;amp;va_id=540574&amp;amp;wpid=1904" width="320" height="260" allowfullscreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;Don't do that.&lt;br /&gt;&lt;br /&gt;I counted exactly 2 black people in that video: 1 very unenthusiastic in the far background, and one making up for him and the rest of the black community. And they did a rap…&lt;br /&gt;&lt;br /&gt;This was a moment a skilled campaign would have avoided. It puts the “silly hat rule” moment well into perspective.&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.cbs.com/thunder/swf/rcpHolderCbs-prod.swf" width="370" height="361" allowFullScreen="true" FlashVars="link=http://www.cbsnews.com/sections/i_video/main500251.shtml?id=3631772n&amp;releaseURL=http://release.theplatform.com/content.select?pid=KknNFqZY6XxRHwMCCSh0gy45JSCHpjYg&amp;partner=cbsnews&amp;autoPlayVid=false&amp;prevImg=http://wwwimage.cbsnews.com/CBS_Production_News/584/205/thompson_firehat_320x240.jpg" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" &gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-2239913708146854654?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/2239913708146854654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=2239913708146854654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/2239913708146854654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/2239913708146854654'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/03/dont-do-that.html' title=''/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-5752490413218060962</id><published>2008-03-06T18:16:00.000-08:00</published><updated>2008-03-06T18:18:25.312-08:00</updated><title type='text'>Veronica Maggio</title><content type='html'>Kent just sent along a link to this video. I love the vibe.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/kEC8SrorF94"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/kEC8SrorF94" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-5752490413218060962?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/5752490413218060962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=5752490413218060962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/5752490413218060962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/5752490413218060962'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/03/veronica-maggio.html' title='Veronica Maggio'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9151524213677958740.post-3410727731014228917</id><published>2008-01-31T11:11:00.001-08:00</published><updated>2008-01-31T11:12:33.990-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prist Fost'/><title type='text'>Pirst Fost!</title><content type='html'>Yeah. I've made a blog. Look at me blogging.&lt;br /&gt;&lt;br /&gt;Oh, man, I hope this doesn't make me a blogger. It doesn't count if you do it just one time, right? You know... out of curiousity?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9151524213677958740-3410727731014228917?l=veripolis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://veripolis.blogspot.com/feeds/3410727731014228917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9151524213677958740&amp;postID=3410727731014228917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/3410727731014228917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9151524213677958740/posts/default/3410727731014228917'/><link rel='alternate' type='text/html' href='http://veripolis.blogspot.com/2008/01/pirst-fost.html' title='Pirst Fost!'/><author><name>askheaves</name><uri>http://www.blogger.com/profile/08761977986841399888</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
