Sponsors


Blog powered by TypePad

« January 2005 | Main | March 2005 »

February 28, 2005

Eclipse Con 2005: GEF in Depth

TvscreenfuzzThis is live-blog of my experience in the Eclipse Con 2005 GEF Tutorial.

Introductions

Randy Hudson, GEF subproject lead, introduces himself and his partner, Pratik.  I really love "@hudsonr" and "@pratiks" since much of my current work uses their GEF libraries.  Randy speaks knowledgeably and succintly (unlike my blogs).  He's shorter and younger than I anticipated and looks like your stereotypical programmer with glasses.  He might very well be Beavis's better, validictorian twin.

Pratik looks younger, tall, Indian or Arabic, and is also extremely knowledgeable.  These guys are good.  It makes sense that we liked their stuff and made the decision awhile ago to build on top of it.

GEF team consists only of Randy and Pratik!  I can't believe they're all there is to the GEF project and, suddenly, I feel much more compelled to help them fix bugs and improve GEF.  I'll have to introduce myself and offer help.

Right away, I see this tutorial going more smoothly than the last.  Randy and Pratik both present well and have excellent slides.  Only bummer is that actual slides are newer than the handouts.

A loud GEF attendee wiseguy calls GEF "Jeff" and SWT "Swit".  I think he's serious.

HandsonkeyboardHands-on Begins

We all plow into the first 'hands-on' session.  Louie, my co-worker and friend, is sitting to my right and is nearly done.  He's good.  I'm not as good but I'm making good progress.

Louie is done now and playing around.  I'm basically done and working on customizing borders on my GEF IFigure objects.  The only figures attendees behind us are working on is head scratching.  "Do we have to create an Eclipse project?," I hear one ask.  They're lost.  I should help but that would be the end of my anonymity.

Randy and Pratik walk to the front.  I guess this 'hands-on' period has ended.  The next part of presentation begins...

The second presention is ending.  Heading Into the final stretch, now.  Pratick suggests a 10 minute break to get ready for the final exercise, the most complex and difficult in this tutorial.

The Subatomic Particle Accelerator

We're back.  Pratick says something.  Then Randy says "Ok, go for it."  Already?

For a minute or two, I try to collect my bearings.  Ok, what's the goal here?  Thinking hard... 

A few attendess are click-clacking furiously on their keyboards.  They seem to know exactly what to do.  They must be geniuses.  But, a sneak peak around reveals more than a dozen others in my same search for meaning and traction.

One of them finally raises his hand.  "Go for what?," he asks.

"The Shapes example," Randy replies.  He seems baffled by the question.  Of course, the Shapes example.  That's right; he did mention it in passing roughly 22 and a half minutes ago.  I should have known.  I actually do remember the reference vaguely, but what did the Shapes Example look like?  It was a yellow square and a red oval... I'm trying to remember.  Directions == hazy.

Someone pleads, "I've never written a GEF app and I'm completely lost.  What am I supposed to be doing?"  Poor soul.  Randy repeats more clearly and with more info this time, "The Shapes Example.  You know, the one with the colors?".  Ahhh... yes, the colors, but... no; that didn't help.  The poor soul stares blankly at his screen.

But I think I know enough to dig in.  Programming is like that sometimes; you can't always know what the target is when you start the mission.  It would seem we're to fill out methods in the skeleton class being projected up front.  That much seems clear, so getting to it.  I'm guessing this will somehow culminate in something like the infamous Shapes Example. 

I implement "activate()," trying to recall what Randy said about it earlier.  Click, tick... tack, tick, click... I'm coding and happy again.  "...must call super.activate()," I say quietly, under my breath. 

Three minutes and 13 seconds pass...  "How are we doing?  Is everyone almost done with this part?," Pratik asks, expectantly.  The keyboard chatter nearly disappears... dead silence.  Pratik, senses slowness and decides he'll "code it up," live, so folks can "cheat". 

Pratik types like an subatomic particle accelerator.  I usually can as well, but my brain turned off when I started following Pratik's projection on the up-front screen.  I'm just reacting now - all defense and no offense.  My Marine Corps and highschool football training tells me this loses the war in the end.

S4 Mode

