Eclipse Con 2005: GEF in Depth
This 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.
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.











