<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.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-3185026201834346457</id><updated>2009-11-12T08:39:42.152-06:00</updated><title type="text">Agave Mountain</title><subtitle type="html">Bootstrapping a micro-ISV startup from scratch. My views on: startups, bootstrapping a business, software development, small business, consulting, and time management.</subtitle><link rel="alternate" type="text/html" href="http://www.agavemountain.com/blog.html" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default?start-index=26&amp;max-results=25" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://feeds.feedburner.com/AgaveMountain" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>201</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/AgaveMountain" type="application/atom+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">AgaveMountain</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-6181763431542964235</id><published>2009-10-18T14:26:00.001-05:00</published><updated>2009-10-18T14:26:02.803-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Scams" /><title type="text">US Bank ATM deposit + Double Hold = Major Headache</title><content type="html">&lt;blockquote&gt;   &lt;p&gt;Usually, whenever I hear the anguished complaints of evil banks slamming people with onerous overdraft charges, I'm first to roll my eyes and say &lt;em&gt;you should be more responsible with your money&lt;/em&gt;.&amp;#160; After all, I have canceled most of my credit cards, paid off all of our debt, and am frugal.&amp;#160; &lt;em&gt;That would never happen to me.&lt;/em&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Last weekend, I deposited my monthly paycheck at the local US Bank branch-- as an ATM deposit.&amp;#160; This would turn out to be one of the biggest banking mistakes I have ever made.&amp;#160; It turned into a bitter life lesson and a week long headache.&amp;#160; If you are contemplating making a deposit at the ATM, don't do it. &lt;/p&gt;  &lt;p&gt;It wasn't until my debit card was denied (Tuesday) at a merchant that I got a hint that something was wrong.&amp;#160; The actual worlds the clerk used were: &amp;quot;&lt;em&gt;the bank told us not to honor your card.&lt;/em&gt;&amp;quot;&amp;#160; Embarrassed, I paid with cash and left. &lt;/p&gt;  &lt;p&gt;As I logged onto the bank's online portal, I was shocked to find out that my account was now negative, to the tune of over two thousand dollars.&amp;#160; Not only had the deposit been reversed, but &lt;strong&gt;an additional amount of money equal to the face amount of the check had been removed from my account&lt;/strong&gt;.&amp;#160; In banking parlance, a had a &lt;strong&gt;double hold &lt;/strong&gt;on my funds.&lt;/p&gt;  &lt;p&gt;No problem.&amp;#160; I would just call and have the hold removed from the account before any damage was done.&amp;#160; I fully expected that the issue would be resolved within an hour, based on my interactions with other national banks like Bank of America, Bank One (now Chase), and local banks that I have had dealings with.&amp;#160; Any other time I have had a problem with a bank hold, I've been able to get them removed immediately.&amp;#160; So I picked up the phone and began the adventure.&lt;/p&gt;  &lt;p&gt;My first call was to the local branch where I deposited the check.&amp;#160; &lt;/p&gt;  &lt;p&gt;Teller #1 told me that there was nothing she could do and that I should just call back in a few days.&amp;#160; I insisted on speaking to someone else.&amp;#160; She transferred me to Robert.&amp;#160; &lt;/p&gt;  &lt;p&gt;Robert calmly and nonchalantly explained that the deposited check must have been rejected by the ATM department, and that because of federal law that they had to put a hold on my account.&amp;#160; &amp;quot;They deal with a lot of check fraud,&amp;quot; he offered.&amp;#160; He also stated that they would mail it to me.&amp;#160; When I asked how long that would take, he said &amp;quot;...up to three weeks.&amp;quot;&amp;#160; I was dumbstruck.&amp;#160; As I recovered, I asked about the overdraft fees that were inevitable.&amp;#160; &amp;quot;We &lt;em&gt;might&lt;/em&gt; refund those overdraft fees.&amp;quot;&amp;#160;&amp;#160; He recommended calling back in a few days to get the overdrafts reversed.&lt;/p&gt;  &lt;p&gt;At that point I started to get mad.&amp;#160; For three weeks they are going to hold my paycheck and slap me with overdrafts that you &lt;em&gt;might refund&lt;/em&gt;?&amp;#160; WTF?&amp;#160; I don't think so.&amp;#160; I calmly (as I could) explained that we have two separate issues: 1) for whatever reason the bank has my check and I want it back as soon as possible, and 2) US Bank has placed a hold on the money that was in my account before the check was deposited.&amp;#160; Making the deposit has become punitive.&amp;#160; I want the hold removed immediately.&amp;#160; He suggested I call the 1 800 number to see if they could track down the check in the &amp;quot;ATM vault.&amp;quot;&lt;/p&gt;  &lt;p&gt;After several more phone calls, I was given the bad news: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The ATM deposit was rejected, and the check was going to be mailed to me (.. and according to the personal banker, it might take up to two weeks to reach me; in fact it took a total of six days); &lt;/li&gt;    &lt;li&gt;Before the ATM deposit was rejected, a hold equal to the face amount of the check was placed on my account. &lt;/li&gt;    &lt;li&gt;When the pending deposit was reversed, the bank's computers debited my pre-deposit money, placing a &amp;quot;double hold&amp;quot; on my money.&amp;#160;&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Frantically, I tried to get the pre-deposit balance restored.&amp;#160; Every person I spoke to at the branch, or the regional banking center flatly stated it was an issue due to:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The timing of the deposit and the Columbus day holiday; and/or&lt;/li&gt;    &lt;li&gt;&amp;quot;Federal law&amp;quot; requires it to be this way; and/or&lt;/li&gt;    &lt;li&gt;&amp;quot;they&amp;quot; are picky with ATM deposits because &amp;quot;there is a lot of check fraud in the ATMs.&amp;quot; (usually there is a pause here, almost as if they are waiting for me to say, &amp;quot;&lt;em&gt;you got me... boy you guys are good.&lt;/em&gt;&amp;quot;&amp;#160; WTF?). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Each one of the bankers was sympathetic, readily admitting that it was a bank error -- but there was nothing they could do to to fix it.&amp;#160; The holds would &amp;quot;drop off&amp;quot; my account in a day or so anyway, and at best they could only do a &amp;quot;memo&amp;quot; credit that wouldn't appear until the next day. &lt;/p&gt;  &lt;p&gt;The next day I login and saw that the hold was removed and my balance was positive once again.&amp;#160; I saw that a check I wrote to TCF bank was rejected and paid.&amp;#160; I called US Bank and spoke to Robert who told me, &amp;quot;the normally don't refund charges at other banks.&amp;quot;&amp;#160; Nice.&amp;#160; &lt;/p&gt;  &lt;p&gt;On Thursday, I logged in to see that debit card transactions that had been swiped up to five days earlier are now approved, each one kicking off a $19 overdraft -- seven in total, for a total sum of $133 in overdrafts.&amp;#160; All of the transactions were immediately processed when the account was negative.&amp;#160; I had to call back once again and talk to Robert who said they would take care of the overdraft charges. &lt;/p&gt;  &lt;p&gt;On Friday, I took the paycheck and went into the bank to cash it.&amp;#160; Not deposit it, but cash it.&amp;#160; The teller took the check and disappeared.&amp;#160; As I looked over, the teller was talking with Maria (one of the people I spoke to on the phone).&amp;#160; I was expecting her to come out an apologize.&amp;#160; No apology.&amp;#160; The teller just needed special approval to give me the cash.&lt;/p&gt;  &lt;p&gt;On Saturday, I went to TCF bank to inquire about the check I wrote out for cash to deposit in our new savings account.&amp;#160; No fee was charged, but an extended hold was placed on the money because US Bank denied the first attempt at satisfying the check.&amp;#160; In order to remove the hold, I had to drive back to US Bank and get the branch manager to write up a letter that basically said they paid the check and the funds are in the bank. &lt;/p&gt;  &lt;h3&gt;Post Mortem&lt;/h3&gt;  &lt;p&gt;So this morning I took a moment to recount this story and to reflect on what went wrong and what I could have done better to resolve it.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ATM deposit = check fraud.&lt;/strong&gt;&amp;#160; Unless you are committing check fraud, there is no reason to deposit a check in an ATM.&amp;#160; Every single bank representative associated ATM deposits with check fraud.&amp;#160; There are even classes on how to &lt;a href="http://www.rmahq.org/RMA/RMAUniverse/EventInfoandRegistration/coursedescription?EID=UREFA"&gt;reject ATM claims&lt;/a&gt;.&amp;#160; When I dropped the words &amp;quot;ATM deposit&amp;quot; from my introductory monologue (each time I talked to yet another person) they responded much more favorably. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ATM deposits can take months to resolve.&lt;/strong&gt;&amp;#160; Chase bank has a complaint form that mentions a timeframe of &lt;a href="https://www.chase.com/cm/shared/crb/file/document/atm_deposit_claim_form.pdf"&gt;120 days after money goes missing&lt;/a&gt;.&amp;#160; Amazing.&amp;#160; There are some interesting stories on the Internet that stretch over the course of weeks to resolve. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Banks are mercenary about overdrafts.&lt;/strong&gt;&amp;#160; Debit card transactions that took place over the scope of the week were suddenly all processed immediately when the account was negative.&amp;#160; Even though they were refunded, I have no doubt that the transactions are reordered and processed to the bank's advantage.&amp;#160; Even more surprisingly was that a hold on funds in the account would cause this financial carnage. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;You want to complain?&lt;/strong&gt;&amp;#160; Several times I asked for what regulator I should complain to.&amp;#160; Not once did any U.S. Bank employee give me a name, telephone number, or even the name of a regulator agency to complain to.&amp;#160; I would ask is it the office of the comptroller of currency?&amp;#160; Fed?&amp;#160; They would change the subject immediately.&amp;#160;&amp;#160; Answer: for national banks is the &lt;a href="http://www.occ.treas.gov/customer.htm"&gt;Comptroller of the Currency&lt;/a&gt; (and the state regulator body)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Figure out if the person has the authority to fix the problem. If not, find someone who does.&lt;/strong&gt;&amp;#160; After thinking about it, and reviewing my notes, it dawned on me that I got trapped in mired in a layer of customer service agents that don't have the power to correct the issue.&amp;#160; I should have immediately asked to speak with the branch manager and escalated from there.&amp;#160; I allowed the financial automatons to investigate and call back.&amp;#160; The end result was a call at 4:30 PM saying there was nothing else they could do.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Cash is king.&lt;/strong&gt;&amp;#160; Seriously, I now understand why people in the 1930's hated bankers and buried their money in coffee cans. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-6181763431542964235?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/6181763431542964235/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=6181763431542964235" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/6181763431542964235" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/6181763431542964235" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/10/us-bank-atm-deposit-double-hold-major.html" title="US Bank ATM deposit + Double Hold = Major Headache" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-4152811300008013085</id><published>2009-09-14T21:04:00.001-05:00</published><updated>2009-09-14T21:04:15.766-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Gentoo" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title type="text">Gentoo: Recovering from installing a bad kernel</title><content type="html">&lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Arguably, Gentoo is the best Linux distribution available.&amp;#160; If you have patience and don't mind tweaking you can have a system that is built from the ground up with only the features you want with a minimum of what you don't.&amp;#160; However, for new users, it can be intimidating.&amp;#160; &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;The price of being able to build a system and kernel with exactly the features you want (my kernel is down to 3.1MB), there are some pain points.&amp;#160; The biggest headache is that after spending time configuring the kernel and you reboot only to get a kernel panic.&amp;#160; Here is how to get back to recompile the kernel.&amp;#160; &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Insert the CDROM and boot.&amp;#160; At the livecd prompt remount your drives (swap out sda with your device):&lt;/p&gt; &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;pre class="csharpcode"&gt;# swapon /dev/sda2
# mount /dev/sda3 /mnt/gentoo
# mount /dev/sda1 /mnt/gentoo/boot&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Next, mount the proc and dev mount points, and then change root:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
# chroot /mnt/gentoo /bin/bash
# env-update
&amp;gt;&amp;gt; Regenerating /etc/ld.so.cache...
# source /etc/profile&lt;/pre&gt;