Pratik is way ahead of me.  Randy, stops to explain something Pratik is doing.  I want to hear it but it means I have to stop coding and pay attention, putting me further behind.  I do it and suffer the consequences.

Got the first part of the example done.  Now, implement the LayoutPolicy...  Good, there is an example in the org.eclipse.gef.examples project.  Hey, I'll just use that one!  I notice nearly all the code for this tutorial is in the examples project.  Maybe I should just copy the relevant parts to catch up.  But what's the point in that?  I can already cntrl-c, cntrl-v like no one's business.

Stopping now.  My little GEF app will have to run in S4 mode (silent, serene, snow-scene). 

Getting hungry again.  Zack, a buddy of mine comes over and asks if I'm going to the WTP '"sprint."  I'm thinking I might but not feeling like staying for the whole five hours.  I'd like to meet the WTP contributors and get a feel for things.  "I'll go and play it by ear," I say. 

Winding down now.  I'd like to walk over and meet Randy.  I'd like to get a picture of all of us.  Perhaps he'll read this blog someday and remember the encounter.

Eclipsecon20050001

Eclipse Con 2005: Intro to the Web Tools Project

Eclipsecon20050002_1This is a live-blog of my experience in the "Intro to Web Tools Platform" tutorial during Eclipse Con 2005.

They say the introduction will be very brief.  "Chuck" is doing most of the talking but he doesn't look at ease.  Settling in for the lesson...  Chuck says to "have at it".  Huh?

Have at it?  I was expecting more of a presentation.  Never done things this way at a conference.  Now, I'm not even sure why the intro was necessary.  Well, allright then; here we go.

Prerequisites.  Hmm... I need Tomcat.  No problem; I have it.  But wait.  It's the wrong version.  Chagrin; I should've installed Tomcat.  A nice guy had it on a removable USB drive - thanks, Ron.  Ron being abused now.  Everyone wants to borrow his removable USB drive. 

Tomcat installing...  Done.  That was easy.

The Fun Begins

Decision: Install new Eclipse SDK for this conf or use my existing one?  Let's install a clean version...
Darn - this is taking too long.  I cancel and delete the partial unzip.  I'll just use my existing one.

Extracted 'overlay' zip into M4 to get all necessary jars.  So far so good.

Starting Eclipse... Damn!  the Perforce plugin can't find the server and it's in an endless dialog loop.  Killing the process and removing the P4 plugins.  Eclipse starting ok now.

Installing the Tomcat Runtime in Eclipse... had to point M4 to jre 1.4.2 (I had it running with 1.5).
Realize now that I should create a new workspace for Eclipse Con 2005.  So, wwitching to a new workspace...

Drat - Java runtime settings are workspace-specific.  Point to jre 1.4.2, again.  Trying to find Tomcat in "Servers."  Servers not there.  ?  Restarting Eclipse to see if that triggers their appearance.  Nope.  I admit it now; I need help.

Chuck says, no question about it; I should use the version of the SDK that the tutorial zip provides.  I guess I should have followed my first instinct and remained patient for the SDK to unzip.

Starting all over over.  Starting Eclipse SDK unzip... CPU is maxed.

I look over at Loren.  He's way ahead of me.  Perhaps I can learn by proxy now - I probably won't be getting through this in the remaining 30 minutes.

Still extracting the Eclipse SDK... CPU at 100%, which makes it difficult to type.  So far now, my only satisfaction has been writing this blog and that is being thwarted.

First Lessons Learned

Loren is done with the tutorial.  My CPU still at 100% while it unzips the Eclipse SDK.  The contrast is painful and inescapeable.  Perhaps I can still leave this tutorial with my ego intact by writing some lessons learned:

  • Don't assume that setup time is built into Eclipse Con tutorial schedules.
  • From Loren - don't have Tomcat running when you configure Eclipse's Server runtimes.  Eclipse should start it up.

Ok, unzipping the SDK is done.  Starting up the 'conference' Eclipse version now...  CPU at 100% yet again.  Recommitting to flying through this as soon as my processor recovers.  Maybe I can still get through it.  I feel like I'm at the end of a timed test with half of it left to go.  Bad memories.

Again; unzipping "WebToolsOverlay", pointing Eclipse to 1.4.2, etc...

Help Needed

