Following on my earlier post, ‘EclipseCon submission‘, needed to round out the tale with the ‘EclipseCon rejection’ entry.  They did it with what’s obviously an automated email.  However, it’s also one of the classiest approaches I’ve ever seen to such a letter.  Quoting from it:

‘We received almost three times as many proposals as we have space for, and thus have been forced to decline a large number of quality submissions. Unfortunately, and with our apologies, your proposal is one of those we had to leave out.’

Wow.  They balance that just right.  They don’t actually come out and say my particular submission is was a quality submission, so if they get submissions that are crap, they aren’t intentionally lying.  However, they do leave you with the overall impression that you were in good company in the reject pile.

They then go on to say: ‘There are still plenty of opportunities for you to participate at EclipseCon, including BOFs and posters, both of which tend not to be over-subscribed and will be open for submissions in February. We look forward to seeing you at EclipseCon 2009 and we urge you to register early to take advantage of the lowest price.’

Yep, the BOFs and posters aren’t nearly so over-subscribed, as they don’t have free admission tickets to the conference associated.  And I love the direct link to register here: great sales job, honestly.  My submission didn’t earn me a free entry to EclipseCon, and they’ve let me down gently about it, but they’ll give me a link to cut me a deal on the early registration deal open to everybody.

I know you could read this posting and ascribe some sarcasm to it.  It’s probably in there, too, but I also have to say that I was geniunely impressed by their handling of the submission process.  I do intend to go to EclipseCon this year, if I can swing it through my employer, and I REALLY want to go to the sessions covering the topic area on which I was intending to submit.  All I can say is, your stuff better be good!

So, I mentioned that I was considering submitting an abstract to EclipseCon.  Just following up to mention that I indeed did…  I’m waiting to hear if the talk’s accepted – should hear later this week.

This was one of those ‘what do I have to lose’ kinds of things.  It’s a topic I need to figure out, it’s a topic for which there isn’t a lot of material already out there for, and it’s also a topic which impacts lots of projects.  If we (I talked my tech lead into working on it, too: gives me cover for doing it as a chargeable item for my project) get shot down, hopefully someone will at least point us in a useful direction.   I’ll let you know later whether we got accepted…

In the meantime, the submission model they’ve used for the conference really intrigues me.  I’ve learned a lot just by looking over the abstracts other folks have proposed.  I’d like to consider a similar model for a geek user group in the area: the topic(s) for the month are based on a sort of digg-like voting model.  Votes would have to be counted some amount of time before the user group, to give the presenter adequate time to prepare.  Frankly, you could use that model for any kind of presentation group: votes determine the presenter.  After the presentation, folks could give anonymous feedback, which helps drive the voting process next time.  Oh, that guy was an awful presenter.  Or, the presenter was great, but the material was a bit over my head.  Or…  whatever.  The group learns from itself what works best for it.  As new members join, they’d influence the votes for upcoming meetings, so the group would theoretically not automatically only serve the needs of the original members.

Thoughts?  Influence the idea a bit??

In March, there’ll be a geek conference out in Santa Clara, CA called ‘EclipseCon’.  I wanna go.  Trying to figure out a sure-fire presentation that’ll get me at least the cost of the conference registration, as well as a bit of leverage with my employer to make it a slam-dunk.  Thinking, thinking, thinking.  If you have any ideas for an OSGi or Eclipse presentation you’d like to see, drop me a line.  Right now I’m thinking of things like walk-throughs on some of the R4.1 spec items like configuration administration, with demonstrations of their usefulness as well as working code.  Also thinking of analyzing the distribution and update problem: does P2 handle things or do you need to go beyond?  What other options exist?  How does one update software running in the field?  (Note that I don’t have an answer to the above yet, but am brashly confident I’d have one by the time of the conference.)  But more inspirations and ideas would be useful. 

I just asked Cameron to put his Daddy’s shoes away.  He did – he’s a good little helper.  And then I stopped to think about what he’d just had to understand and figure out, and just how amazing it is that our brains put these pieces together.

First, you need to know that Daddy’s shoes were in amongst several other pairs of shoes in a group near the front door.  Our family tends to do a good job of taking shoes off when we come in; we’re not as good about putting those shoes away, so there were at least four pairs collected there.  So Cameron had to sort out a few things: one, which items in the room were shoes, which were Daddy’s shoes, and then grab just those two.  (He did, and then commented ‘Heavy’.)

Then I realized he had to figure out where to put them.  I hadn’t told him where Daddy’s shoes were to go, just “away”.  He parsed that to mean, take them down the hall, and put them in Daddy’s room.  Taking a quick peek, he not only put them in Daddy’s room, he put them in Daddy’s closet, and even on Daddy’s side of the closet.

I got into computer programming because I wanted to teach computers how to think.  I’ve now spent some 15 or so years in the profession, and no program I’ve ever written intuited nearly as much as my not-yet two year old putting his Daddy’s shoes away for his Mommy.  “I praise you because I am fearfully and wonderfully made” – Psalm 139:14

As software developers, we often have a favorite toolkit that we can count on in our day-to-day jobs.  Favorite IDE (Eclipse), favorite text editor (vi), favorite source control system (Subversion), favorite language (whatever’s paying me now!) – all of these are tools in our virtual tool belt that we look to master to let us concentrate on the interesting details of the task at hand.

Here’s a list of tools that I find essential for my software development career, that I consider outside of my normal tool belt:

1) LinkedIn.com: this is my networking and marketing tool.  I use it to keep track of who’s where and who knows someone that might have an answer or a good job.  I’m happy to help others in the network, and like to answer questions on the board (see that marketing angle: I think looking at someone’s responses is another view into how they might fit into your organization).

