The Great Debate : Migrating a corporate exchange installation to Gmail + Google Calendar

A rather humorous debate has started in the office around mail and calendaring solutions. Humorous because everyone running Windows loves Exchange and doesn’t see what the big deal is.

We’re a software shop with about 1/3 (of ~50) of the employees being in development. Most developers have recently migrated (from Linux/XP) to OS X. Windows has been and will always be the defacto OS of choice for non-developers. It’s the unfortunate truth in any corporate environment I’ve seen.

Now for the past couple of years we’ve been plugging along w/ Exchange. It’s satisfactory enough for the Windows users but really leaves a lot to desire for anyone else.

The ability to book resources (meeting rooms primarily) has always been a major sticking point. It works acceptably well using Outlook but rather terribly via. the webmail interface. Unfortunately, Mail.app on the Mac doesn’t do much other than e-mail. A few people are using Entourage 2004 but I’ve yet to make the plunge. At least w/ Entourage I could install Google Desktop and get a nicer search interface.

Essentially there’s a (significant?) divide between the different parts of the organization. From a strictly personal perspective, my exchange calendar is almost never up to date and it doesn’t bother me. I grab mail using Mail.app and accept meetings in iCal. Unless I make a special trip to the webmail interface, exchange is never going to know I accepted/rejected the meeting request. Honestly, I’ve got more important things to do. Do people expect me to have a current calendar… probably… and therein lies the rub.

Throw a VPN into the mix and it’s a rare occurrence that I can send mail using anything other than the webmail interface when I’m not in the office. This particular problem is probably more VPN configuration than a problem w/ Exchange.

There has to be something better?

I can say without a doubt that I’d love to see us switch to Google Apps for Enterprise. The suggestion has been put forth by numerous people but I’m doubtful that the rest of the organization can be convinced of its benefits.

Failing a mass migration away from exchange, I suspect we’ll see more people (myself included) running Entourage.

Any other alternatives?

JDBCSpy – What’s been happening.

So I’ve been working off and on over the past 6 months on a little side project, JDBCSpy. I’ve mentioned it previously so this post is just a little update.

It’s far from my day job and really just serves as a bit of an outlet. You’re free to argue about whether it’s a creative outlet or not :) The project stemmed from code written during one of hack days and has grown organically from there.

Essentially the goals of the project are as follows:

  • Provide an interface to easily gather statistics from a JDBC connection. Currently this is accomplishable in two ways.

    • The delegating JDBC driver will write all executing queries to a log file alongside some basic statistical information (ie. how long it spent executing).
    • More interestingly, the delegating JDBC driver also registers an MBean that exposes a slightly more comprehensive set of statistics (ie. how much time has been spent executing sql, # of queries executed, etc.)
    • There’s also an example implementation of a TestNG listener that will track JDBC statistics on a per-test method basis.
  • Provide a means of visualizing the gathered statistics.

    • There is a JDBCSpy Viewer under development. It has the ability to connect real-time to the JDBCSpy MBean and visualize activity. It can also reply a previously logged session by loading the JDBCSpy log file. It makes use of a bunch of the Orson and JFreeChart work so things don’t look half bad.

I’ve been using Maven for all build activities which satisfies one of the non-functional objectives.

If pressed, I’d say things are available in a beta-quality form. The code isn’t perfect nor particularly tuned. Most of the (recent) time I’ve spent on the project has been focused towards GUI refactoring. There’s plenty of more work to do on the JDBC driver side but it’s more or less taken a back seat right now. Part of the reason for this lies in the fact that there’s a few other projects that do something similar for JDBC logging.

Click here for a screenshot of the current viewer.

I’ll probably be adding some basic Groovy support (to enable user-defined filtering) to the viewer in the next commit or two. More or less just for kicks but it would also provide an opportunity to play a bit more with the language.

Cheers.

InfoQ : Coplien and Martin Debate TDD, CDD and Professionalism

Coplien and Martin Debate TDD, CDD and Professionalism

Summary

Debate sprang up at JAOO ’07 around Bob Martin’s assertion that “nowadays it is irresponsible for a developer to ship a line of code he has not executed in a unit test.” In this InfoQ video, he debated with Jim Coplien on this and other topics, including Design by Contract vs. TDD and how much up-front architecture is needed to keep a system consistent with the business domain model.