Trying to configure "Servers" to find and run Tomcat.  "Servers" not found.  What the he**?  Getting increasingly frustrated.  No idea why "Servers" not showing up in my prefs.  Waiting.  No help to be had.  The help-guy is talking about some advanced concept to a guy who doesn't need help. Astrophysics_1

I try to exit the newly installed Tomcat in application tray and restart Eclipse...  Still no "Servers" config option.  This sucks.  Lot's of time has passed now.  Help-man is now chatting jockingly about recent breakthroughs in astrophysics.

I sit waiting for help, finally realizing that, in haste, I didn't install all the necessary plugins in my 'Conference' Eclipse version.  No "Servers" - duh!

Extracting all the .zip libs into my Conference Eclipse version... CPU maxed; I wait, I blog.

Finally on Track

Restarting Conference Eclipse for the last time, I hope.  Ok; on my way, finally!  Making good progress...

Chuck is talking about "Annotations" and closing out Part 1 of this tutorial now.  I guess I'll have to finish this it in my hotel, later. 

He's talking about Annotations.  Seems cool - is tightly integrated with and uses XDoclet.  You can plug in your own XDoclet generators.  This could be good for my project at work but not quite sure how right now.  Chuck says "Have at it".  Huh? 

Ah... we're supposed to start Part 2 of the tutorial.  I'll try to finish Part 1, first.