&lt;p&gt;Now you can work on getting the kernel. &lt;/p&gt;

&lt;pre class="csharpcode"&gt;# cd /usr/src/linux
# make menuconfig
make &amp;amp;&amp;amp; make modules_install
make install

(change the grub.conf file)
exit
umount /mnt/gentoo/proc /mnt/gentoo/dev /mnt/gentoo
reboot&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&lt;/p&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-4152811300008013085?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/4152811300008013085/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=4152811300008013085" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/4152811300008013085" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/4152811300008013085" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/09/gentoo-recovering-from-installing-bad.html" title="Gentoo: Recovering from installing a bad kernel" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-3170853903710480</id><published>2009-09-08T23:45:00.001-05:00</published><updated>2009-09-08T23:45:58.311-05:00</updated><title type="text">Stock Market Crash Ahead?</title><content type="html">&lt;p&gt;CNN and the mainstream media are hyping the stock market.&amp;#160; Analysts and shills prophetically saying the economy is recovering. &lt;/p&gt;  &lt;p&gt;I don't see it.&amp;#160; I've been 100% in cash... and am still pessimistic. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Insiders are Selling&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In the last several weeks, corporate insiders (corporate executives and directors) have been heavily selling their company's stock, so much that it is attracting attention:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The last time insider selling was as high as it is now was in the period from late 2006 to late 2007. It was right after that insider-selling surge that the stock market began its long painful decline, says Charles Biderman, CEO of TrimTabs, an independent institutional research firm. (Source: &lt;a href="http://www.time.com/time/business/article/0,8599,1920635,00.html?iid=tsmodule"&gt;Time Magazine&lt;/a&gt;)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Credit Contraction Continues&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Today, &lt;a href="http://www.market-ticker.org/archives/1417-FLASH-Consumer-Credit-RECORD-Contraction.html"&gt;Karl Denniger&lt;/a&gt; pointed out that consumer credit has posted a record contraction, beating the Fed's estimates: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;*U.S. JULY CONSUMER CREDIT WAS FORECAST TO DROP BY $4 BILLION     &lt;br /&gt;*U.S. JULY CREDIT CARD, OTHER REVOLVING DEBT FALLS $6.1 BLN      &lt;br /&gt;*U.S. JULY NON-REVOLVING BORROWING FALLS RECORD $15.4 BILLION      &lt;br /&gt;*U.S. JUNE CREDIT FALLS $15.5 BLN, REVISED FROM $10.3 BLN DROP      &lt;br /&gt;*U.S. JULY CONSUMER CREDIT FALLS RECORD $21.6 BILLION, FED SAYS &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Banking Crisis Will Worsen&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Dan at The &lt;a href="http://thefundamentalview.blogspot.com/2009/09/banking-crisis-will-worsen.html"&gt;Fundamental View sums why the crisis will worsen&lt;/a&gt;: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Floyd Norris of the New York Times reported on Friday that 1 in 6 of all construction loans were in trouble.&amp;#160; He cited reports filed by banks with the FDIC at the end of June.&amp;#160; The figure is pegged at half a trillion dollars.&amp;#160; His piece titled &lt;a href="http://www.nytimes.com/2009/09/05/business/economy/05charts.html?ref=business"&gt;Construction Loans Falter, a Bad Omen for Banks&lt;/a&gt; provides some further insight into this&amp;#160; looming problem for the banks.&amp;#160; He states: &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Foresight estimates the biggest problems are in loans for condominium construction, with 38 percent of all construction loans troubled. Mr. Anderson says even that might be an understatement. He pointed to Corus Bank, a Chicago institution that specialized in condo loans. Its latest report shows that its capital is gone and that it expects losses on two-thirds of its construction loans. [emphasis mine] &lt;/p&gt;    &lt;p&gt;Let's re-cap [last] week&amp;#8217;s news. &lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Unemployment rises beyond the worst-case scenarios of the bank stress tests;       &lt;br /&gt;FDIC Chairperson Bair stated a couple days ago that commercial real estate will be the leader of the next wave of bank closures;&lt;/li&gt;      &lt;li&gt;1 in 6 construction loans pegged at half a trillion dollars are in jeopardy of defaulting&lt;/li&gt;      &lt;li&gt; Prime mortgages are now defaulting at higher rates;&lt;/li&gt;      &lt;li&gt; China is making noise about derivatives;&lt;/li&gt;      &lt;li&gt; Record food stamps being issued;&lt;/li&gt;      &lt;li&gt; Many families falling below the poverty line&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;So does this mean I should short every stock, or buy puts?&amp;#160; Not so fast.&amp;#160; Computer trading is responsible for near 70% of the market volume.&amp;#160; Without real buyers and sellers the stocks can be manipulated as the banks pump the stocks by selling between themselves until some sucker comes in... &lt;/p&gt;  &lt;p&gt;It will be an interesting Winter.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-3170853903710480?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/3170853903710480/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=3170853903710480" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/3170853903710480" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/3170853903710480" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/09/stock-market-crash-ahead.html" title="Stock Market Crash Ahead?" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-6465531245703856880</id><published>2009-09-05T12:52:00.001-05:00</published><updated>2009-09-05T12:56:27.500-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Nerdy" /><category scheme="http://www.blogger.com/atom/ns#" term="Perl" /><category scheme="http://www.blogger.com/atom/ns#" term="Consulting" /><title type="text">[Perl] Search and Replace Copyright in Source Code</title><content type="html">&lt;p&gt;Without getting into a debate over the legalities and application of copyright law, it was necessary to change the company name in the copyright statement in a large swath of code (the company had been purchased, then resold).&lt;/p&gt;  &lt;p&gt;For the record, let me say that programmers, IT administrators and managers generally make poor lawyers.&amp;#160; This probably has something to do with the total lack of legal education and training. &lt;/p&gt;  &lt;p&gt;This simple problem has a very elegant solution, which can be accomplished with a one line Perl program, executed from the command line.&lt;/p&gt;  &lt;p&gt;As I put forth the solution, it was dismissed. &lt;/p&gt;  &lt;p&gt;Over the next few weeks, the conversation turned.&amp;#160; Time was spent trying to develop an Ant script that would check and modify the code at build time.&amp;#160; Next, building an Eclipse plugin was investigated.&amp;#160; Finally, a developer had found an article on the Internet suggesting you should never, ever change the copyright text.&lt;/p&gt;  &lt;p&gt;I never heard anything about it after that. &lt;/p&gt;  &lt;p&gt;In any event, here is the solution.&amp;#160; The problem is that spread throughout thousands of files are these textual statements that need to be normalized:&lt;/p&gt;  &lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;   &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;     &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; Copyright &amp;#169; 1983 Umbrella Corporation; All rights reserved.&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; Copyright 1923 Umbrella Corporation; All rights reserved.&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; Copyright 2050 Umbrella Inc.; All rights reserved.&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; Copyright 1234 Umbrella LLC  &lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The easiest way is to use Perl.&amp;#160; With Perl we can search and replace with a regular expression in a file.&amp;#160; For example, lets say I want to replace &amp;quot;hello&amp;quot; with &amp;quot;hello world&amp;quot; in myfile.java.&amp;#160; Easy:&lt;/p&gt;

&lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;
  &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;
    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; Perl &amp;#8211;pi &amp;#8211;w &amp;#8211;e &amp;#8216;s/hello/Hello world/g&amp;#8217; myfile.java&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;We can easily search and replace text in one file, we just need to build a regular expression that will match the copyright statements, and replace it the &amp;quot;correct&amp;quot; one.&amp;#160; Also, we use find to find all of the files we need to do the search and replace and use xargs to format them for the command line.&lt;/p&gt;

&lt;p&gt;For example, to change the copyright year (&amp;quot;Copyright nnnn&amp;quot; to &amp;quot;Copyright 2009&amp;quot;) you would use:&lt;/p&gt;

&lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;
  &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;
    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; perl -pi -w -e &lt;span style="color: #006080"&gt;'s/Copyright \d+/Copyright 2009/g;'&lt;/span&gt; \&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; `find -name &lt;span style="color: #006080"&gt;&amp;quot;*.java&amp;quot;&lt;/span&gt; | xargs`&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;To change the company name:&lt;/p&gt;

&lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;
  &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;
    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; perl -pi -w -e &lt;span style="color: #006080"&gt;'s/Umbrella LLC/Umbrella Corporation/g'&lt;/span&gt; \&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; `find -name &lt;span style="color: #006080"&gt;&amp;quot;*.java&amp;quot;&lt;/span&gt; | xargs`&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Of course, these are just simple examples.&amp;#160; You will have to write a better regular expression and might have to take several stabs at it, but it isn't a three week issue.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-6465531245703856880?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/6465531245703856880/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=6465531245703856880" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/6465531245703856880" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/6465531245703856880" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/09/perl-search-and-replace-copyright-in.html" title="[Perl] Search and Replace Copyright in Source Code" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-3186176575031561425</id><published>2009-09-05T11:55:00.001-05:00</published><updated>2009-09-05T11:55:49.053-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SCM" /><title type="text">[subversion] Using patches to manage temporary coding changes</title><content type="html">&lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;You are deep into making a fix in the code.&amp;#160; You haven't checked in your code for a while when your client says, &amp;quot;I need a quick fix... now.&amp;quot;&amp;#160; If you check in the incomplete code it would cause some breakage.&amp;#160; What do you do?&amp;#160; Checkout the project again into a fresh directory?&amp;#160; Create a branch for your code?&amp;#160; ... None of the above. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Git has a phenomenal feature that allows you to &amp;quot;stash&amp;quot; your current changes and recover them later.&amp;#160; It takes your uncommitted changes and saves the, and reverts the code back to the previous state.&amp;#160; This is extremely helpful when someone interrupts you in the middle of code changes, but you don't want to commit your work to the repository yet.&amp;#160; You can generate a patch, saving your temporary work, and revert/checkout the fresh code from the repository.&lt;/p&gt;  &lt;p&gt;You can replicate this functionality with subversion by generating and applying a patch files. &lt;/p&gt;  &lt;p&gt;Creating a patch is painless.&amp;#160; All you need to do is use the 'svn diff' command.&amp;#160; Just make sure you added any new files to svn before making the patch:&lt;/p&gt;  &lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;   &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;     &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; svn diff &amp;gt; mypatch.patch&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;It's a good thing to note that you can email your client/coworker with the patch and they can try out your fixes.&amp;#160; This is a good way to have fixes verified before checking them in.&amp;#160; &lt;/p&gt;

&lt;p&gt;Next, you can revert everything and start over:&lt;/p&gt;

&lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;
  &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;
    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; svn revert -R&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Now you can do any quick and dirty fixes.&amp;#160; When you are done, simply apply the patch to bring your code back to the state where you left off:&lt;/p&gt;

&lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;
  &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;
    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; patch -p0 &amp;lt; mypatch.patch&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Done.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-3186176575031561425?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/3186176575031561425/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=3186176575031561425" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/3186176575031561425" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/3186176575031561425" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/09/subversion-using-patches-to-manage.html" title="[subversion] Using patches to manage temporary coding changes" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-6228910095318844435</id><published>2009-09-01T00:47:00.001-05:00</published><updated>2009-09-01T00:47:06.019-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal Finance" /><title type="text">We are now debt free...</title><content type="html">&lt;p&gt;Today, I wrote the last check and licked the last stamp; I'm proud to announce that we are now 100% debt free.&lt;/p&gt;  &lt;p&gt;I had to make a choice: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;I could liquidate all of our savings and pay off all of our debt, and potentially risk a catastrophic personal financial meltdown if I lost my job (I am required to pay unemployment taxes, but I don't qualify for unemployment benefits because I'm self-employed); or&lt;/li&gt;    &lt;li&gt;I could pay the minimum payments and try to build a larger emergency fund, and only then should I work to slash our debt. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I decided to slash and burn.&amp;#160; With the exception a $1,000 emergency fund, I have liquidated and closed every account I could get my hands on and poured the money into paying off the debt.&lt;/p&gt;  &lt;p&gt;Next, we are going to be saving 3-6 months of expenses and start saving for a house.&lt;/p&gt;  &lt;p&gt;I was in a mood to celebrate.&amp;#160; I remembered that I had a $5 &amp;quot;cash register&amp;quot; certificate that was due to expire today.&amp;#160; My plan was simple: get some free stuff, Chinese take out and maybe a $1 RedBox DVD rental...&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Cheaper is Not Always Better&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_hrVPPOyDXVE/Spy1V6MoTzI/AAAAAAAAAKk/u0D0m9z8aK4/s1600-h/motivatora9584929cb7808de3505662388bdd087f4a3ed00%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="motivatora9584929cb7808de3505662388bdd087f4a3ed00" align="right" src="http://lh5.ggpht.com/_hrVPPOyDXVE/Spy1WaFDhKI/AAAAAAAAAKo/gI9n0rsbdD8/motivatora9584929cb7808de3505662388bdd087f4a3ed00_thumb%5B1%5D.jpg?imgmax=800" width="244" height="196" /&gt;&lt;/a&gt;... At &lt;a href="http://www.walgreens.com/default.jsp"&gt;Walgreen's pharmacy&lt;/a&gt;, I picked up a some Clubman Lilac Vegetal aftershave, which was marked down to $2.19 on clearance (from approximately $8).&amp;#160; &lt;/p&gt;  &lt;p&gt;Now, I know what you are thinking.&amp;#160; &lt;em&gt;Eight dollars for aftershave?&amp;#160; That is some expensive stuff&lt;/em&gt;...&amp;#160; Figuring in the $5 certificate, it was essentially &lt;em&gt;free&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;The question is, what does $2 aftershave smell like?&lt;/p&gt;  &lt;p&gt;After smelling the aftershave, I can honestly that free was too expensive.&amp;#160; It smelled like cat urine from a cat that has a bladder infection, after it was ravaged by a skunk.&amp;#160; Truly, it is a fragrance for people who hate themselves and everyone around them.&lt;/p&gt;  &lt;p&gt;I would package it up as a potential frugal Christmas gift, but I don't know anyone that I hate that much. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-6228910095318844435?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/6228910095318844435/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=6228910095318844435" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/6228910095318844435" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/6228910095318844435" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/09/we-are-now-debt-free.html" title="We are now debt free..." /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-1036934363529932036</id><published>2009-06-30T11:50:00.001-05:00</published><updated>2009-06-30T11:50:48.177-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS X" /><title type="text">Screen Utility (and my .screenrc)</title><content type="html">&lt;p&gt;Screen is a fantastic utility which is best described as a &lt;em&gt;terminal multiplexer&lt;/em&gt;.&amp;#160; It comes standard in most modern Unix-based operating systems (e.g. Linux, MacOS X, BSD).&amp;#160; Simply stated it is one of the most useful utilities I have discovered and is a powerful tool in the hands of a console warrior. &lt;/p&gt;  &lt;p&gt;In a nutshell: you can run any number of console-based applications within a single terminal.&amp;#160; I usually fire up one terminal and then ssh to various hosts.&amp;#160; But one of the best features is the ability to decouple the terminal emulator from the running programs.&amp;#160; This means you can log out or loose your session accidentally and you can come right back to where you are. &lt;/p&gt;  &lt;p&gt;This if fantastic for embedded development.&amp;#160; I ssh to a workstation (Linux) attached to the embedded console over a USB serial port.&amp;#160; This is running 24 hours a day monitoring the embedded system.&amp;#160; I ssh to the workstation and use screen to reattach to the running serial console. I wrote about this &lt;a href="http://www.agavemountain.com/2009/03/using-screen-utility-to-connect-to.html"&gt;HERE&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Basic screen commands&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Control-A Control-C will create a new session/shell.&lt;/p&gt;  &lt;p&gt;Control-A Control-n (where n is the session number, 0-n) will switch you to that shell. &lt;/p&gt;  &lt;p&gt;Control-A Control-D will detach. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;My .screenrc&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;The only draw back is that the standard .screenrc configuration file is blank which leaves you with no visual indication of whether or not screen is running. &lt;/p&gt;  &lt;p&gt;Here is the contents of my ~/.screenrc file which will setup a caption at the bottom of the terminal session which will tell you the host, time, and other session information. &lt;/p&gt;  &lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;   &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;     &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; termcapinfo xterm|xterms|xs|rxvt ti@:te@&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; caption always &lt;span style="color: #006080"&gt;&amp;quot;%H %c | %x-w%{=}%n-%t%{-}w&amp;quot;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; shell -/bin/bash&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-1036934363529932036?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/1036934363529932036/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=1036934363529932036" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/1036934363529932036" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/1036934363529932036" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/06/screen-utility-and-my-screenrc.html" title="Screen Utility (and my .screenrc)" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-6648253622996129967</id><published>2009-06-30T00:31:00.001-05:00</published><updated>2009-06-30T00:31:11.002-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal Finance" /><title type="text">Back to Zero.</title><content type="html">&lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Whenever I tell anyone that I have liquidated our savings to pay off debt I get the same response: why?&amp;#160; I mean, in a risky recessionary environment why would you take accumulated savings and pay down unsecured debt?&amp;#160; To become debt free, that's why. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;img align="right" src="http://www.demotivateus.com/posters/common-sense-demotivational-poster.jpg" width="252" height="202" /&gt;In April, I publicly declared that my financial goal was to &lt;a href="http://www.agavemountain.com/2009/04/my-financial-goal-for-2009-100-debt.html"&gt;become debt free this year&lt;/a&gt;, and wipe away the debt that we accumulated when my wife went back to get her second degree and thousands of dollars worth of diagnostic medical tests (only to find out that I am entirely 100% healthy).&amp;#160; &lt;/p&gt;  &lt;p&gt;On the plus side, after the X-rays, being shot up with radioactive iodine, and fed into a spinning, clacking CT scanner, I've decided that I will never set foot into a hospital again, unless it is to watch my child being born.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;So here I am, three months later, our medical debt is entirely paid off, we now own our vehicles free-and-clear, and I'm down to two credit cards.&amp;#160; And not a moment too soon. &lt;/p&gt;  &lt;p&gt;Crazy, huh?&amp;#160; Even financial guru &lt;a href="http://www.hulu.com/watch/19681/suze-orman"&gt;Suze Orman&lt;/a&gt; has shifted her financial advice to do exactly opposite of what I am trying to accomplish -- her advice now is to pay the minimum payments on all your credit cards and pile up cash, because of the uncertain future.&amp;#160; But soon people who follow her advice will be facing loan-shark interest rates, enhanced fees, and higher minimum payments. &lt;/p&gt;  &lt;p&gt;This week, I have received not one, but three letters from financial companies informing me that for a variety of reasons, my credit card rates are being increased.&amp;#160; Rate-jacking is now rampant and even &amp;quot;good&amp;quot; customers are getting slammed with arbitrary fees.&amp;#160; &lt;/p&gt;  &lt;p&gt;Two of my business cards were preemptively closed by their issuers; one was never activated and the other was my OfficeMax corporate card (HSBC closed them all).&amp;#160; I received a $15 coupon (off $50 purchase) from OfficeMax as a consolidation prize. &lt;/p&gt;  &lt;p&gt;Personally, I have bank fee fatigue; I have developed a permanent aversion to credit.&amp;#160; I'm in the process of closing every charge and credit card I can.&amp;#160;&amp;#160; Credit score be damned.&amp;#160; Never again.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Baby Steps&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So, I'm three months into the process and our first ever budget was a disaster.&amp;#160; This was expected.&amp;#160; It takes a few&amp;#160; months to get enough practice to make a decent budget. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Step 0: &lt;/strong&gt;&lt;strong&gt;&lt;a href="http://www.hulu.com/watch/1389/saturday-night-live-dont-buy-stuff"&gt;Stop buying stuff you can't afford&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;.&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Check.&amp;#160; &lt;/em&gt;Before the recession, I had been shopping for a Cessna 172 and got pre-approved for a loan.&amp;#160; Now, I will have to save up enough to pay cash.&amp;#160; Someday...&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Step 1:&amp;#160; build up a $1,000 cash emergency reserve fund.&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Check. &lt;/em&gt;This was easy since we already had some savings.&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Step 2: Aggressively pay off debt with the &amp;quot;debt snowball&amp;quot; method.&lt;/strong&gt;&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Step 2 involves listing your (non-mortgage) debts from smallest to largest, and aggressively paying each debt off in order.&amp;#160; I hate to admit it, but I was stunned when I added up all of our debts -- out of sight, out of mind as they say.&amp;#160; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;I paid off and &lt;a href="http://www.agavemountain.com/2009/02/american-express-continues-to-slash.html"&gt;canceled my American Express ONE card&lt;/a&gt; and closed the attached savings account. &lt;/li&gt;    &lt;li&gt;I had one card because it offered the best foreign currency conversion rate (not any more, now they are charging a conversion fee plus a 3%).&amp;#160; They are also now charging foreign currency conversion fees on transactions handled &lt;em&gt;in U.S. currency and in the United States&lt;/em&gt; for foreign companies.&amp;#160; Paid off and canceled.&lt;/li&gt;    &lt;li&gt;Another gave two frequent flier miles per dollar.&amp;#160; Now the rate is 1 mile per dollar and they refused to waive the $85 annual fee.&amp;#160; I canceled my personal and business cards. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The goal is the pay off your debt as fast as possible:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If you have stocks or savings, liquidate them and use that money to pay off the debt; and&lt;/li&gt;    &lt;li&gt;If you are making contributions for IRAs, 401ks, 529s, or other savings, you stop and use that money to pay off debt; and&lt;/li&gt;    &lt;li&gt;Find additional streams of income to help pay off the debts.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The first smallest debt gets paid first and all other debts get the minimum payment.&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Step 3: build up a 3-6 month emergency fund.&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This would be next. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Miscellaneous Financial Tips&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Quicken Online (free) sucks. It is without a doubt one of the worst financial web sites ever created.&amp;#160; It is a feature limited service (probably) designed to get you to purchase Intuit's other products.&amp;#160; However, after a few days it would not interface with my bank.&amp;#160; Now all the transactions are duplicated.&amp;#160; The balance appears right but the transactions below are all duplicated.&amp;#160; Void checks disappear from the system.&amp;#160; Seriously, use mint if you are looking for a free online service (and have no problems with divulging your intimate personal details to a company). &lt;/li&gt;    &lt;li&gt;My wife and I now share a single checkbook.&amp;#160; We used to have separate checkbooks, but not any longer.&amp;#160; It makes reconciling the accounts so much easier.&amp;#160; &lt;/li&gt;    &lt;li&gt;No more online statements.&amp;#160; Financial companies save tons of money by not sending you statements in the mail, but pass none of those savings on to you.&amp;#160; In fact, if you are anything like me, I'm willing to bet that you've lost one or more of those precious emails saying &amp;quot;your statement is ready,&amp;quot; and have gotten hit with a late charge.&amp;#160; I guess that is your bonus for &amp;quot;helping the environment.&amp;quot;&amp;#160; Been there, done that, got the T-shirt.&amp;#160; Not anymore, I always request a paper statement. &lt;/li&gt;    &lt;li&gt;I now pay bills the old fashioned way -- with a pen, checks, envelopes and stamps, usually on a Saturday morning.&amp;#160; It forces us to go over the bills deliberately and it is a painful enough that it helps renew our commitment to being debt (and bill) free as soon as possible.&lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-6648253622996129967?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/6648253622996129967/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=6648253622996129967" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/6648253622996129967" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/6648253622996129967" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/06/back-to-zero.html" title="Back to Zero." /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-1184383669460737606</id><published>2009-04-26T15:25:00.001-05:00</published><updated>2009-04-26T15:25:42.967-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Announcements" /><title type="text">Spammers are forging e-mail to appear from this domain</title><content type="html">&lt;p&gt;A spammer is sending spam with forged headers to appear as if the email originated from user accounts at this domain.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;As of three minutes ago, I am receiving bounced messages from a variety of e-mail addresses.&amp;#160; Looking at the bounced e-mail headers, these messages are originating from the following IP address: 122.46.104.49.&amp;#160; That IP address is located in Seoul, Republic of Korea (Powercomm ISP).&lt;/p&gt;  &lt;p&gt;Thankfully, the flood of e-mail bounces have stopped.&amp;#160; &lt;/p&gt;  &lt;p&gt;If you have received any of these e-mails, they did not originate from our servers, nor did they pass through our e-mail servers. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-1184383669460737606?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/1184383669460737606/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=1184383669460737606" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/1184383669460737606" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/1184383669460737606" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/04/spammers-are-forging-e-mail-to-appear.html" title="Spammers are forging e-mail to appear from this domain" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-4161399587430248261</id><published>2009-04-08T22:41:00.001-05:00</published><updated>2009-04-08T22:41:44.075-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS X" /><title type="text">How to recursively delete files and directories (*.svn) with find and xargs</title><content type="html">&lt;p&gt;Every once in a while, I want to delete some files from a set of directories.&amp;#160; Under windows you do a file search, select everything with CTRL-A and delete.&amp;#160; It is every bit as simple under Linux and OS X.&amp;#160; &lt;/p&gt;  &lt;p&gt;For example, let's say you want to tar up or merge directories that are checked out of a subversion repository.&amp;#160; If you just tar up the files, you will have extra copies of every single file making the tarball needlessly large.&amp;#160; Not good.&amp;#160; Or maybe you want to delete those .DS_Store files that OS X craps all over your hard drives. &lt;/p&gt;  &lt;p&gt;Here's how to do it.&amp;#160; Use the find command to find the .svn directories and pipe the output to the xargs utilities to merge the output into something the rm command can use.&amp;#160; This can be used to quickly delete other files patterns, but be very careful (for obvious reasons):&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; rm -rf `find . -name &lt;span style="color: #006080"&gt;&amp;quot;*.svn&amp;quot;&lt;/span&gt; | xargs`&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Simple. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-4161399587430248261?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/4161399587430248261/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=4161399587430248261" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/4161399587430248261" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/4161399587430248261" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/04/how-to-recursively-delete-files-and.html" title="How to recursively delete files and directories (*.svn) with find and xargs" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-1457991179679863957</id><published>2009-04-06T23:52:00.001-05:00</published><updated>2009-04-06T23:52:48.579-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Business" /><category scheme="http://www.blogger.com/atom/ns#" term="Personal Finance" /><title type="text">My Financial Goal for 2009: 100% Debt Free (forever)</title><content type="html">&lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Tonight while reconciling bank statements and pulling together the documents necessary to file my taxes, I decided to cut up my credit cards and work towards the weighty goal of being debt free, forever.&lt;/em&gt;&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I often listen to &lt;a href="http://www.daveramsey.com/"&gt;Dave Ramsey's&lt;/a&gt; podcast via iTunes. &lt;/p&gt;  &lt;p&gt;On the podcast (which is a syndication of his on-air radio show), &lt;a href="http://en.wikipedia.org/wiki/Dave_ramsey"&gt;Dave Ramsey&lt;/a&gt; espouses dead simple advice and counsels live callers who range for jubilant (newly debt free) to destitute and fearful. His roadmap to financial prosperity is shockingly simple: cut up your credit cards, budget, live within your means, ignore your FICO score, pay off your mortgage and save like &lt;a href="http://en.wikipedia.org/wiki/Scrooge_McDuck"&gt;Scrooge McDuck&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;At first, I found his plain talking advice to be fanatical, but it was the callers who were facing horrible financial woes that kept me listening -- the human financial train wrecks.&amp;#160; And they piled up every day, asking for advice on how to sort out their lives.&amp;#160; &lt;/p&gt;  &lt;p&gt;I listened to stunned and grieving widows ask for basic financial advice and children swindled out of their inheritance by step parents who left multigenerational family businesses to their children (cutting out the rightful and intended heirs).&amp;#160; I paid attention to the poor trusting souls who cosigned loans for their irresponsible children or friends, only to find themselves harassed by bill collectors.&amp;#160; I also snorted at the callers who bought houses and cars they could never afford, ran up massive credit card debt, and they asked if they should file bankruptcy.&amp;#160;&amp;#160; It was always there: job losses, death, unforeseen medical crises, divorce, greed, financial gluttony, avarice, family infighting, and the ultimate reckoning. &lt;/p&gt;  &lt;p&gt;And as I continued to listen, he started to make more sense. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Pay off your mortgage?&lt;/em&gt;&amp;#160; Bah, what about the tax deduction?&amp;#160; Oh... the calculator agrees with Ramsey.&amp;#160; You will save more money by paying off your mortgage in interest than you will by deducting the interest on your tax return.&amp;#160; Why are all the other financial &amp;quot;gurus&amp;quot; lying? &lt;/p&gt;  &lt;p&gt;&lt;em&gt;But what about my FICO score?&lt;/em&gt;&amp;#160; Since I'm a small business owner and derive all of my income from my Sub-S Corp, I will have to go through manual underwriting for a mortgage or major purchase anyway.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;But what about the credit card rewards?&lt;/em&gt;&amp;#160; I've already been burned by Capital One who modified their &amp;quot;no hassle&amp;quot; rewards program after I accrued the points, making the reward program nearly worthless.&amp;#160; American Express dutifully deposited my 1% cash rebate into my savings account, but then cut the savings interest rate, &lt;a href="http://www.agavemountain.com/2009/02/american-express-continues-to-slash.html"&gt;lowered my limit, and jacked up my interest rate&lt;/a&gt;.&amp;#160; CitiBank notified me this week that they are decreasing the mileage earned per dollar spent on my card, at the same time the airline is making it more difficult to redeem free tickets. &lt;/p&gt;  &lt;p&gt;And so on... until each of my objections and rationalizations were killed by rational thought over time.&amp;#160; Slowly, I came to realize that cash was the way to go, especially in these turbulent times.&lt;/p&gt;  &lt;p&gt;So, my financial goal for this year is simple -- through financial self depravation, pay off all of our debt and forever leave credit cards behind in my personal and business life. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-1457991179679863957?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/1457991179679863957/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=1457991179679863957" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/1457991179679863957" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/1457991179679863957" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/04/my-financial-goal-for-2009-100-debt.html" title="My Financial Goal for 2009: 100% Debt Free (forever)" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-4696819676402614985</id><published>2009-04-05T14:11:00.001-05:00</published><updated>2009-04-05T14:11:20.759-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iPhone SDK" /><title type="text">Apple and Stanford to offer free iPhone development courses</title><content type="html">&lt;p&gt;It was announced this week that Stanford would offer a free developer course through iTunes U.&amp;#160; More specifically, Stanford will offer the video and course materials from Stanford's undergraduate iPhone app development course.&amp;#160; The course was created through a partnership between Apple and Stanford.&lt;/p&gt;  &lt;p&gt;The first video was uploaded to iTunes on Friday. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-4696819676402614985?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/4696819676402614985/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=4696819676402614985" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/4696819676402614985" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/4696819676402614985" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/04/apple-and-stanford-to-offer-free-iphone.html" title="Apple and Stanford to offer free iPhone development courses" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-8818178907053246987</id><published>2009-03-31T06:17:00.001-05:00</published><updated>2009-03-31T06:17:38.173-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Announcements" /><title type="text">16,906 miles, 4 cities, and 2 more passport stamps</title><content type="html">&lt;p&gt;I can honestly say that it is good to be back home, especially after a tortuous eleven hour long-haul economy flight from Tokyo to Chicago.&amp;#160;&amp;#160; The end result of my last trip: 16,905 miles, 4 cities, and two new passport stamps.&amp;#160; I now have banked a total of 213,207 frequent flier miles and am on track to earn gold elite status on American Airlines this year (the &amp;quot;hard&amp;quot; way).&lt;/p&gt;  &lt;p&gt;This trip, I switched out my T-Mobile SIM for a foreign SIM and left the laptop at home.&amp;#160; For one week, I didn't even check my email and or voicemail.&amp;#160; It was relaxing to say the least.&lt;/p&gt;  &lt;p&gt;My iPod saved my sanity.&amp;#160; I assumed that since the Japan Airlines flight segments were in a 747-400, that the video/entertainment system was going to be horrible and it was.&amp;#160; If I had to watch James Bond Quantum of Solace one more times I would poke my eyes out with chopsticks.&amp;#160; &lt;/p&gt;  &lt;p&gt;Before I left, I purchased the first season of Stargate SG-1, a rental movie, and a book with the Amazon Kindle application.&amp;#160; I don't know if I would have made it without those distractions.&amp;#160; &lt;/p&gt;  &lt;p&gt;Dead tired tired, I crashed early and woke up at 1 am.&amp;#160; I've been up ever since trying working through my inbox, paying bills and responding to emails (I've jumped on the GTD bandwagon).&amp;#160; My shredder has been noisily chewing up the never ending stream of credit card solicitations, and mail.&amp;#160; &lt;/p&gt;  &lt;p&gt;I'm now ready to go back to work and will be in very early, a rarity for me.&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;My schedule was changed to include a stopover in Tokyo.&amp;#160; Next time, I'm going avoid a stop over in Tokyo and try to fly straight through.&amp;#160; Tokyo is just too expensive and too difficult to get around in without knowing some Japanese.&lt;/li&gt;    &lt;li&gt;The Hilton Narita (Tokyo) charges 11000 yen (online reservation) for a room.&amp;#160; Wait and reserve at the airport hotel desk, and the price is only 7900 yen.&amp;#160; Free shuttle to/from the airport.&amp;#160; A taxi to the local mall is expensive -- $20 each way.&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://boardingarea.com/blogs/loyaltytraveler/2009/03/19/american-airlines-double-eqm-through-june-15-2009/"&gt;American Airlines Double EQM (Elite Qualifying Miles).&lt;/a&gt;&amp;#160; Registration code: DBEQM.&amp;#160; Register and fly between March 18 through July 15, 2009 and elite qualifying miles are doubled.&amp;#160; Considering that I already have racked up 17k EQMs so far this year, this puts me on track to earn Gold elite status on American Airlines this year (without any mileage runs).&amp;#160; &lt;/li&gt;    &lt;li&gt;I bough an iPod tip for my iGo battery charger (consumes AA batteries).&amp;#160; The eleven hour flight required four AA batteries.&amp;#160; This is now part of my essential travel gear. &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-8818178907053246987?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/8818178907053246987/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=8818178907053246987" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/8818178907053246987" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/8818178907053246987" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/03/16906-miles-4-cities-and-2-more.html" title="16,906 miles, 4 cities, and 2 more passport stamps" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-2257639698500817554</id><published>2009-03-18T10:06:00.003-05:00</published><updated>2009-03-18T10:06:58.910-05:00</updated><title type="text">Using screen utility to connect to serial devices</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Since I've discovered the screen utility, I've stopped using minicom to connect to attached embedded devices over serial.  This works under OS X and Linux. The real bonus is that I can disconnect from the remote workstation and reattach when I need to. &lt;br/&gt;&lt;br/&gt;For example, to connect to a serial device (over a USB doggle) at 155200 baud: &lt;br/&gt;&lt;br/&gt;$ screen /dev/ttyUSB0 115200&lt;br/&gt;&lt;br/&gt;Now if I disconnect from the workstation this is attached to I can reattach to the screen session:&lt;br/&gt;&lt;br/&gt;$ screen -list&lt;br/&gt;&lt;br/&gt;There is a screen on:&lt;br/&gt;        9514.pts-0.twc-joe      (Dettached)&lt;br/&gt;1 Socket in /var/run/screen/S-root.&lt;br/&gt;&lt;br/&gt;I can reattach to the session and resume where I left off:&lt;br/&gt;&lt;br/&gt;$ screen -r 9514.pts-0.twc-joe&lt;br/&gt;&lt;br/&gt;#/&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=0e5e6b0b-8b36-421d-a965-997393c6d2dc' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-2257639698500817554?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/2257639698500817554/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=2257639698500817554" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/2257639698500817554" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/2257639698500817554" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/03/using-screen-utility-to-connect-to.html" title="Using screen utility to connect to serial devices" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-3035797769723366428</id><published>2009-03-13T22:40:00.001-05:00</published><updated>2009-03-13T22:40:12.941-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS X" /><title type="text">Fix: Running screen under Mac OS X clobbers path</title><content type="html">&lt;p&gt;I've started using the screen utility under Linux and Mac OS X.&amp;#160; Unfortunately, under Mac OS X, running the screen utility clobbers the path.&amp;#160; The quick fix is to edit ~/.screenrc and add the following code:&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; shell -/bin/bash&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
