<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6220221</id><updated>2011-09-08T03:23:09.923-07:00</updated><category term='junk e-mail'/><category term='business'/><category term='design patterns'/><category term='finances'/><category term='java'/><category term='society'/><category term='politics'/><category term='programming'/><category term='agile development'/><category term='poker'/><category term='unit testing'/><category term='music'/><category term='career'/><category term='privacy'/><category term='productivity'/><category term='las vegas'/><category term='humor'/><category term='tapestry'/><title type='text'>The Scuttlebutt</title><subtitle type='html'>Ahoy, mateys.  Gather ye 'round the scuttled water butt and I'll tell yer a tale or two. My name is Craig Jones, and this is my personal weblog.  I also blog in two other places:  For computer producity tips, see my posts on &lt;a href="http://www.codejacked.com"&gt;codejacked.com&lt;/a&gt;. For my thoughts on software development and business, see &lt;a href="http://www.maximsc.com/tech-blog"&gt;my company weblog&lt;/a&gt;.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>64</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6220221.post-8242176377391667066</id><published>2008-04-29T01:41:00.000-07:00</published><updated>2008-04-29T02:29:13.775-07:00</updated><title type='text'>My Latest Website Project</title><content type='html'>I've been helping a friend of mine spruce up his website.  We've been loading it up with articles and photographs, and other new content.  It's a pretty basic design, but I think you'll agree it's professional and clean.  Of course, any suggestions you might have on making it better, would certainly be welcome.&lt;br /&gt;&lt;br /&gt;My friend's name is Wayne Bass, and the site is &lt;a href="http://www.webroofing.com/a/craigsblog" target="_blank"&gt;http://www.webroofing.com&lt;/a&gt;.  He's a terrific roofing contractor in South Orange County, California.  I first met Wayne when my father had his roof replaced.  My father went through a list of 13 other roofing contractors before narrowing it down to Wayne.  (When my dad decides to research something, he researches the hell out of it.) Since then, Wayne has done roofing repairs on my house, roofing repairs on my sister's house, replaced the roof on my business partner's house, and returned to my dad's house to repair subsequent termite damage.  Part of Wayne's business is also installing windows and doors, and I had him replace all the windows in my house, and my business partner did as well. Every single job was done to exacting standards and finished up neat and clean. Now, we're all talking about having Wayne make the rounds yet again -- this time to install those new solar-powered exhaust vents on all of our roofs -- to save on cooling costs.&lt;br /&gt;&lt;br /&gt;If you are considering having any roofing work done, in any way, or having new windows or doors installed, then be sure to check out Wayne's website, even if you don't live in Wayne's service area.  As I said, we've been loading it up with lots of great information.  Wayne has a knack for describing potential problems and solutions in a way that a non-contractor can easily understand.  For example, you can read all about what's involved with making sure that termite damage is repaired correctly, without upsetting the structural integrity of your house.  There are also articles on the proper way to fix a leaky roof, dealing with dry rot, and what's involved with a full roof restoration (which is different than getting a new roof in that the existing roofing tiles are reused). &lt;br /&gt;&lt;br /&gt;The site also has several photo galleries that show off different styles of roofs, windows and doors, in case you are looking for ideas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-8242176377391667066?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.webroofing.com/a/craigsblog' title='My Latest Website Project'/><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/8242176377391667066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=8242176377391667066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/8242176377391667066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/8242176377391667066'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2008/04/my-latest-website-project.html' title='My Latest Website Project'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-6042465444186735897</id><published>2007-03-25T12:14:00.000-07:00</published><updated>2007-03-25T12:18:42.746-07:00</updated><title type='text'>CodeJacked.com: Productivity Tips for Windows &amp; Linux</title><content type='html'>Here's some exciting news!  You're looking at the new editor of&lt;br /&gt;&lt;A HREF="http://www.codejacked.com/"&gt;codejacked.com&lt;/A&gt;, a website loaded with productivity tips for anyone who uses Windows or Linux.  We have 100's of tips so far and the library is growing by 10-20 tips per week.  So, please come visit.  If you find a tip that helps you, please post a comment to say so.  If you need a question answered, or you have a suggestion for a new tip, let me know (&lt;A HREF="mailto:tips@codejacked.com"&gt;tips@codejacked.com&lt;/A&gt;).  Also, PLEASE, PLEASE help spread the word.  Tell your technical support department.  Tell your friends.  Tell your boss.  And if you have a blog of your own, tell your readers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-6042465444186735897?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.codejacked.com' title='CodeJacked.com: Productivity Tips for Windows &amp; Linux'/><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/6042465444186735897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=6042465444186735897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/6042465444186735897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/6042465444186735897'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2007/03/codejackedcom-productivity-tips-for.html' title='CodeJacked.com: Productivity Tips for Windows &amp; Linux'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-2911348196799589119</id><published>2007-03-25T12:06:00.000-07:00</published><updated>2007-03-25T12:13:41.227-07:00</updated><title type='text'>Pocket PC PDA up for Grabs</title><content type='html'>Family &amp; Freinds, I have a Pocket PC PDA that I don't need anymore.  (My new cell phone does it all.)  If  you have a use for it, let me know before April 2; otherwise, I'll auction it off on eBay.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-2911348196799589119?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/2911348196799589119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=2911348196799589119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/2911348196799589119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/2911348196799589119'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2007/03/pocket-pc-pda-up-for-grabs.html' title='Pocket PC PDA up for Grabs'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-8119996166869312626</id><published>2007-03-04T01:00:00.000-08:00</published><updated>2007-03-04T01:05:45.928-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poker'/><category scheme='http://www.blogger.com/atom/ns#' term='las vegas'/><title type='text'>Las Vegas Trip Report</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_poker.gif" align="right" border="0" height="100" width="100" /&gt;Last week I took a mini vacation to Las Vegas.  I was originally planning on going in March, but all of the package deals to be had expired in February -- March and April being heavy convention months.  My usual cohorts all being unavailable, this was a solo trip for once.  I figured, what the heck?  Las Vegas is a friendly town, and I'll make new friends when I get there, which I did.  So, I loaded up my iPod with enough podcasts for the 9-hour round trip, and hit the road.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The deal I got was at the Golden Nugget: a low rate for two nights with a third night free, plus a thick coupon book when I got there.  The bad news for me was that half the coupons were two-for-one deals, yet there was only one of me, and they were strict about the wording.  So, I gave those coupons away -- which made me even more friends, woo hoo!  (By the way, it used to be that if you had a coupon for breakfast or lunch you could use it for dinner if you pay the difference, but they are strict about that now as well.)&lt;/li&gt;&lt;li&gt;One price I paid for coming in the off-season was that I had to put up with quite a bit of construction that was going on at the Golden Nugget: between the parking garage in the hotel, and in the pool area.  I must say that when the pool construction is finished it is going to be fabulous.  There is now a huge fish aquarium alongside the pool which is now surrounded by table games, a bar, and hundreds of luxurious lounge chairs. There is also a new, two-story high enclosed-tube water slide that runs right through the middle of the aquarium.  Kids of all ages are going to love it.&lt;/li&gt;&lt;li&gt;Scanning through one of the guidebooks that I picked up at the registration counter, I actually found a free attraction that I realized I had never experienced before -- the street performers in St. Mark's Square at the Venetian.  The troupe that I saw at the two o'clock show included four jugglers (one on stilts), six singers, and four musicians, all dressed in splendid renaissance attire.  I thoroughly enjoyed the show, but here is a tip for you: the amplified piano and voices overpower the acoustic flute and lutes, so be sure to pick a spot to stand that's near the musicians in order to hear them better.  Apparently, the show changes during the day, so at other times you might catch a puppet show, or a magician, or the like.&lt;/li&gt;&lt;li&gt;There is a newly renovated hotel/casino called Santa Fe Station, that is 15 minutes northwest of Downtown.  I made the mistake of trying to get there during rush hour while the 95 is all torn up with a widening project.  Even so, it was well worth the sidetrip.  The elegant casino has an airy, vaulted ceiling and is surrounded by wonderful amenities (which are especially family-friendly, by the way).  There is a huge modern movie theater, a bowling alley, and something called Kids Quest.  I ate at a Mexican restaurant called Cabo (a chain apparently), where I had the "fajitas for one" which at any other restaurant would be called fajitas for two.  As I was raving about the fajitas in the poker room, the other poker players raved about the hamburgers at the Turf Grill, and the specials at the café.  I don't know what the rooms are like, but I will definitely consider staying there next time, if a good deal is to be had.  This has me wondering if the old, rundown Palace Station (just northwest of the Strip) has a much-needed facelift in store.&lt;/li&gt;&lt;li&gt;My biggest disappointment of the trip was Zumanity, the risqué Cirque du Soleil production at New York, New York.  I had experienced three other Cirque du Soleil shows in the past (Mystere at Treasure Island, and two of the traveling shows), and they were all fantastic.  So, my expectation going in was that Zumanity would be the best of both worlds: a Folies Bergère show done up with Cirque du Soleil flair.  Instead, I found it to be merely recycled cirque minus the costumes.  There was not a single acrobatic act that I had not seen before, albeit with different props, and the comedy acts were funny but not sidesplitting.  Also, the venue is extremely dark inside.  It's all done up in black and red, which is obviously meant to be romantic, but for me it was actually sleep-inducing.  I literally nodded off during two of the particularly ho-hum acts.  I wish I had listened to my friends who recommended "O" as a worthy Cirque du Soleil offering.&lt;/li&gt;&lt;li&gt;The Golden Nugget buffet moved upstairs since the last time I visited.  Unfortunately, the fabulous food quality got left behind.  (I knew I was in trouble when I got there at the peak of lunch hour, and there was no line.)  That great self-serve beverage bar with the huge variety of drinks also got left behind, so you now have to ask the server for beverages, like at all the other buffets in town.  Much better food is to be had in the 24-hour café, downstairs in the south wing.&lt;/li&gt;&lt;li&gt;The poker room at the Imperial Palace that I liked so much moved downstairs a year ago, and now I don't like it at all.  It's extremely noisy right next to the slot machines (management has been promising to put up plexiglass dividers for six months apparently), and they took away the finger sandwiches (although they still have self-serve coffee and cookies).  At least, they still comp two dollars an hour.&lt;/li&gt;&lt;li&gt;So, the poker room at the Golden Nugget is my new favorite.  The room is a little crowded, but it's quiet and the staff is super friendly.  For comps, if you've been sitting at a table for three or four hours you can ask the floor manager to comp you a meal.  That will be in the form of a $10 voucher that's good at either the buffet or the café, to be used that day.  (As noted above, the café is where you'll want to use it.)&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/6220221-8119996166869312626?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/8119996166869312626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=8119996166869312626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/8119996166869312626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/8119996166869312626'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2007/03/las-vegas-trip-report.html' title='Las Vegas Trip Report'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-1552216474520099830</id><published>2007-02-18T12:44:00.000-08:00</published><updated>2007-02-18T12:47:29.443-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='society'/><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Oxymoronic Drivers</title><content type='html'>I'm thinking of adding "turn signal" to my &lt;a href="http://www.tankardsaweigh.com/Lex_Pages/Oxylist.htm"&gt;collected oxymora&lt;/a&gt;.  Drivers (here in California, at least) invariably only ever use them if it's already obvious which way they're headed, yet fail to use them when it would actually help.  Take lunchtime yesterday, for example.  I was waiting to turn right out of a parking lot, but there were 7 cars approaching from my left.  I sat there watching as every single one of those drivers slowed down and pulled into the parking lot before they got to me.  Thus, had I known, I could have exited at any time.  Did any of those drivers signal to let me know that?  No!  Not a one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-1552216474520099830?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/1552216474520099830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=1552216474520099830' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/1552216474520099830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/1552216474520099830'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2007/02/oxymoronic-drivers.html' title='Oxymoronic Drivers'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-3519811686859889650</id><published>2007-02-14T17:57:00.000-08:00</published><updated>2007-02-14T17:59:52.037-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>My Fibonacci Joke</title><content type='html'>An infinite number of mathemeticians walk into a bar.  The first mathemetician says, "I'll have one beer, please."   The second mathemetician says, "I'll have one beer, please."  The Nth mathemetician points to N-2 and N-1 and says, "I'll have what those two are having."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-3519811686859889650?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/3519811686859889650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=3519811686859889650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/3519811686859889650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/3519811686859889650'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2007/02/my-fibonacci-joke.html' title='My Fibonacci Joke'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-8349277857135155539</id><published>2007-02-13T20:58:00.000-08:00</published><updated>2007-02-13T21:05:45.502-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Trashy Entertainment</title><content type='html'>I sure get good value for my city taxes.  Not only do they haul away my garbage, but the entertainment of watching them do it with those robot-armed trucks is bonus material.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-8349277857135155539?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/8349277857135155539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=8349277857135155539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/8349277857135155539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/8349277857135155539'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2007/02/trashy-entertainment.html' title='Trashy Entertainment'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-8604944108285929009</id><published>2007-02-12T00:43:00.000-08:00</published><updated>2007-02-13T22:38:40.330-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Rockin' with The Antix</title><content type='html'>I had some time to kill at Disneyland tonight, so I wandered over to Innoventions to see the Asimo robot do his tricks.  Unfortunately, I missed his last performance (hourly from noon to 6), but I got a great consolation prize -- for just then, &lt;a href="http://www.theantix.com/"&gt;The Antics&lt;/a&gt; hit the stage at the Tomorrowland Terrace, singing &lt;span style="font-weight: bold;"&gt;one great rock 'n roll cover after another&lt;/span&gt;: Billy Idol, The Cars, Wild Cherry, Stevie Wonder.  The first set was so good, I waited for them return after their break and then enjoyed the second set as well.&lt;br /&gt;&lt;br /&gt;I don't see on The Antix web site where they tell you where you might catch an upcoming performance, but you can always hire them for a private gig (seriously, for weddings and corporate events, etc.).  Check out their video clips online.  And you can always look for them at Disneyland.  Apparently they're regulars there.&lt;br /&gt;&lt;br /&gt;Update: Scheduled dates can be found at &lt;a href="http://www.myspace.com/brookewilkes"&gt;http://www.myspace.com/brookewilkes&lt;/a&gt; and &lt;a href="http://www.myspace.com/antixband"&gt;http://www.myspace.com/antixband&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-8604944108285929009?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/8604944108285929009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=8604944108285929009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/8604944108285929009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/8604944108285929009'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2007/02/rockin-with-antix.html' title='Rockin&apos; with The Antix'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-7566797809362844277</id><published>2007-02-03T18:44:00.000-08:00</published><updated>2007-02-03T18:47:19.048-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>Stupid Procrastination Advice</title><content type='html'>And the award for the most inane utterance heard this week goes to the psychologist on NBC's Today Show yesterday morning for her advice on curbing procrastination.  Her biggest tip?  "Set priorities."&lt;br /&gt;&lt;br /&gt;How stupid is that?  Doesn't the term “procrastinate” pretty much imply that the items not being done are important?  I mean, when was the last time you heard a guy apologize for not getting all of his TV watching done?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Blank Page Syndrome&lt;/span&gt;&lt;br /&gt;My personal procrastination demons are usually of the fuzzy-goal species.  It's hard for me to get things done when I'm not even sure what "done" looks like.  Whenever I realize that that is what's happening, I use a trick that they teach to budding novelists.  “Write the ending first,” the professionals say.  "Then, go back to the beginning and write to that end, changing it, if necessary, when you get there."&lt;br /&gt;&lt;br /&gt;This trick works for all kinds of tasks.  For example, in software maintenance I usually have to document the changes I make, explaining to the end-user what each bug fix or enhancement means to them and how to take advantage of it.  I find that when I start with writing that documentation, pretending that I've already implemented the change, it really helps to clarify in my mind the specifics of the end result that I'm trying to achieve.  Then, as I do the work for real, it gives me an acid test to know if I'm on the right track.  In other words, does the software now work as advertised?  A side benefit of this end-first exercise is that it often reveals latent issues and questions for which I have no answers.  It also helps me to enumerate any assumptions that I've been making, which perhaps ought to be validated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-7566797809362844277?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/7566797809362844277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=7566797809362844277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/7566797809362844277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/7566797809362844277'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2007/02/stupid-procrastination-advice.html' title='Stupid Procrastination Advice'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-1706953442604292428</id><published>2007-01-30T01:21:00.000-08:00</published><updated>2007-01-30T01:23:58.149-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>A Man Walks Into a Bar...</title><content type='html'>One of my clients is a connoisseur of "A man walks into a bar..." jokes.  I made this one up for him, and he thought it was funny enough to share:&lt;br /&gt;&lt;br /&gt;A cartoon character named Sam bellies up to the bar and orders a yard of beer. &lt;br /&gt;&lt;br /&gt;The barkeep asks him, "Are you sure you want a whole yard now?  It'll get warm before you finish." &lt;br /&gt;&lt;br /&gt;Sam replies, "Yes, I'm sure.  I've got a 2-dimensional gullet, so this beer will disappear in nothing, flat."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-1706953442604292428?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/1706953442604292428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=1706953442604292428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/1706953442604292428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/1706953442604292428'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2007/01/man-walks-into-bar.html' title='A Man Walks Into a Bar...'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-114791517216160385</id><published>2006-05-17T18:17:00.000-07:00</published><updated>2006-05-17T18:19:56.820-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tapestry'/><title type='text'>Tapestry Wins Award at JavaOne</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_tapestry_logo.gif" align="right" border="0" height="100" width="100" /&gt;Tapestry won a Duke's Choice award for innovation at this years JavaOne.  "The fourth Duke's Choice Awards ... spotlight some of the most clever, practical, and inspirational Java technology applications on the planet."  Check out Howard's blog (photos yet to come): &lt;a href="http://howardlewisship.com/blog/2006/05/tapestry-dukes-choice.html"&gt;http://howardlewisship.com/blog/2006/05/tapestry-dukes-choice.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-114791517216160385?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://howardlewisship.com/blog/2006/05/tapestry-dukes-choice.html' title='Tapestry Wins Award at JavaOne'/><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/114791517216160385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=114791517216160385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/114791517216160385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/114791517216160385'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2006/05/tapestry-wins-award-at-javaone.html' title='Tapestry Wins Award at JavaOne'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-114767141793555243</id><published>2006-05-14T22:30:00.000-07:00</published><updated>2006-05-17T18:20:38.856-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>Best Pen for Margin Notes</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_writing.gif" align="right" border="0" height="100" width="100" /&gt;I have a new favorite pen for writing notes in the margins of books.  It's the Pilot Precise Gel 0.7 (a click pen).  They come in four packs.  It's ultra fine (great for when the publisher doesn't give you much margin space to work with) and it doesn't bleed through to the back of the paper.  I bought a dozen of the pens and scattered them all over my house, car, and office, so one's always in reach.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-114767141793555243?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/114767141793555243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=114767141793555243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/114767141793555243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/114767141793555243'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2006/05/best-pen-for-margin-notes.html' title='Best Pen for Margin Notes'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-113744033020771658</id><published>2006-01-16T11:36:00.000-08:00</published><updated>2006-01-16T11:38:50.216-08:00</updated><title type='text'>Martin Luther King</title><content type='html'>"Man must evolve for all humnan conflict a method which rejects revenge, aggresion and retaliation.  The foundation of such a method is love." -- Martin Luther King&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-113744033020771658?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/113744033020771658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=113744033020771658' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/113744033020771658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/113744033020771658'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2006/01/martin-luther-king.html' title='Martin Luther King'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-113737844716675717</id><published>2006-01-15T18:18:00.000-08:00</published><updated>2006-01-15T18:31:27.300-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile development'/><title type='text'>Ken Schwaber Speaking on Scrum 1/18/06</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_agile.gif" width="100" height="100" border="0" align="right" /&gt;Ken Schwaber is speaking about his "Scrum" development process at a special meeting of &lt;a href="http://www.xpsd.org//cgi-bin/wiki"&gt;XPSD&lt;/a&gt; this Wed (1/18/06).  If you have never had the pleasure of hearing Ken speak, let me tell you it's well worth any effort to get there.  He's a dynamic presenter with insightful material, and I guarantee you'll walk away enriched.&lt;br /&gt;&lt;br /&gt;I first heard Ken speak in Pasadena a few years ago, and then again at an SD West conference in San Jose.  In fact, two of the many highlights of that conference for me were when Ken joined me and my friends for breakfast and then later that evening when he led one of the most popular Birds-of-a-Feather sessions.&lt;br /&gt;&lt;br /&gt;If I wasn't already committed to hearing Michael Feathers speak at the OC Patterns meeting the same night, I'd definitely consider driving down to hear Ken again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-113737844716675717?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.xpsd.org//cgi-bin/wiki' title='Ken Schwaber Speaking on Scrum 1/18/06'/><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/113737844716675717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=113737844716675717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/113737844716675717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/113737844716675717'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2006/01/ken-schwaber-speaking-on-scrum-11806.html' title='Ken Schwaber Speaking on Scrum 1/18/06'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-112931570336549249</id><published>2005-10-14T11:45:00.000-07:00</published><updated>2005-10-14T13:08:34.323-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tapestry'/><title type='text'>Tapestry Components, Naturally</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_tapestry_logo.gif" align="right" border="0" height="100" width="100" /&gt;Mike Henderson and my business partner, Vladimir Drndarski, presented an introduction to Tapestry at the Orange County Java Users Group meeting last night. For this demo, they rewrote the entire &lt;a href="http://www.ocjug.org/"&gt;www.ocjug.org&lt;/a&gt; website (albeit without persistence), and threw in a few extra features to boot. It took them only a matter of hours. One of the main aspects of Tapestry that they showed off was how easy it is to componentize elements of your web pages for reuse. Indeed, developing in terms of components with Tapestry comes so naturally, that you’d practically have to fight it not to.&lt;br /&gt;&lt;br /&gt;One of the extra features Mike added was a component to take advantage of Google maps to give you driving directions to the OCJUG meeting. Initially, it just shows a map of the meeting location. If you enter the address of your starting point, it first calls one web service to translate it into lat/long coordinates, and then calls the Google mapping API to generate directions and show the route map. Pretty slick. All of the code for this Tapestry example is available on Mike’s blog (&lt;a href="http://www.behindthesite.com/blog"&gt;www.behindthesite.com/blog&lt;/a&gt;). See also &lt;a href="http://www.t-deli.com/"&gt;www.t-deli.com&lt;/a&gt; for a demonstration of more Tapestry components.&lt;br /&gt;&lt;br /&gt;Mike is the evil genius behind Tapestry Palette (&lt;a href="http://tapestrypalette.sourceforge.net"&gt;tapestrypalette.sourceforge.net&lt;/a&gt;) and had a hand in developing Groovistry (Groovy for Tapestry, &lt;a href="http://groovestry.sourceforge.net/"&gt;groovestry.sourceforge.net&lt;/a&gt;). Vladimir is President and co-founder of Maxim Software Corp. (&lt;a href="http://www.maximsc.com/"&gt;www.maximsc.com&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Further reading: There’s a recent Server Side article that compares JavaServer Faces to Tapestry (&lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=35899"&gt;www.theserverside.com/news/thread.tss?thread_id=35899&lt;/a&gt;) . By the way, &lt;a href="http://www.theserverside.com/"&gt;www.theserverside.com&lt;/a&gt; itself is a Tapestry app (&lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=31313"&gt;www.theserverside.com/news/thread.tss?thread_id=31313&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-112931570336549249?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/112931570336549249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=112931570336549249' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112931570336549249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112931570336549249'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2005/10/tapestry-components-naturally.html' title='Tapestry Components, Naturally'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-112753023139817292</id><published>2005-09-23T19:47:00.000-07:00</published><updated>2005-09-23T20:58:17.550-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>How to Be a Better Writer Through Blogging</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_writing.gif" align="right" border="0" height="100" width="100" /&gt;As one of my colleagues is fond of saying “practice doesn’t make perfect, it only makes permanent.” His point is, it doesn’t do you much good if you keep practicing the wrong thing. So, when blogging, pay attention to style as much as substance, even though it’s “only a blog.”&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Be eager for feedback and treasure any that you get.&lt;/li&gt;   &lt;li&gt;Give yourself feedback. Simply go back and re-read what you wrote (the next day, and again later). Is what you wrote still as clear now as you thought it was when you wrote it? If not, figure out what you did wrong.&lt;/li&gt;   &lt;li&gt;Proofread three times before clicking Post: once for content and clarity (how many times have you forgotten that ever so important “not”?), once for rhythm and style (word choice, asking questions or issuing commands instead of just making statements, etc.), and finally one last time for spelling and grammar. &lt;/li&gt;   &lt;li&gt;Buy a style guide and use it. The Skunk and White you got in college will do, although one made specifically for journalists is a lot better for blogging purposes. (Mine’s the Washington Post version. I got it for $2 in a library liquidation fundraiser. I understand that the Associated Press puts out a good one.)&lt;/li&gt;   &lt;li&gt;Already have a style guide? Supplement it with a thesaurus – a real Roget-style 2-parter, not one of those silly alphabetical-only compromises (of course, that would certainly be better than nothing).&lt;/li&gt;   &lt;li&gt;Take advantage of spell check and grammar check tools and don’t be too quick to ignore the suggestions they give you. Tip: a grammar error is often actually a spelling error in disguise because the misspelled word looks like another word (“fell”/“feel,” “fiend”/“friend”, “it’s”/”its”).&lt;/li&gt; &lt;/ul&gt; Most importantly have fun with your blog. Write about the things that tickle your fancy. Write about your hobbies. Write about the “good” parts of your job. Write about the fun stuff that your friends, colleagues, customers and vendors are up to. The more interesting the topic, the more you’ll enjoy investing your time on it, don’t you think?&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-112753023139817292?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/112753023139817292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=112753023139817292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112753023139817292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112753023139817292'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2005/09/how-to-be-better-writer-through.html' title='How to Be a Better Writer Through Blogging'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-112711089851077867</id><published>2005-09-18T23:18:00.000-07:00</published><updated>2005-09-18T23:22:40.630-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>Keeping Crib Notes</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_writing.gif" align="right" border="0" height="100" width="100" /&gt;&lt;ul&gt;&lt;li&gt;What’s the regular expression pattern for validating an e-mail address?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What are the command-line switches for configuring a Windows Explorer shortcut?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What are the 10 best opening hands in Texas Hold’em poker?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I can answer those questions in 10 seconds flat (assuming my laptop is booted up), because I maintain a series of “crib note” documents with just such information. (Currently, I use one Word doc per subject, but I’m thinking of moving it all to a personal wiki). I tend to do everything on the computer, but I know other people who handwrite such notes in an engineering notebook or keep a loose-leaf binder. Pick your poison.&lt;br /&gt;&lt;br /&gt;The trick with any of these is figuring out what’s worthy of jotting down, and what’s not.  Here are some of my criteria:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How hard was it to find the information?  How hard will it be to find it again?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What’s the likelihood that I’ll need this information again?  Is this already the second or third time that I’ve needed it?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Is this something I’m trying to become an expert on? Will writing it down help to reinforce the lesson, even if I never need to consult the note again? (But then I’ll have the note as a backup, just in case.)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;My notes are currently divided into 18 folders: Self Improvement, Business, Office, Home Improvement, Hardware, Reference, Hobbies, Programming (in general), plus ten specific programming topics like Java and XML.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-112711089851077867?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/112711089851077867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=112711089851077867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112711089851077867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112711089851077867'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2005/09/keeping-crib-notes.html' title='Keeping Crib Notes'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-112633846904926489</id><published>2005-09-10T00:39:00.000-07:00</published><updated>2006-05-17T11:47:02.060-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Foolish Anagrams</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_wordplay.gif" align="right" border="0" height="100" width="100" /&gt;Several years ago, my office mate, Jeff Davidson, and I got on a word-puzzle kick and we discovered an anagram engine on the web (now located at &lt;a href="http://wordsmith.org/anagram"&gt;http://wordsmith.org/anagram&lt;/a&gt;). April 1st was coming up and we decided it would be fun to replace the nameplate of everyone in the office (about 35 people at the time) with an anagram of their name for the day -- a nice, clean practical joke. It took a little doing, even with help from the engine. For some people we had to try different variations like using Dave instead of David, including their middle initial, and/or adding a title like Mr., and so forth.&lt;br /&gt;&lt;center&gt;&lt;br /&gt;JARGON SLICE&lt;br /&gt;Craig L. Jones&lt;br /&gt;&lt;br /&gt;SONIC GERM JAR&lt;br /&gt;Mr. Craig Jones&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;Then, it was just a matter of printing them up on card stock (we used something like 72pt type for the anagram with the original name centered underneath it in 18pt) and swapping them out for the real nameplates the night before.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;INVADE MY FJORD, SERF?!?&lt;br /&gt;Mr. Jeffrey Davidson&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;Of course, we stashed the real nameplates in Walter’s office along with other incriminating evidence. (Walter, you see, was even more famous for wordplay than the two of us.)&lt;br /&gt;&lt;br /&gt;&lt;center&gt;LET WAR RISE!&lt;br /&gt;Walter Reis&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;Well, the joke was on us, because nobody saw them. One of the first people to arrive in the office that morning was a V.P. with a bug up his butt who didn’t think the anagrams were funny. (I’m sure he didn’t even recognize them for what they were.) He promptly tore them all down and put the real nameplates back up, mumbling about the company expecting visitors in the office that day (not true). Eventually, someone rescued the torn-down anagrams out of the trash and Jeff and I saw a number of them taped to people’s monitors by the end of the day. Oh, well.&lt;br /&gt;&lt;br /&gt;If you try this yourself, you’re bound to get a better reception than we did. If, in your efforts, you come up with any real gems, please post a comment here. I can always use a good laugh.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-112633846904926489?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/112633846904926489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=112633846904926489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112633846904926489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112633846904926489'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2005/09/foolish-anagrams.html' title='Foolish Anagrams'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-112633295467006095</id><published>2005-09-09T23:15:00.000-07:00</published><updated>2005-09-10T13:27:38.750-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>I Blog, Therefore I Am Better</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_writing.gif" align="right" border="0" height="100" width="100" /&gt;I’m not sure if writing a blog has been good for my soul, but I am sure it’s been good for my career.  It gets me thinking, and asking questions.  It gets me to practice my writing.  Best of all, whatever I write about "sticks" better.  “See one, do one, teach one.”  Isn’t that the slogan that Med students live by?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-112633295467006095?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/112633295467006095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=112633295467006095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112633295467006095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112633295467006095'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2005/09/i-blog-therefore-i-am-better.html' title='I Blog, Therefore I Am Better'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-112616418524840737</id><published>2005-09-08T00:22:00.000-07:00</published><updated>2007-01-26T11:11:13.958-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>"Head First" Book Sometimes Makes My Head Hurt</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_design.gif" align="right" border="0" height="100" width="100" /&gt;I’m helping out with a study group for &lt;span style="font-weight: bold;"&gt;"Head First Design Patterns,"&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt; which just finished chapter 6. On the whole, it’s a pretty good introduction to software design patterns – way more accessible than the seminal work by the Gang of Four; however, the examples sometimes make my head hurt.  I can’t imagine what they’re doing to the heads of the beginners in the group.  Coming up with decent examples is the hardest thing to do in expository writing, and I certainly give the authors an E for effort in creativity, but I wish they had been a little less concerned with making their examples "hip" and a little more concerned with making them appropriate.&lt;br /&gt;&lt;br /&gt;To wit, the whole pizza store analogy in chapter 4 (to illustrate factory method and abstract factory) is flawed.  For one thing, that’s just not the way you’d model a pizza business in any actual software that I can imagine.  For another, the differences between a New York pizza factory and a Chicago pizza factory are too subtle/trivial to make for an effective illustration of why you would need to subclass anything (much less use a factory to manage the subclasses).  A much better example, as everyone in my group agreed, would have been an application that needs to offer up a consistent set of functionality to users who are accessing it in wildly different ways: one’s in a web browser on a desktop, another is running a cell phone app, another is using a touch-tone phone, and yet another is using a voice-activated headset.  All the client code knows is that, for example, it needs to ask a multiple-choice question and obtain the answer.  It’s up to an abstract factory to provide the client with a set of classes that can do that, in the context of the selected user-interface, in whatever way is necessary.&lt;br /&gt;&lt;br /&gt;To a lesser degree, the Starbucks coffee example at the beginning of the book suffers from the same too-hip-to-be-effective syndrome, although I do think that the remote-control example for the Command pattern in chapter six is dead on.&lt;br /&gt;&lt;br /&gt;For any novice who is reading this book without the benefit of a study group, I highly suggest that you find at least one other programmer who is experienced in design patterns to explain why/if/how the examples are lacking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-112616418524840737?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/112616418524840737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=112616418524840737' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112616418524840737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112616418524840737'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2005/09/head-first-book-sometimes-makes-my.html' title='&quot;Head First&quot; Book Sometimes Makes My Head Hurt'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-112010652864631082</id><published>2005-06-29T21:41:00.000-07:00</published><updated>2007-01-26T11:10:05.182-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='unit testing'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='agile development'/><title type='text'>Wax On, Wax Off – Red Bar, Green Bar</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_junit_logo.gif" align="right" border="0" height="100" width="100" /&gt;TDD has become as automatic for me as breathing.  It’s a beautiful thing when you get to start a new project from scratch and can write every line of code test-first.  These days, however, I’m working on a legacy app with very little in the way of unit tests, and it feels as if I’m working at 5,000 meters above sea level and struggling for every breath of rarified atmosphere.&lt;br /&gt;&lt;br /&gt;So I can only imagine how it seems to the rest of my team, for whom automated unit testing is a new concept.  The level of drudgery involved in retrofitting a legacy app with a test harness rivals the chore of waxing Mr. Miyagi’s deck.  All I can tell my teammates is that it’s good practice.  Soon, writing unit tests becomes a habit, and then, eventually, it becomes pure instinct.  Attack from the right?  Wax On!  Attack from the left? Wax Off!  Add a new feature?  HTTP-Unit!  Change a business rule?  JUnit!  Keep it up, and that black belt will arrive in no time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-112010652864631082?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/112010652864631082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=112010652864631082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112010652864631082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/112010652864631082'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2005/06/wax-on-wax-off-red-bar-green-bar.html' title='Wax On, Wax Off – Red Bar, Green Bar'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-111942570608614592</id><published>2005-06-22T00:17:00.000-07:00</published><updated>2005-10-17T21:52:06.650-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Copying SQL Records within the Same Table</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_sql.gif" align="right" border="0" height="100" width="100" /&gt;I discovered a neat trick for copying a record, or set of records, within the same SQL table today.  For example, say you have 20 employees listed in department A, and you want to clone all 20 records to also be listed under department B.&lt;br /&gt;&lt;br /&gt;You may or may know that this can be done with a single INSERT INTO statement if you use an embedded SELECT statement in place of the VALUES clause.  The hard part is that you cannot just use SELECT * FROM table WHERE ... becuase the * would pick up the key field (e.g. DepartmentID) along with all the rest.  So, you have to list every field in the table by hand, except DepartmentID.  You would specify the new value as a constant ("B") instead.  &lt;br /&gt;&lt;br /&gt;The "trick" is that you can probably find a tool that will generate the INSERT and SELECT statements for you.  In my case, I'm using the Query Analyzer that comes with Microsoft SQL.  In the explorer pane, navigate to the table.  First, right-click and choose the option to generate an INSERT script and send it to the clipboard.  Paste it into your favorite editor.  Next, right-click and choose the option to generate a SELECT script and send it to the clipboard.  When you paste this snippet into the editor, do it so that it replaces the VALUES... part of the INSERT statement.  Finally, change the field name of the key field in the SELECT statement to the appropriate constant.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-111942570608614592?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/111942570608614592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/111942570608614592'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2005/06/copying-sql-records-within-same-table.html' title='Copying SQL Records within the Same Table'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-111942451838392584</id><published>2005-06-22T00:08:00.000-07:00</published><updated>2005-09-10T13:28:56.233-07:00</updated><title type='text'>The Cobbler's Children Have No Shoes</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_writing.gif" align="right" border="0" height="100" width="100" /&gt;This blog is back.  It's been offline for far too long -- a case of me being so busy working on software projects for other people that I haven't been able to keep my own stuff going.  Anywho... Things are starting to settle down, so you can look forward to more of my endearing, but not necessarily enduring, wisdom to come.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-111942451838392584?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/111942451838392584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=111942451838392584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/111942451838392584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/111942451838392584'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2005/06/cobblers-children-have-no-shoes.html' title='The Cobbler&apos;s Children Have No Shoes'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-110859237877229439</id><published>2005-02-16T14:12:00.000-08:00</published><updated>2005-10-14T11:45:03.276-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tapestry'/><title type='text'>"Building WebApps with Tapestry" - 2/22/05 7pm</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_tapestry_logo.gif" align="right" border="0" height="100" width="100" /&gt;My business partner, Vladimir Drndarski, will be speaking on Tuesday, Feb 22 at 7pm in the city of Orange on the topic of &lt;strong&gt;Building WebApps with Tapestry&lt;/strong&gt;.  This will be at a meeting of the &lt;a href="http://www.ocdelphi.org/"&gt;Orange County Delphi Users Group&lt;/a&gt;, although the topic has nothing to do with Delphi, per se.  OCDUG meetings are free and open to the public. &lt;br /&gt;Here is the official meeting announcement:&lt;br /&gt;&lt;blockquote&gt;This month Vladimir Drndarski of Maxim Software Corp. (&lt;a href="http://www.maximsc.com"&gt;www.maximsc.com&lt;/a&gt;) will show how to build web applications in Java using the Apache Tapestry framework (a JSP alternative). As a recent convert from Delphi to Java, he'll introduce the topic from the ground up focusing on freely available open source projects that'll get you started quickly and for free. To start, Vladimir will show the Eclipse IDE and compare it to Delphi. He'll then discuss several Eclipse plug-ins that are must haves when working in Tapestry. And finally he'll delve into Tapestry itself. If time permits Vladimir will give an overview of the Hibernate persistence layer and give a quick demo of its use in Maxim Software's latest website, Oovie.com.&lt;br /&gt;&lt;br /&gt;Vladimir Drndarski is co-founder of Maxim Software Corp. and the co-creator of Oovie.com (&lt;a href="http://www.Oovie.com"&gt;www.Oovie.com&lt;/a&gt;) and CollectorStreet.com (&lt;a href="http://www.CollectorStreet.com"&gt;www.CollectorStreet.com&lt;/a&gt;).&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;The OCDUG meetings are held at Red Brick Software, 1301 East Lincoln Avenue, Orange, CA 92865. [&lt;a href="http://www.ocdelphi.org/meeting.php"&gt;Directions&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-110859237877229439?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.oovie.org' title='&quot;Building WebApps with Tapestry&quot; - 2/22/05 7pm'/><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/110859237877229439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=110859237877229439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/110859237877229439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/110859237877229439'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2005/02/building-webapps-with-tapestry-22205.html' title='&quot;Building WebApps with Tapestry&quot; - 2/22/05 7pm'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-110585822562713302</id><published>2005-01-15T22:28:00.000-08:00</published><updated>2005-01-15T22:50:54.963-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Pres. Lincoln's Farewell Address</title><content type='html'>&lt;img height="100" src="http://www.tankardsaweigh.com/Glyphs/topic_usa.gif" width="100" align="right" border="0" /&gt;The "Great Moments with Mr. Lincoln" attraction on Disneyland's Main Street is going away on Februrary 22 (the day after President's Day) to make room for a special exhibit celebrating Disneyland's 50th anniversary, and our favorite  audio-animatronic won't be giving his rendition of the Gettysburg Address again until Autumn 2006.  So, if you haven't seen Great Moments lately, be sure and catch it this month -- especially if you haven't seen it since 2001 when the 3D audio effects were added and the whole tie-in with Mathew Brady's glass plate photography was included in the story.  This is a great attraction to catch on your way out of the park.  They always run it one last time after the official park closing.  So, put on your headphones, have a seat, enjoy the show, and wait for the exiting crowd to die down.  Who knows?  You and your kids may even learn a thing or three about US history in the process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-110585822562713302?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/110585822562713302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=110585822562713302' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/110585822562713302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/110585822562713302'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2005/01/pres-lincolns-farewell-address.html' title='Pres. Lincoln&apos;s Farewell Address'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-110464873545012591</id><published>2005-01-01T22:41:00.000-08:00</published><updated>2005-01-01T23:53:09.306-08:00</updated><title type='text'>Orange County Poker Meetup</title><content type='html'>&lt;img height="100" src="http://www.tankardsaweigh.com/Glyphs/topic_poker.gif" width="100" align="right" border="0" /&gt;Happy New Year.  One of my New Year's resolutions is to play more poker, and to that end I would encourage any and all poker players here in Orange County, CA to attend the Poker Meetups every third Tuesday.  We don't actually play at these.  We just meet and talk, and arrange for games at other times.  I usually bring whatever poker books I've been reading to pass around and we always have some terrific discussions.  So, get yourself registered on meetup.com and then RSVP for the next poker meetup.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-110464873545012591?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://poker.meetup.com/10/' title='Orange County Poker Meetup'/><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/110464873545012591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=110464873545012591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/110464873545012591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/110464873545012591'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2005/01/orange-county-poker-meetup.html' title='Orange County Poker Meetup'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-110336686799264640</id><published>2004-12-17T14:47:00.000-08:00</published><updated>2004-12-18T03:03:32.260-08:00</updated><title type='text'>Announcing CollectorStreet.com</title><content type='html'>&lt;a href='http://www.collectorstreet.com'&gt;&lt;img src='http://www.tankardsaweigh.com/Glyphs/topic_cs.gif' align="right" border="0" /&gt;&lt;/a&gt;Check it out!  The &lt;a href='http://www.collectorstreet.com'&gt;CollectorStreet.com&lt;/a&gt; web site that Vlad and I created is now open for business.  Do you know any collectors?  Please do them a favor and spread the word that we're kicking off by giving away free classified advertising space to anyone who wants it.  Thanks.&lt;br&gt;&lt;br /&gt;Click &lt;a href='http://www.collectorstreet.com/Results_Page.htm?sp=SCraig'&gt;here&lt;/a&gt; to see some example ads (items that I am personally selling).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-110336686799264640?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.collectorstreet.com/Results_Page.htm?sp=SCraig' title='Announcing CollectorStreet.com'/><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/110336686799264640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=110336686799264640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/110336686799264640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/110336686799264640'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/12/announcing-collectorstreetcom.html' title='Announcing CollectorStreet.com'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-109502541321051360</id><published>2004-09-12T14:43:00.000-07:00</published><updated>2004-09-12T14:45:25.936-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Proud to be a Swing Voter</title><content type='html'>&lt;img height="100" src="http://www.tankardsaweigh.com/Glyphs/topic_usa.gif" width="100" align="right" border="0" /&gt;Every time I hear about politicians courting the swing voters, I wonder why the non swing voters don't get upset that they are being taken for granted. Shouldn't every voter need to be persuaded, every time?&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-109502541321051360?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/109502541321051360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=109502541321051360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/109502541321051360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/109502541321051360'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/09/proud-to-be-swing-voter.html' title='Proud to be a Swing Voter'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108770535963058432</id><published>2004-06-19T21:22:00.000-07:00</published><updated>2007-01-26T11:08:12.081-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Quick, Easy, Free UML Diagrams of Java Classes</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_java.gif" align="right" border="0" height="100" width="100" /&gt;I sure do love it here in the Java open-source community!&lt;br /&gt;&lt;br /&gt;I read in Martin Fowler's &lt;a href="http://martinfowler.com/bliki/UmlSketchingTools.html"&gt;blog&lt;/a&gt; that there's a cool open-source tool, called &lt;a href="http://www.spinellis.gr/sw/umlgraph/"&gt;UMLGraph&lt;/a&gt;, he's been playing with for rendering UML class diagrams.  If Fowler says it's worth checking out, then that's good enough for me.  What the heck?  I'll give it an hour. &lt;br /&gt;&lt;br /&gt;So, I installed the tool itself (a JavaDoc Doclet -- just one jar), and I installed the free &lt;a href="http://www.research.att.com/sw/tools/graphviz/"&gt;executable&lt;/a&gt; from AT&amp;T Labs that actually does the rendering.  I added a JavaDoc command to my Ant build script, and I added a call to the AT&amp;amp;T tool.  Walla! Pretty UML diagrams to go with my program! It couldn’t be any simpler.&lt;br /&gt;&lt;br /&gt;Not that I'll ever wait until the end of a project and generate reams of UML documentation to sit on a shelf -- what this will allow me to do is start to write new Java code, without any meat on the bones yet, and immediately get diagrams as I go to show off at design reviews and whatnot.  Don’t like the way the design looks?  I'll just take advantage of the Eclipse refactoring tools, and then re-render the diagrams.  Is that slick, or what?  No need to pay for a Rational Rose license, nor go though contortions to install it.  No need to learn how to use the Rose UI.  And, best yet, no need to "transcribble" (transcribe with possible errors) the design into code -- it's already code.&lt;br /&gt;&lt;br /&gt;Note that I've only played with UMLGraph's class diagrams thus far.  There's also a way to draw sequence diagrams, but it doesn’t work off of the Java source.  You have to use something called the PIC language, so that's not as slick, but I'm not complaining.  Being able to render class diagrams quickly and easily (and cheaply) is a tremendous boon.  I couldn't wait to spread the word.&lt;br /&gt;&lt;br /&gt;Oh, and back to why I love the Java open-source community: Fowler's blog entry wasn't even a day old when the UMLGraph people changed the front page of their site to reference the suggestions for improvement that Fowler made.  I wouldn't be surprised if the team has acted on them already.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108770535963058432?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://martinfowler.com/bliki/UmlSketchingTools.html' title='Quick, Easy, Free UML Diagrams of Java Classes'/><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108770535963058432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108770535963058432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108770535963058432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108770535963058432'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/06/quick-easy-free-uml-diagrams-of-java.html' title='Quick, Easy, Free UML Diagrams of Java Classes'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108759073136653455</id><published>2004-06-18T13:32:00.000-07:00</published><updated>2004-06-18T13:33:23.036-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Opting Out</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_spam.gif" width="100" height="100" border="0" align="right" /&gt;Here is a &lt;a href="http://www.creditinfocenter.com/cards/preventSellLists.shtml"&gt;concise web page&lt;/a&gt; that tells you how to cut down on junk mail (snail mail), starting with those pesky pre-approved credit card appilcations that you otherwise have to shred.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108759073136653455?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.creditinfocenter.com/cards/preventSellLists.shtml' title='Opting Out'/><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108759073136653455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108759073136653455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108759073136653455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108759073136653455'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/06/opting-out.html' title='Opting Out'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108750670652909277</id><published>2004-06-17T14:11:00.000-07:00</published><updated>2004-06-17T14:12:37.546-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>The Decline and Fall of Our Civil Rights</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_usa.gif" width="100" height="100" border="0" align="right" /&gt;First the fun part:&lt;br /&gt;&lt;br /&gt;I saw this on &lt;a href="http://www.almaer.com/blog/archives/000226.html"&gt;techno.blog("Dion")&lt;/a&gt;: "&lt;strong&gt;Teacher Arrested at Airport&lt;/strong&gt; - At New York Kennedy airport today, an individual later discovered to be a public school teacher, was arrested trying to board a flight while in possession of a ruler, a protractor, a setsquare, a slide rule and a calculator.  Attorney general John Ashcroft believes the man is a member of the notorious al-gebra movement. He is being charged with carrying weapons of math instruction.&lt;br /&gt;'Al-gebra is a very fearsome cult, indeed', Ashcroft said. 'They desire average solutions by means and extremes, and sometimes go off on a tangent in a search of absolute value. They consist of quite shadowy figures, with names like 'x' and 'y', and, although they are frequently referred to as 'unknowns', we know they really belong to a common denominator and are part of the axis of medieval with coordinates in every country.'  As the great Greek philanderer Isosceles used to say, ! 'There are 3 sides to every triangle.' When asked to comment on the arrest, President Bush said, 'If God had wanted us to have better weapons of math instruction, He would have given us more fingers and toes."&lt;br /&gt;&lt;br /&gt;Here's the serious part:&lt;br /&gt;&lt;br /&gt;On last night's &lt;a href="http://www.npr.org/rundowns/rundown.php?prgDate=29-Oct-2003&amp;prgId=14"&gt;Tavis Smiley Show&lt;/a&gt;, civil rights attorney Connie Rice expressed dismay at how she seems to be the only one of her peers who is concerned about the extreme errosion of privacy that Patriot Act II will introduce.  I was driving while listening and couldn't take notes, so I can't go into particulars, but I was appauled as she read off the things that Ashcroft will be able to do without a by-your-leave from anyone.  It's scary stuff!  &lt;br /&gt;&lt;br /&gt;In searching via Google, I see she's really not totally alone in this.  The &lt;a href="http://www.bordc.org/"&gt;Bill of Rights Defense Committee&lt;/a&gt; in MA is a prominent site with lots of resources and calls to action.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108750670652909277?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.almaer.com/blog/archives/000226.html' title='The Decline and Fall of Our Civil Rights'/><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108750670652909277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108750670652909277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108750670652909277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108750670652909277'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/06/decline-and-fall-of-our-civil-rights.html' title='The Decline and Fall of Our Civil Rights'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108656621288851480</id><published>2004-06-06T16:56:00.000-07:00</published><updated>2004-06-06T17:01:14.336-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Friedman on Outsourcing</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_india.gif" width="100" height="100" border="0" align="right" /&gt;I caught a 1-hour program on the &lt;a href="http://www.discovery.com"&gt;Discovery Channel&lt;/a&gt; the other day about outsourcing to India that was pretty good.  It was by &lt;a href="http://www.nytimes.com/top/opinion/editorialsandoped/oped/columnists/thomaslfriedman/"&gt;Thomas L. Friedman&lt;/a&gt; a columnist for the New York Times.  The program, called "The Other Side of Outsourcing" showed Friedman's visit to Bangalore, India where he interviewed Indians on the pros and cons of globalization.  It looks like you can still catch a rerun on the Discovery Times channel this week if you have digital cable.&lt;br /&gt;&lt;br /&gt;It starts off by listing all of the things that are currently being outsourced from call centers (commonly divided into inbound, i.e. service calls, and outbound, i.e. sales calls), to proofreading novels, to Indian medical doctors analyzing x-rays.  They say its only the tip of the iceberg.  I'm waiting for someone to start outsourcing the proofreading of American r&amp;eacute;sum&amp;eacute;s.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108656621288851480?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.tvguide.com/listings/search/SearchResults.asp' title='Friedman on Outsourcing'/><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108656621288851480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108656621288851480' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108656621288851480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108656621288851480'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/06/friedman-on-outsourcing.html' title='Friedman on Outsourcing'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108509929131675846</id><published>2004-05-20T17:01:00.000-07:00</published><updated>2004-05-20T17:29:38.190-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='finances'/><title type='text'>Nickeled &amp; Dimed to Death x 100</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_money.gif" width="100" height="100" border="0" align="right" /&gt;Two months ago, Bank One quietly shortened the grace period on my credit card by 7 days (although the customer service guy swears it was only 5).  So, suddenly I'm hit with two $35 late charges in a row, plus extra finance charges.  Sneaky, sneaky.  I think that they are also deliberately sending the bills out late.   The one I got today is due on the 2nd, which means I only have a week to get a check in the mail if I want to allow 5 days for it to get there.  What if I was away on a business trip?&lt;br /&gt;&lt;br /&gt;A few days ago I read an &lt;a href="http://slashdot.org/article.pl?sid=04/05/16/000225&amp;mode=thread&amp;tid=137&amp;tid=215&amp;tid=98&amp;tid=99"&gt;article&lt;/a&gt; on SlashDot about T-Mobile charging their customers a "Regulatory Programs Fee" which sounds like a government tax but is just a way for them to stick it to the customer without changing the prices they advertise.  Sneaky, sneaky.  I think they took their cue from the practice of hotels hitting you with a "resort fee" that's on top of the advertised rate and never mentioned until you arrive to check in.  Sneaky, sneaky.  (BTW, I was considering switching to T-Mobile once until I realized that the contract they wanted me to sign bound me to terms that appeared only on some arbitration company website that wouldn't come up in any browser.  Talk about buying a pig in a poke!)  Anyway, you can bet I'll be watching out for when my cell phone company follows T-Mobile's example.&lt;br /&gt;&lt;br /&gt;And, of course, today my cable bill went up another $2.50 for the second year in a row.&lt;br /&gt;&lt;br /&gt;It used to be that you had to watch out for being nickeled and dimed to death.  Now, it's $2.50'd and $35.00'd to death.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108509929131675846?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108509929131675846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108509929131675846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108509929131675846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108509929131675846'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/05/nickeled-dimed-to-death-x-100.html' title='Nickeled &amp; Dimed to Death x 100'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108486965425570064</id><published>2004-05-18T01:40:00.000-07:00</published><updated>2004-05-18T01:43:22.140-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>Two Books on Being a Software Professional</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_programming.gif" width="100" height="100" border="0" align="right" /&gt;I just read a blog entry on &lt;a href="http://www.productmarketing.com/"&gt;productmarketing.com&lt;/a&gt; that mentioned a book called &lt;a href="http://www.amazon.com/exec/obidos/ASIN/078214327X"&gt;Coder to Developer&lt;/a&gt; by Mike Gunderloy.  (The blog is addressed at marketing professionals and recommended the book as a way for them to become familiar with how software is, or ought to be, created).  This book reminds me of another one called &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0735619670"&gt;Code Complete&lt;/a&gt; by Steve McConnell that is due out with a second edition next month.  I highly recommend Code Complete to anyone interested in software craftsmanship, and it sounds like this other one might be worth a look, too.  The biggest difference appears to be that Gunderloy's book is thick with .NET stuff, while McConnell's book is agnostic.  &lt;br /&gt;&lt;br /&gt;The productmarketing blog points out that Gunderloy's book is "generous with references to other works," and that his index of all web-accessible references is &lt;a href="http://www.codertodeveloper.com/resource_list.htm"&gt;online&lt;/a&gt;.  Be sure to check it out, whether or not you read the book.  At a quick glance, I recognize many sites that I know and love, and I'm sure I'll have fun exploring the rest.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108486965425570064?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.productmarketing.com/' title='Two Books on Being a Software Professional'/><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108486965425570064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108486965425570064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108486965425570064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108486965425570064'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/05/two-books-on-being-software.html' title='Two Books on Being a Software Professional'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108388322587436862</id><published>2004-05-06T15:22:00.000-07:00</published><updated>2004-05-06T15:47:21.966-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>Tech Jobs on the Rise</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_jobs.gif" width="100" height="100" border="0" align="right" /&gt;The &lt;a href="http://groups.yahoo.com/group/xpsocal/"&gt;Extreme Programming SoCal&lt;/a&gt; group meets informally over lunch every other Wednesday (in addition to occasional formal programs), in two locations: Pasadena and Tustin.  The Tustin contingent was 7 strong this week with some rarely seen faces, three of whom were all just laid off together, which is why they were available.  They swear that it was because their group was doing XP and the old guard managers simply reverted to what they considered "tried and true," without questioning the true part.  They didn't seem worried about their prospects, though.  Vladimir (another Vladimir, not my partner) said that one mailing list he subscribes to recently increased from 2 or 3 help wanted ads per month to 50+.  So, it sounds like the economy really is picking up, even if some companies are still feeling the pain.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108388322587436862?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108388322587436862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108388322587436862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108388322587436862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108388322587436862'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/05/tech-jobs-on-rise.html' title='Tech Jobs on the Rise'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108319061005607392</id><published>2004-04-28T15:20:00.000-07:00</published><updated>2004-04-28T15:24:30.686-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile development'/><title type='text'>Don’t Refactor and Enhance at the Same Time</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_programming.gif" width="100" height="100" border="0" align="right" /&gt;Last night at my &lt;a href="http://www.tankardsaweigh.com/weblogarch/2004_04_01_sbarch.html#108216738244339294"&gt;"Introduction to Refactoring"&lt;/a&gt; presentation, I received a bunch of blank stares the first few times I said that you aren’t supposed to refactor and enhance at the same time.  Eventually, it dawned on me that I was being imprecise in my definition of the word "enhance."  After all, refactoring is itself a form of enhancement -- you are improving the design when you refactor.  So, what I meant by "enhance" is adding functionality from the user’s (customer’s) point of view.  I don’t know where I picked up that terminology.  Maybe it was a culture thing where I’ve been working.  Do other people use the term "enhance" that way?&lt;br /&gt;&lt;br /&gt;Anyway, the bottom line is you aren't truly doing refactoring unless&lt;ol&gt;&lt;li&gt;you isolate the refactoring activities from the feature-adding activities,&lt;li&gt;before you apply a refactoring you have an automated unit test that puts the existing functionality through its paces, and &lt;li&gt;the exact same unit test runs cleanly before and after the refactoring is applied.&lt;/ol&gt;Note that it’s okay if the unit test has to be tweaked to conform to new method signatures and whatnot, but you can’t change anything that has to do with what the unit test is trying to prove.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108319061005607392?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108319061005607392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108319061005607392' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108319061005607392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108319061005607392'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/04/dont-refactor-and-enhance-at-same-time.html' title='Don’t Refactor and Enhance at the Same Time'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108273628602856191</id><published>2004-04-23T09:04:00.000-07:00</published><updated>2004-04-23T09:09:58.390-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>The Myth of the 100-Year CD-ROM</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_software.gif" width="100" height="100" border="0" align="right" /&gt;Think your CD backups are trustworthy?  Think again.  According to an &lt;a href="http://www.rense.com/general52/themythofthe100year.htm"&gt;article&lt;/a&gt; on rense.com, some CDR's don't even last 2 years!  What I can't figure out is if that means 2 years from the time it's burned, or from the time it's manufactured?  I'm guessing the latter.  How fresh is your supply of blank CDs?&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108273628602856191?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108273628602856191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108273628602856191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108273628602856191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108273628602856191'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/04/myth-of-100-year-cd-rom.html' title='The Myth of the 100-Year CD-ROM'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108273282336661234</id><published>2004-04-23T08:07:00.000-07:00</published><updated>2004-04-23T08:29:16.936-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>Getting Hired</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_jobs.gif" width="100" height="100" border="0" align="right" /&gt;My friends who are about to graduate from the U.C. Irvine School of Information and Computer Science -- and anyone else looking for a programming job -- should check out &lt;a href="http://www.jroller.com/page/arjunram/Resume"&gt;Arjun Ram&lt;/a&gt;'s blog.  He has some great &lt;a href="http://www.jroller.com/page/arjunram/20040330#spring_brings_changes"&gt;advice for software engineers in the job market&lt;/a&gt;, having recently changed jobs himself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108273282336661234?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108273282336661234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108273282336661234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108273282336661234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108273282336661234'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/04/getting-hired.html' title='Getting Hired'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108223430375257723</id><published>2004-04-17T13:38:00.000-07:00</published><updated>2004-04-17T13:42:55.076-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>CandidateMap.com</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_usa.gif" width="100" height="100" border="0" align="right" /&gt;As we move closer to the 2004 presidential election, it's great to see web sites like &lt;a href="http://www.candidatemap.com/cm/index.php"&gt;CandidateMap.com&lt;/a&gt; popping up.  This one is an archive of quotes from the candidates sorted by topic.  For example, you can pick from 30 topics (e.g. Taxes, Drugs, Environment, Sci/Tech &amp; Space), and then read one relavent quote from each candidate.  If you haven't yet formed any opinions, this looks like a great way to get started.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108223430375257723?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108223430375257723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108223430375257723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108223430375257723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108223430375257723'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/04/candidatemapcom.html' title='CandidateMap.com'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108216738244339294</id><published>2004-04-16T19:00:00.000-07:00</published><updated>2004-04-17T13:44:37.373-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile development'/><title type='text'>"Intro to Refactoring" on Tuesday, April 27 </title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_programming.gif" width="100" height="100" border="0" align="right" /&gt;I will be speaking on Tuesday, April 27 at 7pm in the city of Orange on the topic of &lt;strong&gt;refactoring&lt;/strong&gt;.  This will be at a meeting of the &lt;a href="http://www.ocdelphi.org"&gt;Orange County Delphi Users Group&lt;/a&gt;, although the topic has nothing to do with Delphi, per se.  OCDUG meetings are free and open to the public.  &lt;br /&gt; &lt;br /&gt;If you have heard the term "refactoring" bandied about, but you're confused as to exactly what it means, you are not alone.  It doesn't help that people tend to misuse it all of the time.  This introduction will define what refactoring is, what it is not, when you would want to use it and why.  In case you are completely in the dark, you'll find an official definition of refactoring below, but don't worry if it doesn't make sense yet.  All will be made clear.&lt;br /&gt; &lt;br /&gt;This presentation will last a little over 1 hour and include 5 specific step-by-step examples of refactoring.  The examples are in Delphi, but&lt;br /&gt;should be easy enough to follow along for non-Delphi programmers as well.  A basic understanding of object-oriented programming is assumed (e.g. encapsulation and inheritance).  Being able to read a UML class diagram will definitely help as well.&lt;br /&gt; &lt;br /&gt;"Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external&lt;br /&gt;behavior. Its heart is a series of small behavior preserving transformations. Each transformation (called a 'refactoring') does little, but a sequence of transformations can produce a significant restructuring. Since each refactoring is small, it's less likely to go wrong. The system is also kept fully working after each small refactoring, reducing the chances that a system can get seriously broken during the restructuring."  -- From &lt;a href="http://www.refactoring.com"&gt;www.refactoring.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The OCDUG meetings are held at Red Brick Software, 1301 East Lincoln Avenue, Orange, CA 92865. [&lt;a href="http://www.ocdelphi.org/meeting.php"&gt;Directions&lt;/a&gt;]&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108216738244339294?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108216738244339294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108216738244339294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108216738244339294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108216738244339294'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/04/intro-to-refactoring-on-tuesday-april.html' title='&quot;Intro to Refactoring&quot; on Tuesday, April 27 '/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108216152227289217</id><published>2004-04-16T17:25:00.000-07:00</published><updated>2004-04-16T18:48:42.106-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>User Interfaces for Infrequent Tasks</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_design.gif" alt="Software Design" width="100" height="100" border="0" align="right" /&gt;Paraphrasing an &lt;a href="http://www.productmarketing.com/topics/01/10b.htm"&gt;article&lt;/a&gt; by Barbara Nelson of &lt;a href="http://www.pragmaticmarketing.com"&gt;Pragmatic Marketing&lt;/a&gt;, good software may very well be complex, but that complexity needs to be hidden from the user as much as possible. Nelson cites Intuit’s Quicken as a prime example. "They learned what regular people needed by spending time in people's homes, watching how they managed their home finances. Quicken was the first finance package to use the checkbook metaphor, something regular people already understood. Quicken was hugely successful, and even with dozens of competitors, managed to gain 75% market-share because it was easier to use. It was the first product to take a customer-oriented view instead of a data-centric view."&lt;br /&gt;&lt;br /&gt;One way to hide complexity is through a guided UI (a.k.a. a wizard or an interview).  A common misconception is that a wizard makes a good UI for novices, when in fact they are more properly employed to address infrequent tasks, and should have nothing to do with whether or not the user is a novice.  Novices aren't novices for very long (when performing a frequent task).  Writing a guided UI for a frequent task is bad, because it eventually bogs the user down.  On the other hand, a guided UI is perfect for an infrequent task, especially a complicated, critical, or finicky one, no matter whether the user is generally regarded as a novice, intermediate, or advanced.  You might say that when it comes to infrequent tasks, every user is always a novice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108216152227289217?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108216152227289217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108216152227289217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108216152227289217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108216152227289217'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/04/user-interfaces-for-infrequent-tasks.html' title='User Interfaces for Infrequent Tasks'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108122839794273910</id><published>2004-04-05T22:13:00.000-07:00</published><updated>2004-06-06T17:04:49.050-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>Outsourcing Battle is a Red Herring</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_india.gif" width="100" height="100" border="0" align="right" /&gt;On Firday, &lt;a href="http://slashdot.org"&gt;Slashdot&lt;/a&gt; cited an article entitled "&lt;a href="http://slashdot.org/article.pl?sid=04/04/02/1331200&amp;tid="&gt;How India is Saving Capitalism&lt;/a&gt;" that sparked yet another argument pitting capitalism against patriotism.  This kind of battle over outsourcing is a red herring.  Executives who outsource to save money are failing to see the big picture, and anyone who chooses to fight on that battleground is wasting his time and contributes nothing towards "winning the war."&lt;br /&gt;&lt;br /&gt;These executives keep asking the wrong question, "How can I continue to develop the same old crappy software, but do it cheaper?"   They ought to be asking, "How can I develop better software?"  "How can I develop it faster?" "How can I make it last longer and be more useful?"  By improving the quality of their software it'll be more desirable.  It'll draw more customers and can demand higher prices.  Answering these questions can lead to a 100-fold improvement on the ROI versus any kind of cost-saving measure.&lt;br /&gt;&lt;br /&gt;As an added bonus, better software is, well, better.  If you want to talk about morality, let's talk about how much better our society will be when the software we use provides more intuitive user interfaces, adapts more easily to our needs, offers increased security, and performs faster.&lt;br /&gt;&lt;br /&gt;The sad part is that the answers to these questions are right in front of our faces.  All we have to do is open our eyes.  The 'Net is a free, all-you-can eat buffet of best practices, high performance/high security open source frameworks, feature rich open source tools, design pattern catalogs, refactoring catalogs, ... you name it.&lt;br /&gt;&lt;br /&gt;If you really want to keep the programming jobs at home, then quit sniveling and do something to make yourself and your fellow programmers more valuable. Pick one thing and explore it.  Read up on a management methodology like XP, RUP, or Scrum.  Or, become familiar with a tool like Eclipse.  Or, try out the unit-testing framework that goes with your language of choice.  Or, otherwise avail yourself of the wisdom of luminaries such as the Three Amigos (UML), the Gang of Four (Design Patterns), Martin Fowler (Refactoring), and Steven McConnell (Code Complete).  Apply what you learn and pass it on.  It's as simple as that.  (Not easy, but simple.) &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108122839794273910?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108122839794273910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108122839794273910'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/04/outsourcing-battle-is-red-herring.html' title='Outsourcing Battle is a Red Herring'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108072787003041428</id><published>2004-03-30T23:11:00.000-08:00</published><updated>2004-04-05T23:04:06.543-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Levels of Indirection</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_books.gif" width="100" height="100" border="0" align="right" /&gt;&lt;a href="http://www.smokebreaktv.com/"&gt;Smokebreak TV&lt;/a&gt; is responsible for the best laugh I've had in a long time.  It goes like this:&lt;br&gt;&lt;br /&gt;A group of my coworkers in the Tucson office started a cable access show called Smokebreak TV and released their first episode last week.  My friend, Vlad, a coworker with me in the local office, reviewed the episode in his  &lt;a href="http://members.cox.net/vladd/"&gt;blog&lt;/a&gt;, offering up an E-for-effort appreciation of the show and noting the potential bulldada factor.  Being unfamiliar with the term, bulldada, I tried looking it up on &lt;a href="http://www.m-w.com"&gt;Merriam-Webster&lt;/a&gt; as well as doing a "define:"-style &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; search.  Both turned up empty.  I then tried a regular Google search on "buldada means" and got a hit on a &lt;a href="http://home.pacifier.com/~dkossy/gal666.html"&gt;book review&lt;/a&gt; that defined the term.  The book in question was "Galaxy 666" by Pel Torro, which Ken DeVries called the worst science fiction novel ever written.  He said that it "does for literature what Plan 9 From Outer Space did for the cinema."  Reading the quoted passages is what sent me reeling.  So, thanks guys.  I owe you one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108072787003041428?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108072787003041428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108072787003041428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108072787003041428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108072787003041428'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/03/levels-of-indirection.html' title='Levels of Indirection'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-108017689647087616</id><published>2004-03-24T17:08:00.000-08:00</published><updated>2004-04-05T22:55:08.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>iPod Race movie</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_ipod.gif" width="100" height="100" border="0" align="right" /&gt;I just discovered the &lt;a href="http://homepage.mac.com/jscct/.Movies/iPodrace_FINAL_480.mov"&gt;iPod Race&lt;/a&gt; (quicktime) movie from last December.  If you are an iPod user and you haven't seen it yet, you gotta check it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-108017689647087616?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/108017689647087616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=108017689647087616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108017689647087616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/108017689647087616'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/03/ipod-race-movie.html' title='iPod Race movie'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107968756578901409</id><published>2004-03-18T23:10:00.000-08:00</published><updated>2004-04-16T18:52:10.013-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unit testing'/><title type='text'>Endo-Testing with Mock Objects </title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_programming.gif" width="100" height="100" border="0" align="right" /&gt;I finally paid attention to the buzz surrounding &lt;a href="http://www.mockobjects.com/wiki"&gt;endo-testing with mock objects&lt;/a&gt; and read the &lt;a href="http://www.mockobjects.com/wiki/MocksObjectsPaper"&gt;introductory paper&lt;/a&gt;.  I’m quite impressed with the concept and I can easily see how it’ll provide me with an easier way to unit test within complex states.  I’m already convinced that test-driven development is the way to go, so I’m especially impressed with the idea that mock objects work especially well when employed as a TDD tactic.&lt;br /&gt;&lt;br /&gt;By the way, for anyone still using Delphi, there’s a Delphi Magazine &lt;a href="http://www.thedelphimagazine.com/samples/1677/1677.htm"&gt;article&lt;/a&gt; on the subject.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107968756578901409?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107968756578901409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107968756578901409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107968756578901409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107968756578901409'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/03/endo-testing-with-mock-objects.html' title='Endo-Testing with Mock Objects '/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107939844155648816</id><published>2004-03-15T16:54:00.000-08:00</published><updated>2004-04-16T18:52:40.513-07:00</updated><title type='text'>You are Invited - Intro to UML &amp; Design Patterns</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_programming.gif" width="100" height="100" border="0" align="right" /&gt;I will be speaking on Tuesday, March 23 at 7pm in the city of Orange on the following topics:  &lt;strong&gt;An introduction to UML&lt;/strong&gt; followed by a very brief &lt;strong&gt;introduction to design patterns&lt;/strong&gt; (which will, of course, be illustrated using UML diagrams).  This will be at a meeting of the &lt;a href="http://www.ocdelphi.org"&gt;Orange County Delphi Users Group&lt;/a&gt;, although as you can see, the topics have nothing to do with Delphi, per se.  OCDUG meetings are open to the public.  &lt;br /&gt; &lt;br /&gt;The Unified Modeling Language (UML) comes in multiple forms and serves many purposes. This presentation will describe UML diagramming in particular and discuss the uses for it. All 9 diagram types will be presented with an emphasis on the Class diagram. (That's the one that most people think of when you just say "UML diagram.")&lt;br /&gt; &lt;br /&gt;Software design patterns first became popular with a book called "Design Patterns: Elements of Reusable Object-Oriented Software" by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (a.k.a. "The Gang of Four"). All software is designed according to patterns, whether or not the programmers realize it. This book sheds light on how patterns are used in software design and offers up a catalog of certain patterns that tend to recur in good code. Many other pattern catalogs have emerged subsequently, but the original GoF catalog is still considered the proper starting point. This presentation will cover: the general concept of patterns, the difference between patterns and idioms, and how patterns are described and catalogued. One pattern (Singleton) will be discussed in detail. &lt;br /&gt;&lt;br /&gt;The OCDUG meetings are held at Red Brick Software, 1301 East Lincoln Avenue, Orange, CA 92865. [&lt;a href="http://www.ocdelphi.org/meeting.php"&gt;Directions&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107939844155648816?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107939844155648816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107939844155648816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107939844155648816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107939844155648816'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/03/you-are-invited-intro-to-uml-design.html' title='You are Invited - Intro to UML &amp; Design Patterns'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107913952089704619</id><published>2004-03-12T16:58:00.000-08:00</published><updated>2004-04-05T22:47:52.326-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='junk e-mail'/><title type='text'>Proposed Spammer Punishment</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_spam.gif" width="100" height="100" border="0" align="right" /&gt;&lt;br /&gt;When we finally figure out how to catch and convict spammers (and virus writers), I propose that they each be punished as follows:&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Lop off his or her head&lt;br /&gt;&lt;li&gt;Put the head on stake&lt;br /&gt;&lt;li&gt;Aim a web-cam at it as a warning to all other would-be spammers&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;That's not too lenient, is it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107913952089704619?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107913952089704619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107913952089704619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107913952089704619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107913952089704619'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/03/proposed-spammer-punishment.html' title='Proposed Spammer Punishment'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107911337907325082</id><published>2004-03-12T09:42:00.000-08:00</published><updated>2004-04-05T22:56:36.390-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='junk e-mail'/><title type='text'>Why Anti-Spam Technology Doesn't Work</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_spam.gif" width="100" height="100" border="0" align="right" /&gt;Over half of all e-mail traffic is SPAM these days, and it's getting worse, costing businesses $20 billion a year in lost productivity.  Most of it originates from a handful of organized spamming groups that the authorities are unable to do anything about because of ineffective laws.  In the mean time, a number of technological solutions are being used/proposed, but, as this terrific &lt;a href="http://www.securityfocus.com/infocus/1763"&gt;article&lt;/a&gt; (and &lt;a href="http://www.securityfocus.com/infocus/1766"&gt;part 2&lt;/a&gt; of 2) shows, none of them (will) work.  What a mess!  I sure hope somebody finds a way to deal with this soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107911337907325082?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107911337907325082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107911337907325082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107911337907325082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107911337907325082'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/03/why-anti-spam-technology-doesnt-work.html' title='Why Anti-Spam Technology Doesn&apos;t Work'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107778439334402974</id><published>2004-02-25T23:31:00.000-08:00</published><updated>2004-04-05T23:00:51.450-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Borland? Or Bore-bland?</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_borland_logo.gif" width="100" height="100" border="0" align="right" /&gt;I was at the &lt;a href="http://www.ocdelphi.org/"&gt;Orange County Delphi User Group&lt;/a&gt; Meeting last night.  It was a special meeting because John Kaster flew all the way down from Scots Valley with a promise to tell us "all the reasons why we should make &lt;a href="http://www.borland.com/delphi/"&gt;Delphi 8&lt;/a&gt; part of our .NET plans," according to the e-mail advertisement.  I guess that's a popular subject these days since this meeting had the largest attendance I’ve seen in years.  Too bad Kaster couldn’t deliver the goods.&lt;br /&gt;&lt;br /&gt;I should mention that I was 10 minutes late, so I can’t speak to the very start of the meeting.  When I arrived, Kaster was winding down from some introductory remarks about how Borland is repositioning itself as the "whole development lifecycle" company (or something like that) -- complete with an epiphany-inspiring puzzle piece logo that's sure to change my life forever.   &lt;br /&gt;&lt;br /&gt;Kaster then turned the floor over to two of his colleagues in the &lt;a href="http://www.borland.com/starteam/"&gt;Starteam&lt;/a&gt; division (which is still located here in OC).  They proceeded to bore us to death for almost an hour.  Try as I might, I couldn't figure out why they were even up there.  This had nothing to do with either Delphi or .NET.  At first, I thought maybe they were leading up to some news about Starteam, but my anticipation faded fast when they started droning on with a demo of how to set up a Starteam project.  Talk about old news!  As a longtime Starteam user, I can attest that there was not one scintilla of information less than 3 years old.  Maybe it was because of my seat in the back of the room -- one of those folding chairs with an attached writing desk -- but I could swear I was back in high school and had been sentenced to detention.  &lt;br /&gt;&lt;br /&gt;When they got to Q&amp;A, I decided to throw them a bone.  In keeping with their development lifecycle theme, I asked about how well Starteam integrates with their requirements tracking tool, Caliber RM.  "For example," I asked.  "Say a project manager is looking through the bugs that have been reported as change requests in Starteam and decides that a few of them should really be treated as feature requests for the next version.  What facilities are there for converting such bug reports into Caliber requirements?"   The answer I got was really convoluted, but what I think I heard was essentially "Ctrl-X/Ctrl-V."   Am I missing something?  How does the self-proclaimed thought leader in development environment integration expect to thrive by selling us bundled products that don’t integrate?&lt;br /&gt;&lt;br /&gt;Needless to say, by the time Kaster got back in front of the projector and started to actually talk about Delphi 8, I was numb.  I made a valiant effort to follow along and understand what big things Delphi 8 brings to the .NET table, but I didn’t see any.  All I saw was Microsoft finger-pointing and all I heard was more old news: "Live data at design time this" and "still not quite drag-and-drop form design that."  Ho, hum.  By 8:45 I was counting the minutes until the meeting ended, hoping to salvage what was left of the evening with one of our famous parking-lot “after-meetings.”  But the meeting ran long and there was still no end in sight, so I bolted.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107778439334402974?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107778439334402974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107778439334402974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107778439334402974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107778439334402974'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/02/borland-or-bore-bland.html' title='Borland? Or Bore-bland?'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107760273816476492</id><published>2004-02-23T22:03:00.000-08:00</published><updated>2004-04-16T18:53:10.700-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>Contact Management Software for Job Seekers</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_software.gif" width="100" height="100" border="0" align="right" /&gt;I'm on a quest to find a good, inexpensive contact management software package to recommend to jobseekers.  ACT and Goldmine are way too expensive at $500 a pop.  So far, the closest I've seen is one that my friend, &lt;a href="http://members.cox.net/vladd/"&gt;Vladimir&lt;/a&gt;, just discovered.  It's the &lt;a href="http://quickbooks.intuit.com/commerce/catalog/product.jhtml?priorityCode=0273400000&amp;prodId=prod0000000000005952701&amp;lid=ap"&gt;QuickBooks Customer Manager&lt;/a&gt; for $80. It's a version 1.0 product, so the feature set is lacking, but the basics are there.  [See the &lt;a href="http://reviews.cnet.com/QuickBooks_Customer_Manager/4505-3513_7-30575570.html"&gt;CNET Review&lt;/a&gt;] I especially like the way it manages links between names and companies.  You can associate several individuals with a company/organization and quickly jump between them.  For example, I can click on my employer and see a list of all of my coworkers (that I’ve entered), and from their click on myself.  My record, in turn, shows that I'm associated with my employer (of course) as well as the School of Information and Computer Science at U.C. Irvine.  If I click on that link, it'll show me all of the other people that are associated with the ICS School (i.e. my fellow alumni, current faculty, and whomever else I'm tracking as such).  In that regard, it's very much like the genealogy software I use.  My biggest complaint is that the searching capability is severely limited.  For example, you cannot search within the text fields of the notes, the call logs, or the e-mails that are associated with people.  Don't get me wrong, this is better than trying to use Outlook alone as a contact manager, and I'll probably stick with it and hope that a search feature is forthcoming.  In the mean time, if anyone out there knows of a better alternative, preferably an open-source one, I'll all ears.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107760273816476492?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107760273816476492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107760273816476492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107760273816476492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107760273816476492'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/02/contact-management-software-for-job.html' title='Contact Management Software for Job Seekers'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107717832699753499</id><published>2004-02-18T23:11:00.000-08:00</published><updated>2004-04-16T18:53:54.733-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>Computer Science Careers</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_programming.gif" width="100" height="100" border="0" align="right" /&gt;It's career night at U.C. Irvine again and I've been asked to participate on a panel discussion with some fellow alumni.  Here are a few references that I plan on mentioning:&lt;br /&gt;&lt;UL&gt;&lt;LI&gt;&lt;A HREF="http://www.Joelonsoftware.com"&gt;Joel Spolsky&lt;/A&gt; of &lt;A HREF="http://www.fogcreek.com"&gt;Fog Creek Software&lt;/A&gt; is outspoken on many aspects of software craftsmanship. His site includes a pretty good forum discussion on &lt;A HREF="http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&amp;ixPost=20068"&gt;questions to ask the employer during an interview&lt;/A&gt;. Be sure to check out Igor K's contribution at the end entitled, "How to research the company," as well as Ged Byrne's great list of questions such as "Do you fix bugs before writing new code?" and "Can you make a build in one step?"&lt;br /&gt;&lt;LI&gt;&lt;A HREF="http://www.right.com/"&gt;Right Management Consultants&lt;/A&gt; do a fantastic job running outplacement seminars and otherwise helping people to boost their careers.&lt;br /&gt;&lt;LI&gt;&lt;A HREF="http://www.sdmagazine.com/"&gt;Software Development magazine&lt;/A&gt; is always a must read.  Among the technical articles you will usually find one or two per month concerning software careers (salary surveys, outsourcing issues, résumé writing, etc.)&lt;/UL&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107717832699753499?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107717832699753499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107717832699753499' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107717832699753499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107717832699753499'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/02/computer-science-careers.html' title='Computer Science Careers'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107709194454289359</id><published>2004-02-17T23:09:00.000-08:00</published><updated>2004-04-16T18:54:21.903-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Can We At Least Agree on What "Agree" Means?</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_usa.gif" width="100" height="100" border="0" align="right" /&gt;Like the good citizen that I am, I decided to read up on proposition 56 in my California voter’s guide to get my facts straight.  (In case you are not from CA, prop 56 is a constitutional ammedment that would make it even easier for our legislature to tax us to death by reducing the vote needed to pass a spending bill from a 2/3 majority to only 55%.)   On page 11 of the guide, there’s a "Fiscal Effects" analysis prepared by some unnamed Legislative Analyst in the Attorney General’s office which includes this statement: "This proposition, by reducing the number of votes needed to pass budget-related bills, would make it easier for the legislature to &lt;strong&gt;&lt;em&gt;agree&lt;/em&gt;&lt;/strong&gt; on these measures."  [Emphasis mine.]  &lt;br /&gt;&lt;br /&gt;Shouldn’t that be “disagree?”  I don’t know where this guy studied math, but I was taught that when there is a 55-45 split of opinon, that means there is LESS agreement among the parties than with a 67-33 split, not more.  Prop 56 would certainly make it easier to get a spending bill to pass, but it would be in spite of disagreement among the legislators, not because they suddenly agree.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107709194454289359?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107709194454289359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107709194454289359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107709194454289359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107709194454289359'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/02/can-we-at-least-agree-on-what-agree.html' title='Can We At Least Agree on What &quot;Agree&quot; Means?'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107695127161851089</id><published>2004-02-16T09:07:00.000-08:00</published><updated>2004-02-16T09:10:28.700-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>The Reasonable Man</title><content type='html'>"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." ~ George Bernard Shaw&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107695127161851089?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107695127161851089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107695127161851089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107695127161851089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107695127161851089'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/02/reasonable-man.html' title='The Reasonable Man'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107657077691443052</id><published>2004-02-11T21:47:00.000-08:00</published><updated>2004-04-16T18:54:57.450-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile development'/><title type='text'>Brainstorming and Pair-Programming</title><content type='html'>&lt;img src="http://www.tankardsaweigh.com/Glyphs/topic_programming.gif" width="100" height="100" border="0" align="right" /&gt;While &lt;strong&gt;&lt;a href="http://members.cox.net/vladd/"&gt;Vladimir Drndarski&lt;/a&gt;&lt;/strong&gt; and I were pair-programming today, the following conversation ensued:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Vlad&lt;/em&gt;: "That's a bad design."&lt;br /&gt;&lt;em&gt;Craig&lt;/em&gt;: "Only because we are testing it."&lt;br /&gt;&lt;br /&gt;I'll leave the circumstances to your imagination, although I assure you that I was serious at first, before I realized the absurdity of what I had said.   Well, we both cracked up.  Then, needless to say, we changed our tack.  Chalk up another victory for pair-programming.  &lt;br /&gt;&lt;br /&gt;On a related note, &lt;strong&gt;Jim Powell&lt;/strong&gt;, a colleague of mine, gave a presentation yesterday about brainstorming techniques.  For example, he talked about how an initial pool of ideas can be built up in the generation phase by pushing the boundaries, piggy-backing on the previous ideas, and inverting or negating the previous ideas.  (More on that in a moment.)  Afterwards, it occurred to me that &lt;strong&gt;one of the reasons pair-programming works so well is that it basically amounts to an endless stream of mini-brainstorms&lt;/strong&gt;  between the two partners. I don’t have any objective proof, but I swear that whenever I pair with someone, we’ll write code that is easily 3-4 times tighter and cleaner that if I had written it alone.  I'm sure the brainstorming aspect has a lot to do with why.&lt;br /&gt;&lt;br /&gt;Regarding idea generation via negation, I will never forget the first time I tried it.  I was using a technique called “20 Answers” which is essentially a way to do a &lt;strong&gt;brainstorm single-handedly.&lt;/strong&gt;  I started with a blank piece of paper and wrote my question at the top, “How can I get this bleepin’ report-printing framework to fill in the calculated totals I need on the cover sheet at the beginning of the report, even though the figures to be totaled haven’t been processed yet?”  (That was back in my C/PM days, and the tool I was using didn’t know how to make a preview pass when generating a report.)  Some of the possible answers that immediately came to mind were:&lt;br /&gt;&lt;br /&gt;1. Somehow pre-calculate the totals&lt;br /&gt;2. Write a post-processor to fix up the cover page&lt;br /&gt;3. Bypass the framework and write the whole report in Print statements&lt;br /&gt;&lt;br /&gt;But they were obviously too complicated.  So, I loosened the constraints and brainstormed some more...&lt;br /&gt;&lt;br /&gt;8. Find another framework and rewrite the whole app&lt;br /&gt;9. Write my own framework from scratch&lt;br /&gt;&lt;br /&gt;Of course, those were even more complicated.  Eventually, I started getting really silly and downright contrarian.  I thought to myself, what if I don’t try to answer the question at all?  Or that I only answer part of the question?  That generated a few more possibilities...&lt;br /&gt;&lt;br /&gt;15. Perhaps I could convince the customer that they don’t really need the totals on the cover sheet?  &lt;br /&gt;16. Perhaps they’d settle for a summary page at the end instead of a cover sheet in front?  &lt;br /&gt;&lt;br /&gt;And then it finally hit me.  Who says the cover sheet has to actually come out of the printer first?  Thus:&lt;br /&gt;&lt;br /&gt;19. Print a summary sheet at the end that looks like a cover page and have the clerk move that page to the front before mailing the report.&lt;br /&gt;&lt;br /&gt;Walla!  I had struggled with that problem for a few days before I brought out the "big guns" and went through the 20-Answers exercise.  &lt;strong&gt;It’s true what they say about the power of getting things down on paper to stop the mental "looping."&lt;/strong&gt; But disciplined brainstorming like that isn’t something that comes naturally to a single individual, at least not to me.  When I’m pairing, however, it does happen naturally -- and constantly.  It's just part of the conversation.&lt;br /&gt;&lt;br /&gt;I’ve been pair-programming on and off for a few years now, and the more I practice it, the better my work gets.  What’s your experience?  Write me.&lt;strong&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107657077691443052?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107657077691443052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107657077691443052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107657077691443052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107657077691443052'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/02/brainstorming-and-pair-programming.html' title='Brainstorming and Pair-Programming'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107485037803015739</id><published>2004-01-22T23:35:00.000-08:00</published><updated>2004-01-23T01:35:26.170-08:00</updated><title type='text'>Republic Day</title><content type='html'>"Happiness is when what you think, what you say, and what you do are in harmony." ~~ Mahatma Gandhi (1869 - 1948)&lt;br /&gt;&lt;br /&gt;This Sunday evening it'll be Monday morning in India where they will be celebrating Republic Day.  Last August I had the opportunity to experience life in India first hand.  It is a land of wild extremes -- big business cheek to jowl with abject poverty, fabulous art and architecture surrounded by squalor, and ancient icons of culture and religion upstaged by garish billboards and cell phone transceivers, just to name three.  Even though I was warned to expect this, the reality is never quite like you imagine.  My biggest surprise, however, was of the pleasant sort -- finding out just how friendly the people are.   I guess nobody thought to warn me about that.  Other than the street beggars (who I must say were really annoying), I didn’t meet a single unpleasant person during my entire stay in India.  Indeed, almost everyone went out of his or her way to help me, to explain things to me, and to otherwise just wish me well.  &lt;br /&gt;&lt;br /&gt;So, to my friends in Mumbai and Bangalore, may you have an outstanding Republic Day.  I hope it finds you healthy and happy.  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107485037803015739?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107485037803015739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107485037803015739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107485037803015739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107485037803015739'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/01/republic-day.html' title='Republic Day'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107476214037417883</id><published>2004-01-21T23:45:00.000-08:00</published><updated>2004-01-22T01:05:23.170-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='junk e-mail'/><title type='text'>Inane E-Mail Footers</title><content type='html'>I don’t know what’s worse, those inane e-mail footers that go "Attention: This message is intended only for the individual to whom it is addressed, blah, blah, blah," or the fact that they come attached to everything from I’m-on-vacation auto responses to chain letter emails that promise years of bad luck if you don’t immediately forward it to 50 strangers.  Not only are those footers pointless, they’re often incorrect.  (For example, say that you accidentally send an e-mail to the wrong person because your mouse wiggles while you are trying to pick John Doe out of your address book and you get Jack Doe instead.  Off it goes, to the "individual to whom it is addressed," but NOT to the person that was intended.)  &lt;br /&gt;&lt;br /&gt;If adding such verbiage to e-mails was ever effective, that effectiveness has got to be diluted 1,000 fold by now.  Remember those 2 questions the airport attendants had to ask us about whether or not we packed our own luggage?  After 7 years, the FAA finally quit making them ask us, because there wasn’t a single time when it did any good.  I’ve never heard of those e-mail disclaimers doing anyone any good, either.  Isn’t about time we stop cluttering up each other’s in-boxes with them?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107476214037417883?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107476214037417883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107476214037417883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107476214037417883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107476214037417883'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/01/inane-e-mail-footers.html' title='Inane E-Mail Footers'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107457189138326436</id><published>2004-01-19T20:11:00.000-08:00</published><updated>2004-01-19T22:16:09.873-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>A Brave New World Wide Web</title><content type='html'>&lt;p&gt;&amp;quot;We don’t know what the web is for but we’ve adopted it faster than any technology since fire.&amp;quot; -- David Weinberger (co-author), &lt;em&gt;The Cluetrain Manifesto: The End of Business as Usual&lt;/em&gt;, 2000&lt;/p&gt;&lt;p&gt;According to &lt;i&gt;Cluetrain&lt;/i&gt;, the magic of the Internet is that we are all finding our voices and communicating directly with each other. According to a &lt;a href="http://www.harrisinteractive.com/"&gt;Harris Interactive&lt;/a&gt; poll, 69% of American adults were users of the Internet in 2003 (as opposed to just 9% in 1995). What are these 146 million people talking about?  Everything. We’re comparing notes and sharing first-hand knowledge. &lt;em&gt;Cluetrain&lt;/em&gt; co-author Christopher Locke calls the Net &amp;quot;a powerful multiplier for intellectual capital.&amp;quot; We are talking on many levels in many roles. We are doing it instantaneously and without filters.&lt;/p&gt;&lt;p&gt;One of the ways we are communicating is consumer-to-consumer. I probably don’t need to tell you the worth of reviews posted to &lt;a href="http://www.amazon.com/"&gt;www.amazon.com&lt;/a&gt; and &lt;a href="http://www.epinions.com/"&gt;www.epinions.com&lt;/a&gt;. You may have even found one valuable enough that you wanted to &amp;quot;pay it forward&amp;quot; by posting a review of your own, right? Us consumers collectively know more about any given product than the manufacturer does. After all, we have the company’s employees drastically outnumbered. Now that we are talking directly to each other, we are rapidly becoming a force to be reckoned with. Companies that decide to listen and join in on the conversation with an open and honest attitude will keep our business. Companies that don’t won’t.&lt;/p&gt;&lt;p&gt;One of the first causalities of this Brave New World Wide Web are monolithic computer software companies that don’t know how to give their customer’s what they really want. Enter open source software. Check out the first four winners of the newly announced &lt;a href="http://www.opensource.org/osa/awards.php"&gt;Open Source Awards&lt;/a&gt;.  Whether or not you find those projects to be useful, personally, you will certainly find it interesting to see the motivation behind their existence. What do they portend? Will all software go open source? Hardly. But the ones that remain commercial will have to be just as adaptable in their own way.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107457189138326436?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107457189138326436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107457189138326436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107457189138326436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107457189138326436'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/01/brave-new-world-wide-web.html' title='A Brave New World Wide Web'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107423362771433937</id><published>2004-01-15T21:35:00.000-08:00</published><updated>2004-01-15T22:20:09.170-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>TextPad (shareware) Keeps Getting Better and Better</title><content type='html'>There is a fabulous shareware text editor called &lt;a href="http://www.textpad.com"&gt;TextPad&lt;/a&gt;.  We have a site license for it at work and everyone uses it all of the time.  Some of the more interesting features recently added (in 4.6 and 4.7) are:&lt;UL&gt;&lt;LI&gt;New features for cutting and pasting as HTML.&lt;LI&gt;Sped up many functions, especially when dealing with huge files. &lt;LI&gt;The Clip Library now includes a Clipboard History. &lt;LI&gt;A new command that duplicates the active line (or paragraph). &lt;LI&gt;Now takes advantage of the extra keys found on an Internet/Multi Media keyboard.&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/6220221-107423362771433937?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107423362771433937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107423362771433937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107423362771433937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107423362771433937'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/01/textpad-shareware-keeps-getting-better.html' title='TextPad (shareware) Keeps Getting Better and Better'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107415785398528551</id><published>2004-01-14T22:16:00.000-08:00</published><updated>2004-01-15T01:14:02.280-08:00</updated><title type='text'>"Tae-Bo Flex" DVD is Inflexible</title><content type='html'>The Tae-Bo concept is wonderful, but &lt;em&gt;Billy Blanks' Tae-Bo Flex&lt;/em&gt; is the worst sequel to come along since &lt;em&gt;The Scorpion King.&lt;/em&gt;  It's a major step down from the classic Tae-Bo VHS tapes I bought 4 years ago.  First of all, I have to question if the "flex" aspect of the workout really does any good.  I'm no expert, but just standing on one foot and holding a pose doesn't seem to be useful either from an aerobic or anaerobic perspective.  But, whether or not the content is worthy, the presentation of it certainly leaves a lot to be desired.  Billy Blanks' performance was pathetic.  He kept screwing up his lines and had to be corrected by his assistant.  This is clearly something that they whipped out in one take with few rehearsals, if any.&lt;br /&gt;&lt;br /&gt;And then there's the brain-dead formatting.  This production of &lt;a href="http://www.goodtimes.com"&gt;Goodtimes Entertainment&lt;/a&gt; doesn't even take advantage of the fundamental features of a DVD!  There is only one item on the menu: "Play."  What's the point of that?  It may as well just start playing. Better yet, how about a few more menu choices, like scene selection.  Hello?!   The 45 minute program isn't broken down into chapters at all, so the Skip Ahead button doesn't work. (You can't even use the Skip Back button to restart at the beginning.)  This is supposed to be a DVD that we'll wear out watching over and over, yet they expect us to sit through the introduction every time.  If it were up to me, I would have put in at least 4 chapter breaks: intro, warm-up, workout, cool-down, and credits. ( I don't need to be reminded how to warm up, and would rather do that while watching CNN, then skip straight to the workout.)&lt;br /&gt;&lt;br /&gt;I bought &lt;em&gt;Flex&lt;/em&gt; in a 3-pack with &lt;em&gt;Flex Express&lt;/em&gt; and &lt;em&gt;Cardio.&lt;/em&gt;  &lt;em&gt;Cardio&lt;/em&gt; isn't as bad content-wise, but it's not compelling either, and it still suffers the same poor production quality.  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107415785398528551?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107415785398528551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107415785398528551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107415785398528551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107415785398528551'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/01/tae-bo-flex-dvd-is-inflexible.html' title='&quot;Tae-Bo Flex&quot; DVD is Inflexible'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107406415230257421</id><published>2004-01-13T23:06:00.000-08:00</published><updated>2004-01-14T14:17:15.810-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='agile development'/><title type='text'>Unfinished Projects = Costly Excess Inventory</title><content type='html'>Speaking of Mary Poppendieck (see below), the Feb '04 issue of  &lt;a href="http://www.sdmagazine.com/"&gt;Software Development magazine&lt;/a&gt; carries a great article about measuring the maturity of a software development organization -- specifically why assessments are better than certification.  In it, Poppendieck mentions another of the 7 wastes of manufacturing, excess inventory, and how it maps to software development. "The level of inventory in your system is the amount of stuff you have under development.  The more inventory of unfinished development work you have sitting around, the greater you're at risk of it becoming obsolete, getting lost and hiding defects.  If you capitalized it, you also bear the risk of having to write it off if it doesn't work."  This is the focal point of her analysis of why Dell succeeded in putting Zeos out of business.  Zeos was named as a finalist for the Malcolm Baldridge National Quality Award (which would be the equivalent of a CMM Level 5 certification for us software developers).  Yet, all of the so called quality-producing “capability” enshrined in the Zeos procedure manuals couldn't hold a candle to Dell's simple 2-pronged vision of keeping inventory to a minimum and delivering product to the customers as quickly as possible.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107406415230257421?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107406415230257421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107406415230257421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107406415230257421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107406415230257421'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/01/unfinished-projects-costly-excess.html' title='Unfinished Projects = Costly Excess Inventory'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107397792743618941</id><published>2004-01-12T22:57:00.000-08:00</published><updated>2004-01-12T23:19:14.443-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile development'/><title type='text'>Mary Poppendieck on "Lean Software Development"</title><content type='html'>During my discussion with Gloria Mark last Thursday about multitasking work habits (see below), I mentioned a concept I learned from one of &lt;a href="http://www.poppendieck.com"&gt;Mary Poppendieck's&lt;/a&gt; lectures at the &lt;a href="http://www.sdexpo.com/"&gt;Software Development West 2003&lt;/a&gt; conference.  The lecture was from her new book, &lt;em&gt;Lean Software Development: An Agile Toolkit.&lt;/em&gt;  In a nutshell, the book takes a whole slew of best practices that have been used in manufacturing for decades (collectively known as "lean manufacuring"), and applies them to software development.  In chapter 1, Poppendieck introduces us to the "7 wastes of manufacturing" and proposes a way to map each of them to software development.  One of these wastes is extraneous movement (e.g. when a tool crib is too far away from the position on the assembly line where the tools are often used), and Poppendieck likens it to extraneous task-switching on the part of a software developer.  Every time a developer has to "ramp up" and "ramp down," she says, it's a sunk cost.  I think it's quite interesting, therefore, that Professor Mark's research shows that Poppendieck is fighting an uphill battle on this front, since everyone's natural tendency is to switch tasks often.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107397792743618941?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107397792743618941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107397792743618941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107397792743618941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107397792743618941'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/01/mary-poppendieck-on-lean-software.html' title='Mary Poppendieck on &quot;Lean Software Development&quot;'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107397697273538460</id><published>2004-01-09T20:45:00.000-08:00</published><updated>2004-01-12T22:57:38.726-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>Multitasking Madness</title><content type='html'>I was at a reception last night for the &lt;strong&gt;UC Irvine School of Information and Computer Sciences&lt;/strong&gt; (&lt;a href="http://www.ics.uci.edu"&gt;www.ics.uci.edu&lt;/a&gt;) and had the opportunity to chat with many of the professors there who are doing fascinating research.  &lt;strong&gt;Gloria Mark&lt;/strong&gt; told me about some work her student, &lt;strong&gt;Victor M. González&lt;/strong&gt;, is doing to study the work habits of software developers, software architects, and software managers.  He's found that &lt;strong&gt;the average person naturally juggles 11 different tasks at one time and switches between them every 4-1/2 minutes&lt;/strong&gt; (not counting time in meetings).  It's too early for any conclusions, but I'll be interested to see what recomendations they make in the way of new tools and such that bow to the inevitible and support this behavior, perhaps even allowing us to juggle more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107397697273538460?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107397697273538460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107397697273538460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107397697273538460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107397697273538460'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2004/01/multitasking-madness.html' title='Multitasking Madness'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107397512476869464</id><published>2003-12-17T22:24:00.000-08:00</published><updated>2004-01-12T22:40:30.926-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>Plug-and-Play Programmers</title><content type='html'>Welcome to my new blog.  I'll kick it off with a mention of the &lt;a href="http://groups.yahoo.com/group/xpsocal/"&gt;XP SoCal&lt;/a&gt; group, which is focused on Extreme Programming and other agile develeopment methodologies.  The group features regular get-togethers (informal lunch gatherings) and more formal but irregular evening meetings whenever there is a particular topic of interest and a willing speaker.  &lt;br /&gt;&lt;br /&gt;We had a good lunch in Tustin today, even if there were only 3 of us there.  Jeff M. gave me an interesting perspective on cranking out software.  He says that &lt;strong&gt;the common analogy that compares writing software to producing physical goods is false&lt;/strong&gt;, if you assume that software coders are the equivalent of factory workers.  In our world, it's the compiler and linker that equate to the factory workers.  The work product of a coder, therefore, is not a "software product" but rather the blueprint for one.  It's this common under-valuation of the role of a coder &lt;strong&gt;that causes managers to treat programmers as "plug-and-play" resources.&lt;/strong&gt;  It's also the reason &lt;strong&gt;why outsourcing program development to India fails so miserably &lt;/strong&gt;most of the time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107397512476869464?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107397512476869464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107397512476869464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107397512476869464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107397512476869464'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2003/12/plug-and-play-programmers.html' title='Plug-and-Play Programmers'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6220221.post-107170993461940103</id><published>2003-12-17T17:11:00.000-08:00</published><updated>2004-01-12T22:41:23.723-08:00</updated><title type='text'>Well, shiver me timbers!</title><content type='html'>Hello, world.  I'm blogging.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6220221-107170993461940103?l=tankardsaweigh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tankardsaweigh.blogspot.com/feeds/107170993461940103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6220221&amp;postID=107170993461940103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107170993461940103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6220221/posts/default/107170993461940103'/><link rel='alternate' type='text/html' href='http://tankardsaweigh.blogspot.com/2003/12/well-shiver-me-timbers.html' title='Well, shiver me timbers!'/><author><name>Craig Jones</name><uri>http://www.blogger.com/profile/04529110964547440454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://www.tankardsaweigh.com/Glyphs/img_Craig_at_pub.jpg'/></author><thr:total>0</thr:total></entry></feed>
