Monday, June 23, 2008

Screencast: Using Property Testers in the Eclipse Command Framework

Eclipse 3.4 (codename Ganymede) is on the verge of release. Having struggled with the Eclipse Command Framework, I decided it would be valuable to provide a screencast demonstrating the component I thought needed the most clarification, and where I spent the most time spinning my wheels: the property testers extension point.

Was this worth the amount of effort I put in to it? I can't count the number of hours it took to create my first screen cast - I needed SnapZ Pro X, IMovie '08 and finally, Gliffy, Screen Flow and The Gimp. One thing I learned through this exercise: making a crisp screencast is hard work.

I hope it is useful to you.


Using Eclipse Property Testers with the Command Framework from Robert Konigsberg on Vimeo.

Saturday, June 21, 2008

The winner of Who vs. Whom

I have been happy to watch old episodes of Get Smart since they are getting some airplay in conjunction with the recent movie release. Some things about the old show are interesting. For instance, I was shocked by the more flexible use of racial stereotypes and words that would now be considered slurs (something even emphasized in the title of the show's final episode, I Am Curiously Yellow.) I wanted to pick out some of the parts of that episode in a separate post, but for now this will have to do.

The following is a clip from an episode from their first season called KAOS in Control. Maxwell Smart and Agent 99 are trying to interrogate a suspected KAOS agent. In this scene, Max is the only one who doesn't understand the difference between 'who' and 'whom'.
MAXWELL SMART
OK 99, I think we can start with the interrogation now.

99
Check 86!

MAXWELL SMART
OK Ratchett, start talking!

99
Who pays you?

MAXWELL SMART
Who do you report to?

99
(whispers) Whom.

MAXWELL SMART
Whom?

RATCHETT
Look, I'll tell you everything!

MAXWELL SMART
Just a minute Ratchett. (To 99) Are you sure it's whom, 99?

99
Yeah, I think so because, um, whom is the objective, you see, in view of a preposition.

RATCHETT
(impatient) I would *like* to *make* a *statement*.

MAXWELL SMART
(Facing one direction) Who do you report to? (Facing the other direction) Whom do you report to?

RATCHETT
(Exasperated) It's *whom*.

MAXWELL SMART
It is? Oh! Well, then in that case maybe you can tell me, *whom* had access to the retrogressor!
So you see, the joke is on Max because even when they explain how to use 'whom' he immediately misuses it.

I thought about how hard it must be nowadays to make jokes about the nuances of the English language. There was only one way to resolve this: Search Result Battle!
A search for "Who do you report to"
[http://www.google.com/search?q=%22who+do+you+report+to%22]
yields 10,200 results.

A search for "Whom do you report to"
[http://www.google.com/search?q=%22whom+do+you+report+to%22]
yields 872 results.
So it doesn't look good for 'whom'. Popular opinion sides with Maxwell Smart. Sheepishly I must admit I would have agreed with him too.

If you're interested in the clip, I've attached it below. The particular scene starts at about 0:43.


Update (June 23): My friend Maria summarized the whole article in five words: "Grammar jokes are not in."

Wednesday, June 04, 2008

Time for me and The Facebook to part ways

To my friends on The Facebook:

The time has come for me to close my account on The Facebook. It's been great and it's been nice to reconnect with many of you, but now, not only do I find myself spending more time on it than I would like.

This isn't a referendum on The Facebook, it's a referendum on my time. See, I spend a lot of time on The Facebook, and I just don't feel that I'm getting the value out of it that I'm putting in to it.

The clincher came this morning, when I chatted with one of my colleagues:
Me: Can you help me with something that will take just a moment of your time?
Him: Sure, whatdya need?
Me: I need you to make a decision for me. But I'll give you no data. All I want from you is 'yes' or 'no.
Him: Shoot.
Me: I won't give you the question.
Him: Or really, no data?
Me: Really.
Him: I've flipped a coin.
Me: OK.
Him: Tails.
Me: So was that Yes or No?
Him: Oh, I don't know. It's tails.
Me: OK that doesn't help me. Let's try again.
Him: OK, this time tails = no.
Me: OK.
Him: It's tails.
Me: Perfect. The question was "Should I delete my Facebook account?"
Him: So you're not going to delete it?
Me: No, I will.
Him: What?
Me: There's this poem which I'm about to butcher [ed: which I then did.]
...
The poem comes from Piet Hein, and I'm copying it from Nelson Minar's weblog:
Decision Making
Whenever you're called on to make up your mind
And you're hampered by not having any
The simplest way to solve the dilemma you'll find
Is simply by flipping a penny

No, not so that chance shall decide the affair
As you're passively standing there moping
But as soon as the penny is up in the air
You'll suddenly know what you're hoping

Helpful advice at a time like this.

This doesn't mean I no longer want to be in touch; I do. It just means I would just be happier using other online media to do so. You can still find me on Twitter, FriendFeed or even my occasionally updated blog. If you use gmail or AOL instant messenger, give me your account information, and we can chat that way. Or you can even send me email through the traditional means, and I certainly hope you do.

Keep in touch. - Robert

Good Math

Conversation between me and my wife about our dog, Maggie:
Her: "She only pooped three times today."
Me: "No, she pooped four times!"
"You're a liar."
"I'm a liar? OK, let me count. How many times did she poop with you today?"
"Zero."
"And how many times did she poop with me today? Hmm.. let me think. It was FOUR! So how many is that in total?"
"Four."
"And what's the percentage increase between the number of times she pooped with you compared to the number of times she pooped with me?"
"... Zillions! A Zillion percent!"
"Infinity. I'm infinitely more productive than you. Remember that tomorrow."
":("
"That's what you get for calling me a liar."
This really belongs on twitter, but I couldn't get it under 140 characters.

Monday, May 26, 2008

Becoming a Java Master, con't.

Last night I read an interesting post by Steve McLeod, titled Becoming a Java Master. The article suggests these "books, techniques, and qualifications that help you become a Java Master." You can browse the article to see what he suggests: a good series of books and a Sun Certified Java Programmer certification. I think these things are helpful, but not nearly enough. Of course, everyone takes their own path to mastery, mine involved a job with some of the greatest engineers I've ever met.

Note: I don't consider myself a 'Master', and that's in part because it's hard to use that phrase when I see names like Bob Lee in my inbox almost every day.

All of Steve's recommendations are good, here are some others:

Read

  • Participate in a reading group. From a personal perspective, the thing that worked best for me was to skip participating and go straight to leading the group. Occasionally, (and this depends on the group,) you don't need to be a subject matter expert to lead a reading group, just a desire to learn a topic, and a few people who will look to you to set the group's tone. I find that the fear of embarrassing myself as an unprepared leader is usually enough to get me through a difficult book. (Except that one time when we read The Haskell School Of Expression. I make no apologies for that one.)

  • Read Java Puzzlers. It doesn't feel like a mastery-type book, but only because it's so much fun.

  • Read the Core Java books. They are invaluable references.
Get Inside
  • Read some of the JDK source. Do you know how ArrayList got its name? Have you tried to understand ConcurrentHashMap from the inside? Go find out.

  • Try to write something meta, like a class file decompiler, a custom classloader, or a debugger. You don't have to finish it, and it doesn't even have to have to be revolutionary. You're doing it for yourself so you come away with a bonafide understanding of the insides. (Personally, I started writing a decompiler in 2004. When I got hired by Google, I stopped putting time aside for it.)
Be Like A Master
  • Regurgitate what you have learned. You choose the format: a blog, an online document, an open-source contribution, a presentation. Heck, you can even write a book. Regurgitating the information helps you become a subject master.

  • Participate in Java Ranch or any other online forum, and the answer questions you find online. Answering other people's questions is a great way to reinforce your own knowledge. Of course, use it to ask questions about things you don't understand. A true master knows it's good to ask questions.

Thursday, May 15, 2008

Google hosting Eclipse Developer Day

From Ian Skerrett's post:

I am excited to announce a new event called ‘Eclipse Day at the Googleplex‘ to be held June 24 at the Googleplex in Mountain View, CA. It will be a half day event that features technical presentations on various Eclipse projects (Equinox, ATF, ECF, CDT and Mylyn) and using Eclipse to build applications for Google Android and GWT. I am also pleased that Michael Gilpin from eBay will be presenting how eBay is using Eclipse. btw, Michael has already written some articles about Eclipse at eBay. It is a great mixture of Eclipse technical content.

Mustafa Isik suggested the idea while he was a summer intern at Google last year and we have great support from people internal to Google. Special thanks to the Google Open Source Program Office for sponsoring the event and making it possible.

It is free to attend the event but you need to register on the wiki. Space is limited so please register early.

I am one of the Googlers who has been working with Ian on getting this going, so I'm excited to see the promotion. Please don't hesitate to let me know if you have any questions.