Exit and restart screen.   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-3035797769723366428?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/3035797769723366428/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=3035797769723366428" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/3035797769723366428" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/3035797769723366428" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/03/fix-running-screen-under-mac-os-x.html" title="Fix: Running screen under Mac OS X clobbers path" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-8118372037367366608</id><published>2009-03-06T10:07:00.001-06:00</published><updated>2009-03-06T10:07:17.423-06:00</updated><title type="text">Fear and loathing</title><content type="html">&lt;p&gt;&lt;img height="184" alt="" src="http://1.bp.blogspot.com/_hyECORLe2jg/SZ4RUewTz-I/AAAAAAAADgM/UdfDognmwK8/s400/Welcome+Back+Carter.bmp" width="195" align="left" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;I've been relatively upbeat about the economy where my business is concerned -- I'm still getting calls from recruiters and I see that there are contracts out there.&amp;#160; However, lately I've been feeling uneasy with the future.&amp;#160; &lt;/p&gt;  &lt;p&gt;Every time President Obama opens his mouth, I feel like the Democratic party is using the economic recession as an excuse to push through a slew of big government socialist programs that would otherwise never see the light of day. &lt;/p&gt;  &lt;p&gt;Some of the things buried in these bills is simply scary.&amp;#160; The Wall Street Journal had an op-ed piece that nicely summarizes and captures my feelings.&amp;#160; Its nice to see that I'm not the only one who is nervous (Click &lt;a href="http://online.wsj.com/article/SB123629969453946717.html"&gt;HERE&lt;/a&gt; for the Wall Street Journal article). &lt;/p&gt;  &lt;p&gt;Obama has yet to put forth a plan to address the credit crisis or economic malaise that is effecting our country, but instead is pushing to change the foundations of American capitalism.&amp;#160; &lt;/p&gt;  &lt;p&gt;Just think about this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;New and expanded refundable tax credits would raise the fraction of taxpayers paying no income taxes to almost 50% from 38%. This is potentially the most pernicious feature of the president's budget, because it would cement a permanent voting majority with no stake in controlling the cost of general government.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I was stunned.&amp;#160; This is what stick it to the rich means -- more half the population will pay no tax at a time when Obama is rolling out massive new initiatives for health care, spending trillions on bailouts, while not seriously tackling the explosion in costs (or expected defects) associated with Medicare, Medicaid, and Social Security. &lt;/p&gt;  &lt;p&gt;Under Obama the military will be drawn down to what it was before WWII. &lt;/p&gt;  &lt;p&gt;Are they working on resolving these issues?&amp;#160; No, they seem to be putting most of their effort in attacking a radio talk show host -- Rush Limbaugh, because he isn't popular with focus groups.&lt;/p&gt;  &lt;p&gt;Even Geitner, the Treasury Secretary is worried about Global warming during his recent testimony to congress on what the government is doing about the economic crisis.&amp;#160; If he things Global warming is what the Treasury Secretary should be focused on, them perhaps we need a new Treasury Secretary. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-8118372037367366608?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/8118372037367366608/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=8118372037367366608" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/8118372037367366608" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/8118372037367366608" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/03/fear-and-loathing.html" title="Fear and loathing" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_hyECORLe2jg/SZ4RUewTz-I/AAAAAAAADgM/UdfDognmwK8/s72-c/Welcome+Back+Carter.bmp" 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-3185026201834346457.post-8592663831198356212</id><published>2009-02-21T12:12:00.001-06:00</published><updated>2009-02-21T12:12:39.709-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Scams" /><title type="text">Regscan = scam (Skype: Windows Requires Immediate Attention/Malware)</title><content type="html">&lt;p&gt;Regscan is a scam.&amp;#160; The business model is to trick gullible users that they have malware or viruses on their PCs and get them to pay for useless software.&amp;#160; &lt;/p&gt;  &lt;p&gt;This morning I got this message through SKYPE: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;WINDOWS REQUIRES IMMEDIATE ATTENTION     &lt;br /&gt;============================= &lt;/p&gt;    &lt;p&gt;ATTENTION ! Security Center has detected     &lt;br /&gt;malware on your computer ! &lt;/p&gt;    &lt;p&gt;Affected Software: &lt;/p&gt;    &lt;p&gt;Microsoft Windows Vista     &lt;br /&gt;Microsoft Windows XP      &lt;br /&gt;Microsoft Windows 2000      &lt;br /&gt;Microsoft Windows NT Server 4.0      &lt;br /&gt;Microsoft Windows Win98      &lt;br /&gt;Microsoft Windows Server 2003 &lt;/p&gt;    &lt;p&gt;Impact of Vulnerability: Remote Code Execution / Virus Infection /     &lt;br /&gt;Unexpected shutdowns &lt;/p&gt;    &lt;p&gt;Recommendation: Users running vulnerable version should install a repair     &lt;br /&gt;utility immediately &lt;/p&gt;    &lt;p&gt;Your system IS affected, download the patch from the address below !     &lt;br /&gt;Failure to do so may result in severe computer malfunction. &lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.regscan.cc/?q=scan"&gt;http://www.regscan.cc/?q=scan&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The only problem is that I'm not running Windows (I'm running Skype through Mac OS X).&amp;#160; Of course, it didn't stop the fake virus scanner from confidently telling me that my windows operating system was infected with several viruses.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-8592663831198356212?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/8592663831198356212/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=8592663831198356212" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/8592663831198356212" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/8592663831198356212" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/02/regscan-scam-skype-windows-requires.html" title="Regscan = scam (Skype: Windows Requires Immediate Attention/Malware)" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-7309803891978056024</id><published>2009-02-21T04:08:00.001-06:00</published><updated>2009-02-21T04:08:17.969-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal Finance" /><title type="text">Financial Crisis Made Simple...</title><content type="html">&lt;p&gt;Here are a few videos that explain in a simple way some of the problems/issues with the current financial quagmire:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Crisis of Credit Visualized (2 parts)&lt;/strong&gt;&lt;/p&gt; &lt;embed src="http://www.youtube.com/v/Q0zEXdDO5JU&amp;amp;hl=en&amp;amp;fs=1" width="480" height="295" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" /&gt;&lt;embed src="http://www.youtube.com/v/iYhDkZjKBEw&amp;amp;hl=en&amp;amp;fs=1" width="480" height="295" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" /&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Money as Debt (parts 1 - 5)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;   &lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:4cb63ede-13d7-4742-a6b7-66253fb4dfc9" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vVkFb26u9g8&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/vVkFb26u9g8&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt; &lt;/p&gt;  &lt;p&gt;   &lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:a6dbc5f4-8840-4584-abb9-2c1d5d207d58" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/sanOXoWl0kc&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/sanOXoWl0kc&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt; &lt;/p&gt;  &lt;p&gt;   &lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:66dff6cd-4760-4507-bd46-147c36ee125c" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/kTv1fo6sKmo&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/kTv1fo6sKmo&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:584a56b7-a3a9-4150-8944-f27878d665e3" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3qicabStQkc&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/3qicabStQkc&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:fd368b41-0ea0-420f-865b-7073e7c29488" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7kpSbkaD4tM&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/7kpSbkaD4tM&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-7309803891978056024?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/7309803891978056024/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=7309803891978056024" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/7309803891978056024" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/7309803891978056024" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/02/financial-crisis-made-simple.html" title="Financial Crisis Made Simple..." /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-4460189175875328596</id><published>2009-02-21T01:42:00.001-06:00</published><updated>2009-02-21T01:42:10.386-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="SCM" /><title type="text">Git: Script to svn rebase subdirectories</title><content type="html">&lt;p&gt;I'm now using git for all my projects.&amp;#160; Primarily, I am now using it as a front end to various subversion repositories at home and when I'm out and about.&amp;#160; As a result, I now have several directories that contain a growing number of git repositories.&amp;#160; &lt;/p&gt;  &lt;p&gt;As I have become more sophisticated, I started categorize them by context.&amp;#160; I now have subdirectories for each context I operate under -- one for each client, one for my paperless office files, one for opens source repositories pulled from the Internet, and so on.&amp;#160; &lt;/p&gt;  &lt;p&gt;For example, I will have one directory named client1 with the repositories related to work at client1.&amp;#160; That way when I'm on a job site and plugged into a client's network I can execute the script and all of the changes from the repositories will be pulled and merged into my repository.&lt;/p&gt;  &lt;p&gt;For convenience, I wrote the following script execute a &amp;quot;git svn rebase&amp;quot; on each of the subdirectories.&amp;#160; &lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; #!/bin/sh&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; #&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; # Rebase git repositories &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; current directory&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; #&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; # Written by Joe Turner &amp;lt;joe@agavemountain.com&amp;gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; REPOSITORY &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; `ls -1`&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;do&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; echo &lt;span style="color: #006080"&gt;'Performing git rebase in : '&lt;/span&gt; $REPOSITORY&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt; cd $REPOSITORY&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt; git svn rebase&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt; cd ..&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt; done&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-4460189175875328596?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/4460189175875328596/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=4460189175875328596" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/4460189175875328596" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/4460189175875328596" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/02/git-script-to-svn-rebase-subdirectories.html" title="Git: Script to svn rebase subdirectories" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-3037050630085961073</id><published>2009-02-21T01:18:00.001-06:00</published><updated>2009-02-21T01:18:01.779-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="cpp" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS X" /><title type="text">How to force qmake to stop generating an XCode project and generate a gcc makefile instead</title><content type="html">&lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Problem: Under OS X, qmake automatically generates an XCode project from a qmake project file.&amp;#160; How do I force it to make a standard gcc makefile?&lt;/em&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Unless you have configured Qt when you build it, the default under Mac OS X is to generate an XCode project.&amp;#160; The way to generate a &amp;quot;standard&amp;quot; gcc makefile is to pass the &amp;quot;-spec macxg++&amp;quot; switches on the command line:&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; qmake -spec macx-g++ &lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Additionally, you should place the following into your project file in order to stop it from generating the app_bundle:&lt;/p&gt;

