tag:blogger.com,1999:blog-31850262018343464572009-07-03T17:16:42.443-05:00Agave MountainBootstrapping a micro-ISV startup from scratch. My views on: startups, bootstrapping a business, software development, small business, consulting, and time management.Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.comBlogger195125tag:blogger.com,1999:blog-3185026201834346457.post-10369343635299320362009-06-30T11:50:00.001-05:002009-06-30T11:50:48.177-05:00Screen Utility (and my .screenrc)<p>Screen is a fantastic utility which is best described as a <em>terminal multiplexer</em>.  It comes standard in most modern Unix-based operating systems (e.g. Linux, MacOS X, BSD).  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. </p> <p>In a nutshell: you can run any number of console-based applications within a single terminal.  I usually fire up one terminal and then ssh to various hosts.  But one of the best features is the ability to decouple the terminal emulator from the running programs.  This means you can log out or loose your session accidentally and you can come right back to where you are. </p> <p>This if fantastic for embedded development.  I ssh to a workstation (Linux) attached to the embedded console over a USB serial port.  This is running 24 hours a day monitoring the embedded system.  I ssh to the workstation and use screen to reattach to the running serial console. I wrote about this <a href="http://www.agavemountain.com/2009/03/using-screen-utility-to-connect-to.html">HERE</a>. </p> <p><strong>Basic screen commands</strong></p> <p>Control-A Control-C will create a new session/shell.</p> <p>Control-A Control-n (where n is the session number, 0-n) will switch you to that shell. </p> <p>Control-A Control-D will detach. </p> <p><strong>My .screenrc</strong> </p> <p>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. </p> <p>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. </p> <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, 'Courier New', 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"> <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, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> <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, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060"> 1:</span> termcapinfo xterm|xterms|xs|rxvt ti@:te@</pre>
<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, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060"> 2:</span> caption always <span style="color: #006080">"%H %c | %x-w%{=}%n-%t%{-}w"</span></pre>
<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, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060"> 3:</span> shell -/bin/bash</pre>
</div>
</div> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-1036934363529932036?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-66482536229961299672009-06-30T00:31:00.001-05:002009-06-30T00:31:11.002-05:00Back to Zero.<blockquote> <p><em>Whenever I tell anyone that I have liquidated our savings to pay off debt I get the same response: why?  I mean, in a risky recessionary environment why would you take accumulated savings and pay down unsecured debt?  To become debt free, that's why. </em></p> </blockquote> <p><img align="right" src="http://www.demotivateus.com/posters/common-sense-demotivational-poster.jpg" width="252" height="202" />In April, I publicly declared that my financial goal was to <a href="http://www.agavemountain.com/2009/04/my-financial-goal-for-2009-100-debt.html">become debt free this year</a>, 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).  </p> <p>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.   </p> <p>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.  And not a moment too soon. </p> <p>Crazy, huh?  Even financial guru <a href="http://www.hulu.com/watch/19681/suze-orman">Suze Orman</a> 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.  But soon people who follow her advice will be facing loan-shark interest rates, enhanced fees, and higher minimum payments. </p> <p>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.  Rate-jacking is now rampant and even "good" customers are getting slammed with arbitrary fees.  </p> <p>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).  I received a $15 coupon (off $50 purchase) from OfficeMax as a consolidation prize. </p> <p>Personally, I have bank fee fatigue; I have developed a permanent aversion to credit.  I'm in the process of closing every charge and credit card I can.   Credit score be damned.  Never again.   </p> <p><strong>Baby Steps</strong></p> <p>So, I'm three months into the process and our first ever budget was a disaster.  This was expected.  It takes a few  months to get enough practice to make a decent budget. </p> <ul> <li><strong>Step 0: </strong><strong><a href="http://www.hulu.com/watch/1389/saturday-night-live-dont-buy-stuff">Stop buying stuff you can't afford</a></strong><strong>.</strong> </li> </ul> <p><em>Check.  </em>Before the recession, I had been shopping for a Cessna 172 and got pre-approved for a loan.  Now, I will have to save up enough to pay cash.  Someday...    </p> <ul> <li><strong>Step 1:  build up a $1,000 cash emergency reserve fund.</strong></li> </ul> <p><em>Check. </em>This was easy since we already had some savings.  </p> <ul> <li><strong>Step 2: Aggressively pay off debt with the "debt snowball" method.</strong>  </li> </ul> <p>Step 2 involves listing your (non-mortgage) debts from smallest to largest, and aggressively paying each debt off in order.  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.  </p> <ol> <li>I paid off and <a href="http://www.agavemountain.com/2009/02/american-express-continues-to-slash.html">canceled my American Express ONE card</a> and closed the attached savings account. </li> <li>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%).  They are also now charging foreign currency conversion fees on transactions handled <em>in U.S. currency and in the United States</em> for foreign companies.  Paid off and canceled.</li> <li>Another gave two frequent flier miles per dollar.  Now the rate is 1 mile per dollar and they refused to waive the $85 annual fee.  I canceled my personal and business cards. </li> </ol> <p>The goal is the pay off your debt as fast as possible:</p> <ul> <li>If you have stocks or savings, liquidate them and use that money to pay off the debt; and</li> <li>If you are making contributions for IRAs, 401ks, 529s, or other savings, you stop and use that money to pay off debt; and</li> <li>Find additional streams of income to help pay off the debts.</li> </ul> <p>The first smallest debt gets paid first and all other debts get the minimum payment.  </p> <ul> <li><strong>Step 3: build up a 3-6 month emergency fund.</strong>     </li> </ul> <p>This would be next. </p> <p><strong>Miscellaneous Financial Tips</strong></p> <ul> <li>Quicken Online (free) sucks. It is without a doubt one of the worst financial web sites ever created.  It is a feature limited service (probably) designed to get you to purchase Intuit's other products.  However, after a few days it would not interface with my bank.  Now all the transactions are duplicated.  The balance appears right but the transactions below are all duplicated.  Void checks disappear from the system.  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). </li> <li>My wife and I now share a single checkbook.  We used to have separate checkbooks, but not any longer.  It makes reconciling the accounts so much easier.  </li> <li>No more online statements.  Financial companies save tons of money by not sending you statements in the mail, but pass none of those savings on to you.  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 "your statement is ready," and have gotten hit with a late charge.  I guess that is your bonus for "helping the environment."  Been there, done that, got the T-shirt.  Not anymore, I always request a paper statement. </li> <li>I now pay bills the old fashioned way -- with a pen, checks, envelopes and stamps, usually on a Saturday morning.  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.</li> </ul> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-6648253622996129967?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com1tag:blogger.com,1999:blog-3185026201834346457.post-11843836694607376062009-04-26T15:25:00.001-05:002009-04-26T15:25:42.967-05:00Spammers are forging e-mail to appear from this domain<p>A spammer is sending spam with forged headers to appear as if the email originated from user accounts at this domain.   </p> <p>As of three minutes ago, I am receiving bounced messages from a variety of e-mail addresses.  Looking at the bounced e-mail headers, these messages are originating from the following IP address: 122.46.104.49.  That IP address is located in Seoul, Republic of Korea (Powercomm ISP).</p> <p>Thankfully, the flood of e-mail bounces have stopped.  </p> <p>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. </p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-1184383669460737606?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-41613995874302482612009-04-08T22:41:00.001-05:002009-04-08T22:41:44.075-05:00How to recursively delete files and directories (*.svn) with find and xargs<p>Every once in a while, I want to delete some files from a set of directories.  Under windows you do a file search, select everything with CTRL-A and delete.  It is every bit as simple under Linux and OS X.  </p> <p>For example, let's say you want to tar up or merge directories that are checked out of a subversion repository.  If you just tar up the files, you will have extra copies of every single file making the tarball needlessly large.  Not good.  Or maybe you want to delete those .DS_Store files that OS X craps all over your hard drives. </p> <p>Here's how to do it.  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.  This can be used to quickly delete other files patterns, but be very careful (for obvious reasons):</p> <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, 'Courier New', courier, monospace; background-color: #f4f4f4"> <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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 1:</span> rm -rf `find . -name <span style="color: #006080">"*.svn"</span> | xargs`</pre>
</div>
</div>
<p>Simple. </p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-4161399587430248261?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-14579911796798639572009-04-06T23:52:00.001-05:002009-04-06T23:52:48.579-05:00My Financial Goal for 2009: 100% Debt Free (forever)<blockquote> <p><em>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.</em>  </p> </blockquote> <p>I often listen to <a href="http://www.daveramsey.com/">Dave Ramsey's</a> podcast via iTunes. </p> <p>On the podcast (which is a syndication of his on-air radio show), <a href="http://en.wikipedia.org/wiki/Dave_ramsey">Dave Ramsey</a> 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 <a href="http://en.wikipedia.org/wiki/Scrooge_McDuck">Scrooge McDuck</a>.</p> <p>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.  And they piled up every day, asking for advice on how to sort out their lives.  </p> <p>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).  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.  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.   It was always there: job losses, death, unforeseen medical crises, divorce, greed, financial gluttony, avarice, family infighting, and the ultimate reckoning. </p> <p>And as I continued to listen, he started to make more sense. </p> <p><em>Pay off your mortgage?</em>  Bah, what about the tax deduction?  Oh... the calculator agrees with Ramsey.  You will save more money by paying off your mortgage in interest than you will by deducting the interest on your tax return.  Why are all the other financial "gurus" lying? </p> <p><em>But what about my FICO score?</em>  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.   </p> <p><em>But what about the credit card rewards?</em>  I've already been burned by Capital One who modified their "no hassle" rewards program after I accrued the points, making the reward program nearly worthless.  American Express dutifully deposited my 1% cash rebate into my savings account, but then cut the savings interest rate, <a href="http://www.agavemountain.com/2009/02/american-express-continues-to-slash.html">lowered my limit, and jacked up my interest rate</a>.  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. </p> <p>And so on... until each of my objections and rationalizations were killed by rational thought over time.  Slowly, I came to realize that cash was the way to go, especially in these turbulent times.</p> <p>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. </p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-1457991179679863957?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-46968196764026149852009-04-05T14:11:00.001-05:002009-04-05T14:11:20.759-05:00Apple and Stanford to offer free iPhone development courses<p>It was announced this week that Stanford would offer a free developer course through iTunes U.  More specifically, Stanford will offer the video and course materials from Stanford's undergraduate iPhone app development course.  The course was created through a partnership between Apple and Stanford.</p> <p>The first video was uploaded to iTunes on Friday. </p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-4696819676402614985?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-88181789070532469872009-03-31T06:17:00.001-05:002009-03-31T06:17:38.173-05:0016,906 miles, 4 cities, and 2 more passport stamps<p>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.   The end result of my last trip: 16,905 miles, 4 cities, and two new passport stamps.  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 "hard" way).</p> <p>This trip, I switched out my T-Mobile SIM for a foreign SIM and left the laptop at home.  For one week, I didn't even check my email and or voicemail.  It was relaxing to say the least.</p> <p>My iPod saved my sanity.  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.  If I had to watch James Bond Quantum of Solace one more times I would poke my eyes out with chopsticks.  </p> <p>Before I left, I purchased the first season of Stargate SG-1, a rental movie, and a book with the Amazon Kindle application.  I don't know if I would have made it without those distractions.  </p> <p>Dead tired tired, I crashed early and woke up at 1 am.  I've been up ever since trying working through my inbox, paying bills and responding to emails (I've jumped on the GTD bandwagon).  My shredder has been noisily chewing up the never ending stream of credit card solicitations, and mail.  </p> <p>I'm now ready to go back to work and will be in very early, a rarity for me.  </p> <ul> <li>My schedule was changed to include a stopover in Tokyo.  Next time, I'm going avoid a stop over in Tokyo and try to fly straight through.  Tokyo is just too expensive and too difficult to get around in without knowing some Japanese.</li> <li>The Hilton Narita (Tokyo) charges 11000 yen (online reservation) for a room.  Wait and reserve at the airport hotel desk, and the price is only 7900 yen.  Free shuttle to/from the airport.  A taxi to the local mall is expensive -- $20 each way.  </li> <li><a href="http://boardingarea.com/blogs/loyaltytraveler/2009/03/19/american-airlines-double-eqm-through-june-15-2009/">American Airlines Double EQM (Elite Qualifying Miles).</a>  Registration code: DBEQM.  Register and fly between March 18 through July 15, 2009 and elite qualifying miles are doubled.  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).  </li> <li>I bough an iPod tip for my iGo battery charger (consumes AA batteries).  The eleven hour flight required four AA batteries.  This is now part of my essential travel gear. </li> </ul> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-8818178907053246987?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-22576396985008175542009-03-18T10:06:00.003-05:002009-03-18T10:06:58.910-05:00Using screen utility to connect to serial devices<div xmlns='http://www.w3.org/1999/xhtml'>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. <br/><br/>For example, to connect to a serial device (over a USB doggle) at 155200 baud: <br/><br/>$ screen /dev/ttyUSB0 115200<br/><br/>Now if I disconnect from the workstation this is attached to I can reattach to the screen session:<br/><br/>$ screen -list<br/><br/>There is a screen on:<br/> 9514.pts-0.twc-joe (Dettached)<br/>1 Socket in /var/run/screen/S-root.<br/><br/>I can reattach to the session and resume where I left off:<br/><br/>$ screen -r 9514.pts-0.twc-joe<br/><br/>#/<br/><br/><br/><br/><br/><br/><div class='zemanta-pixie'><img src='http://img.zemanta.com/pixy.gif?x-id=0e5e6b0b-8b36-421d-a965-997393c6d2dc' class='zemanta-pixie-img'/></div></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-2257639698500817554?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-30357977697233664282009-03-13T22:40:00.001-05:002009-03-13T22:40:12.941-05:00Fix: Running screen under Mac OS X clobbers path<p>I've started using the screen utility under Linux and Mac OS X.  Unfortunately, under Mac OS X, running the screen utility clobbers the path.  The quick fix is to edit ~/.screenrc and add the following code:</p> <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, 'Courier New', courier, monospace; background-color: #f4f4f4"> <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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 1:</span> shell -/bin/bash</pre>
</div>
</div>
Exit and restart screen. <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-3035797769723366428?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-81183720373673666082009-03-06T10:07:00.001-06:002009-03-06T10:07:17.423-06:00Fear and loathing<p><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" /></p> <p>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.  However, lately I've been feeling uneasy with the future.  </p> <p>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. </p> <p>Some of the things buried in these bills is simply scary.  The Wall Street Journal had an op-ed piece that nicely summarizes and captures my feelings.  Its nice to see that I'm not the only one who is nervous (Click <a href="http://online.wsj.com/article/SB123629969453946717.html">HERE</a> for the Wall Street Journal article). </p> <p>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.  </p> <p>Just think about this:</p> <blockquote> <p><em>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.</em></p> </blockquote> <p>I was stunned.  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. </p> <p>Under Obama the military will be drawn down to what it was before WWII. </p> <p>Are they working on resolving these issues?  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.</p> <p>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.  If he things Global warming is what the Treasury Secretary should be focused on, them perhaps we need a new Treasury Secretary. </p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-8118372037367366608?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-85926638311983562122009-02-21T12:12:00.001-06:002009-02-21T12:12:39.709-06:00Regscan = scam (Skype: Windows Requires Immediate Attention/Malware)<p>Regscan is a scam.  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.  </p> <p>This morning I got this message through SKYPE: </p> <blockquote> <p>WINDOWS REQUIRES IMMEDIATE ATTENTION <br />============================= </p> <p>ATTENTION ! Security Center has detected <br />malware on your computer ! </p> <p>Affected Software: </p> <p>Microsoft Windows Vista <br />Microsoft Windows XP <br />Microsoft Windows 2000 <br />Microsoft Windows NT Server 4.0 <br />Microsoft Windows Win98 <br />Microsoft Windows Server 2003 </p> <p>Impact of Vulnerability: Remote Code Execution / Virus Infection / <br />Unexpected shutdowns </p> <p>Recommendation: Users running vulnerable version should install a repair <br />utility immediately </p> <p>Your system IS affected, download the patch from the address below ! <br />Failure to do so may result in severe computer malfunction. </p> <p><a href="http://www.regscan.cc/?q=scan">http://www.regscan.cc/?q=scan</a></p> </blockquote> <p>The only problem is that I'm not running Windows (I'm running Skype through Mac OS X).  Of course, it didn't stop the fake virus scanner from confidently telling me that my windows operating system was infected with several viruses.  </p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-8592663831198356212?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com2tag:blogger.com,1999:blog-3185026201834346457.post-73098038919780560242009-02-21T04:08:00.001-06:002009-02-21T04:08:17.969-06:00Financial Crisis Made Simple...<p>Here are a few videos that explain in a simple way some of the problems/issues with the current financial quagmire:</p> <p><strong>Crisis of Credit Visualized (2 parts)</strong></p> <embed src="http://www.youtube.com/v/Q0zEXdDO5JU&hl=en&fs=1" width="480" height="295" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" /><embed src="http://www.youtube.com/v/iYhDkZjKBEw&hl=en&fs=1" width="480" height="295" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" /> <p> </p> <p><strong>Money as Debt (parts 1 - 5)</strong></p> <p> <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"><div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/vVkFb26u9g8&hl=en&fs=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/vVkFb26u9g8&hl=en&fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></div></div> </p> <p> <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"><div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/sanOXoWl0kc&hl=en&fs=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/sanOXoWl0kc&hl=en&fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></div></div> </p> <p> <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"><div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/kTv1fo6sKmo&hl=en&fs=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/kTv1fo6sKmo&hl=en&fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></div></div> </p> <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"><div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/3qicabStQkc&hl=en&fs=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/3qicabStQkc&hl=en&fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></div></div> <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"><div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/7kpSbkaD4tM&hl=en&fs=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/7kpSbkaD4tM&hl=en&fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></div></div> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-7309803891978056024?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-44601891758753285962009-02-21T01:42:00.001-06:002009-02-21T01:42:10.386-06:00Git: Script to svn rebase subdirectories<p>I'm now using git for all my projects.  Primarily, I am now using it as a front end to various subversion repositories at home and when I'm out and about.  As a result, I now have several directories that contain a growing number of git repositories.  </p> <p>As I have become more sophisticated, I started categorize them by context.  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.  </p> <p>For example, I will have one directory named client1 with the repositories related to work at client1.  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.</p> <p>For convenience, I wrote the following script execute a "git svn rebase" on each of the subdirectories.  </p> <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, 'Courier New', courier, monospace; background-color: #f4f4f4"> <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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 1:</span> #!/bin/sh</pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060"> 2:</span> #</pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 3:</span> # Rebase git repositories <span style="color: #0000ff">in</span> current directory</pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060"> 4:</span> #</pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 5:</span> # Written by Joe Turner <joe@agavemountain.com></pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060"> 6:</span>  </pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 7:</span> <span style="color: #0000ff">for</span> REPOSITORY <span style="color: #0000ff">in</span> `ls -1`</pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060"> 8:</span> <span style="color: #0000ff">do</span></pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 9:</span> echo <span style="color: #006080">'Performing git rebase in : '</span> $REPOSITORY</pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060"> 10:</span> cd $REPOSITORY</pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 11:</span> git svn rebase</pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060"> 12:</span> cd ..</pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 13:</span> done</pre>
</div>
</div> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-4460189175875328596?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-30370506300859610732009-02-21T01:18:00.001-06:002009-02-21T01:18:01.779-06:00How to force qmake to stop generating an XCode project and generate a gcc makefile instead<blockquote> <p><em>Problem: Under OS X, qmake automatically generates an XCode project from a qmake project file.  How do I force it to make a standard gcc makefile?</em> </p> </blockquote> <p>Unless you have configured Qt when you build it, the default under Mac OS X is to generate an XCode project.  The way to generate a "standard" gcc makefile is to pass the "-spec macxg++" switches on the command line:</p> <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, 'Courier New', courier, monospace; background-color: #f4f4f4"> <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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 1:</span> qmake -spec macx-g++ </pre>
</div>
</div>
<p>Additionally, you should place the following into your project file in order to stop it from generating the app_bundle:</p>
<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, 'Courier New', courier, monospace; background-color: #f4f4f4">
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 1:</span> mac { </pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060"> 2:</span> CONFIG -= app_bundle </pre>
<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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 3:</span> }</pre>
</div>
</div> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-3037050630085961073?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com1tag:blogger.com,1999:blog-3185026201834346457.post-180132515216050992009-02-18T01:50:00.001-06:002009-02-18T01:50:22.835-06:00American Express continues to slash credit lines (and now mine)<p><a href="http://lh3.ggpht.com/_hrVPPOyDXVE/SZu9vNvPCrI/AAAAAAAAAJc/HKA-ZXv0CaA/s1600-h/amex%5B3%5D.jpg"><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" /></a> 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.</p> <p>I smirked.  After all, you shouldn't finance a business on credit cards -- it is just plain stupid.  </p> <p>I have good credit, pay on time, and I usually don't carry a balance.  It will never happen to me.   </p> <p>Well, today I received a letter from American Express informing me that they were slashing the credit line on my American Express One card.  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.  You earn a 1% rebate which is deposited directly into your savings account.</p> <p>I had $8k in the savings account.  Amex slashed my credit line to $9,500, citing a variety of reasons including my "missing a payment" and "inability to pay," and a few other form letter excuses.   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)...</p> <p>In any event, the sheer number of complaints about abrupt credit limit decreases seems to be increasing exponentially.  </p> <p>For those who carry a balance, a reduction of a credit limit can cause collateral damage.  Your credit utilization can jump from say 50% to 100% in no time at all, impacting your credit score.  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. </p> <p>According to one prediction, credit card companies will vaporize more than $2 trillion in credit lines over the next 18 months.</p> <blockquote> <p><em>"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</em> <em>survey.</em></p> <p><em>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." (<a href="http://www.bankrate.com/brm/news/financial_literacy/credit_help/credit_limits_a1.asp">Bankrate</a>)</em></p> </blockquote> <p>As a result, I've decided to dust off the personal and corporate debit cards, and maybe you should too.  </p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-18013251521605099?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-69670621057103686612009-02-12T00:08:00.001-06:002009-02-12T00:08:54.141-06:00Is the tech recession over or over-blown?<p>Today, Joel Spolsky, wrote in his blog:</p> <blockquote> <p>"OK, it’s just one data point. All I know is sales of FogBugz and Copilot. But what I’m seeing is this: October-December 2008 were terrible—sales were 20% lower than usual—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’s continued to this day." <a href="http://www.joelonsoftware.com/items/2009/02/11.html">Source: "Is the tech recession over?</a></p> </blockquote> <p>He goes on to highlight that technical job openings seem to be holding steady.  </p> <p>Joel also posted a <a href="http://discuss.joelonsoftware.com/default.asp?biz.5.733909.0">question on the Business of Software forum</a> that received many responses noting similar things -- a) Q4 of 2008 was bad, and b) 2009 is rebounding nicely. </p> <p>I also saw a statistic today that convinced me that the sky is not falling.  While the national unemployment rate is over seven percent, do you know what the unemployment rate for people with college degrees?  No? <strong> It is 3.8%.</strong></p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-6967062105710368661?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-37246309825857191432009-02-02T00:14:00.001-06:002009-02-02T00:14:13.883-06:00Travel: Water Purification for Travelers (Part 3)<p>Ok, so now I've gone over what you can find in the water, and some methods for disinfection.  Some don't work that well.  So what really works and what doesn't?  What do you recommend? </p> <p>Let's recap:</p> <ul> <li>Boiling water kills just about everything, but requires fuel and offers no residual protection.  Since I don't want to carry a large dual voltage tea kettle (does such a thing exist?) that method is out. </li> <li>Chlorine and iodine will not reliably treat for Giardia or Cryptosporidium.  Additionally, iodine is not recommended for long term usage.  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.   </li> <li>Only chlorine dioxide, MIOX and UV light will kill everything (with enough contact time).  </li> <li>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. </li> </ul> <p>In a table format: </p> <table cellspacing="0" cellpadding="2" width="426" border="0"><tbody> <tr> <td valign="top" width="150">Method</td> <td valign="top" width="46">Viruses</td> <td valign="top" width="60">Bacteria</td> <td valign="top" width="70">Protozoa</td> <td valign="top" width="98">Particulates</td> </tr> <tr> <td valign="top" width="150">Filtration (0.2 micron or less)</td> <td valign="top" width="46"> </td> <td valign="top" width="64">YES</td> <td valign="top" width="73">YES</td> <td valign="top" width="99">YES</td> </tr> <tr> <td valign="top" width="150">Boiling water</td> <td valign="top" width="46">YES</td> <td valign="top" width="64">YES</td> <td valign="top" width="73">YES</td> <td valign="top" width="99"> </td> </tr> <tr> <td valign="top" width="150">UV light</td> <td valign="top" width="46">YES</td> <td valign="top" width="64">YES</td> <td valign="top" width="73">YES</td> <td valign="top" width="99"> </td> </tr> <tr> <td valign="top" width="150">Chlorine Dioxide</td> <td valign="top" width="46">YES</td> <td valign="top" width="64">YES</td> <td valign="top" width="73">YES</td> <td valign="top" width="99"> </td> </tr> <tr> <td valign="top" width="150">MIOX</td> <td valign="top" width="46">YES</td> <td valign="top" width="64">YES</td> <td valign="top" width="73">YES</td> <td valign="top" width="99"> </td> </tr> <tr> <td valign="top" width="150">Chorine</td> <td valign="top" width="46">YES</td> <td valign="top" width="64">YES</td> <td valign="top" width="73">yes (not crypto)</td> <td valign="top" width="99"> </td> </tr> <tr> <td valign="top" width="150">Iodine</td> <td valign="top" width="46">YES</td> <td valign="top" width="64">YES</td> <td valign="top" width="73">yes (not crypto)</td> <td valign="top" width="99"> </td> </tr> </tbody></table> <p> </p> <p>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.  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. </p> <p>Comments?</p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-3724630982585719143?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-48480504336436995062009-02-02T00:13:00.001-06:002009-02-02T00:13:09.641-06:00Travel: Water Treatment and Purification Options for Travelers (Part 2)<p>Filter, disinfect, boil, or radiate?  You have a few choices when it comes to making water safe enough to drink.  Some are better than others.  Here are the options I considered. </p> <ul> <li>Boiling.   </li> <li>UV Radiation.  </li> <li>Filtering.  </li> <li>Chemical Disinfection.  </li> <li>Mechanical filtration followed by chemical treatment or UV radiation.    </li> </ul> <p><strong>Boiling (heat disinfection)</strong></p> <p>The CDC and WHO recommends boiling as the sure fired means of killing pathogens in water.  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.  At 100 degrees Celsius, <em>most</em> pathogens will be killed. </p> <p>I have found that there is some disagreement to how long you need to boil the water.  It is safest to follow the <a href="http://www.who.int/water_sanitation_health/dwq/wsh0207/en/index4.html">WHO</a> and CDC recommendations. </p> <p>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.  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).  </p> <p>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.  Additionally, many online reviews point to the device's fragility -- the number 1 complaint is about units no longer functioning. </p> <p><strong>Chemical Disinfection / Purification</strong></p> <p>Following boiling, chemical disinfection is the advice most frequently given by municipalities and government agencies when faced with an emergency.  However, the effectiveness of chemical treatment is related to the temperature, pH level, and clarity of the water. </p> <p>They include:</p> <ul> <li>Halogens (chlorine and iodine), which are no longer thought to be 100% effective against Cryptosporidium.     <ul> <li>Iodine.  Contact time 30 minutes.  Ideal concentration 3-4 mg/L or 4 PPM.  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.  Furthermore, recent studies have shown that iodine is not as effective against Cryptosporidium as originally thought <a href="http://www.steripen.com/PDF/CoccidianParastites.pdf">[1]</a>, <a href="http://www.ars.usda.gov/research/publications/publications.htm?SEQ_NO_115=155436">[2]</a>.    </li> <li>Chlorine. Contact time 60 minutes. Ideal concentration depends on water pH and temperature.  Recommended dose: add 4 drops (0.2 mL) of household bleach to one liter produces a 10 PPM concentration. </li> </ul> </li> <li><a href="http://zenbackpacking.net/EPA/ChlorineDioxide.pdf">Chlorine Dioxide</a> (Katadyn Micropur MP1, Portable Aqua, AquaMira, Pristine, KlearWater).  Chlorine dioxide is a powerful oxidant with germicidal properties.  It is unaffected by water pH and does not discolor water.  <ul> <li>Katadyn's Micropur is EPA <u>approved</u> as a "purifier," 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).   </li> </ul> </li> <li><a href="http://www.miox.com/">MIOX</a>.  Electricity is applied to a salt-water solution which produces a hypoclorite / mixed oxidant solution, which is mixed with the untreated water.  The MSR MIOX system is an EPA approved purifier.  Contact time: Viruses, bacteria --15 min; Giardia -- 30 minutes; Cryptosporidium -- 4 hours.  These treatment times are conservative, like the chlorine dioxide times. </li> </ul> <p><strong>Mechanical Filtration</strong></p> <p>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).  Since you are unlikely to find viruses in streams and lakes in North America and Europe, filters are often recommended for hikers.  They can also filter out sediment, and things that can cloud or taint the water -- which are not handled by chemical or UV disinfection.  </p> <p><strong>UV Treatment</strong></p> <p><a href="http://zenbackpacking.net/EPA/UV.pdf">UV light</a> has been used for years on commercial water treatment, and works by damaging the DNA in the microorganisms.  There are several manufacturers, but <a href="http://www.steripen.com/">SteriPEN</a> is the hands-down market leader and has a growing following.  </p> <p>However, the SteriPEN only ONLY treats water inside the bottle and ONLY the water under the waterline.  Water droplets inside the bottom or on the threats of the bottle will not be treated. </p> <p><strong>Resources</strong></p> <ul> <li>[1] "<a href="http://www.steripen.com/PDF/CoccidianParastites.pdf">Inactivation of Coccidian Parasites by Water Purification Chemicals and Treatment Device for Campers and Hikers.</a>"  Lee, M.B. and Lee, E.H.; Environmental Review.  Winter 2005. </li> <li>[2] "<a href="http://www.ars.usda.gov/research/publications/publications.htm?SEQ_NO_115=155436">Do Iodine Water Purification Tablets Provide An Effective Barrier Against Cryptosporidium Parvum?"</a> Stark, Bowman, Labare, Fogarty, Lucio-Forester, Barbi, Jenkins, Pavlo, Butkus; Military Medicine. October 25, 2001. </li> </ul> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-4848050433643699506?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-66946033447538757582009-02-02T00:12:00.001-06:002009-02-02T00:12:27.215-06:00Travel: Avoiding Water Borne Illness (Part 1)<p>When I returned from my overseas trip, I soon became stricken with gas, bloating, cramps, fatigue and severe diarrhea.  For 4 hellish days, I couldn't eat any solid food -- I survived on water and Gatorade.  I slept continuously, waking up every several hours to spend quality time in the bathroom.   When I had enough energy to listlessly do things around the apartment, I would have to run to the bathroom at random intervals.  After two days, I had to seek treatment at the local emergency room because I could no longer drink the Gatorade without vomiting.</p> <p>Thankfully, I am fully recovered and now feel fine, but it was one heck of a wake up call.  It could have been worse... a lot worse.  </p> <p>Therefore, I started researching how to effectively prevent this in the future.  What could I buy that would render putrid foul smelling water into tasty safe water?  The soft-core camper and gadget freak in me cried out to go shopping for some insurance that I could throw in my suitcase.  </p> <p>The budget?  The equivalent of my emergency room visit -- roughly $400 or less. </p> <p><strong>Defining the Mission</strong></p> <p>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.  In North America, you will rarely encounter viruses in streams in lakes.  The number one threat here is Giardia or bacteria (and from what I heard and read about you definitely don't what Giardia). </p> <p>Worse yet, I found some advice on traveler forums that was ridiculous, conflicting, or simply harmful.  </p> <p>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).  It is assumed that the water is free of chemical toxins and may have one or more of the following:</p> <ul> <li><strong>Viruses.</strong>  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. </li> <li><strong>Protozoa.</strong>  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. </li> <li><strong>Bacteria.</strong> Bacteria range in size between 0.2 and 10 microns, and are the likely culprit behind your travelers diarrhea and gastroenteritis.  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.    </li> </ul> <p>But before I start, here is some generalized advice for travelers. </p> <p><strong>Prevention (Better Living Through Chemistry)</strong></p> <ul> <li>Bismuth subsalicylate (2 oz t.i.d.).  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%.  That's right, taking Pepto-Bismol -- 2 oz of liquid or 2 chewable tablets can increase your chance of not getting TD, but  you have to take it before you get TD.  Note: this won't work it you encounter a virus.</li> <li>Probiotics (<em>Lactobacillus GG</em> and <em>Saccharomyces boulardii</em>) don't work.  All studies to date have been inconclusive. </li> <li>Halogenated hydroxyquinoline derivatives, enterovioform, and other substances are effective, but may cause "neurologic adverse events" and best should be avoided.  I'm not sure what a "neurologic adverse event" is, but I'm betting it might land you in a difficult spot in a country where you don't speak the language. </li> <li>Antibiotics are effective (attack rate reduced from 40% to 4%), but only on pathogenic bacteria which are sensitive.  However, the medical community in recommends against prophylactic antibiotics except for short-term travelers who are high-risk hosts (immunosuppressed travelers).  </li> <li>Antimicrobials have no effect on viral illness.  Hepatitis A and Typhoid vaccinations are a good idea before traveling abroad. </li> </ul> <p><strong>Prevention (Better Living through Common Sense)</strong></p> <p>This should be common sense for most of us, but for those who have never traveled extensively: </p> <ul> <li>First, try to figure out if the water is potable.  In most of the U.S., Canada, and western Europe tap water is generally safe to drink.  In the rest of the world, the reverse is probably true. </li> <li>Avoid ice, since it probably is made from tap water. </li> <li>Do not brush your teeth with tap water (no matter what anyone says).  Use bottled or boiled water.  This is especially true if the hotel has labeled the water "not fit for drinking" above the sink (as I saw this in Macau and in a hotel in the Philippines).  Also, use bottled water or boiled water to wash your contact lenses or dentures (if you have them). </li> <li>Coffee and tea are generally safe.  However, cream and milk are not.  If you must have light coffee, bring non diary creamer with you. </li> <li>US and European chains (such as McDonalds) and large hotel restaurants are also usually safe choices.  Avoid street vendors. </li> <li>Don't drink from or brush your teeth with the water in the aircraft's rest room.  They are filled with regular tap water in whatever country they happen to be in.  A recent EPA study showed the bacterial contamination of various water samples taken from aircraft were extremely high in bacteria. </li> <li>Check to see if the bottled water you just purchased has an unbroken sealed cap.  In some countries, unscrupulous vendors will refill used bottled water containers with tap water and sell them on the streets. </li> <li>Stick with name brand water.  In some countries, some water companies bottle unfiltered tap water. </li> </ul> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-6694603344753875758?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-10599838546079837602009-01-28T17:23:00.001-06:002009-01-28T17:23:45.675-06:00How do I set ssh session or serial terminal to automatically logout?<p>There is no auto-logout feature of ssh.  You just have to set the $TMOUT variable in your shell.  To set the terminal to automatically logout after 20 seconds of inactivity, type the following:</p> <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, 'Courier New', courier, monospace; background-color: #f4f4f4"> <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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <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, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060"> 1:</span> $ export TMOUT=20</pre>
</div>
</div>
<p>Your terminal session should be logged out after 20 seconds of inactivity. </p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-1059983854607983760?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-37690506957828348452009-01-14T07:36:00.001-06:002009-01-14T07:36:40.707-06:00Nokia to License Qt 4.5 Under LGPL<p>When I looked at Qt last year, I decided to pass on Qt due to two reasons: 1) the high cost, and 2) uncertainty about what Nokia would do with Qt.  By increasing the cost of Qt, I simply didn't know whether they wanted to take it closed source in the future.  </p> <p>Today, I received an email that Nokia is releasing Qt 4.5 under the Lesser General Public License (LGPL) version 2.1 terms.   This means you have three license options: Commercial, LGPL, and GPL.  </p> <p>Attached below is a video announcement and the email I received.  </p> <p><embed src="http://www.youtube.com/v/IsTIIQocSqs&hl=en&fs=1" width="480" height="295" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" /></p> <p> </p> <blockquote> <p>"Dear Qt User: </p> <p>Nokia is pleased to announce that with the release of Qt 4.5 you will <br />be able to use Qt under the Lesser General Public License (LGPL) <br />version 2.1 terms. When released in March 2009, Qt will be made <br />available under three licensing options: Commercial, LGPL and GPL. <br />Prior versions of Qt are not impacted by this announcement. </p> <p>Nokia is committed to Qt and its continued development. By offering Qt <br />under LGPL version 2.1 license terms alongside today’s licensing <br />options Nokia hopes to: </p> <p>- facilitate wider adoption of Qt across industries, desktop, web and <br />embedded platforms. <br />- establish Qt as a de facto standard for application development. <br />- receive more valuable feedback and increased user contributions to <br />ensure that Qt remains the best-in-class, cross-platform framework. <br />- extend Nokia’s existing platform commitment to the open source <br />community. </p> <p>By offering a cost-free LGPL license as well as commercial and GPL <br />licenses to Qt, you can choose the license model that best fits your <br />development requirements. </p> <p>Irrespective of which license model you choose: </p> <p>- Qt Software is committed to continuing to provide our customers with <br />the same level of professional support, services and regular releases <br />you have come to expect of Qt Software. <br />- We will continue to actively develop Qt, and with a greater degree <br />of cooperation with the community through a new contribution model, we <br />hope to make Qt even more valuable to our users. </p> <p>For more information on the introduction of the LGPL license and what <br />this means for you, please consult the Frequently Asked Questions <br />section on www.qtsoftware.com. </p> <p>Best regards </p> <p>Tom Miller <br />Director of Sales <br />Nokia, Qt Software"</p></blockquote> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-3769050695782834845?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-39029350460123824062009-01-13T03:44:00.003-06:002009-01-13T03:44:52.433-06:00My GTD Implementation with a Day Timer<blockquote> <p><em>GTD is shorthand for "Getting Things Done," the groundbreaking work-life management system and book by David Allen, that now has a cult-like following.  Here is how I am starting to implement within the confines of a traditional paper based organizer.</em></p> </blockquote> <p>One of the things I wanted to improve in 2009 was my overall productivity.  Last year, I transited through several phases where I used various electronic devices (blackberry, palm, and pocket pc), and software utilities.  In the end, I always end up going back to my paper organizer -- a Day Timer (2 page per day format).  </p> <p>I prefer the paper Day Timer because I never have to charge it and I quite frankly, like being able to staple, clip, tape, and glue things to it.  It is a color scrapbook of my life, in minute by minute detail.  I staple receipts and boarding passes to the pages.  There are coffee mug rings on pages.  Calendar days are colored with high lighters.  Additionally, I can print emails, notes, and documents to a printer and cut the 8 1/2  x 11 paper and slip it into my binder.  </p> <p>Unfortunately, I since I'm relatively new to GTD, I didn't know how to fit GTD within the structure of a traditional paper organizer.  Here is my first attempt at merging GTD and the Day Timer paper organizer:</p> <ul> <li>The Journal page is still a record important events in my life, and a record of business information that might be necessary to submit during an audit, such as mileage and expenses.  I jot down notes, like "called and talked to xx about yy."  I highlight, I scribble, and sometimes annotate in multiple colors here.  More than once, I have pulled information noted here for powerful effect during a dispute.  I also still jot down notes about hours I spend on client projects, and staple receipts and boarding passes to it.  This is a blow-by-blow record of my time. </li> <li>I staple boarding passes to the day of travel.  If I travel a lot, I will use a 7 hole punch and simply insert them in between the proper pages, to keep the pages from bending under the weight when the pages are in the archive storage binder. </li> <li>The appointments pane is still for appointments, events, or things due at specific time of day. </li> <li>I almost never fill out the expenses pane.  Most of my business expenses go straight onto a business credit card, but if I do use my personal card, I usually will just staple the receipt to the paper to remind me later to fill out an expense report. </li> <li>Currently, I don't have address pages in my binder -- the constellation of contacts I have seems to be relatively steady.  When I do put address pages, I will staple the business cards into either the journal page or the address page. </li> <li>All of the above fits together relatively well.  If I get audited and the auditor has a question about a business trip, I flip over the the day, and oh here is my boarding pass, here is the business card of the people I met.  My notes of the meeting, and receipts all together, albeit in a stapled-amateur-art-project kind of way. </li> </ul> <p>So far, nothing has changed.  That leaves the to-do list area.  How should I use it?  I have the following options:</p> <ul> <li>Use the to-do list as a record of accomplished tasks for that day only or ongoing tasks (copy the completed task there after it is completed and crossed off the contextual list); or </li> <li>Use the to-do list as a list of uncategorized and unfiltered captured tasks that come to me during the day, which will then be moved onto a proper contextual task list; or </li> <li>Use the to-do list as a list of tasks I need to accomplish for that particular day only, as pulled from the context lists.  This would mean plan out my day, and copy the chosen tasks to the to-do list pane before doing them. </li> </ul> <p>Next, we have the context lists.  For the lists, it was a toss up between post-it sheets and Day-Timer short-trimmed sheets.  Since I already had the short-trimmed sheets, I went with them.  On each sheet, I wrote the context on top.  As a bonus, I can pull the sheets out of the binder and leave the binder behind -- useful when running errands.  </p> <ul> <li>@Home.  Stuff to do when at home. </li> <li>@Computer. Tasks I can accomplish with a computer (but not necessarily online). </li> <li>@Online. Tasks that can only be accomplished when on the internet. </li> <li>@Biz. Tasks related to running my business. </li> <li>@Waiting. Tasks that are blocked waiting for other commitments. </li> <li>@Someday. Things I want to do someday. </li> <li>@Errands. Tasks that can be accomplished while out and about. </li> </ul> <p>I will try this for a week and see how well I do. </p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-3902935046012382406?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com1tag:blogger.com,1999:blog-3185026201834346457.post-59834160600412168422009-01-13T03:44:00.001-06:002009-01-13T03:44:12.375-06:00Back in the U.S.<p>Happy New Year!  I hope everyone is as ready to plunge into 2009 as I am.  Over the holidays I traveled overseas and for the first time in ten years, I relaxed.  Freed from the tyranny of the everyday task list, I read a book, and had time to do some thinking.  As I pondered, I thought about my accomplishments in 2008 and started thinking about what I wanted to accomplish in 2009.</p> <p>Now, I'm back in the U.S. <em>and</em> have had the opportunity to sleep, I'm ready to get started.  </p> <p>I'm now clearing out the backlog of voicemail, mail, bills, and tasks.  While I have been checking my email periodically, I haven't been on top of my voicemail.  I will get back to everyone who has left a message in the next few days. </p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-5983416060041216842?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-56034693784002214852008-12-24T20:15:00.001-06:002008-12-24T20:15:32.215-06:00Happy Holidays everyone. <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-5603469378400221485?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0tag:blogger.com,1999:blog-3185026201834346457.post-40336871109535688932008-12-17T23:36:00.001-06:002008-12-17T23:36:48.313-06:00A "Swiss-Army Knife" Eclipse Setup<p>As a consultant, I'm often forced to switch development environments based on the customer's preferences such as: Code Warrior, Eclipse, KDevelop, hand written makefiles, autoconf scripts, and qmake project files.  More often than not the alpha developer has championed a setup and toolset, making it a standard.  Sometimes this setup is documented, but more often than not, what is documented is often quickly falls out of date.  </p> <p>This is how I setup my Eclipse environment to handle just about anything:</p> <p><strong>Step 1: Setup IDE for Java EE Developers</strong></p> <p>Download Eclipse IDE for Java EE Developers from <a href="http://www.eclipse.org/downloads/">eclipse.org</a>.  This 162MB tarball has everything you need to develop JEE and Web applications and includes the IDE, tools for JEE and JSF, Mylyn (task list) and more.</p> <p><strong>Step 2: Setup C/C++ Development</strong></p> <p>Next, update to add C/C++ to add GNU C/C++ support to Eclipse.  Select  Help->Software Updates.  Select the C/C++ packages, install, and restart Eclipse.  </p> <p><strong>Step 3: Adding Python support to Eclipse</strong></p> <p>Python is one language that has one quark that drives me nuts -- tabs versus spaces.  If your editor inserts tabs, causing you to inadvertently mix tabs and spaces for indention, the python interpreter will often do some very strange things.  I have wasted a lot of time tracking down issues due to mixing tabs and spaces.  The best solution-- use <a href="http://pydev.sourceforge.net/download.html">PyDev</a>.</p> <p>Help -> Software Updates, Available Software.  Add Site: <a title="http://pydev.sourceforge.net/updates/" href="http://pydev.sourceforge.net/updates/">http://pydev.sourceforge.net/updates/</a>. </p> <p>Install and restart. </p> <p><strong>Step 4: Adding Perl Integration (EPIC)</strong></p> <p>Perl is a wonderful scripting language, but wouldn't it be nice to have an editor with syntax highlighting, on-the-fly-syntax checking, a debugger, global and local variable inspection and expression evaluation?  You can with EPIC. </p> <p>Select Help > Software Updates..<strong>.</strong> in Eclipse, add the update site http://e-p-i-c.sf.net/updates/ and follow the on-screen instructions.</p> <p><strong>Step 5: Web Tools Platform (WTP)</strong></p> <p>WTP is a suite of plug-is with tools for developing J2EE applications, and includes editors for HTML, Javascript, CSS, JSP, SQL, XML, DTD, XSD, and WSDL. </p> <p>Select Help > Software Updates..<strong>.</strong> in Eclipse, add the update site <a href="http://download.eclipse.org/webtools/updates/">http://download.eclipse.org/webtools/updates/</a> and install.  Note the site might already be in your Eclipse setup, so you can click "Manage Sites..." and check the site, and then back to the available software tab. </p> <p><strong>Step 6: Make it Harder to Check in Code</strong></p> <p>Some organizations rely on "automated code review tools" or rules checkers.  I personally feel that if you need to rely heavily on those tools then you don't have the right personnel. </p> <p><strong>Step 6a Eclipse Checkstyle.</strong>  Help->Software Updates->Find and Install.... you know the drill by now : <a href="http://eclipse-cs.sourceforge.net/update">http://eclipse-cs.sourceforge.net/update</a></p> <p>Restart Eclipse.</p> <p><strong>Step 6b PMD.</strong> PMD scans Java source code and looks for potential problems.  Help->Software Updates->Find and Install.... http://pmd.sf.net/eclipse</p> <p><strong>Step 7: Subclipse Subversion Plug-in</strong></p> <p>The Eclipse update site URL is: <a href="http://subclipse.tigris.org/update_1.4.x">http://subclipse.tigris.org/update_1.4.x</a></p> <p><strong>Step 8: JSEclipse JavaScript Editing Plug-in</strong></p> <p>JSEclipse is a JavaScript editing plug-in from Adobe.  The update site URL is: <a title="http://download.macromedia.com/pub/labs/jseclipse/autoinstall/" href="http://download.macromedia.com/pub/labs/jseclipse/autoinstall/">http://download.macromedia.com/pub/labs/jseclipse/autoinstall/</a></p> <p><strong>Step 9: PHP and PHP Debugger</strong></p> <p>Install PHP.  Click <a href="http://wiki.eclipse.org/PDT/Installation">here</a> for the instructions.  Next, install the Zend debugger. </p> <p>And there you have my current Eclipse setup. Ta-Dah.  </p> <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3185026201834346457-4033687110953568893?l=www.agavemountain.com%2Fblog.html'/></div>Joe Turnerhttp://www.blogger.com/profile/12587536207539849077joe@agavemountain.com0