<?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'><id>tag:blogger.com,1999:blog-19603289</id><updated>2009-10-29T18:34:44.816-04:00</updated><title type='text'>the Alpha John</title><subtitle type='html'>Two wrongs don't make a right, but three rights do make a left.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default?start-index=26&amp;max-results=25'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>763</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-19603289.post-2613152359315386998</id><published>2009-03-24T17:51:00.000-04:00</published><updated>2009-03-24T17:52:06.162-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beta testing'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Twatter</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LUEPz2x8WTE/SclV2Vn3oCI/AAAAAAAABPc/ErjPZ8uSMNo/s1600-h/Picture+2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 342px;" src="http://4.bp.blogspot.com/_LUEPz2x8WTE/SclV2Vn3oCI/AAAAAAAABPc/ErjPZ8uSMNo/s400/Picture+2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5316875227093245986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;@twitter =p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-2613152359315386998?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/2613152359315386998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=2613152359315386998&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/2613152359315386998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/2613152359315386998'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2009/03/twatter.html' title='Twatter'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LUEPz2x8WTE/SclV2Vn3oCI/AAAAAAAABPc/ErjPZ8uSMNo/s72-c/Picture+2.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-6412822303581195848</id><published>2009-01-26T17:08:00.006-05:00</published><updated>2009-01-26T18:50:46.425-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technobabble'/><category scheme='http://www.blogger.com/atom/ns#' term='beta testing'/><title type='text'>I Made the Amazon EC2 Cloud Rain</title><content type='html'>Sometimes, elastic ain't so elastic.&lt;br /&gt;&lt;br /&gt;I got (2) $50 AMEX Gift Cards for my Birthday, which are like feces that can only be exchanged for exactly ${FECES} worth of merchandise (not one dollar more!). &lt;br /&gt;&lt;br /&gt;Sure enough, I decide to buy a couple games for my PS3, because it's lonely and nothing I want costs ~$50.00. &lt;br /&gt;&lt;br /&gt;I have a credit on my Amazon account for $119.45 (two Christmas returns and three gift certs). After carefully reading Amazon's &lt;a href="http://www.amazon.com/gp/help/customer/display.html?ie=UTF8&amp;nodeId=518224&amp;#cards"&gt;allowable methods of payment&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Which cards can you use on Amazon.com? We accept the following cards as payment for your orders:&lt;br /&gt;&lt;br /&gt;    * Visa (including the Amazon.com Visa Card)&lt;br /&gt;    * MasterCard/EuroCard&lt;br /&gt;    * Discover Network&lt;br /&gt;    * American Express&lt;br /&gt;    * Diner's Club (U.S. billing addresses only)&lt;br /&gt;    * JCB&lt;br /&gt;    * Visa or MasterCard check cards or ATM cards&lt;br /&gt;    * Visa, MasterCard, or American Express gift cards&lt;br /&gt;    * Amazon Credit Account &lt;br /&gt;&lt;br /&gt;You can use debit, check, and gift cards issued by the companies above in addition to their standard credit cards. For example, if you're paying with a Visa Check Card please select Visa from the drop-down menu on the order form when indicating the card type. Similarly, if you're paying with a EuroCard or MasterMoney Card, select MasterCard.&lt;br /&gt;&lt;br /&gt;If you are using a Visa, MasterCard, or American Express gift card, please note the following restrictions:&lt;br /&gt;&lt;br /&gt;    * Pre-paid gift cards can't be combined with credit cards on a single order.&lt;br /&gt;    * Pre-paid gift cards can't be used to sign up for Amazon Prime membership.&lt;br /&gt;    * Amex Gift Cards can't be used to purchase Amazon.com gift cards.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;It says I can use an AMEX Gift Card (PayPal says no, but they lie), it says I cannot tender a second credit card with a pre-paid gift card, and I cannot use an AMEX Gift card to buy an Amazon.com gift card.&lt;br /&gt;&lt;br /&gt;Knowing the rules, I try to buy a $59.99 game with a $50.00 gift card, assuming the $9.99 can come off the $119.45 Amazon owes me (!). Sure enough, it tries to put the whole amount on the card and closes out the transaction. Five minutes later, I get the "Your Order Has Blown Up" email. I try to explain to Customer Service three times by email (with my good friends Pranvi, Rhett, and Ooshmani) that I read and followed the rules and the payment system exploded. Frustrated, I used the "Call Me now" option, and Caucasian Brian from Seattle called me back.&lt;br /&gt;&lt;br /&gt;Over the next 28 minutes, I discovered:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There is a bug in the system that Amazon's Customer Service Folk used, that does not show them the proper gift card balance (my $119.45 showed as $0)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;My CS rep was very knowledgeable, but I taught him that you can't use Amex GCs to buy Amazon.com GCs (when he recommended that could fix this situation&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Amazon employees cannot, in fact, fix this on their side. They have an extra option on their screen (gift cards), but that doesn't work either. I know this b/c I bought a $15.00 gc while we were on the phone, he tried to apply it, and it wouldn't work. I was able to add it to my account, bringing me up to $134.45&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Though the pimply douche who makes $7.00/hr at Best Buy can tender two credit cards, the Internet(s) have no such capability. As I told Caucasian Brian: I've only been an Amazon customer since 1999, why should they enhance their checkout process? It's only been 10 years -- they'll catch up to cash registers eventually.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In the end, the only way to fix this was to reduce the price until it went through.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I think bug-finding and brow-beating a human-Amazon-employee were far more rewarding that the $10 off my video game. I did fill out a survey and gave him excellent marks, but only because he laughed at my jokes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-6412822303581195848?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/6412822303581195848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=6412822303581195848&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/6412822303581195848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/6412822303581195848'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2009/01/i-made-it-rain-in-amazon-ec2-cloud.html' title='I Made the Amazon EC2 Cloud Rain'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-4893633880131812536</id><published>2009-01-25T08:59:00.001-05:00</published><updated>2009-01-26T18:52:12.480-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OMG Nobody Cares'/><title type='text'>Old</title><content type='html'>thirty candles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-4893633880131812536?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/4893633880131812536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=4893633880131812536&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/4893633880131812536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/4893633880131812536'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2009/01/old.html' title='Old'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-2387130218022336644</id><published>2009-01-22T14:22:00.000-05:00</published><updated>2009-01-22T14:23:57.758-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='tranny'/><category scheme='http://www.blogger.com/atom/ns#' term='News from the Internet(s)'/><title type='text'>Trannies Done-Throwed Down</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/XT2UmZxzmjs&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/XT2UmZxzmjs&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;Mmmm hrmm...and how.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-2387130218022336644?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/2387130218022336644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=2387130218022336644&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/2387130218022336644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/2387130218022336644'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2009/01/trannies-done-throwed-down.html' title='Trannies Done-Throwed Down'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-6397320897754953729</id><published>2009-01-12T16:18:00.005-05:00</published><updated>2009-01-12T16:42:29.158-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal finance'/><title type='text'>Now that gas is cheap (again), we wish it was even cheaper</title><content type='html'>Commentary: Americans sure do love them a discount (and how). &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LUEPz2x8WTE/SWu35m-4TwI/AAAAAAAABMw/hfA38IpkwSg/s1600-h/Picture+2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 224px;" src="http://4.bp.blogspot.com/_LUEPz2x8WTE/SWu35m-4TwI/AAAAAAAABMw/hfA38IpkwSg/s400/Picture+2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5290524387621490434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was having my car inspected at a Shell station on Saturday, and I noticed the &lt;a href="http://www.shell.us/home/content/usa/products_services/shell_cards/shell_saver_card/shell_saver_card.html"&gt;Shell Saver Card&lt;/a&gt;. It links your checking account to a card (more like a gift card than a credit card) to allow direct debit at the pump. If you sign up now, you save $0.05/gallon until June 1st, and $0.02/gallon thereafter. &lt;br /&gt;&lt;br /&gt;I was reminded of this again today when I saw &lt;a href="http://consumerist.com/5129642/make-your-drivers-license-a-debit-card-and-save-3-cents-per-gallon-of-gas"&gt;a story on Consumerist&lt;/a&gt; about something similar in the lone star state. I read the story, dismissed it, and returned to work for about 5 minutes before I lost control of the voices. They said:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Right now, you use your &lt;a href="http://thealphajohn.blogspot.com/2008/01/charge-everything-get-cash-back.html"&gt;American Express Blue Cash&lt;/a&gt; to get 1% back on gas (and groceries) for the first $6500/year, and 5% back for the rest of the year after you cross $6500. Is this a better deal?!?! Are you leaving precious pennies on the table?&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I mean, fuck, how do I get any work done? Even my god-damned voices have OCD.&lt;br /&gt;&lt;br /&gt;Thankfully, I kept &lt;a href="http://thealphajohn.blogspot.com/2008/12/hedging-cost-of-energy.html"&gt;the spreadsheet I made last month to calculate my energy expenditures&lt;/a&gt; so I could hedge my estimated energy costs for 2009. For the closest comparison, I found where I hit $6500 on my AMEX (sometime in March), so I figured out 1.0% rewards on Dec-Mar, then 5% back on Apr-Nov. Then I divided the US average against what I spent to estimate gallons of gas bought, and multiplied it by (average price minus $0.05 for Dec-Jun and $0.02 for Jun-Dec). My math is a little b0rked, but here's what I got:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LUEPz2x8WTE/SWu43IymrbI/AAAAAAAABM4/OvJWD7e_PRw/s1600-h/Picture+3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 388px; height: 400px;" src="http://4.bp.blogspot.com/_LUEPz2x8WTE/SWu43IymrbI/AAAAAAAABM4/OvJWD7e_PRw/s400/Picture+3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5290525444668829106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;AMEX 1%  -  $4.78&lt;br /&gt;AMEX 5%  -  $118.90&lt;br /&gt;Total  -  $123.68&lt;br /&gt;&lt;br /&gt;Shell $0.05  -  $19.77 &lt;br /&gt;Shell $0.02  -  $9.13 &lt;br /&gt;Total  -  $28.90&lt;br /&gt;&lt;br /&gt;Caveats: 1) per-gallon discount is immediate, AMEX rewards is annual. 2) Rewards is likely overstated; as gas was expensive, my rewards were equally inflated 3) I would have to always go to a Shell to get these rewards, with my AMEX I can butter any gas station's bread as I see fit 4) Since I backed into the consumption numbers using the national average for that week, who the hell knows.&lt;/blockquote&gt;&lt;br /&gt;That's right, I did the math so you don't have to. &lt;br /&gt;&lt;br /&gt;Had this program existed last year (when gas was hellua expensive), and I chose the Shell foolishness instead of using my AMEX Blue Cash, I would have lost out on almost $100 in rewards. I'm going to stick to my Blue Cash.&lt;br /&gt;&lt;br /&gt;Voices satisfied, back to work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-6397320897754953729?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/6397320897754953729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=6397320897754953729&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/6397320897754953729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/6397320897754953729'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2009/01/now-that-gas-is-cheap-again-we-wish-it.html' title='Now that gas is cheap (again), we wish it was even cheaper'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LUEPz2x8WTE/SWu35m-4TwI/AAAAAAAABMw/hfA38IpkwSg/s72-c/Picture+2.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-8880305739851823917</id><published>2009-01-08T11:09:00.000-05:00</published><updated>2009-01-08T11:10:11.549-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='puppies'/><category scheme='http://www.blogger.com/atom/ns#' term='News from the Internet(s)'/><title type='text'>Anderson Cooper hosts CNN's "Puppy Debate"</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_hAL1BDb0uY&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/_hAL1BDb0uY&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;Aww...I want an Anderson Cooper...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-8880305739851823917?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/8880305739851823917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=8880305739851823917&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8880305739851823917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8880305739851823917'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2009/01/anderson-cooper-hosts-cnns-puppy-debate.html' title='Anderson Cooper hosts CNN&apos;s &quot;Puppy Debate&quot;'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-8758915615386169210</id><published>2009-01-07T17:48:00.001-05:00</published><updated>2009-01-08T18:05:26.246-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technobabble'/><category scheme='http://www.blogger.com/atom/ns#' term='OMG Nobody Cares'/><title type='text'>New Office</title><content type='html'>I've had an office since 2000, and I haven't shared an office since 2001. I thought it would be an adjustment, but it wasn't at all. As it turns out, what's &lt;i&gt;on&lt;/i&gt; my desk mattered more to me that where I sit. Since I'm a contractor here, I was free to buy my own keyboard, monitor, and bring my laptop to work (for the record: latop to work +5, child to work -5).&lt;br /&gt;&lt;br /&gt;I've been in a cube since I started working here last November. At that time, all the feds all got offices and the contractors got cubes. Six months later, half the offices were empty and all the cubes were full, so they decided contractors can &lt;i&gt;share&lt;/i&gt; an office.&lt;br /&gt;&lt;br /&gt;Someone who worked in the office will be remote for at least the next six months, so his office opened up. My boss suggested I should move in, so I did.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LUEPz2x8WTE/SWaDkLwuy_I/AAAAAAAABMo/cMN3hOOolag/s1600-h/IMG_0032.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://3.bp.blogspot.com/_LUEPz2x8WTE/SWaDkLwuy_I/AAAAAAAABMo/cMN3hOOolag/s400/IMG_0032.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5289059470048938994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I had more room to spread out in my cube, but here I can pretend I moved from suburbia to a high-rise Tokyo. My two external hard drives (USB 2.0 and Firewire 400), laptop and speakers, french press and electric tea kettle, and panda-slave are tucked in the cabinet over the desk. I've run the cable for the monitor up, and the USB connection for the wireless keyboard down through the conduit in the corner (gray triangle). &lt;br /&gt;&lt;br /&gt;Fine use of space if you ask me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-8758915615386169210?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/8758915615386169210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=8758915615386169210&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8758915615386169210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8758915615386169210'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2009/01/new-office.html' title='New Office'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LUEPz2x8WTE/SWaDkLwuy_I/AAAAAAAABMo/cMN3hOOolag/s72-c/IMG_0032.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-3954764045255392366</id><published>2008-12-19T14:48:00.001-05:00</published><updated>2008-12-19T14:49:54.782-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='caBIG'/><title type='text'>26-NOV-2009</title><content type='html'>After three extensions, and what I imagine was two weeks of running at risk, my executed contract extension came back today. It looks like I'm employed until next Thanksgiving.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-3954764045255392366?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/3954764045255392366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=3954764045255392366&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/3954764045255392366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/3954764045255392366'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/12/26-nov-2009.html' title='26-NOV-2009'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-8960865679385587565</id><published>2008-12-11T14:35:00.004-05:00</published><updated>2008-12-11T15:52:58.693-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal finance'/><title type='text'>Hedging the Cost of Energy</title><content type='html'>What an exciting year for energy! If you were an investing genius like me, you bought high and sold low. All is not lost, however, because my investments in energy were (mostly) just a &lt;a href="http://en.wikipedia.org/wiki/Hedge_(finance)"&gt;hedge&lt;/a&gt;, so they did exactly what they were supposed to do.&lt;br /&gt;&lt;br /&gt;For example: my electric bill is about $100 per month, so in January I purchased $1200.00 in &lt;a href="http://finance.google.com/finance?q=d"&gt;Dominion&lt;/a&gt; directly through Dominion &lt;a href="http://www.fool.com/dripport/whataredrips.htm"&gt;DRIPS&lt;/a&gt;. Today, my stock is worth $1,020.98 (though I have more shares because of dividend payments). Even though the value of my stock went down, my energy costs went down, which should offset the loss. I'll be investing another $1200.00 next month.&lt;br /&gt;&lt;br /&gt;Maybe you don't pay an electric bill, but you do put gas in your car. I decided to look at my last year of spending on gas, lined up against the average price of a gallon of gas in the US:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LUEPz2x8WTE/SUFtzgXoI8I/AAAAAAAABMg/uYaDa66f9n8/s1600-h/Picture+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 174px;" src="http://2.bp.blogspot.com/_LUEPz2x8WTE/SUFtzgXoI8I/AAAAAAAABMg/uYaDa66f9n8/s400/Picture+1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5278620969884722114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I spent an average of $119.02 every two weeks, or $2,856.42 for the year. This number is slightly inflated if you consider that I pay for gas with my &lt;a href="http://www.americanexpress.com/getbluecash/"&gt;American Express Blue Cash&lt;/a&gt; card, which rewards me 1.0% on gas for the first $6,500.00 per year I charge on the card, and 5% on gas after I pass the $6,500.00 mark. As of October's statement (11 months), I had earned $247.54 on $6,249.73 spending (including Gas,Grocery, &amp; Drugstore). &lt;br /&gt;&lt;br /&gt;So what does all this mean? If I spend roughly $3,000.00 a year on gas, I should be hedging that amount in an equivalent energy hedge. That way, if the price of gas goes up, the value of my hedge goes up as well. If it goes down, even though the value of my hedge is reduced, so is the amount I spend on gas. This way, I'm don't get it coming and going when commodity prices fluctuate (which they are expected to through 2010 as we ease out of the current recession). &lt;br /&gt;&lt;br /&gt;Now, where do you park your money? You could buy stock in Exxon-Mobile (a company forged in the fires of hell from pure evil), Shell, Chevon, BP, or any other company with a big stake in US retail gas sales. You could invest directly in oil through an exchange traded fund (ETF) like &lt;a href="http://finance.google.com/finance?q=uso"&gt;USO&lt;/a&gt;. You could invest in the broader energy market through an ETF like &lt;a href="https://personal.vanguard.com/us/FundsSnapshot?FundId=0951&amp;FundIntExt=INT"&gt;Vanguard's Energy ETF&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;However you decide to hedge, it's something you should put on your list of New Year's resolutions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-8960865679385587565?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/8960865679385587565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=8960865679385587565&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8960865679385587565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8960865679385587565'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/12/hedging-cost-of-energy.html' title='Hedging the Cost of Energy'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LUEPz2x8WTE/SUFtzgXoI8I/AAAAAAAABMg/uYaDa66f9n8/s72-c/Picture+1.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-8293446009832932030</id><published>2008-12-05T16:11:00.004-05:00</published><updated>2008-12-05T16:13:31.012-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pope on a Rope'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Training</title><content type='html'>Next Mon/Tue and the following Mon/Tue/Wed, I'll be in iPhone SDK development training. By Christmas, I will have built my social networking &lt;i&gt;War on Christmas&lt;/i&gt; app, putting that fat bitch Santa-Jesus on the unemployment rolls.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-8293446009832932030?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/8293446009832932030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=8293446009832932030&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8293446009832932030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8293446009832932030'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/12/training.html' title='Training'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-8697698929818311019</id><published>2008-12-05T11:09:00.003-05:00</published><updated>2008-12-05T13:58:49.670-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OMG Nobody Cares'/><title type='text'>Cranky Friday</title><content type='html'>My cell phone has rung off the hook today.&lt;br /&gt;&lt;br /&gt;I did something to hurt my lower back.&lt;br /&gt;&lt;br /&gt;I had an incredibly annoying conference call this morning.&lt;br /&gt;&lt;br /&gt;The only thing that will turn my day around is the french press I just made myself. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LUEPz2x8WTE/STlZ_DZCGGI/AAAAAAAABMY/8ybwos3tbkc/s1600-h/IMG_0024.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_LUEPz2x8WTE/STlZ_DZCGGI/AAAAAAAABMY/8ybwos3tbkc/s400/IMG_0024.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5276347378218178658" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-8697698929818311019?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/8697698929818311019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=8697698929818311019&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8697698929818311019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8697698929818311019'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/12/cranky-friday.html' title='Cranky Friday'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LUEPz2x8WTE/STlZ_DZCGGI/AAAAAAAABMY/8ybwos3tbkc/s72-c/IMG_0024.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-3561503424319829072</id><published>2008-11-14T18:49:00.003-05:00</published><updated>2008-11-14T19:15:19.164-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technobabble'/><category scheme='http://www.blogger.com/atom/ns#' term='beta testing'/><title type='text'>gforge hero</title><content type='html'>We use &lt;a href="http://gforge.org/"&gt;gforge&lt;/a&gt; for our software projects: tracking bugs and feature requests, storing documentation, and a bunch of other silly shit. Gforge is, in my opinion, somewhere between Jira (high end) and Bugzilla (low end) in the usability spectrum for this type of software. Likewise, beef bullion is somewhere between prime rib and feces in my choices for dinner tonight.&lt;br /&gt;&lt;br /&gt;On November 6th, like a good project manager, I was cleaning up the enhancement tracker by removing choices from drop downs that aren't valid anymore (we renamed our 2.0.3 release 2.1, so 2.0.4 will now become 2.2), and accidentally deleted the entire enhancement request tracker. The error message doesn't tell you what you're doing (the cranky gforge admin didn't even blame me or say I fucked up), and I'm the fourth person to do this in as many years.&lt;br /&gt;&lt;br /&gt;Our RFE tracker is 300+ items, collected over 4+ years, and includes notes, history, status, and all kinds of other information. This was a huge deal. Our system team, unwilling to restore a backup (which would punish everyone by obliterating their work for that day), restored a backup to our QA instance and told me to retype everything from there. I asked for access to the database and said I'd write the fix myself. I'm sure they were like 'whatever...project manager'.&lt;br /&gt;&lt;br /&gt;My solution: archive tables and triggers on the 13 tables that hold tracker information (which I reverse engineered though my local backup/restore). Not only could I recover my shit this way, but the next fuckup won't be typing for days for a bad keystroke. &lt;br /&gt;&lt;br /&gt;Unlike me -- who has used Oracle, SQL Server, Sybase, DB2, Informix, and MySQL -- gforge uses postgres. That meant I had to teach myself how to code for postgres (which, being based on Ingres, is 80% Oracle and 20% schizophrenic milk man). I could write 5 pages of the sillyness that is postgres (look: I'm Ada-like, but everything is a function, and triggers can't contain the trigger code, they must call a function that returns type trigger). Criminy.&lt;br /&gt;&lt;br /&gt;I finally had a good backup and local copy of the db 11-NOV, had the archive table and trigger code written and debugged 12-NOV, and finished all the functions to restore and test by 13-NOV. I tested everything today, and all my codes without a single correction (and my test cases are tight as hell). &lt;br /&gt;&lt;br /&gt;Now we just need to "delete" the data from QA, backup/restore the archive tables to production, and use my code to turn hamburger back into cow. I'm no expect, but I think I win. &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 1.) deleted_artifact_history&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact_history;&lt;br /&gt;CREATE TABLE deleted_artifact_history(&lt;br /&gt; like artifact_history&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact_history OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact_history TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact_history ADD PRIMARY KEY (id);&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact_history&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact_history()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact_history SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_history on artifact_history&lt;br /&gt;--DROP TRIGGER deleted_artifact_history ON artifact_history;&lt;br /&gt;CREATE TRIGGER deleted_artifact_history&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact_history&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact_history();&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 2.) deleted_artifact_file&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact_file;&lt;br /&gt;CREATE TABLE deleted_artifact_file(&lt;br /&gt; like artifact_file&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact_file OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact_file TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact_file ADD PRIMARY KEY (id);&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact_file&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact_file()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact_file SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_file on artifact_file&lt;br /&gt;--DROP TRIGGER deleted_artifact_file ON artifact_file;&lt;br /&gt;CREATE TRIGGER deleted_artifact_file&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact_file&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact_file();&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 3.) deleted_artifact_group_list&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact_group_list;&lt;br /&gt;CREATE TABLE deleted_artifact_group_list(&lt;br /&gt; like artifact_group_list&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact_group_list OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact_group_list TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact_group_list ADD PRIMARY KEY (group_artifact_id);&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact_group_list&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact_group_list()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact_group_list SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_group_list on artifact_group_list&lt;br /&gt;--DROP TRIGGER deleted_artifact_group_list ON artifact_group_list;&lt;br /&gt;CREATE TRIGGER deleted_artifact_group_list&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact_group_list&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact_group_list();&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 4.) deleted_artifact_extra_field_data&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact_extra_field_data;&lt;br /&gt;CREATE TABLE deleted_artifact_extra_field_data(&lt;br /&gt; like artifact_extra_field_data&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact_extra_field_data OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact_extra_field_data TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact_extra_field_data ADD PRIMARY KEY (data_id);&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact_extra_field_data&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact_extra_field_data()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact_extra_field_data SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_extra_field_data on artifact_extra_field_data&lt;br /&gt;--DROP TRIGGER deleted_artifact_extra_field_data ON artifact_extra_field_data;&lt;br /&gt;CREATE TRIGGER deleted_artifact_extra_field_data&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact_extra_field_data&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact_extra_field_data();&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 5.) deleted_artifact_extra_field_list&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact_extra_field_list;&lt;br /&gt;CREATE TABLE deleted_artifact_extra_field_list(&lt;br /&gt; like artifact_extra_field_list&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact_extra_field_list OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact_extra_field_list TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact_extra_field_list ADD PRIMARY KEY (extra_field_id);&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact_extra_field_list&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact_extra_field_list()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact_extra_field_list SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_extra_field_list on artifact_extra_field_list&lt;br /&gt;--DROP TRIGGER deleted_artifact_extra_field_list ON artifact_extra_field_list;&lt;br /&gt;CREATE TRIGGER deleted_artifact_extra_field_list&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact_extra_field_list&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact_extra_field_list();&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 6.) deleted_artifact_perm&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact_perm;&lt;br /&gt;CREATE TABLE deleted_artifact_perm(&lt;br /&gt; like artifact_perm&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact_perm OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact_perm TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact_perm ADD PRIMARY KEY (id);&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact_perm&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact_perm()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact_perm SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_perm on artifact_perm&lt;br /&gt;--DROP TRIGGER deleted_artifact_perm ON artifact_perm;&lt;br /&gt;CREATE TRIGGER deleted_artifact_perm&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact_perm&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact_perm();&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 7.) deleted_artifact_type_monitor&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact_type_monitor;&lt;br /&gt;CREATE TABLE deleted_artifact_type_monitor(&lt;br /&gt; like artifact_type_monitor&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact_type_monitor OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact_type_monitor TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact_type_monitor ADD PRIMARY KEY (group_artifact_id,user_id);&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact_type_monitor()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact_type_monitor SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_type_monitor on artifact_type_monitor&lt;br /&gt;--DROP TRIGGER deleted_artifact_type_monitor ON artifact_type_monitor;&lt;br /&gt;CREATE TRIGGER deleted_artifact_type_monitor&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact_type_monitor&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact_type_monitor();&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 8.) deleted_artifact_query&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact_query;&lt;br /&gt;CREATE TABLE deleted_artifact_query(&lt;br /&gt; like artifact_query&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact_query OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact_query TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact_query ADD PRIMARY KEY (artifact_query_id);&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact_query&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact_query()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact_query SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_query on artifact_query&lt;br /&gt;--DROP TRIGGER deleted_artifact_query ON artifact_query;&lt;br /&gt;CREATE TRIGGER deleted_artifact_query&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact_query&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact_query();&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 9.) deleted_artifact_query_fields&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact_query_fields;&lt;br /&gt;CREATE TABLE deleted_artifact_query_fields(&lt;br /&gt; like artifact_query_fields&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact_query_fields OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact_query_fields TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact_query_fields ADD PRIMARY KEY (artifact_query_id, query_field_type, query_field_id);&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact_query_fields&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact_query_fields()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact_query_fields SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_query_fields on artifact_query_fields&lt;br /&gt;--DROP TRIGGER deleted_artifact_query_fields ON artifact_query_fields;&lt;br /&gt;CREATE TRIGGER deleted_artifact_query_fields&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact_query_fields&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact_query_fields();&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 10.) deleted_artifact_monitor&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact_monitor;&lt;br /&gt;CREATE TABLE deleted_artifact_monitor(&lt;br /&gt; like artifact_monitor&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact_monitor OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact_monitor TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact_monitor ADD PRIMARY KEY (artifact_id, user_id);&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact_monitor&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact_monitor()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact_monitor SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_monitor on artifact_monitor&lt;br /&gt;--DROP TRIGGER deleted_artifact_monitor ON artifact_monitor;&lt;br /&gt;CREATE TRIGGER deleted_artifact_monitor&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact_monitor&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact_monitor();&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 11.) deleted_artifact_message&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact_message;&lt;br /&gt;CREATE TABLE deleted_artifact_message(&lt;br /&gt; like artifact_message&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact_message OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact_message TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact_message ADD PRIMARY KEY (id);&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact_message&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact_message()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact_message SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_message on artifact_message&lt;br /&gt;--DROP TRIGGER deleted_artifact_message ON artifact_message;&lt;br /&gt;CREATE TRIGGER deleted_artifact_message&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact_message&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact_message();&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 12.) deleted_artifact_counts_agg&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact_counts_agg;&lt;br /&gt;CREATE TABLE deleted_artifact_counts_agg(&lt;br /&gt; like artifact_counts_agg&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact_counts_agg OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact_counts_agg TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact_counts_agg ADD PRIMARY KEY (group_artifact_id);&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact_counts_agg&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact_counts_agg()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact_counts_agg SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_counts_agg on artifact_counts_agg&lt;br /&gt;--DROP TRIGGER deleted_artifact_counts_agg ON artifact_counts_agg;&lt;br /&gt;CREATE TRIGGER deleted_artifact_counts_agg&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact_counts_agg&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact_counts_agg();&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Table: 13.) deleted_artifact&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;--DROP TABLE deleted_artifact;&lt;br /&gt;CREATE TABLE deleted_artifact(&lt;br /&gt; like artifact&lt;br /&gt;)&lt;br /&gt;WITH OIDS;&lt;br /&gt;ALTER TABLE deleted_artifact OWNER TO postgres;&lt;br /&gt;GRANT ALL ON TABLE deleted_artifact TO postgres;&lt;br /&gt;ALTER TABLE deleted_artifact ADD PRIMARY KEY (artifact_id);&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact_update_last_modified_date on deleted_artifact&lt;br /&gt;--DROP TRIGGER deleted_artifact_update_last_modified_date ON deleted_artifact;&lt;br /&gt;CREATE TRIGGER deleted_artifact_update_last_modified_date&lt;br /&gt;  BEFORE INSERT OR UPDATE&lt;br /&gt;  ON deleted_artifact&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE update_last_modified_date();&lt;br /&gt;&lt;br /&gt;-- Function: fn_deleted_artifact&lt;br /&gt;CREATE OR REPLACE FUNCTION fn_deleted_artifact()&lt;br /&gt;  RETURNS trigger AS&lt;br /&gt;  $BODY$&lt;br /&gt;  BEGIN &lt;br /&gt;    INSERT INTO deleted_artifact SELECT OLD.*;&lt;br /&gt;    RETURN OLD;&lt;br /&gt;  END;&lt;br /&gt;  $BODY$&lt;br /&gt;  LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-- Trigger: deleted_artifact on artifact&lt;br /&gt;--DROP TRIGGER deleted_artifact ON artifact;&lt;br /&gt;CREATE TRIGGER deleted_artifact&lt;br /&gt;  BEFORE DELETE&lt;br /&gt;  ON artifact&lt;br /&gt;  FOR EACH ROW&lt;br /&gt;  EXECUTE PROCEDURE fn_deleted_artifact();&lt;/blockquote&gt;&lt;br /&gt;and..&lt;br /&gt;&lt;blockquote&gt;-----------------------------------------------------------------&lt;br /&gt;-- Test Case: I. Archive Deleted Records&lt;br /&gt;--   Precondition  1) Deleted tables have 0 records&lt;br /&gt;--                 2) Artifact tables have N records&lt;br /&gt;--   Postcondition 1) Deleted tables have N records&lt;br /&gt;--                 2) Artifact tables reduced by N records&lt;br /&gt;--   Execution     1) In isolation (from SQL prompt)&lt;br /&gt;--                 2) Through gforge GUI&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Test Case: II. Restore Deleted Records&lt;br /&gt;--   Precondition: 1) Deleted tables have X records&lt;br /&gt;--                 2) Artifact tables have Y records&lt;br /&gt;--   Postcondition 1) Deleted tables have 0 records&lt;br /&gt;--                 2) Artifact tables = X + Y records&lt;br /&gt;--   Execution     1) In isolation (from SQL prompt)&lt;br /&gt;--                 2) Through gforge GUI&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;CREATE TABLE testRecordCount (&lt;br /&gt;  run_type  varchar,&lt;br /&gt;  artifact  integer NOT NULL,&lt;br /&gt;  d_artifact  integer NOT NULL,&lt;br /&gt;  a_history  integer NOT NULL,&lt;br /&gt;  d_a_history  integer NOT NULL,&lt;br /&gt;  a_file  integer NOT NULL,&lt;br /&gt;  d_a_file  integer NOT NULL,&lt;br /&gt;  a_extra_field_data integer NOT NULL,&lt;br /&gt;  d_a_extra_field_data integer NOT NULL,&lt;br /&gt;  a_group_list  integer NOT NULL,&lt;br /&gt;  d_a_group_list integer NOT NULL,&lt;br /&gt;  a_perm  integer NOT NULL,&lt;br /&gt;  d_a_perm  integer NOT NULL,&lt;br /&gt;  a_type_monitor integer NOT NULL,&lt;br /&gt;  d_a_type_monitor integer NOT NULL,&lt;br /&gt;  a_query  integer NOT NULL,&lt;br /&gt;  d_a_query  integer NOT NULL,&lt;br /&gt;  a_query_fields integer NOT NULL,&lt;br /&gt;  d_a_query_fields integer NOT NULL,&lt;br /&gt;  a_monitor  integer NOT NULL,&lt;br /&gt;  d_a_monitor  integer NOT NULL,&lt;br /&gt;  a_message  integer NOT NULL,&lt;br /&gt;  d_a_message  integer NOT NULL,&lt;br /&gt;  a_counts_agg  integer NOT NULL,&lt;br /&gt;  d_a_counts_agg integer NOT NULL,&lt;br /&gt;  run_date  date NOT NULL DEFAULT now()&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE FUNCTION populateTestRecordCount (notes varchar, tracker_id int) &lt;br /&gt;RETURNS VOID AS $$&lt;br /&gt;  DECLARE&lt;br /&gt;    v_artifact   int;&lt;br /&gt;    v_d_artifact  int;&lt;br /&gt;    v_a_history   int;&lt;br /&gt;    v_d_a_history  int;&lt;br /&gt;    v_a_file   int;&lt;br /&gt;    v_d_a_file   int;&lt;br /&gt;    v_a_extra_field_data int;&lt;br /&gt;    v_d_a_extra_field_data int;&lt;br /&gt;    v_a_group_list  int;&lt;br /&gt;    v_d_a_group_list  int;&lt;br /&gt;    v_a_perm   int;&lt;br /&gt;    v_d_a_perm   int;&lt;br /&gt;    v_a_type_monitor  int;&lt;br /&gt;    v_d_a_type_monitor  int;&lt;br /&gt;    v_a_query   int;&lt;br /&gt;    v_d_a_query   int;&lt;br /&gt;    v_a_query_fields  int;&lt;br /&gt;    v_d_a_query_fields  int;&lt;br /&gt;    v_a_monitor   int;&lt;br /&gt;    v_d_a_monitor  int;&lt;br /&gt;    v_a_message   int;&lt;br /&gt;    v_d_a_message  int;&lt;br /&gt;    v_a_counts_agg  int;&lt;br /&gt;    v_d_a_counts_agg  int;&lt;br /&gt;  BEGIN&lt;br /&gt;    -----------------------------------------------------------------&lt;br /&gt;    -- Artifact Tables&lt;br /&gt;    -----------------------------------------------------------------&lt;br /&gt;    select into v_artifact count(*) from artifact; --where group_artifact_id=tracker_id;&lt;br /&gt;    select into v_a_history count(*) from artifact_history;&lt;br /&gt;      --where artifact_id in (select artifact_id from artifact where group_artifact_id=tracker_id);&lt;br /&gt;    select into v_a_file count(*) from artifact_file;&lt;br /&gt;      --where artifact_id in (select artifact_id from artifact where group_artifact_id=tracker_id);&lt;br /&gt;    select into v_a_extra_field_data count(*) from artifact_extra_field_data;&lt;br /&gt;      --where artifact_id in (select artifact_id from artifact where group_artifact_id=tracker_id);&lt;br /&gt;    select into v_a_group_list count(*) from artifact_group_list; --where group_artifact_id=tracker_id;&lt;br /&gt;    select into v_a_perm count(*) from artifact_perm; --where group_artifact_id=tracker_id;&lt;br /&gt;    select into v_a_type_monitor count(*) from artifact_type_monitor; --where group_artifact_id=tracker_id;&lt;br /&gt;    select into v_a_query count(*) from artifact_query; --where group_artifact_id=tracker_id;&lt;br /&gt;    select into v_a_query_fields count(*) from artifact_query_fields; &lt;br /&gt;      --where artifact_query_id in (select artifact_query_id from artifact_query where group_artifact_id=tracker_id); &lt;br /&gt;    select into v_a_monitor count (*) from artifact_monitor;&lt;br /&gt;    select into v_a_message count (*) from artifact_message;&lt;br /&gt;    select into v_a_counts_agg count (*) from artifact_counts_agg;&lt;br /&gt;    -----------------------------------------------------------------&lt;br /&gt;    -- Deleted Tables&lt;br /&gt;    -----------------------------------------------------------------&lt;br /&gt;    select into v_d_artifact count(*) from deleted_artifact where group_artifact_id=tracker_id;&lt;br /&gt;    select into v_d_a_history count(*) from deleted_artifact_history where artifact_id in (&lt;br /&gt;      select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;    );&lt;br /&gt;    select into v_d_a_file count(*) from deleted_artifact_file where artifact_id in (&lt;br /&gt;      select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;    );&lt;br /&gt;    select into v_d_a_extra_field_data count(*) from deleted_artifact_extra_field_data where artifact_id in (&lt;br /&gt;        select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;    );&lt;br /&gt;    select into v_d_a_group_list count(*) from deleted_artifact_group_list where group_artifact_id=tracker_id;&lt;br /&gt;    select into v_d_a_perm count(*) from deleted_artifact_perm where group_artifact_id=tracker_id;&lt;br /&gt;    select into v_d_a_type_monitor count(*) from deleted_artifact_type_monitor where group_artifact_id=tracker_id;&lt;br /&gt;    select into v_d_a_query count(*) from deleted_artifact_query where group_artifact_id=tracker_id;&lt;br /&gt;    select into v_d_a_query_fields count(*) from deleted_artifact_query_fields where artifact_query_id in (&lt;br /&gt;      select artifact_query_id from deleted_artifact_query where group_artifact_id=tracker_id&lt;br /&gt;    ); &lt;br /&gt;    select into v_d_a_monitor count (*) from deleted_artifact_monitor;&lt;br /&gt;    select into v_d_a_message count (*) from deleted_artifact_message;&lt;br /&gt;    select into v_d_a_counts_agg count (*) from deleted_artifact_counts_agg;&lt;br /&gt;    -----------------------------------------------------------------&lt;br /&gt;    -- Populate Test Table with Counts&lt;br /&gt;    -----------------------------------------------------------------&lt;br /&gt;    INSERT INTO testRecordCount (  &lt;br /&gt; run_type, artifact, d_artifact, a_history, d_a_history,&lt;br /&gt; a_file, d_a_file, a_extra_field_data, d_a_extra_field_data,&lt;br /&gt; a_group_list, d_a_group_list, a_perm, d_a_perm,&lt;br /&gt; a_type_monitor, d_a_type_monitor, a_query, d_a_query,&lt;br /&gt; a_query_fields, d_a_query_fields, a_monitor, d_a_monitor, &lt;br /&gt; a_message, d_a_message, a_counts_agg, d_a_counts_agg&lt;br /&gt;    ) VALUES (&lt;br /&gt; notes, v_artifact, v_d_artifact, v_a_history, v_d_a_history,&lt;br /&gt; v_a_file, v_d_a_file, v_a_extra_field_data, v_d_a_extra_field_data,&lt;br /&gt; v_a_group_list, v_d_a_group_list, v_a_perm, v_d_a_perm,&lt;br /&gt; v_a_type_monitor, v_d_a_type_monitor, v_a_query, v_d_a_query,&lt;br /&gt; v_a_query_fields, v_d_a_query_fields, v_a_monitor, v_d_a_monitor,&lt;br /&gt; v_a_message, v_d_a_message, v_a_counts_agg, v_d_a_counts_agg&lt;br /&gt;    );&lt;br /&gt;  END;&lt;br /&gt;$$ LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Test Deleting Records&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;CREATE OR REPLACE FUNCTION testRecordDelete (tracker_id int) &lt;br /&gt;RETURNS VOID AS $$&lt;br /&gt;BEGIN&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  -- artifact_history, file, and extra_field_data have fk's to artifact&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  delete from artifact_history where artifact_id in (&lt;br /&gt;    select artifact_id from artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from artifact_file where artifact_id in (&lt;br /&gt;    select artifact_id from artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from artifact_extra_field_data where artifact_id in (&lt;br /&gt;    select artifact_id from artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from artifact_monitor where artifact_id in (&lt;br /&gt;    select artifact_id from artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from artifact_message where artifact_id in (&lt;br /&gt;    select artifact_id from artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from artifact where group_artifact_id=tracker_id;&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  -- group_list, perm, type_monitor, counts_agg are straight forward&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  delete from artifact_perm where group_artifact_id=tracker_id;&lt;br /&gt;  delete from artifact_group_list where group_artifact_id=tracker_id;&lt;br /&gt;  delete from artifact_type_monitor where group_artifact_id=tracker_id;&lt;br /&gt;  delete from artifact_counts_agg where group_artifact_id=tracker_id;&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  -- query_history needs query to turn hamburger back into cow&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  delete from artifact_query_fields where artifact_query_id in (&lt;br /&gt;    select artifact_query_id from artifact_query where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from artifact_query where group_artifact_id=tracker_id;&lt;br /&gt;END;&lt;br /&gt;$$ LANGUAGE 'plpgsql';&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;-- Restore Records&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;CREATE OR REPLACE FUNCTION RecordRestore (tracker_id int) &lt;br /&gt;RETURNS VOID AS $$&lt;br /&gt;BEGIN&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  -- artifact_group_list (disable trigger before restore)&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  alter table artifact_group_list disable trigger artifactgrouplist_insert_trig;&lt;br /&gt;  insert into artifact_group_list select * from deleted_artifact_group_list where group_artifact_id=tracker_id;&lt;br /&gt;  alter table artifact_group_list enable trigger artifactgrouplist_insert_trig;&lt;br /&gt;  delete from deleted_artifact_group_list where group_artifact_id=tracker_id;&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  -- artifact_query &amp; artifact_query_fields&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  insert into artifact_query select * from deleted_artifact_query where group_artifact_id=tracker_id;&lt;br /&gt;  insert into artifact_query_fields select * from deleted_artifact_query_fields where artifact_query_id in (&lt;br /&gt;    select artifact_query_id from deleted_artifact_query where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from deleted_artifact_query_fields where artifact_query_id in (&lt;br /&gt;    select artifact_query_id from deleted_artifact_query where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from deleted_artifact_query where group_artifact_id=tracker_id;&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  -- artifact_perm &amp; artifact_type_monitor&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  insert into artifact_counts_agg select * from deleted_artifact_counts_agg where group_artifact_id=tracker_id;&lt;br /&gt;  insert into artifact_perm select * from deleted_artifact_perm where group_artifact_id=tracker_id;&lt;br /&gt;  insert into artifact_type_monitor select * from deleted_artifact_type_monitor where group_artifact_id=tracker_id;&lt;br /&gt;  delete from deleted_artifact_counts_agg where group_artifact_id=tracker_id;&lt;br /&gt;  delete from deleted_artifact_perm where group_artifact_id=tracker_id;&lt;br /&gt;  delete from deleted_artifact_type_monitor where group_artifact_id=tracker_id;&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  -- fish desired records out of deleted_artifact, restore, clean up&lt;br /&gt;  -----------------------------------------------------------------&lt;br /&gt;  insert into artifact select * from deleted_artifact where group_artifact_id=tracker_id;&lt;br /&gt;  insert into artifact_history select * from deleted_artifact_history where artifact_id in (&lt;br /&gt;    select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  insert into artifact_file select * from deleted_artifact_file where artifact_id in (&lt;br /&gt;    select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  insert into artifact_extra_field_data select * from deleted_artifact_extra_field_data where artifact_id in (&lt;br /&gt;    select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  insert into artifact_monitor select * from deleted_artifact_monitor where artifact_id in (&lt;br /&gt;    select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  insert into artifact_message select * from deleted_artifact_message where artifact_id in (&lt;br /&gt;    select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from deleted_artifact_message where artifact_id in (&lt;br /&gt;    select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from deleted_artifact_monitor where artifact_id in (&lt;br /&gt;    select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from deleted_artifact_extra_field_data where artifact_id in (&lt;br /&gt;    select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from deleted_artifact_file where artifact_id in (&lt;br /&gt;    select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from deleted_artifact_history where artifact_id in (&lt;br /&gt;    select artifact_id from deleted_artifact where group_artifact_id=tracker_id&lt;br /&gt;  );&lt;br /&gt;  delete from deleted_artifact where group_artifact_id=tracker_id;&lt;br /&gt;END;&lt;br /&gt;$$ LANGUAGE 'plpgsql';&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-3561503424319829072?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/3561503424319829072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=3561503424319829072&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/3561503424319829072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/3561503424319829072'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/11/gforge-hero.html' title='gforge hero'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-7685934870676577106</id><published>2008-11-12T15:39:00.002-05:00</published><updated>2008-11-12T15:43:46.520-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='beta testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>iPhone App: Kitten Escape</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LUEPz2x8WTE/SRs_OVmLosI/AAAAAAAABMQ/9AGaWv0Zeo8/s1600-h/Picture+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 203px;" src="http://2.bp.blogspot.com/_LUEPz2x8WTE/SRs_OVmLosI/AAAAAAAABMQ/9AGaWv0Zeo8/s400/Picture+1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5267873704687936194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;It is a game that moves the block, and goes out of the kitten that has been confined. Kitten Escape is said "Daughter in the Box" of classical slide puzzle game.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Kitten reminds me of my old friend, CATS...&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/qItugh-fFgg&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/qItugh-fFgg&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;&lt;blockquote&gt;You have no chance to survive. Make your time. Haha!&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-7685934870676577106?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/7685934870676577106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=7685934870676577106&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/7685934870676577106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/7685934870676577106'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/11/iphone-app-kitten-escape.html' title='iPhone App: Kitten Escape'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LUEPz2x8WTE/SRs_OVmLosI/AAAAAAAABMQ/9AGaWv0Zeo8/s72-c/Picture+1.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-5931426947496150328</id><published>2008-11-05T14:25:00.004-05:00</published><updated>2008-11-05T14:31:00.883-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='News from the Internet(s)'/><category scheme='http://www.blogger.com/atom/ns#' term='television'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>CNN Now Projecting a Ratings Win for Themselves</title><content type='html'>Had you known before the polls closed, would you have voted for a Hologram instead of a human?&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jJKkMLKFHxo&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/jJKkMLKFHxo&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;Fox News probably had to execute a terrorist &lt;b&gt;&lt;i&gt;live&lt;/i&gt;&lt;/b&gt; to get people to turn away from this marvel. It's like the advent of the talkies, only not-so-much. &lt;br /&gt;&lt;br /&gt;Gizmodo has a write up if you're curious &lt;a href="http://gizmodo.com/5076663/how-the-cnn-holographic-interview-system-works"&gt;how it works&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-5931426947496150328?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/5931426947496150328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=5931426947496150328&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/5931426947496150328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/5931426947496150328'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/11/cnn-now-projecting-ratings-win-for.html' title='CNN Now Projecting a Ratings Win for Themselves'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-8388693696510327165</id><published>2008-11-05T07:31:00.000-05:00</published><updated>2008-11-05T14:32:22.117-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News from the Internet(s)'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Google's 'Relief' Gadget</title><content type='html'>Live &lt;a href="http://maps.google.com/help/maps/elections/index.html#2008_election"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LUEPz2x8WTE/SRH0ofdM27I/AAAAAAAABMI/zgZI-SEz4sw/s1600-h/Picture+2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 393px; height: 400px;" src="http://1.bp.blogspot.com/_LUEPz2x8WTE/SRH0ofdM27I/AAAAAAAABMI/zgZI-SEz4sw/s400/Picture+2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5265258415848741810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;:p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-8388693696510327165?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/8388693696510327165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=8388693696510327165&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8388693696510327165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8388693696510327165'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/11/googles-relief-gadget.html' title='Google&apos;s &apos;Relief&apos; Gadget'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LUEPz2x8WTE/SRH0ofdM27I/AAAAAAAABMI/zgZI-SEz4sw/s72-c/Picture+2.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-6649865917309441299</id><published>2008-11-04T10:25:00.003-05:00</published><updated>2008-11-04T10:35:26.535-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mason (the school)'/><title type='text'>'Democracy in Action' does not mean 'hack our listservs'</title><content type='html'>A succession of three emails from the Provost of George Mason. First:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Date: Tue, 04 Nov 2008 00:41:05 -0500&lt;br /&gt;From: Office of the Provost &lt;noreply@gmu.edu&gt;&lt;br /&gt;Subject: Additional Info on Election Day&lt;br /&gt;To: ANNOUNCE04-L@mail04.gmu.edu&lt;br /&gt;&lt;br /&gt;To the Mason Community:&lt;br /&gt;&lt;br /&gt;I hear some troubling rumors, so here are a couple of facts: 1. The election is Nov. 4, for all political parties. The notion that one party votes Nov. 5 is UNTRUE. 2. It is also UNTRUE that any student jeopardizes financial aid by voting.&lt;br /&gt;&lt;br /&gt;Peter N. Stearns&lt;br /&gt;Provost&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Then:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Date: Tue, 04 Nov 2008 01:16:42 -0500&lt;br /&gt;From: Office of the Provost &lt;noreply@gmu.edu&gt;&lt;br /&gt;Subject: Election Day Update&lt;br /&gt;To: ANNOUNCE04-L@mail04.gmu.edu&lt;br /&gt;&lt;br /&gt;To the Mason Community:&lt;br /&gt;&lt;br /&gt;Please note that election day has been moved to November 5th. We apologize for any inconvenience this may cause you.&lt;br /&gt;&lt;br /&gt;Peter N. Stearns&lt;br /&gt;Provost&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Finally:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Date: Tue, 04 Nov 2008 08:08:21 -0500&lt;br /&gt;From: Office of the Provost &lt;provstaf@gmu.edu&gt;&lt;br /&gt;Subject: Urgent Voting Information&lt;br /&gt;To: PROVOSTOFFICE-L@mail04.gmu.edu&lt;br /&gt;&lt;br /&gt;Dear Colleagues,&lt;br /&gt;&lt;br /&gt;It has come to my attention early this morning that a message was hacked into the system fraudulently stating that election day has been moved.  I am sure everybody realizes this is a hoax, it is also a serious offense and we are looking into it.  Please be reminded that election day is today, November 4th.&lt;br /&gt;&lt;br /&gt;Peter N. Stearns&lt;br /&gt;Provost&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I spent exactly 30 seconds looking at the headers of the second message and found:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Received: from m154.prod.democracyinaction.org ([8.15.20.154])&lt;br /&gt; by ironport2.gmu.edu with ESMTP; Tue, 04 Nov 2008 01:16:42 -0500&lt;br /&gt;Received: from [10.15.20.114]  ([10.15.20.114:39637] helo=web4.mcl.wiredforchange.com)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Apparently someone at &lt;a href="http://www2.democracyinaction.org"&gt;Democracy In Action&lt;/a&gt; in DC wants to keep our browner students away from the polls today? Don't they know &lt;a href="http://en.wikipedia.org/wiki/George_Mason_University"&gt;Mason&lt;/a&gt; is a commuter school?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-6649865917309441299?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/6649865917309441299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=6649865917309441299&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/6649865917309441299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/6649865917309441299'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/11/democracy-in-action-does-not-mean-hack.html' title='&apos;Democracy in Action&apos; does not mean &apos;hack our listservs&apos;'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-2656579924301273990</id><published>2008-10-24T13:56:00.003-04:00</published><updated>2008-10-24T14:02:56.088-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beta testing'/><category scheme='http://www.blogger.com/atom/ns#' term='the Google'/><title type='text'>Google News, Finance need to stop ignoring each other</title><content type='html'>I found &lt;a href="http://thealphajohn.blogspot.com/2006/01/quandary-of-google-news.html"&gt;yet&lt;/a&gt; &lt;a href="http://thealphajohn.blogspot.com/2006/01/another-bug-in-google-news.html"&gt;another&lt;/a&gt; bug in &lt;a href="http://news.google.com"&gt;Google News&lt;/a&gt;. To give some content, the stock market is down a shit-ton right now. I head over to GNews and see:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LUEPz2x8WTE/SQIM2yEXmUI/AAAAAAAABL4/vMjAO0fjJkA/s1600-h/Picture+5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 294px;" src="http://3.bp.blogspot.com/_LUEPz2x8WTE/SQIM2yEXmUI/AAAAAAAABL4/vMjAO0fjJkA/s400/Picture+5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5260781450014726466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That the DJ &lt;b&gt;closed&lt;/b&gt; UP 172 points? But it's the middle of the trading day, and doom is everywhere. Let's ask &lt;a href="http://finance.google.com"&gt;Google Finance&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LUEPz2x8WTE/SQIM3PG_k3I/AAAAAAAABMA/ddQ-2i-AMds/s1600-h/Picture+6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 90px;" src="http://4.bp.blogspot.com/_LUEPz2x8WTE/SQIM3PG_k3I/AAAAAAAABMA/ddQ-2i-AMds/s400/Picture+6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5260781457810363250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Oh nevermind, it's DOWN 373 points! &lt;br /&gt;&lt;br /&gt;Honest mistake for 3 year old betaware.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-2656579924301273990?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/2656579924301273990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=2656579924301273990&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/2656579924301273990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/2656579924301273990'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/10/google-news-finance-need-to-stop.html' title='Google News, Finance need to stop ignoring each other'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LUEPz2x8WTE/SQIM2yEXmUI/AAAAAAAABL4/vMjAO0fjJkA/s72-c/Picture+5.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-501846914693899662</id><published>2008-10-17T19:41:00.001-04:00</published><updated>2008-10-17T19:44:30.016-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kristin'/><category scheme='http://www.blogger.com/atom/ns#' term='IM Conversation'/><title type='text'>You piss me off real good! I no talk to you.</title><content type='html'>&lt;blockquote&gt;Kristin: um, again, chick question... but are you mad at me about something? Or is the shortness cause you're wicked busy and I keep interrupting&lt;br /&gt;theAlphaJohn: haha&lt;br /&gt;theAlphaJohn: im on a conference call&lt;br /&gt;theAlphaJohn: just working on stuff in the background&lt;br /&gt;theAlphaJohn: not mad at you at all&lt;br /&gt;Kristin: ok... whew&lt;br /&gt;Kristin: well... I hope you come out tomorrow night&lt;br /&gt;Kristin: haven't seen you in 100 years&lt;br /&gt;Kristin: would be nice to shake it on the dancefloor with you&lt;br /&gt;theAlphaJohn: yeah it's been a while&lt;br /&gt;theAlphaJohn: are you still white?&lt;br /&gt;Kristin: lmao&lt;br /&gt;Kristin: as far as I know&lt;br /&gt;Kristin: I'm still a chick as you can tell&lt;br /&gt;theAlphaJohn: im all asian now&lt;br /&gt;Kristin: really...&lt;br /&gt;theAlphaJohn: i hear yellow fever is the new black&lt;br /&gt;Kristin: LMAO&lt;br /&gt;Kristin: alrighty!&lt;br /&gt;Kristin: does that require surgery?&lt;br /&gt;theAlphaJohn: not much&lt;br /&gt;theAlphaJohn: it's all outpatient&lt;br /&gt;Kristin: oh good...&lt;br /&gt;Kristin: as long as they don't have to remove you nipples and reattach them&lt;br /&gt;theAlphaJohn: then hair dye, spray on tan, and lots of anime / graphic novels (read: comic books for people with masters degrees)&lt;br /&gt;Kristin: omg&lt;br /&gt;theAlphaJohn: would you like me to go back to being terse? &lt;br /&gt;Kristin: NO!&lt;br /&gt;Kristin: that was not a complaint&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-501846914693899662?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/501846914693899662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=501846914693899662&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/501846914693899662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/501846914693899662'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/10/you-piss-me-off-real-good-i-no-talk-to.html' title='You piss me off real good! I no talk to you.'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-8878425037482556723</id><published>2008-10-17T10:46:00.007-04:00</published><updated>2008-10-17T20:00:57.183-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>McCain Hilarious at Al Smith 2008 Dinner</title><content type='html'>Seriously. I was laughing my ass off in the car last night. C-SPAN has the entire dinner, McCain's speech starts at 7:10 ::&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pq4zrOoHXeg&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/pq4zrOoHXeg&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;&lt;blockquote&gt;&lt;i&gt;There are signs of hope, even in this room full of proud, Manhattan Democrats. I can't shake that feeling that some people in here are pulling for me. I'm delighted to see you here tonight, Hillary. Where's Bill, by the way? Can't he take one night off from his tireless quest to make the man who defeated his wife the next President? The man is a relentless advocate for the Obama campaign, and he has a subtle approach to making the case. When a reporter asked him if Senator Obama was qualified to be President, Bill Clinton pointed out, "Sure. He's over 35 years of age and a US citizen". He was pandering to the strict constructionist crowd!&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The entire transcript &lt;a href="http://primebuzz.kcstar.com/?q=node/15091"&gt;is here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For serious, where has this speech writer been hiding?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-8878425037482556723?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/8878425037482556723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=8878425037482556723&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8878425037482556723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/8878425037482556723'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/10/mccain-hilarious-at-al-smith-2008.html' title='McCain Hilarious at Al Smith 2008 Dinner'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-662436631230411539</id><published>2008-10-03T09:37:00.001-04:00</published><updated>2008-10-03T09:41:28.596-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>The Real VP Debate</title><content type='html'>From Jared:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LUEPz2x8WTE/SOYgf13F7uI/AAAAAAAAA34/WbgiZebvaYU/s1600-h/Picture+4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_LUEPz2x8WTE/SOYgf13F7uI/AAAAAAAAA34/WbgiZebvaYU/s400/Picture+4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5252921746780450530" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://www.kungfuelection.com/"&gt;Kung Fu Election&lt;/a&gt;, Michelle can battle Cindy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-662436631230411539?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/662436631230411539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=662436631230411539&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/662436631230411539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/662436631230411539'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/10/real-vp-debate.html' title='The Real VP Debate'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LUEPz2x8WTE/SOYgf13F7uI/AAAAAAAAA34/WbgiZebvaYU/s72-c/Picture+4.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-5689373353738207607</id><published>2008-10-02T15:46:00.004-04:00</published><updated>2008-10-02T16:10:36.056-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beta testing'/><title type='text'>Found a Bug in HSBC Online Banking</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LUEPz2x8WTE/SOUl0jewEsI/AAAAAAAAA3g/YYpNZLkrzX0/s1600-h/cashedge-approved-1.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_LUEPz2x8WTE/SOUl0jewEsI/AAAAAAAAA3g/YYpNZLkrzX0/s400/cashedge-approved-1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5252646125205197506" /&gt;&lt;/a&gt;&lt;br /&gt;I bank with &lt;a href="https://www.bankofamerica.com/index.jsp"&gt;Bank of America&lt;/a&gt;, but my savings is with &lt;a href="http://citibank.com/"&gt;Citibank&lt;/a&gt; because (1) better interest rate, and (2) there is a branch close to my house. With my savings, I prefer to swing by the branch and make my deposits (it's like putting money in a piggy bank...oink). With the exception of savings and my safe deposit box, I do everything else online.&lt;br /&gt;&lt;br /&gt;In August, I opened up an &lt;a href="https://www.hsbccreditcard.com/"&gt;HSBC credit card&lt;/a&gt; to pay for the deck: it's 0% interest for 12 months, so I figured I'd passively do some credit card arbitrage and make interest for a year on the balance.&lt;br /&gt;&lt;br /&gt;Since a brand new &lt;a href="http://www.us.hsbc.com"&gt;HSBC&lt;/a&gt; branch opened about a mile from house this summer, and their savings rate is about a point higher than Citibank, I decided on 26-September to open &lt;a href="http://www.hsbcdirect.com/1/2/1/default/learn-more/osa?code=M1016406DK&amp;Wt.ac=HBUS_M1016406DK&amp;code=husa"&gt;an online savings account&lt;/a&gt; and a &lt;a href="http://www.us.hsbc.com/1/2/3/personal/savings/cds?code=MIW0000214&amp;WT.mc_id=HBUS_MIW0000214"&gt;CD&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I actually have three (3) checking accounts at BofA, with the so-called primary account just trafficking my mortgage (money in, payments out). I indicated on the application for HSBC to fund the initial deposit from my 2nd BofA account, and to verify online (instead of a trial deposit). This lets you enter your online banking credentials so it can make sure you're who you say you are (much like Quicken or MS Money, both of which suck). &lt;br /&gt;&lt;br /&gt;I clickity-click in my bank information, and it fails twice, then tells me it's going to go ahead and do trial deposits. Yesterday, I receive an email that my trial deposits are there, and to verify them so it can fund my new accounts.&lt;br /&gt;&lt;br /&gt;I log in to BofA, and the trial deposits aren't in account #2, they're in account #1. It failed b/c the account I request to use in the online verification is not the primary for my online banking account. &lt;br /&gt;&lt;br /&gt;I sent an email to HSBC this morning, but I have not received a response. I called their 800-number (which sounds to be in Bangalore), and was told I entered the wrong account number. I described what happened in exacting detail, but the rep kept arguing that I put in that account number (yes, you're right, I typed in an account number &lt;i&gt;I don't know&lt;/i&gt;, instead of the one I use all the time). My options were to mail in a check, or have my application deleted and start over.&lt;br /&gt;&lt;br /&gt;As you can imagine, I had the application deleted, but I won't be starting over (with them).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-5689373353738207607?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/5689373353738207607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=5689373353738207607&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/5689373353738207607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/5689373353738207607'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/10/found-bug-in-hsbc-online-banking.html' title='Found a Bug in HSBC Online Banking'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LUEPz2x8WTE/SOUl0jewEsI/AAAAAAAAA3g/YYpNZLkrzX0/s72-c/cashedge-approved-1.gif' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-4065472327326065426</id><published>2008-10-01T13:16:00.000-04:00</published><updated>2008-10-02T23:19:17.633-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='Andrew'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><category scheme='http://www.blogger.com/atom/ns#' term='Kosher for Passover'/><title type='text'>Yiddish with George and Laura</title><content type='html'>From Andrew:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HDCzsnU1VbQ&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/HDCzsnU1VbQ&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;OMG...Jews!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-4065472327326065426?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/4065472327326065426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=4065472327326065426&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/4065472327326065426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/4065472327326065426'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/10/yiddish-with-george-and-laura.html' title='Yiddish with George and Laura'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-6036662693401741024</id><published>2008-09-30T15:11:00.003-04:00</published><updated>2008-10-02T23:19:31.641-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Football'/><category scheme='http://www.blogger.com/atom/ns#' term='cunt punch'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>facebook.com/saracuda</title><content type='html'>From George:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://cdn.holytaco.com/www/wp-content/uploads/2008/09/palin-facebook-2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://cdn.holytaco.com/www/wp-content/uploads/2008/09/palin-facebook-2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-6036662693401741024?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/6036662693401741024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=6036662693401741024&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/6036662693401741024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/6036662693401741024'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/09/facebookcomsaracuda.html' title='facebook.com/saracuda'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-5235691984879954288</id><published>2008-09-25T23:04:00.004-04:00</published><updated>2008-10-02T23:10:32.509-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vacation'/><title type='text'>Return to London: 10/8-10/12</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LUEPz2x8WTE/SOWMMhlvUjI/AAAAAAAAA3o/XtDDgW04wtk/s1600-h/DSC00806.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_LUEPz2x8WTE/SOWMMhlvUjI/AAAAAAAAA3o/XtDDgW04wtk/s400/DSC00806.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5252758687200530994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;   * I haven't been since Spring of 2005. &lt;br /&gt;&lt;br /&gt;   * My favorite club, &lt;a href="http://www.fabriclondon.com/"&gt;Fabric&lt;/a&gt;, opened a new club at the O2 arena called &lt;a href="http://www.timeout.com/london/clubs/features/5035/Exclusive-inside_Fabric-s_new_club-matter-.html"&gt;matter&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;   * Flight + hotel was cheap ($300 less on Orbitz than booking on the airline and hotel sites separately).&lt;br /&gt;&lt;br /&gt;   * A break from the political news cycle, and CSPAN overload.&lt;br /&gt;&lt;br /&gt;   * Because I can.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-5235691984879954288?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/5235691984879954288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=5235691984879954288&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/5235691984879954288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/5235691984879954288'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/09/return-to-london-108-1012.html' title='Return to London: 10/8-10/12'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LUEPz2x8WTE/SOWMMhlvUjI/AAAAAAAAA3o/XtDDgW04wtk/s72-c/DSC00806.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19603289.post-1777650842023760797</id><published>2008-09-04T00:08:00.002-04:00</published><updated>2008-09-04T00:14:40.030-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>If my grocery list were the RNCC</title><content type='html'>today after work&lt;br /&gt;::applause::&lt;br /&gt;Milk / butter&lt;br /&gt;::applause::&lt;br /&gt;Eggs&lt;br /&gt;::applause::&lt;br /&gt;Maverick and goose&lt;br /&gt;::hoot and hollar::&lt;br /&gt;Tampons (See: yay no baby)&lt;br /&gt;::6 minute standing ovation::&lt;br /&gt;&lt;br /&gt;What the fuck? I know that political conventions define glad-handing, but is this a kindergarten play?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19603289-1777650842023760797?l=thealphajohn.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thealphajohn.blogspot.com/feeds/1777650842023760797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=19603289&amp;postID=1777650842023760797&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/1777650842023760797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19603289/posts/default/1777650842023760797'/><link rel='alternate' type='text/html' href='http://thealphajohn.blogspot.com/2008/09/if-my-grocery-list-were-rncc.html' title='If my grocery list were the RNCC'/><author><name>the Alpha John</name><uri>http://www.blogger.com/profile/03477884889680472982</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15533256025382715589'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>