Sunday, May 14, 2006

Best Pen for Margin Notes

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.

Monday, January 16, 2006

Martin Luther King

"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

Sunday, January 15, 2006

Ken Schwaber Speaking on Scrum 1/18/06

Ken Schwaber is speaking about his "Scrum" development process at a special meeting of XPSD 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.

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.

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.

Friday, October 14, 2005

Tapestry Components, Naturally

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 www.ocjug.org 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.

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 (www.behindthesite.com/blog). See also www.t-deli.com for a demonstration of more Tapestry components.

Mike is the evil genius behind Tapestry Palette (tapestrypalette.sourceforge.net) and had a hand in developing Groovistry (Groovy for Tapestry, groovestry.sourceforge.net). Vladimir is President and co-founder of Maxim Software Corp. (www.maximsc.com).

Further reading: There’s a recent Server Side article that compares JavaServer Faces to Tapestry (www.theserverside.com/news/thread.tss?thread_id=35899) . By the way, www.theserverside.com itself is a Tapestry app (www.theserverside.com/news/thread.tss?thread_id=31313).

Friday, September 23, 2005

How to Be a Better Writer Through Blogging

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.”
  • Be eager for feedback and treasure any that you get.
  • 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.
  • 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.
  • 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.)
  • 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).
  • 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”).
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?

Sunday, September 18, 2005

Keeping Crib Notes

  • What’s the regular expression pattern for validating an e-mail address?
  • What are the command-line switches for configuring a Windows Explorer shortcut?
  • What are the 10 best opening hands in Texas Hold’em poker?
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.

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:
  • How hard was it to find the information? How hard will it be to find it again?
  • What’s the likelihood that I’ll need this information again? Is this already the second or third time that I’ve needed it?
  • 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.)
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.

Saturday, September 10, 2005

Foolish Anagrams

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 http://wordsmith.org/anagram). 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.

JARGON SLICE
Craig L. Jones

SONIC GERM JAR
Mr. Craig Jones

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.

INVADE MY FJORD, SERF?!?
Mr. Jeffrey Davidson

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.)

LET WAR RISE!
Walter Reis

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.

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.

Friday, September 09, 2005

I Blog, Therefore I Am Better

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?