2) Safari.oreilly.com: long ago, I started a bookshelf subscription to O’Reilly.  I can check out the latest books, keep an eye on what’s hot, and just generally grab info when I need it, without paying a $40/book charge for something that I may read once and then stick on a shelf.

3) Google’s code search feature.  Let’s face: lots of software documentation leaves much to be desired, and often it’s useful to see either source code or samples of how someone’s used something of interest.   I often use google’s codesearch feature (http://www.google.com/codesearch) to find a sample usage of an API of interest, or of a configuration file that the documentation just isn’t clear on.  Maven’s pom files are non-intuitive to me often: properties that are listed for plugins don’t seem to match with what I’d put in the pom file.  But I’m able to do a hunt for pom.xml files that reference a particular plug-in, and have a reasonable shot of finding what I’m looking for.

4) Del.icio.us (http://del.icio.us/) is my personal filing cabinet of interesting things on the web.  I tag all sorts of tutorials, examples, or useful tech conversations so that I can go find that OSGI tutorial that talked about how to properly track service references, for example, or how folks have dealt with logging from their containers.  I don’t tend to search much across other folks’ tags, just my own.  But I love being able to get to it from wherever I am.

5) Google’s Reader for RSS feeds: I love having one source to see what’s happening across the blogs of interest to me.  I also love being able to share items of interest with my contacts, and to see what they’re tracking.

I enjoy interviewing folks, I really do. The hallmark of a great interview is one in which I think I’ve given the candidate some new insight, and the candidate has given me one as well. That’s a person I want to work with, and one in which I hope they want to work with us, or more specifically me. Hallmarks of a BAD interview:

* tell me about what you did in school, when you graduated from school some 5+ years ago

* tell me that you like to work in teams to learn from someone else (when it’s obvious you’re not teaching anyone else anything)

* tell how you want to be a manager or architect in 2+years, when you’ve not yet had a chance to demonstrate much in the software world

My latest story of awfulness involved a candidate who, when interviewing as a tester was asked what open source test toolkits they had used, then proceeded to confuse JDBC and JUnit. One is a mechanism for querying databases; one is a toolkit for unit tests. Forgive me my geekiness for being really annoyed when she blended the two, but I am enough of a geek to be annoyed at scenarios that confuse the two.

OSGI, Flex, CMMi: the 4 letter words currently haunting me.  Add my client’s last name to that set (4 letters which I’ll refrain from having show up in a nice Google hit).  Add the word ‘Spin’, otherwise known as the 3 month release cycle in use by my client’s organization.

Would like to say there’s some value to this post other than an Argh kind of rant (rant and argh both being venting 4 letter words for anyone who’s counting), but will instead leave you with this limerick:

She was a developer in a snit

There had to be a way to not quit

The work is inspiring

But oh quite so tiring

To continually avoid saying “Awwwww,  shit”.

I love it!  I’ve got various comment spam measures turned on to try to reduce the amount of just plain gick that folks try to attach to my website.  One of those measures requires you to give me an email address.  Now, I hate spreading my info across the web, so I usually make something up.  But the one this guy attached is just great: jeff@notgonnagiveyoumyrealaddresssorry.com.  Whoever you are, Jeff, made me laugh.  Thanks.  (And, by the way, he had interesting feedback, too: check it out at  https://www.nerderypublic.com/archives/289.)

On Sunday, I had an amazing day.  (Monday wasn’t nearly so amazing, but I’ll save that rant for a separate post.)  On Sunday, my daughter scored an amazing number of goals in our soccer game AND I got to ride a motorcycle.  At one point she turned to me and said ‘that’s goal number five, Mommy!’.  The mommy side of me cheered.  The coach side of me figured I’d better get her off the field fairly quickly to try to keep things even across both our team and the other team.  It’s under-six soccer, no goalie, no keeping score, everybody gets equal playing time.  But when one kid keeps scoring, folks tend to notice and grumble a bit.  Hey, can I help it if she’s got legs like a gazelle?

Anyway, back to the motorcycle thing.  It’s been a long-time dream of mine to drive and own a motorcycle.  This Sunday was just a taste, riding on the back of a friend’s bike.  But now I’ve got the fever bad.  I keep looking in the want ads at used bikes, and then going to look up what features the various bikes have.  I’m no motorcycle expert.  One of the guys at work tells me I should look for a bike with ABS.  (Hey, I’d like abs, too, though I was thinking more of the six-pack variety.)  Others suggest getting a new bike.  Others suggest getting a Rebel.  (Did I mention that I get to whet my appetite based on two of the guys in my office pulling up on motorcycles occasionally?) 

 So now I’m dreaming of ways to finance my toy without impacting our budget or feeling like I’m depriving my kids’ college educations.  If you know any great software developers with security clearances, I’m accepting resumes.  One or two referral bonuses would do quite nicely to finance the dream. 

I had the opportunity to soapbox recently on the use of cron jobs versus Quartz jobs to handle a task which was to be run on a regular interval.  The task is an application maintenance task.  Periodically, we need to clean out “old” data, so that the system isn’t bogged down by data which is no longer useful. 

My arguments for Quartz were thus: 1) running the regular job within Quartz means that we’ve encapsulated the behavior that the application needs within the bounds of the application itself; 2) that encapsulation also means that we can easily maintain the configuration (how often, when the thing is getting kicked off) within our source code repository; 3) we can easily utilize the same logs, alerts, events, or other infrastructure within the application within our job, and can inject those items using IOC; and 4) Quartz has support for clustering so that multiple machines could handle the load and/or we can have built in fail-over, such that the job doesn’t stop triggering just because one key machine did.  Honestly, my key happy factors are numbers 1 and 2.  I like owning what my app does, and not needing to worry about asking an administrator to look at the cron tables.

Just feeling like a geek post today.