7 Year Itch

Jamie McIlroy
3 min readFeb 16, 2013

Someone asked me the other day whether I had a website or not,

“Sure, yep, I do…durablemethods.com”

He asked how long since I’ve updated it

“Hmmm, 2 years maybe? I’ve been pretty busy

He pointed to the date of the last post, 2006.

7 Years?! What have I been doing for seven years. At the time of my last post I was doing Websphere Portal Development for a large Utility in Calgary. I’m still in Calgary but times have sure changed.

What’s the same?

  • Durable Methods still operating in Calgary
  • Durable Methods still write software
  • Durable Methods still work with Java

What’s changed?

  • Durable Methods works in Trading, Energy Trading to be more precise
  • Durable Methods doesn’t build browser based applications. Durable likes Swing.

Wait…Swing…as in Java-on-the-desktop-ghastly-motif-look-and-feel-why-would-anyone-use-it Swing?

Yep.

Were you paid to use Swing? Was there a gun to your head? Have you gone mad?

Nope.

Here’s a quick backstory: When I took this latest gig (close to 5 years ago), there were two of us on the trade floor. My partner at the time was a UI master while I liked building services. His UI’s (.Net based) would call my services and the traders would smile. Then a hedge fund appeared, offered us jobs. He took his, I decided to stay. That meant I needed to start cracking off UIs or the traders would stop smiling. Smiling traders are fun to work with.

I had to choose a technology to build in.

Here’s what I had at my disposal:

  • A single server
  • A floor filled with power horse desktop machines

Having come from a thin client, portal background, I went with JSF on Tomcat. Icefaces to be more precise.

A failure.

I first built an application that consumed so many resources on that single server that I came to understand the limitations of my approach. IBM commercials that ramble on about the merits of scalability…this is what they were talking about. I had a non-scalable solution. Sure this first UI was great, smiles all around…but I knew the truth. I knew I couldn’t continue on this path and keep the smilies coming. So I looked forward by looking back. I decided to leverage the desktop machines and start writing single and dual tier applications. I’m not a .Net developer and didn’t want to take on the additional learning curve of a new platform so I stuck with Java.

So I’m going to work in Java, building desktop applications…one question remained…. SWT or Swing? I spent a day exploring SWT. I love Eclipse and Eclipse is written in SWT, maybe that’s the way to go. Maybe it was the path or tutorials and documentation I started with but I quickly found myself immersed in the RCP deployment side of SWT and not into what it’s like to write applications. Time is money and wasting time means wasting money. It was my time (in the evenings) and so it was my money. I remember the night. I just said, “forget SWT for now, I’m going to hello world a Swing app and see how it feels”

It felt odd.

It felt slow.

But, it was progress…I could see the next step. And the step after that. Within the month I had a production application running in Swing. It was a clever app that heat mapped the open interest in all Natural Gas options traded on the CME. I had a nifty name (Scout) and it worked.

My next technical horizon had been met. I was building Swing apps. Things have changed since then, I’ve integrated the following frameworks with immense success:

JFreeChart

Spring

MigLayout

JMS

JMS? I took that single server I had and turned it into a messaging hub. It runs ActiveMQ and is the messaging centre for the trade floor I’m working on. Classic PubSub, it broadcasts the realtime prices in PJM, MISO, CAISO. It publishes Hydro Data, weather data…you name it.

So that’s where Durable Methods has been for the past 6+ years. Transforming our context and our technology stack. It’s been an amazing ride and things only continue to improve.

My plan is to write some articles in the coming months outlining generic uses I have (my work is proprietary and the details can’t be published) for Swing and some jumpstarts to get any Swing-curious developers on their way.

Originally published at http://jamiemcilroy.wordpress.com on February 16, 2013.

--

--

Jamie McIlroy

Husband and Father. Wilderness First-Aid Certified. Terrible at tying knots. I play Squash. I like things that Trade. Leafs fan. FRC and Scouts Canada