OmniGraphSketcher 1.0 beta 5 is Out

June 3rd, 2009

OmniGraphSketcher.jpg

I got a tweet today from the OmniGroup that the latest beta of OmniGraphSketcher, beta 5, was out with some really nice little features:

  • Quick Look previews now work. (OGS files created before beta 5 need to be re-saved to get this feature.)
  • Spotlight indexing now works, so you can find graph files whose text labels contain your search terms. (OGS files created before beta 4 need to be re-saved to get this feature.)
  • Quick Look and Spotlight are also now enabled for ".graph" files created with Robin Stewart Software Graph Sketcher.
  • Added a menu command called "Make Current Styles Default" which saves your current fonts and axis visibility settings as defaults for future graphs. We plan to replace this with full-featured graph templates in the future.
  • Now the "Connect Points" button on the data inspector connects points in the order they appear in the list, rather than from left to right.
  • Documents in progress now get autosaved and are reopened automatically after a crash.
  • Smaller fixes and improvements.

It's looking better and better. I even saw a nice little web site about pricing and supply/demand using this for the graphs. Very impressive. I'm happy they are getting closer to release.

Chasing Down Numerical Method Issues

June 2nd, 2009

bug.gif

Today was an interesting day. I was beginning to work on a new feature for this project this morning and then got pulled away from that to look at the seeming instability of one of the greeks for one of the portfolios. It seemed quite erratic, and clearly not driven by the market data or trading activity. It was really odd, to be honest, and it looked to me to be something in the calculations as opposed to the inputs.

So I started digging.

I had a heck of a time reproducing the input data simply because the SQL-styled input to a data source seemed to work when I had strings wrapped in single-quotes, but two columns of returned data were consistently zero. I dug and dug, trying to figure this out, but in the end, it was the fact that I tried double-quotes around the strings that solved it. With double-quotes around the strings, all the columns came back properly. Very odd, to say the least.

But then I had the data, and noticed that the normalization factors were very large - so large that they might really cause problems with the summing that was being done. Also, I checked on the positions and noticed that there were offsetting positions and that, along with the large normalization factors could quite possibly lead to loss of significance due to subtraction problems.

This took me several hours to come to.

But once I had a plan, I started re-working the calculations so that I don't get into these situations. I've done a lot of this in grad school, so it's not totally foreign to me, but the problems associated with what I had to work with made this difficult all the same. I needed to first calculate the net positions and then deal with a single position value per instrument. That's got to be a big winner. After that, I did the positive sums first, and then subtracted off the negative values. This should make these sums as well conditioned as they can possibly be.

I'll have to wait for tomorrow and see what the effects are on the stability of the numbers. The driving data is based out of London, and it's not ticking now, so I need to wait for the morning and then compare it to the production numbers. I should be a lot more stable, but if I'm not, then I'll keep going and get some stability. I have to, it's just too unstable and unreliable as it stands now.

Heck of a day.

[6/3] UPDATE: the stability was amazing. Really. Stunning. It was all I could hope for and then some. As the production app's numbers bounced around, the new development numbers were very stable. They moved, but they moved deliberately. That is a major improvement. Fantastic.

DataGraph 2.0.1 is Out

June 1st, 2009

DataGraph1.5.jpg

This evening I updated iTunes and QuickTime, and on the restart, I noticed that DataGraph had an update and was at v2.0.1. The release notes show that there were considerable changes in the graphs - specifically, the ability to color the area under the curve different colors for positive and negative values, and some very nice data point labels.

It's getting better and better, now if he'd only do the contour graphs and heat maps... then we'd really be talking. That would be sweet.

iTunes 8.2, QuickTime 7.6.2 on Software Update

June 1st, 2009

iTunes.jpg

In preparation for the iPhone 3.0 release, Apple put iTunes 8.2 (requiring QuickTime 7.6.2) out of Software Updates. Not a lot in the release notes, but it's required for the iPhone update which is now probably close to being released. Maybe even before the WWDC keynote on June 8th. We'll have to wait and see.

It's too bad that it's going to require a reboot. I'll have to do it in the morning when I have the time. Maybe later tonight if I have the time after the game.

Refactoring is Not the Same as Re-Designing

June 1st, 2009

cubeLifeView.gif

I had an interesting conversation with another developer today. He stopped by to tell me a problem he'd run into with the part of the code he's working on. He knew what he wanted to do, but he wasn't going to do it. He felt that it was better to give the users something as soon as possible, even though it was wrong, than asking them to hold off a while and build the right solution to the problem. It reminded me of the term I'd heard from another co-worker: Software Debt.

I found this article that does a reasonably good job of describing it. It's something that you have to be careful of every single day you write code. It's easy to hack something together and then say "I'll fix it later". The hard part is actually doing it.

This developer I was talking to was convinced that the solution to the problems created by these hacks added for immediate release was simply Eclipse. Yup, since Eclipse can refactor code, it's easy for him to go back and change everything about the code when he goes back into it later.