Not blogging much (that means I haven't been waiting for help or my CPU to finish).

A Small Victory

Done with Part 1 of the tutorial!  With minimal assistance debugging my project name (had a space in it), my web app adds a class to a class schedule, just like it's supposed to.  It is nice to create, edit, and deploy this web app.  Very nice integration with Tomcat, very nice .jsp editor, and very nice Run as... > Run on Server feature. 

I'll digest this all later.  Let's quickly get to Part II now.  I'm still way behind and I'm sure to slam into the Derby database issues Loren is currently having...

Made it about half-way through before Lawrence stopped us to present Part 3.  Was a great overview of the WTP ecosystem.  Looks like there's some great WSDL and XSD support but he breezed through it so I missed some of the details.  Note to self - play with the XSD and WSDL tools.

I guess I'll work through Part II and III some other time.  Everyone is bolting for lunch now and I'm hungry.

Calvinhungry

February 26, 2005

Simply Complex

Jetblusability0004_1Bruce Tate, Graham Glass, Kent Beck and Steve Jobs all seem to agree that the simplest approach is often the best one.  Graham argues that it is a key factor in improving the entire user-experience.  They're dead on.  It would behoove all engineers and designers to get on board.  But even the pursuit of simplicity can go too far, making some unintended thing more complicated.

Continue reading "Simply Complex" »

On Short Posts

Are my posts too long?  What say you, squirrel?
Squirrel_on_a_post

February 25, 2005

The Motorcyclist

accelerating till suspended,
a quicktime ghost-flight
through one-light towns,
a presence only intended
to slip in and out of scenes,
brushed here and there
with worn out leather,
old boots, torn jeans,
and wind blown hair

his hoss runs hotter
and screams at whip-quick
flicks of his wrist
fueling even faster
the rocket-ride infusion
of speed that finally resides,
burning in his veins until
exploding into seclusion
he rides

shifted, now transcended
into silent surroundings
where peaceful vibrations
have easily commanded
the last worried second
into a timeless trance
floating on a highway blur...
even past this instant
this heavenly glance

Motorcycle_road

February 24, 2005

Eating the Eclipse 3.1M5a RCP Donut

Download 3.1M5a and check out the new RCP support.  M5a is cool for many reasons but the best is, while Eclipse RCP support has been quietly rolled out since Fall of 2004, it's never been as straightforward to take advantage of until now. 

I heard good rumblings, so I gave the new .product Overview page (shown below) a spin.  It makes the process of configuring and branding your standalone RCP application pure joy.

Rcp_producteditor_2

Having only heard about the RCP in the abstract, I was amazed to be able to adapt my little, experimental  "Language Translator" plug-in for packaging into a complete-with-menu/about/etc., uniquely branded, standalone application in less than two hours.  Apparently, deploying RCP apps with Java WebStart is easy also.  It's remarkable how quickly we advance when a lot of us are all working with the same codebase.

You may consider reading the entire Eclipse Con 2005 RCP Tutorial.  I've skimmed it and it looks delicious.  Yet, tasting this pastry doesn't require starting your own donut shop; it's more like...  going to a donut drive-in.  Ordering is easy, the donuts are good, and you drive away with your partially sipped cup of coffee, happy.  Here are the steps in my little experiment:

  1. Build an SWT plugin that can run from it's own main().  I recommend creating a top-most Composite component, that is not the Shell, to house your creation.
  2. Create a RCP Product.  Do this in 3.1M5a by going to File > New       > Other...> Product Configuration.  I picked the most complicated "RCP Mail Template" (also demonstrated in the Java WebStart link above).
  3. Replace the generated "View" class's appropriate guts with the instantiation of your own plugin's top-most SWT Composite component (not the Shell).
  4. Pair down the unnecessary, generated Mail Template code until you end up with merely what your plugin provides.
  5. Modify the branding icons and graphics to suit your taste.  It took me no more than 20 minutes to tweak the provided branding-artifact examples to achieve uniqueness.

Admittedly, this isn't the ideal approach to solving your professional RCP needs.  Check out Eclipse Con 2005 or one of its tutorials to learn the hardcore details.  As for quickly getting your own RCP application up and running, try it - I think you'll like this donut.

Big_donut_drivein

February 21, 2005

Forget Amway

Cooking_artBe warned, The Pampered Chef takes your dough.  But don't worry, he'll bake it like no one's business.  Over the years, MLMs have left a bitter taste in my mouth.  I can't count the friends and family members to have pushed one thing or another, with the best of intentions, only to leave me questioning the very fabric of our relationship.  Not so with The Pampered Chef. 

If you live in or near suburbia a new wave of multi-level marketing has probably swept your area.  If not, it's coming to a 'neighbor near you.'  Nearly everyone I know has either been to or has hosted a Pampered Chef party.  My wife loves this stuff.  From what I know, I love it too.

By now, at least one quarter of our cookware is from The Pampered Chef.  Their stone-wear cooking pans are famous and bake like no metal pan can (except their so **mn heavy).  No lie, I've never fried another strip of bacon after baking it in one of these dandy pans.

I've been approached and heard probably every shpiel under the sun.  My wife and I agree (married folks know the weight of that statement); The Pampered Chef is the one multi-level marketing (MLM) company that doesn't make our stomach turn.  Why is this?  Here's a quick-and-dirty on their model:

  • Make only high-quality products  - For example, their rubber spatula/scrapers will not melt.  Anyone who's ever owned a rubber spatula/scraper eventually leaves it near something a little too hot and melts it, losing the ability to scrape cleanly.  Not any longer with these bad-ass spoons.
  • Have parties - 'Events' are hosted by someone who volunteers their home (and kitchen) for the evening.  For hosting, they get generous discounts on products.
  • Cook really good food - Good cooking is a requirement for product demonstrations!  Think about it, if the food was bad, people wouldn't buy stuff.  Whether by design or coincidence, Pampered Chef consultants usually can cook some savory nibblits. 

So, forget Amway (renamed "Quixtar").  While Amway and others like them hook people on the idea that it's a secret path to early retirement, The Pampered Chef promises only good food, great stuff to cook it with, and satisfied customers.  My wife may never sell their stuff but we'll keep on buying it.  And as long as she needs a thing or two in the kitchen, I'm sure she'll keep hosting these events.

Pampered_chef_doris

February 19, 2005

Potatoheads At Law

An erotic dance club owner in Idaho charges $15, two nights a week, for what he calls "Art Club Nights."  To skirt laws forbidding full nudity, he gives patrons a pencil and a sketchpad, allowing his art 'subjects' to legally take it all off.

It's an interesting case for highlighting a fundamental question: Since clothing can't be legislated, where should personal liberty end and government begin?  Depending on your perspective, this line often zig-zags and is hard to see.  Yet, if we look through the 20/20 lense of history, these 'best practices' are clearly relevant:

  • Limit government to enforcement of just law and protection of public good.
  • Limit "just" laws to those necessary to prevent someone from injuring someone else.
  • Use strict criteria when determining "public good".
  • If in doubt, leave the law out.

Since erotic dancing promotes a mentality that treats woman as souless sexual objects, I'm not a fan.  What's more, despite its instinctive effects, watching it seems pathetic for reasons I can't quite figure out.  So, you won't see me in Idaho 'dance' clubs.  Even so, given the criteria I list above, the anti-nudity law in the Idaho nightclubs is a bad one to begin with.  Even Mrs. Potatohead would agree with that.
Mrs_potatohead

February 18, 2005

Map Wars

CitymapThe map war is on.  It is a war of the 21st century, not to be confused with those described in the book Rhumb Lines and Map Wars by Mark Monmonier.  In this new war, MapQuest enters as the undisputed superpower, but is constantly being challenged by Yahoo! Mapsmap24.com is another dog in the fight.  Newcomer Google Maps has pretty good graphics and one of the better location finders.  Not sure if Mappr! is in the same fight but it's a fascinating new map-related tangent worth exploring.

Map wars are great because, if for no other reason, I love a good map.  Somestimes I'll just pick (up) a map for the heck of it.  To each his own, right?  A good friend of mine loves hydraulics.  Anywhere he sees hydraulics in action, he is soothed.  When I was a kid, I was soothed with maps hanging on the wall of my room.  I had one of North America, South America, and even Madagascar.  Really, anything National Geographic would send would eventually end up on my wall.  Seems odd to think of it now.   

Even so, to this day, maps make me feel good.  Perhaps it's as simple as the feeling you get from knowing where you're at, where you're going, and how you might get there from here.  A map gives it all to you in one fell-swoop.

It probably all started when I'd navigate for my Dad on our yearly trek across the country to visit relatives.  I was his map-man, he'd say.  And, at summer camps, I always looked forward to finding my way in the wild, armed only with a compass and a map.  You might call these my own, personal little map wars.  One particular story sticks out in my head because it made me look like such a genius.

Short Story: My First War

In the hill-country, smack in the middle of Texas, about 30 of us sat, splintering our behinds on old wooden chairs.  We were all gathered on a large weathered porch that overlooked about 200 acres where we waited for camp counselors to give instructions for our next event.  We were surrounded by what once was a working cow pasture.  One or two cows lingered on after surviving beef market-row, free to live out their remaining days as landscape decor and tax breaks.
    The scenery was a open and beautiful.  Slow rolling hills of green and gold were crossed occasionally with dried up stream beds and old fences.  Islands of dark green cedar and oak trees gave noon shade for the mule-deer and the lucky cows.
    We got our instructions: Break into four teams of seven or eight people and use the navigational instructions to attempt to walk our preset course.  There were four slightly different courses; one for each team.  One of our favorite camp counselors, Mr. Marty, was ex-Green Beret Vietnam veteran and had personally setup and tested each one.  This was before GPS, so we had to use our precalculated ratio of number of steps per every 20 yards to measure distance.  My number was 25.  We had been taught how to point our compass using azimuth descriptions.  The trick was to find a large landmark that coincided with a particular azimuth and then head straight toward it, instead of stopping every few yards to resight your compass and recheck the bearing.
    There was no time requirement but the counselors estimated it would take us roughly an hour or two to navigate the several miles of the course.  Each team would start at the same point.  The team to end up closest to the magical little dot of earth Marty had picked would win the... ride in a four wheeler, or some trophy.  Maybe it was just a ribbon.  We didn't care what.
    As map-man, naturally, I took control of my little group.  That meant I had the compass.  We all huddled.  Three of us would count our steps in case one guy or, worst case, two guys lost count part way to a landmark.  The other two would recheck each azimuth and verify any landmarks we picked. 
    So, with a compass, a strategy, and a map, we were off.  We read our first bearing and shot an azimuth that happened to head us toward this huge oak tree, about a half a mile away.  Off we marched.  After 473 steps, we stopped and  shot the next azimuth from our list.  Each leg of our course worked the same methodical way.   
    About an hour later our little group had counted out the last step.  We ended up pretty close to the porch which, we thought, was probably what Marty had intended.  The arrival was anticlimactic and left each of us wondering if there wasn't somthing else we were supposed to do.  But there was nothing left but to stick our flag in ground.  So, we did it, publicly declaring our best approximation to "the" magical spot.  Then, we walked over to the shade of the big porch, hot, thirsty and out of breath, where we waited for everyone else to finish.
    After what seemed like hours (one group had to be rescued by Marty after tromping off-course by over a half a mile), all four groups were finally gathered on the porch.  We squirmed and chatted impatiently as the counselors huddled to discuss the big winner.   The Texas sun was getting lower and the evening meal was the next thing on the agenda.  The group that got lost couldn't wait to be released.  At least then they could be victorious over their hunger.
    Marty walked up to front, "This has been fun, hasn't it!"
    "Yeaaahhhh!"  Most of us yelled with unbridled gusto and camp spirit.
    "Well, we'd never done this before, so we weren't quite sure how it would go.  But I must say, I'm very proud of all of your campers today.  You walked several miles, using only what we taught you and each of you came verrry close..."
    Marty paused for a moment and and glanced my way.  It was one of those moments where you feel like you'll be picked out of the crowd but you're not quite sure what for.  It made me nervous, excited, and uneasy all at the same moment.  Then he looked away.  Maybe he wasn't picking me out after all.
    "... but one group shocked all of us counselors,"  Marty continued, "I was in the Army for 22 years and I've never seen a display of land navigation quite like what I saw today."  It looked as if he were trying harder than normal to find the right words to say.  "But I'm getting a little ahead of myself.  Before I point them out, I want to say how proud I am of the third place team.  That prize goes to Jeremy Maybridge's team!"  Everyone cheered as they got up to get their ribbons and then made their way back to their seats.
    "The second place group was a little closer - they did a terrific job.   Sarah, J.R., all of you; get up here!"  Everyone clapped a little louder and longer this time.
    "Finally," Marty paused again.  "Again, I can't quite explain how surprised us counselors were by this group..."
    My team had to be the winner - the only other team left was the one that had gotten lost.  My heart was racing as I braced for the onslaught of public focus.  But Marty was sure making a big deal about it and I wished he would just announce it.
    "We set up this course and, I'm not kidding, we put a rock right...," he paused and walked down the two porch steps to the front and left of all of us.  We all leaned over in our chairs to see where he was pointing.
    "... right here.  I tell the truth, there was a rock right here minutes before you all set off earlier today on your courses."
    As if God had planted it himself, he was pointing directly at our flag!
    "Ben, Amy, Joy, Matt, all of you!  Get up here!!"  We all ran up and basked in the glory of camp fame that day.  I had never been so proud of anything in all the 13 years of my short little life.

The New War

It's no surprise that I excelled at land navigation in the Marine Corps years later.  To this day, my sense of direction is hard to beat.  I get a quiet laugh out of knowing my current work involves the ongoing necessity to provide world-class business mapping software to our customers.

Because of this, I pay close attention to anything related to software and mapping.  XPath, XQuery, XSLT, application-internal mapping, webMethods Developer mapping, Altova, Contiva, whatever.  Along the way, I've learned that business software mapping can definitely learn from the map wars of today.  Take a look at look at map24.com, for instance.  The ability of this map technology to preserve your birds-eye context while zooming in and out is remarkable.  The principle of context-preservation is a critical one if we're going to make our software usable.

The latest in-car nav system installed in the Acura RL is GPS linked, voice activated, and can suggest alternate routes based on traffic conditions.  How cool is that?  It's so practical and doesn't burden you with information and options you don't need.  Yahoo! Maps now also reports traffic conditions.  It's only a matter of time before Google and MapQuest add it as well. 

Google Maps has great "You are Here" graphics.  I'm still trying to realize the value this has compared to the traffic report feature.  Yet, as Graham would say, we should never underestimate the power of doing the simple things extremely well (and make them very  appealing).  Getting me from point A to B is another of those things.  Recently, I used Google Maps to guide me from Northern Virginia to the Whitetail ski area in PA.  They were right on. 

Eventually, as we walk around, I'm sure we'll all have the option to pop-up any map we choose.  They'll appear on screens seen only by us, invisibly manifested in the neurons of our brain.  Until then, I'll keep writing business mapping software and look for the rare excuse to dust off my trusty compass.

February 17, 2005

Rudderless

in escaping you
i thought,
but coming to mind
was just that anything
but you could not

in escaping you
i could finally fly
but will only float,
adrift and rudderless,
into to your memory

in escaping you

Old_boat_2