Archive for June, 2009

Safari 4 is Released on Software Updates

Tuesday, June 9th, 2009

Safari.jpg

As part of the WWDC Keynote yesterday, it was announced that Safari 4 was officially released. This morning it's on Software Updates, and because it's going to require a restart, I'm going to hold off on installing it until I have a good 20 mins to do the install and restart.

I'm sure there are a few nice fixes, but I'm not expecting anything spectacular in terms of performance and such. It's just the final release and the beta has been exceptionally stable for me - which is fantastic.

It's good to see it finally released.

UPDATE: I'm sorry to say that they removed the new tabs and it's back to the tab bar below the title bar. Sad to see it go. I liked that far better than the system I've got now.

Lots to Like from the WWDC Keynote

Monday, June 8th, 2009

keynote_sm.png

Well... the keynote didn't disappoint. I have to say that the update to the MacBooks was probably the most surprising to me. Bringing all the machines up to the 17" MacBook Pro level was pretty nice. It was also nice to hear about Safari 4 being released, and Snow Leopard for $29/$49 was simply a great deal that I can't imagine anyone passing on.

Of course the big news was the most expected - the iPhone 3GS. Hard to decide right now if this is the time for me to jump in. Teathering is there, but AT&T doesn't support it. Multi-media mail is there, but AT&T doesn't support it - yet. AT&T is trying to get a faster network, but it isn't there yet, and the coverage is really spotty I've heard from friends.

So maybe it's time, maybe not. I'll have to wait and see. But all-in-all, a nice presentation full of goodies and even a few surprises.

Nearly Complete iLife ’09 Update on Software Updates

Friday, June 5th, 2009

iLife09.jpg

This morning there was a nearly complete update on all the components of iLife '09 - I think iWeb was the only one that wasn't updated. Lots of new things, and better 'raw' processing from some more cameras. It's nice, but I really need to get myself a camera or iPhone with video so that I can begin to take advantage of these tools. It's really getting silly.

Oh well... gotta stay up to date for the day I get that camera.

What a Fantastic Day – Too Bad it was Doomed

Thursday, June 4th, 2009

cubeLifeView.gif

Today was one of those days you can't believe. I was coding to some wonderful music on my iPod and things were just falling into place. I'd write a method, it'd be say a dozen lines of code, and then I'd look back at it and think Wow! That's impressive. It covers all the bases, and is elegant. I did that again, and again, and again.

I had about 3 hours of this today. It was spectacular. Really. I can't remember the last day I had when I was this hot on the keyboard. It's been a while, I can tell you that.

So of course, it had to end badly. Doesn't it always?

It started when I had the basics of this F/X correction into my web app. It was absolutely wonderful. It slipped in cleanly and easily, and it worked like a charm. Sure, it had methods that needed to be database-driven as opposed to the hard-coding, but that was to save time and make sure I had it all under control.

I had a method that would give me the conversion factor for a 'from' and a 'to' currency code, for example. This needs to be driven of the database of F/X rates, but I had the basic conversions coded up as fixed numbers. The method worked, and once I got the database work in place, it would be driven off better data, but the essentials were there, and everything could be seen to be working.

This was all done about a week early, by the way.

So I mentioned to my manager that I had the rough-cut of the F/X conversions in. I tried to explain the things I had yet to do, but he was already off to the races: "Did you get this in yet? How about this? Can I see this?" Like an old boss I'd had. Excited, which is nice, but already assuming that a week early is "normal" for me.

In a very real sense, I condition people to expect greatness from me and then I'm stuck with their expectations. It's only taken three months for this manager. Yet I can't blame him. For these three months I've been working exceptionally hard to get things going, and I've got an impressive string of successes already. That I got this done in a day is not really all that surprising. But it'd be nice if he at least gave it 5 mins before asking if I'd done the next three things on my list.

Just give me a little rest.

So I ended up on a real downer when it should have been fantastic. Bummer.

Sometimes It Comes Faster than You can Field It

Wednesday, June 3rd, 2009

cubeLifeView.gif

Today was an interesting day, that's for sure. I've been trying to tie up several loose ends with this project I'm working on with another developer in the Shop, and I wanted today to be the day that we finally finished it off and sent it to QA. Seemed very reasonable when I got into work today.