Now I'm not saying Eclipse isn't a great tool, but it's a refactoring tool, not a re-designing tool. And going back into the code presumes that you're back in the code. What happens if you don't need to go back in because the hack is only used once every six months, and at the time you notice that it's time to fix it, it's too late, and you're once again in the bind that something is expected by the users.

Rather than argue the point, I said "OK", and he's off to do the coding as he sees fit. I'm not his supervisor, he doesn't report to me, so it's a collaboration. In that vein, until it's my problem, it's his problem, and if that's the way he wants to handle his problems, then that's OK with me. In the end, we both know that it's wrong, and the right thing to do is to build something that's close to right (as close as possible), but still delivering close to the same timeframe as the hack. Get close, then come back and work it into the better solution.

But it's nieve in my book to think that it's just a matter of a little refactoring to change one system to another. Maybe it is that simple. More often than not, it's going to be some re-design as well as refactoring. It's not going to be something that's done unless there's a pressing concern to do it. While it's certainly possible that he's going to fix up this hack in the coming weeks, it's far more likely that much of it will stay and then some day we're going to be under so much software debt that we're going to be forced to throw it all away.

It's a shame. He agrees it's not the right solution, but is doing it anyway. Too bad.

Bean 2.3.0 is Out

June 1st, 2009

Bean.jpg

I noticed this morning that Bean 2.3.0 was released yesterday. Nice. It's a wonderful in-between app fitting nicely between Pages and TextEdit. It reads and writes Word docs, and that's what I use it more 90% of the time. I just need to open up a Word doc, make a few changes, and then save it again. I'm sure it'd do all the heavy-lifting I needed it to do, but for the most part, that's left to Pages where I can do all the page layout I could possibly ever need.

The release notes indicate that there are a ton of changes, which is nice, as I was using it on Friday and there were a few things I wish it had done, and it seems they are in 2.3.0. Nice.

LaunchBar 5 RC 2 is Out

May 30th, 2009

LaunchBar5.jpg

I got a notice from LaunchBar 5 that RC 2 has been released. Most excellent. The release notes say that there have been a lot of changes - to the clipbard, to the tiny URL feature... all very nice.

I have to say that I really like the clipboard history feature. I use that a lot. It's getting closer to final release, but I've been using it every day for quite a while and haven't run into any problems. Excellent timesaver.

The Importance of Effective Testing Tools

May 29th, 2009

cubeLifeView.gif

While I've been dealing with a lot of jUnit testing issues this past week, for the last two days I've been dealing with the realities of trying to match the actual data from the system to the application I've got and that had turned out to be a lot more difficult than I had hoped.

The problem is classic: they have no comparison tools for the final stage in testing. They rely on eyes to look at one and the other over time to see if things "look right". This, as expected, can be very hit-n-miss, and I was getting a lot more of the latter than the former.

It's pretty easy to see if you're not even close, but if you're off by 10%, is that a mistake, or a sampling interval issue? Hard to say. If there's a lot of volatility in the sampled data, then maybe it's as close as you can expect to get. So I find myself wishing for fewer jUnit tests and better test frames for the end result. The fist are nice, but the second are critical.

In the end, the only way I'm going to get better test frame data is to be a part of it's creation. Unfortunately, I may have to do that.

Hulu Desktop 0.9.1 is Amazing

May 29th, 2009

HuluDesktop.jpg

OK, I'm a TV nut. Well... I used to be. Now I'm an ex-TV nut, and still I like to watch the shows I want to see. Things like House, M.D.. This morning I heard about a new Hulu Desktop application (beta 0.9.1) for Mac OS X, and I have to say it's amazing.

This is exactly what I've wanted to see from one of these online video archive sites. Sure, it's got commercials, and from what I've seen, many are the exact same commercial over and over during the same show. But even this isn't bad. I can deal with that. It's the experience that matters.

Now I'm looking at the nicest desktop app for video I've seen in ages. It's clean, smooth, clear, and beats my Comcast DVR hands-down for viewing video. I'm almost ready to go get a Mac mini and hook it into my TV just so I can run this app and see the TV I want to see, when I want to see it.

DVR is still dicey. This is the best of FOX, ABC and Disney all online with a lot of older shows (Hill Street Blues, St. Elsewhere, etc.) that I watched back in grad school and loved. It's simply incredible. Well worth the time and effort.

Also, I don't really like the web-browser-based viewers. I code, and I have my browsers set up for what I want them to look like. These sites all want you to reformat that to fit the TV show. No longer. I can fire up the Hulu Desktop app and it's stand-alone. Sure, it's probably just a web-browser underneath, but that's OK. It's standalone. That's nice.

If you like TV, get it.

iWork ’09 Update 2 is on Software Updates

May 29th, 2009

Numbers.jpg

The fantastic folks at Apple are at it again with an update to iWork '09 on Software Updates. The release notes are simple: helps when saving documents. I'm not sure of that means that there were file corruption issues in the previous version, but it's good enough for me to take the time to update.

It's still more fun to work in iWork than MS Office for me. I guess I'm biased.