&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;
  &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; mac { &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;   CONFIG -= app_bundle &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-3037050630085961073?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/3037050630085961073/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=3037050630085961073" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/3037050630085961073" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/3037050630085961073" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/02/how-to-force-qmake-to-stop-generating.html" title="How to force qmake to stop generating an XCode project and generate a gcc makefile instead" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-18013251521605099</id><published>2009-02-18T01:50:00.001-06:00</published><updated>2009-02-18T01:50:22.835-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Business" /><title type="text">American Express continues to slash credit lines (and now mine)</title><content type="html">&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_hrVPPOyDXVE/SZu9vNvPCrI/AAAAAAAAAJc/HKA-ZXv0CaA/s1600-h/amex%5B3%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="124" alt="amex" src="http://lh4.ggpht.com/_hrVPPOyDXVE/SZu9vSPHk6I/AAAAAAAAAJg/gd2WzQYOVUs/amex_thumb%5B1%5D.jpg?imgmax=800" width="244" align="left" border="0" /&gt;&lt;/a&gt; You have probably heard about American Express slashing credit lines with entrepreneurs, and scrutinizing people's spending patterns for reasons to start cutting credit lines.&lt;/p&gt;  &lt;p&gt;I smirked.&amp;#160; After all, you shouldn't finance a business on credit cards -- it is just plain stupid.&amp;#160; &lt;/p&gt;  &lt;p&gt;I have good credit, pay on time, and I usually don't carry a balance.&amp;#160; It will never happen to me.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;Well, today I received a letter from American Express informing me that they were slashing the credit line on my American Express One card.&amp;#160; For those of you who don't know what the One card is -- it is a credit card bundled with an FDIC-insured savings account.&amp;#160; You earn a 1% rebate which is deposited directly into your savings account.&lt;/p&gt;  &lt;p&gt;I had $8k in the savings account.&amp;#160; Amex slashed my credit line to $9,500, citing a variety of reasons including my &amp;quot;missing a payment&amp;quot; and &amp;quot;inability to pay,&amp;quot; and a few other form letter excuses.&amp;#160;&amp;#160; I'm not a rocket scientist, but if they are holding $8k cash in deposits (which would allow them to lend out a multiple of that)...&lt;/p&gt;  &lt;p&gt;In any event, the sheer number of complaints about abrupt credit limit decreases seems to be increasing exponentially.&amp;#160; &lt;/p&gt;  &lt;p&gt;For those who carry a balance, a reduction of a credit limit can cause collateral damage.&amp;#160; Your credit utilization can jump from say 50% to 100% in no time at all, impacting your credit score.&amp;#160; As your credit utilization increases, your credit score decreases, and other credit cards start to ratchet your other credit limits downward causing a credit death spiral. &lt;/p&gt;  &lt;p&gt;According to one prediction, credit card companies will vaporize more than $2 trillion in credit lines over the next 18 months.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&amp;quot;About one in five cardholders had their credit limits reduced recently, according to a July survey by Consumer Action, a San Francisco-based consumer advocacy group. Roughly the same percentage of cardholders also reported being very close to their limit on at least one credit card, according to that&lt;/em&gt; &lt;em&gt;survey.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Bankrate's own survey indicates fewer Americans have been affected so far -- 6 percent of respondents said their credit line was cut, up slightly from 5 percent in August.&amp;quot; (&lt;a href="http://www.bankrate.com/brm/news/financial_literacy/credit_help/credit_limits_a1.asp"&gt;Bankrate&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;As a result, I've decided to dust off the personal and corporate debit cards, and maybe you should too.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-18013251521605099?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/18013251521605099/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=18013251521605099" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/18013251521605099" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/18013251521605099" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/02/american-express-continues-to-slash.html" title="American Express continues to slash credit lines (and now mine)" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-6967062105710368661</id><published>2009-02-12T00:08:00.001-06:00</published><updated>2009-02-12T00:08:54.141-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Business" /><title type="text">Is the tech recession over or over-blown?</title><content type="html">&lt;p&gt;Today, Joel Spolsky, wrote in his blog:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;quot;OK, it&amp;#8217;s just one data point. All I know is sales of FogBugz and Copilot. But what I&amp;#8217;m seeing is this: October-December 2008 were terrible&amp;#8212;sales were 20% lower than usual&amp;#8212;but starting January 5th, we saw a significant bounce back to the same level of sales as we had before this recession started, and it&amp;#8217;s continued to this day.&amp;quot; &lt;a href="http://www.joelonsoftware.com/items/2009/02/11.html"&gt;Source: &amp;quot;Is the tech recession over?&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;He goes on to highlight that technical job openings seem to be holding steady.&amp;#160; &lt;/p&gt;  &lt;p&gt;Joel also posted a &lt;a href="http://discuss.joelonsoftware.com/default.asp?biz.5.733909.0"&gt;question on the Business of Software forum&lt;/a&gt; that received many responses noting similar things -- a) Q4 of 2008 was bad, and b) 2009 is rebounding nicely. &lt;/p&gt;  &lt;p&gt;I also saw a statistic today that convinced me that the sky is not falling.&amp;#160; While the national unemployment rate is over seven percent, do you know what the unemployment rate for people with college degrees?&amp;#160; No? &lt;strong&gt; It is 3.8%.&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-6967062105710368661?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/6967062105710368661/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=6967062105710368661" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/6967062105710368661" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/6967062105710368661" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/02/is-tech-recession-over-or-over-blown.html" title="Is the tech recession over or over-blown?" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-3724630982585719143</id><published>2009-02-02T00:14:00.001-06:00</published><updated>2009-02-02T00:14:13.883-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="business travel" /><title type="text">Travel: Water Purification for Travelers (Part 3)</title><content type="html">&lt;p&gt;Ok, so now I've gone over what you can find in the water, and some methods for disinfection.&amp;#160; Some don't work that well.&amp;#160; So what really works and what doesn't?&amp;#160; What do you recommend? &lt;/p&gt;  &lt;p&gt;Let's recap:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Boiling water kills just about everything, but requires fuel and offers no residual protection.&amp;#160; Since I don't want to carry a large dual voltage tea kettle (does such a thing exist?) that method is out. &lt;/li&gt;    &lt;li&gt;Chlorine and iodine will not reliably treat for Giardia or Cryptosporidium.&amp;#160; Additionally, iodine is not recommended for long term usage.&amp;#160; I'm putting various methods of delivery in the same pot without any extensive research: bleach, Halzone, Sodium dichloroisocyanurate, Superchlorination-dechlorination, Chloramine, Tincture of Iodine, Povidone-Iodine, Tetraglycine hydroperiodide, etc.&amp;#160;&amp;#160; &lt;/li&gt;    &lt;li&gt;Only chlorine dioxide, MIOX and UV light will kill everything (with enough contact time).&amp;#160; &lt;/li&gt;    &lt;li&gt;You can also mechanically filter the water and treat the remaining water with chemical disinfection to kill the pathogens that are smaller than .2 microns. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In a table format: &lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="426" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Method&lt;/td&gt;        &lt;td valign="top" width="46"&gt;Viruses&lt;/td&gt;        &lt;td valign="top" width="60"&gt;Bacteria&lt;/td&gt;        &lt;td valign="top" width="70"&gt;Protozoa&lt;/td&gt;        &lt;td valign="top" width="98"&gt;Particulates&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Filtration (0.2 micron or less)&lt;/td&gt;        &lt;td valign="top" width="46"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="73"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="99"&gt;YES&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Boiling water&lt;/td&gt;        &lt;td valign="top" width="46"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="64"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="73"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;UV light&lt;/td&gt;        &lt;td valign="top" width="46"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="64"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="73"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Chlorine Dioxide&lt;/td&gt;        &lt;td valign="top" width="46"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="64"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="73"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;MIOX&lt;/td&gt;        &lt;td valign="top" width="46"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="64"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="73"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Chorine&lt;/td&gt;        &lt;td valign="top" width="46"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="64"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="73"&gt;yes (not crypto)&lt;/td&gt;        &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Iodine&lt;/td&gt;        &lt;td valign="top" width="46"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="64"&gt;YES&lt;/td&gt;        &lt;td valign="top" width="73"&gt;yes (not crypto)&lt;/td&gt;        &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Right now, I am leaning towards MIOX or a SteriPEN (or the overkill/belt-and-suspenders combination of a filter and chemical disinfection) to kill viruses.&amp;#160; I tried the Katadyn Micropur and contrary to the sales literature, it turned the water a slight fizzy brownish color, and I just didn't have the courage to drink it with bottled water available. &lt;/p&gt;  &lt;p&gt;Comments?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-3724630982585719143?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/3724630982585719143/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=3724630982585719143" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/3724630982585719143" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/3724630982585719143" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/02/travel-water-purification-for-travelers.html" title="Travel: Water Purification for Travelers (Part 3)" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-4848050433643699506</id><published>2009-02-02T00:13:00.001-06:00</published><updated>2009-02-02T00:13:09.641-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="business travel" /><title type="text">Travel: Water Treatment and Purification Options for Travelers (Part 2)</title><content type="html">&lt;p&gt;Filter, disinfect, boil, or radiate?&amp;#160; You have a few choices when it comes to making water safe enough to drink.&amp;#160; Some are better than others.&amp;#160; Here are the options I considered. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Boiling.&amp;#160;&amp;#160; &lt;/li&gt;    &lt;li&gt;UV Radiation.&amp;#160; &lt;/li&gt;    &lt;li&gt;Filtering.&amp;#160; &lt;/li&gt;    &lt;li&gt;Chemical Disinfection.&amp;#160; &lt;/li&gt;    &lt;li&gt;Mechanical filtration followed by chemical treatment or UV radiation.&amp;#160;&amp;#160;&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Boiling (heat disinfection)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The CDC and WHO recommends boiling as the sure fired means of killing pathogens in water.&amp;#160; The recommendations are simple -- bring water to a full boil for 1 minute; add 1 minute to the boil time for every 1000 feet in elevation.&amp;#160; At 100 degrees Celsius, &lt;em&gt;most&lt;/em&gt; pathogens will be killed. &lt;/p&gt;  &lt;p&gt;I have found that there is some disagreement to how long you need to boil the water.&amp;#160; It is safest to follow the &lt;a href="http://www.who.int/water_sanitation_health/dwq/wsh0207/en/index4.html"&gt;WHO&lt;/a&gt; and CDC recommendations. &lt;/p&gt;  &lt;p&gt;For a backpacker, this means boiling over a camp stove, but as an international traveler, your options are limited to a bulky electric kettle or an immersion coil.&amp;#160; Immersion coils must be submerged in water while plugged in, otherwise it will be permanently disabled if they get too hot (safety feature to keep from starting a fire).&amp;#160; &lt;/p&gt;  &lt;p&gt;For me, the electric kettles are too bulky, and the immersion coils require a source of electricity and possibly a travel adapter to be functional.&amp;#160; Additionally, many online reviews point to the device's fragility -- the number 1 complaint is about units no longer functioning. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Chemical Disinfection / Purification&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Following boiling, chemical disinfection is the advice most frequently given by municipalities and government agencies when faced with an emergency.&amp;#160; However, the effectiveness of chemical treatment is related to the temperature, pH level, and clarity of the water. &lt;/p&gt;  &lt;p&gt;They include:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Halogens (chlorine and iodine), which are no longer thought to be 100% effective against Cryptosporidium.&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;ul&gt;       &lt;li&gt;Iodine.&amp;#160; Contact time 30 minutes.&amp;#160; Ideal concentration 3-4 mg/L or 4 PPM.&amp;#160; Water that has been disinfected with iodine is NOT recommended for pregnant women, people with thyroid problems, those with known hypersensitivity to iodine, or continuous use for more than a few weeks at a time. Also, it has an unpleasant taste.&amp;#160; Furthermore, recent studies have shown that iodine is not as effective against Cryptosporidium as originally thought &lt;a href="http://www.steripen.com/PDF/CoccidianParastites.pdf"&gt;[1]&lt;/a&gt;, &lt;a href="http://www.ars.usda.gov/research/publications/publications.htm?SEQ_NO_115=155436"&gt;[2]&lt;/a&gt;.&amp;#160;&amp;#160;&amp;#160; &lt;/li&gt;        &lt;li&gt;Chlorine. Contact time 60 minutes. Ideal concentration depends on water pH and temperature.&amp;#160; Recommended dose: add 4 drops (0.2 mL) of household bleach to one liter produces a 10 PPM concentration. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://zenbackpacking.net/EPA/ChlorineDioxide.pdf"&gt;Chlorine Dioxide&lt;/a&gt; (Katadyn Micropur MP1, Portable Aqua, AquaMira, Pristine, KlearWater).&amp;#160; Chlorine dioxide is a powerful oxidant with germicidal properties.&amp;#160; It is unaffected by water pH and does not discolor water.&amp;#160; &lt;ul&gt;       &lt;li&gt;Katadyn's Micropur is EPA &lt;u&gt;approved&lt;/u&gt; as a &amp;quot;purifier,&amp;quot; and is effective against Giardia and Cryptosporidium if the water is treated somewhere between 30 minutes (20 degrees Celsius and clear) and 4 hours (4 degrees Celsius and dirty).&amp;#160;&amp;#160; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.miox.com/"&gt;MIOX&lt;/a&gt;.&amp;#160; Electricity is applied to a salt-water solution which produces a hypoclorite / mixed oxidant solution, which is mixed with the untreated water.&amp;#160; The MSR MIOX system is an EPA approved purifier.&amp;#160; Contact time: Viruses, bacteria --15 min; Giardia -- 30 minutes; Cryptosporidium -- 4 hours.&amp;#160; These treatment times are conservative, like the chlorine dioxide times. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Mechanical Filtration&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Filters do not work against viruses, but they can filter out bacteria and protozoa effectively (as long as the filter has a pore size of 0.2 microns).&amp;#160; Since you are unlikely to find viruses in streams and lakes in North America and Europe, filters are often recommended for hikers.&amp;#160; They can also filter out sediment, and things that can cloud or taint the water -- which are not handled by chemical or UV disinfection.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;UV Treatment&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://zenbackpacking.net/EPA/UV.pdf"&gt;UV light&lt;/a&gt; has been used for years on commercial water treatment, and works by damaging the DNA in the microorganisms.&amp;#160; There are several manufacturers, but &lt;a href="http://www.steripen.com/"&gt;SteriPEN&lt;/a&gt; is the hands-down market leader and has a growing following.&amp;#160; &lt;/p&gt;  &lt;p&gt;However, the SteriPEN only ONLY treats water inside the bottle and ONLY the water under the waterline.&amp;#160; Water droplets inside the bottom or on the threats of the bottle will not be treated. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;[1] &amp;quot;&lt;a href="http://www.steripen.com/PDF/CoccidianParastites.pdf"&gt;Inactivation of Coccidian Parasites by Water Purification Chemicals and Treatment Device for Campers and Hikers.&lt;/a&gt;&amp;quot;&amp;#160; Lee, M.B. and Lee, E.H.; Environmental Review.&amp;#160; Winter 2005. &lt;/li&gt;    &lt;li&gt;[2] &amp;quot;&lt;a href="http://www.ars.usda.gov/research/publications/publications.htm?SEQ_NO_115=155436"&gt;Do Iodine Water Purification Tablets Provide An Effective Barrier Against Cryptosporidium Parvum?&amp;quot;&lt;/a&gt; Stark, Bowman, Labare, Fogarty, Lucio-Forester, Barbi, Jenkins, Pavlo, Butkus; Military Medicine. October 25, 2001. &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-4848050433643699506?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/4848050433643699506/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=4848050433643699506" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/4848050433643699506" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/4848050433643699506" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/02/travel-water-treatment-and-purification.html" title="Travel: Water Treatment and Purification Options for Travelers (Part 2)" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3185026201834346457.post-6694603344753875758</id><published>2009-02-02T00:12:00.001-06:00</published><updated>2009-02-02T00:12:27.215-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="business travel" /><title type="text">Travel: Avoiding Water Borne Illness (Part 1)</title><content type="html">&lt;p&gt;When I returned from my overseas trip, I soon became stricken with gas, bloating, cramps, fatigue and severe diarrhea.&amp;#160; For 4 hellish days, I couldn't eat any solid food -- I survived on water and Gatorade.&amp;#160; I slept continuously, waking up every several hours to spend quality time in the bathroom.&amp;#160;&amp;#160; When I had enough energy to listlessly do things around the apartment, I would have to run to the bathroom at random intervals.&amp;#160; After two days, I had to seek treatment at the local emergency room because I could no longer drink the Gatorade without vomiting.&lt;/p&gt;  &lt;p&gt;Thankfully, I am fully recovered and now feel fine, but it was one heck of a wake up call.&amp;#160; It could have been worse... a lot worse.&amp;#160; &lt;/p&gt;  &lt;p&gt;Therefore, I started researching how to effectively prevent this in the future.&amp;#160; What could I buy that would render putrid foul smelling water into tasty safe water?&amp;#160; The soft-core camper and gadget freak in me cried out to go shopping for some insurance that I could throw in my suitcase.&amp;#160; &lt;/p&gt;  &lt;p&gt;The budget?&amp;#160; The equivalent of my emergency room visit -- roughly $400 or less. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Defining the Mission&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I quickly found that most advice on water purification given on backpacking and survival forums seems to be biased towards the biological threats found in the North America.&amp;#160; In North America, you will rarely encounter viruses in streams in lakes.&amp;#160; The number one threat here is Giardia or bacteria (and from what I heard and read about you definitely don't what Giardia). &lt;/p&gt;  &lt;p&gt;Worse yet, I found some advice on traveler forums that was ridiculous, conflicting, or simply harmful.&amp;#160; &lt;/p&gt;  &lt;p&gt;So I started my research -- I need a portable method of purifying water that would get rid any threats I would face: viruses, bacteria, and protozoa (Cryptosporidium, Giardia, etc).&amp;#160; It is assumed that the water is free of chemical toxins and may have one or more of the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Viruses.&lt;/strong&gt;&amp;#160; There are over 140 extremely small (0.004 to 0.1 microns) enteric viruses known to infect humans, including hepatitis A, Norwalk, poliovirus and rotavirus. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Protozoa.&lt;/strong&gt;&amp;#160; There are several very nasty single celled microorganisms (Giardia Lamblia, Cryptosporidium parvum, Entamoeba histolytica (amebic dysentery), and Cyclospora cayetanensis) some of which are associated with death. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Bacteria.&lt;/strong&gt; Bacteria range in size between 0.2 and 10 microns, and are the likely culprit behind your travelers diarrhea and gastroenteritis.&amp;#160; Significant bacteria include: E coli, Brucella melitensis, Leptospira icterohaemorrhagiae (spirochaetales), Pasteurella pseudomallei, Salmonella typhosa (Typhoid Fever), Salmonella paratyphi (Paratyphoid fever), Salmonella schottinulleri, Salmonella hirschfeldi C., Shigella flexneri (Bacillary dysentery), Vibrio comma (Cholera) and Vibrio cholerae.&amp;#160;&amp;#160;&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;But before I start, here is some generalized advice for travelers. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Prevention (Better Living Through Chemistry)&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Bismuth subsalicylate (2 oz t.i.d.).&amp;#160; Studies from Mexico have show when taken on arrival at the destination (three times a day) can reduce the incidence of travelers diarrhea from 40% to 14%.&amp;#160; That's right, taking Pepto-Bismol -- 2 oz of liquid or 2 chewable tablets can increase your chance of not getting TD, but&amp;#160; you have to take it before you get TD.&amp;#160; Note: this won't work it you encounter a virus.&lt;/li&gt;    &lt;li&gt;Probiotics (&lt;em&gt;Lactobacillus GG&lt;/em&gt; and &lt;em&gt;Saccharomyces boulardii&lt;/em&gt;) don't work.&amp;#160; All studies to date have been inconclusive. &lt;/li&gt;    &lt;li&gt;Halogenated hydroxyquinoline derivatives, enterovioform, and other substances are effective, but may cause &amp;quot;neurologic adverse events&amp;quot; and best should be avoided.&amp;#160; I'm not sure what a &amp;quot;neurologic adverse event&amp;quot; is, but I'm betting it might land you in a difficult spot in a country where you don't speak the language. &lt;/li&gt;    &lt;li&gt;Antibiotics are effective (attack rate reduced from 40% to 4%), but only on pathogenic bacteria which are sensitive.&amp;#160; However, the medical community in recommends against prophylactic antibiotics except for short-term travelers who are high-risk hosts (immunosuppressed travelers).&amp;#160; &lt;/li&gt;    &lt;li&gt;Antimicrobials have no effect on viral illness.&amp;#160; Hepatitis A and Typhoid vaccinations are a good idea before traveling abroad. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Prevention (Better Living through Common Sense)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This should be common sense for most of us, but for those who have never traveled extensively: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;First, try to figure out if the water is potable.&amp;#160; In most of the U.S., Canada, and western Europe tap water is generally safe to drink.&amp;#160; In the rest of the world, the reverse is probably true. &lt;/li&gt;    &lt;li&gt;Avoid ice, since it probably is made from tap water. &lt;/li&gt;    &lt;li&gt;Do not brush your teeth with tap water (no matter what anyone says).&amp;#160; Use bottled or boiled water.&amp;#160; This is especially true if the hotel has labeled the water &amp;quot;not fit for drinking&amp;quot; above the sink (as I saw this in Macau and in a hotel in the Philippines).&amp;#160; Also, use bottled water or boiled water to wash your contact lenses or dentures (if you have them). &lt;/li&gt;    &lt;li&gt;Coffee and tea are generally safe.&amp;#160; However, cream and milk are not.&amp;#160; If you must have light coffee, bring non diary creamer with you. &lt;/li&gt;    &lt;li&gt;US and European chains (such as McDonalds) and large hotel restaurants are also usually safe choices.&amp;#160; Avoid street vendors. &lt;/li&gt;    &lt;li&gt;Don't drink from or brush your teeth with the water in the aircraft's rest room.&amp;#160; They are filled with regular tap water in whatever country they happen to be in.&amp;#160; A recent EPA study showed the bacterial contamination of various water samples taken from aircraft were extremely high in bacteria. &lt;/li&gt;    &lt;li&gt;Check to see if the bottled water you just purchased has an unbroken sealed cap.&amp;#160; In some countries, unscrupulous vendors will refill used bottled water containers with tap water and sell them on the streets. &lt;/li&gt;    &lt;li&gt;Stick with name brand water.&amp;#160; In some countries, some water companies bottle unfiltered tap water. &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-6694603344753875758?l=www.agavemountain.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/6694603344753875758/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=3185026201834346457&amp;postID=6694603344753875758" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/6694603344753875758" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3185026201834346457/posts/default/6694603344753875758" /><link rel="alternate" type="text/html" href="http://www.agavemountain.com/2009/02/travel-avoiding-water-borne-illness.html" title="Travel: Avoiding Water Borne Illness (Part 1)" /><author><name>Joe Turner</name><uri>http://www.blogger.com/profile/12587536207539849077</uri><email>joe@agavemountain.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="13307673888220622955" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry></feed>