My tests went perfectly, and that was about all that did. I had a 'drive by' from two developers saying that the code they'd written in the project wasn't returning the correct numbers, and the way in which I was getting it would have to change. Not horrible. In fact, reasonable, and so we spent the hour there getting that fixed up.

Then there were logging problems with the addition of the log4j jar and no configuration file. That set me back a bit as I waited for the other developer to do it. I ended up doing it to try and get this all put to bed today.

During all this, I had added new data sources to another app I'm working on and those weren't configured exactly right. The net result was that I was missing a ton of P/L in the calculations making it look like there was a huge loss. Someone was freaking out and I was in the middle of trying to check in some things for the other project while he's telling me of the problem.

"I'm on it... just give me one minute to check this in." I said.

No more than 10 sec. later he says "Could it be in the configuration?"

"Yes, I'll check it in less than a minute, I promise." as I frantically try to write the subversion check-in comment for the code sample I just finished for the project.

No more than 10 sec later he says "If this is real, they need to know about it."

"I promise, just another few seconds and I'll be on it."

Then he stands up and tries to talk to be and I look at him, put my fingers in my ears and sing "La La La La La" like the kid that doesn't want to hear what the parent has to say. Childish? Sure. But I didn't want to insult him by saying "Do you have a watch? Count off 60 sec. and be quiet!".

In less than 20 sec. I was done, another 60 sec. and I had the problem figured out, and within 5 minutes it was all solved. He then wanted to discuss why this happened, I explained that it was because the way the app was written by this other developer and the instrument lists were set by the XML config files and that's very manually intensive. He wanted to know how soon we could make it database-driven, and I said we could, but it'd drive out other things that he wanted done.

No easy choices, but the best advice is not to make decisions when you're upset about something. In this case, seeing bad P/L from a new data source. It wasn't even in production - just test. Learn that not all problems have the same impact.

Thankfully, after a few minutes of talking he calmed down and realized that the schedule we put together of work was probably the best, and we would get through this just fine. It's not perfect, but I didn't write the thing, and we're just doing the best we can to muddle through until we can give it a complete overhaul.

But I'm glad it's over.

Tomcat 6 and log4j Logging is Not Really Complete

Wednesday, June 3rd, 2009

WebDevel.jpg

I have been messing with Tomcat 6 and log4J logging today because this web app I've been working with had to add log4j for an external dependency that was added today. In general, I'm a fan of log4j if you go through the effort of using it properly, it's not bad. But adding it turned out to be a pain that I couldn't have imagined. In the end, I should have gone directly to the Tomcat 6 website and looked at the docs there and not questioned it. But I had done this before, and I was convinced that I could whip this up without any grief. (Ha)

The simplest thing was to create a log4j.properties file like:

  log4j.rootLogger=INFO,A1
      log4j.appender.A1=org.apache.log4j.ConsoleAppender
      log4j.appender.A1.layout=org.apache.log4j.PatternLayout
      log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

and place it in the WEB-INF/lib directory of the web app. I also placed the log4j.jar (version 1.2.15) into the same directory, deployed it and it worked. Almost.

Actually, it worked about half the time. The other half the time I got a warning from log4j saying it couldn't find the properties file. Very odd. If I edited the file, it was there and OK, but sometimes it'd work and sometimes not.

I looked into this from a lot of angles, and there was nothing I could do to get it to reliably recognize the log4j.properties file in the WEB-INF/lib directory of the web app. Then I read this from the Tomcat 6 website.

Seems they are saying that you have to place the log4j.properties file in the $CATALINA_HOME/lib directory. No choice. That means it's the same logging for all web apps on that instance. In general, I can see why that's required, but then I'm a little blown away that it wasn't working where it was. But it was... and it wasn't.

So in the end, I put the files (jar and properties file) into the $CATALINA_HOME/lib directory and restarted things and it's working fine. Kind of a pain to tease me with the possible working within the web app, and that would be exceptionally cool, but it's just not going to happen in this release of Tomcat 6.

OmniGraphSketcher 1.0 beta 5 is Out

Wednesday, 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

Tuesday, 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

Monday, 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

Monday, 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.