OsiriX 3.7.1 is Out

March 29th, 2010

This morning I noticed that OsiriX 3.7.1 was out with an impressive list of fixes and features. It's not like I'm a radiologist, but I do like being able to see the slides of the family. It's just kind kooky.

NetNewsWire 3.2.7 is Out

March 29th, 2010

I noticed this morning that NetNewsWire 3.2.7 was out with a very short list of fixes - basically one. No matter, I know he's working on the next release, but it's still good to stay current.

CoRD 0.5.4 is Out

March 29th, 2010

This morning I got a tweet saying that CoRD 0.5.4 was out, and as long as I might need access to a Windows box at work, this is the best way I've seen to make it usable on the Mac.

Finishing Up a Few Things and then The Big Move

March 26th, 2010

cubeLifeView.gif

Today I spent most of the time working on the latest page I put together for my web app - it used the Google Visualization AnnotatedTimeLine to display the at-the-money volatility versus time of a series of expirations for a given product. It allows the risk managers to see the change in underlying price and how it effects all these volatility values.

Interesting, but the big thing today was The Move.

Yes, indeed. The Shop is moving from it's current location to the next building over where some of the folks have already been working for the last few weeks. Today, this weekend actually, is when all the trading floor folks move. The space is big, nice, clear, clean, and new. I've seen it, but I'm not sure how it's going to feel once we all get in there.

I'll get to see how things really feel this weekend as I need to come in on Sunday to set things up and make sure everything survived the move. It'll be an interesting start to the week, that's for sure.

iMovie 8.0.6 is on Software Updates

March 26th, 2010

This morning Apple updated iMovie '09 (8.0.6) to better handle video from Aperture. Now I'm not a big movie maker, but that seems a little on the edge, but what the heck - I'm glad they are making improvements. Who knows, maybe Marie will want to do this someday.

Miro 3.0 is Out

March 26th, 2010

This morning I saw that Miro 3.0 has been released. It's the open source video access tool that can download content from a ton of places and update subscriptions, etc. similar to the iTunes Store for Open Source content. I first started looking at Miro when I wanted to be able to download episodes of House, M.D., but it turned out these were only available on Hulu.

Anyway, with this update, there are lots of interesting things but the question still remains: is it a better way to watch House? Don't know that's the case.

Working Around H2 Database “Bug”

March 25th, 2010

H2_logo.png

A few days ago I ran into a serious problem with my usage of the H2 database as an in-memory database for a ton of data. Like we're talking nearly 70 million rows in a day. It's a lot. The problem is that I need to be able to INSERT this same data into (optionally) two databases. This makes is most logical to build up a (large) SQL string and then send it to one, or more, databases through JDBC. Seems pretty simple.

Until it gets too big.

My errors were because I was adding a lot of data to this table. So much that it was blowing out the JDBC Connection. So I put in "breaks" into the SQL string and then chopped up the transactions by those breaks. What I didn't think about then, and did think about this morning was: What if I broke up the statements?

So I tried that.

  // break up the SQL into it's component statements
  String[]  parts = null;
  if (!error) {
    parts = sql.split("\n;");
    if ((parts == null) || (parts.length == 0)) {
      error = true;
      log.warn("Unable to break up the SQL into statements!");
    }
  }
 
  /**
   * Now let's make the JDBC Connection and Statement and then
   * execute each of the statements against it.
   */
  try {
    ...
    for (int i = 0; i < parts.length; ++i) {
      stmt.executeUpdate(parts[i].trim());
    }
    ...
  } catch (SQLException se) {
    ...
  }

I broke up the large SQL by the statement terminations, and then ran through all the statements one after another, until the complete package was done. The effect was dramatic: It worked!

Not just that, it was far better because now we were able to once again maintain the transactional integrity of the INSERTs so that I could use these tables with one another without having to worry about when certain rows were inserted into certain tables. Much better.

So it may still be a bug in H2, but it's easy enough to work around.

Starting to Work with the Google Visualization LineChart

March 24th, 2010

GoogleVisualization.jpg

Today my web app started moving in a slightly different direction and I started working with the Google Visualization Line Chart. This is really exceptional. While I've liked the AnnotatedTimeLine, and all the things it allowed me to do very easily, it's the speed and ease of use that the Line Chart represents that really blew me away.

This guy is rendered in SVG graphics so there's no Flash to load, it's not got the fancy zoom, but maybe they'll add that at a later time if they get enough requests. Even so, it's fast, lightweight, and very nice visually.

What a great visualization tool!

Perian 1.2.1 is Out

March 24th, 2010

This morning I noticed that Perian 1.2.1 was out with several bug fixes and supporting a new encoding. It's a great add-on for Quicktime, and it makes it a lot easier to look at unusual content in Safari. Nice to see the addition.

Developers and Good Communication

March 23rd, 2010

Today was an interesting experience in poor communication. I had put in a new section of code into Hemlock at the request of another developer, and implemented the logic as I understood it. I then said that he and Q/A needed to verify the accuracy of the implementation, and thought nothing more of it. If there was a problem, I'd hear about it, right? If not, then it was all good.

Yeah... right.

So I started the day by hearing that the values in the application were way out, and I spent quite a while trying to find the problem. I sent emails asking if there were any data changes made overnight - turns out there was. The data for this new feature was put in for one portfolio. Fancy that.

Now it was clear - they didn't test anything. They assumed it was OK, but didn't actually test the values to see if they were right. Lovely.

When ensued was a period of several hours where I was sitting next to the other developer trying to figure out what was wrong with the implementation I had. Now I've had this in source control for weeks, so he could have looked at it. But he didn't... that's OK, he was sitting right next to me, looking over my shoulder, and still he didn't see the problem.

I had to ask such incredibly detailed questions it was virtually explaining the code line-by-line. Yet, not really - for when I did that, he didn't catch the problem, and was unable to clearly communicate what he wanted me to do.

"Frustrating" doesn't even come close to describing it.

It's this "good enough" attitude that kills me. Hey, I have an idea - give me a sample code section in some language - I'll translate it, you don't have to do it for everything, but come on... throw me a bone here. Am I supposed to drag this out of you every time there's a change?

Don't get me wrong... this is a nice, decent, guy. He's personable, seems to make the traders happy, but I can't believe that his communication skills are so incredibly horrible. Really.