Archive for October, 2008

Added Simple Arithmetic Methods to the BKTable

Thursday, October 30th, 2008

BKit.jpg

Today a developer using BKit chatted me asking if it would be possible to add some simple arithmetic operations to the BKTable. Basically, adding, subtracting, multiplying and dividing the values in the table by simple external values without having to pull out the Object, get it's double value, do the math, create a new Double, and place it back in the table.

It seemed like a very reasonable suggestion. After all, because of the JEP parser, we had the ability to add complete tables, it only makes sense that we do the same for the contents of the individual cells in the table. Problem was, I didn't want to reproduce the code for the arithmetic operations themselves as I'd already written that once. I wanted to leverage that without making the code overly complex and include a JEP parser for each operation.

Thankfully, that wasn't necessary. The way JEP is structured, the operations are classes. I have sub-classed their Add, Subtract, Multiply, and Divide classes to make BKAdd, BKSubtract, BKMultiply, and BKDivide already to make the complex operations in the JEP parser work. Again, luck was on my side in that each of these had simple methods to really do the heavy lifing.

BKAdd used add(), BKSubtract used sub(), and so on. This meant that as long as the BKTable had an instance of BKAdd, it could add. So I make transient ivar of a BKAdd, BKSubtract, and so on to the class so they wouldn't be shipped around the universe, and then sent to work making the methods.

It was somewhat tedious work because I wanted to have forms that would take either integer or String indexing into the table - that's standard for the BKTable, and also have a version that took the generic Object, but also one that took a double for those times when it's just a bunch of numbers, and you don't need the added complexity.

Because it's possible to have nulls in the table before the operations happen, I took the logical stance that a null was the same as a zero for these operations. So, adding a number to a null gives you that something. Multiplying something by a null gives you the null - simple, but important, I think, if you're doing this to minimize the hassles of dealing with Objects when you want primitive values.

Took a while, but it was really nice to see it work. The ability to modify the individual cells in a BKTable now is really nice. It is going to make some of the work done with BKTables a lot cleaner.

Seems Visualize Inc has been Bought – Serious Blow to VantagePoint

Thursday, October 30th, 2008

comboGraph.png

I've been using VantagePoint for quite a while, and a few weeks ago I sent in a few questions to the technical contact I've been using in the past and got an automated reply that he'd left the company, and all further requests need to go to Gordon, whom I've come to believe is the lead developer on VantagePoint. So I forwarded my questions to Gordon.

A few days later, I got a reply from 'Dawn' saying that we appeared to be in arrears on the maintenance agreement to the tune of some $20k+, and we needed to come current with that, and answer a few questions about our usage of VantagePoint, and then she'd allow the technical support guy (Gordon) to answer my questions.

Well... it took a while because the maintenance bills were sent to the paying agency, which, for a hedge fund, isn't always the same as the hedge fund. So, that's why we haven't been getting them. There were a few harsh words, until 'Dawn' figured out what was happening, and that this was a good way for them to get $9k/yr for doing essentially nothing, and things got back on track.

Gordon has been helping me since things got cleared away, but this morning I was just looking at a recent reply he sent me and I noticed that he cc:'ed a Dawn McKeever - at McKeever Financial. I had to look them up.

I've suspected that there was a management shake-up at Visualize Inc, because of the way they treated us, but I didn't suspect them to get bought out by an accounting company. Holy Cow! The web site for McKeever Financial isn't nearly as professionally done as the one for Visualize Inc. While that doesn't mean they didn't have the money, and that Visualize Inc wasn't in trouble.

It's just that when one of the owners is doing the Accounts Receivable, you know it's a small shop. And when it's an accounting firm, you know their priority is not going to be a high-performance Java graphing/visualization package. So chances are, the company got into trouble, and as an added asset, they included the software and it's users as part of the deal. But the guy had to go back to what he was more "billable" at, and now the support for VantagePoint is part-time on evenings and weekends.

It's just too bad. I really liked the package. It had a lot of promise, and yet I know it's only a matter of time before it's stale and dies of neglect. If they had just given up and given the users the code in escrow, then we'd be able to do something with it. But they didn't. Shucks.

It’s Amazing How Much Work a System Can Take

Wednesday, October 29th, 2008

SwissJupiter.jpg

Today has been nothing more than one little task after another. A million cuts. Nothing that hard - assuming you know this particular system, but it's amazing that there's nothing in this multi-million dollar system that allows you to "update" it's components en masse. There are some tools, but as evidenced by what I've done today, they aren't very good, and everything has to be verified to see if it actually worked. That's no way to work.

Then there's the tech support... virtually non-existant, and when they do try to help, you're lucky if they answer the question. OK, they have the easy ones covered, but those, by definition, aren't what you need help with. The hard ones like how are messages passed in this single-threaded model of yours? or I can see the data in the GUI client, but how can I get at it programmatically? - those, well... I've found that it's important to ask, only to have a written record of them not answering. In the end, you have to figure it out.

But what has struck me today is the mountains of work that this system - so very close to production status, is taking. It was supposed to make things easier... reduce the staffing requirements... eliminate systems... but it's having the complete opposite effect. New processes and applications are being built to interface it to systems it's not replacing. The number of people keeping it going make me think of the building of the great pyramids of Egypt... thousands of people toiling for their entire lives to build something one person is going to use. Kinda sad, in a way.

So today has been that kind of day that we move bricks. Nothing impossible, just lots of little bricks.

Picked up a Few Books from Pragmatic Programmers

Wednesday, October 29th, 2008

xcode.jpg

Today I got an email from the Pragmatic Programmers about two books: Core Data and Core Animation, and after thinking about it for a few minutes and looking at excerpts from the books, I decided to get them both. The Core Data is a "beta book" meaning it's not really done, but it will be, and the Core Animation book is finalized and in print.

I really like the books these guys put together - very easy to read as PDFs with Preview on my Mac, and with updates I don't have to worry about errata. Also, there's no way I can carry around the tonnage of books that I have for reference, etc. It's just not possible. But I can carry all that and more on my laptop.

While I haven't started reading these books, the one I read on Git is excellent, and I highly recommend it. I'm not sure exactly what I'm going to do with Core Data or Animation, but I know that the few things I have been thinking about require both: simulations and market tools. So... we'll see how these pan out, but I'm betting on "great".

JDK 1.6.0_10 is Out – Applet Stability Goes Final

Tuesday, October 28th, 2008

java-logo-thumb.png

I've been using the betas and release candidates of JDK 1.6.0 for several months now as it's the only version that allows me to properly run one of my apps in Java WebStart and have the graphing applets I've written work in web pages. It's been a know issue for Sun for a long time, and 1.6.0_10 has been in "beta" and then "release candidate" for a long time - I mean months. So it was nice to see yesterday that they finally released it.

I got the Windows and Linux versions and put them on my machines. It's where I need the WebStart and applet stability that this version gives me. Why they called it '10' when the last one I remember was '7', I don't know. I'm guessing a different group of guys was working on this from the main-line code, and it's taken so long because in addition to their features and fixes, they had to merge back in all the changes to the main JDK branch.

In any case, I'm sure it'll be a while before it shows up on Software Update... Apple is not the early adopter of JDK releases, they go through a lot of work when they get a new one, and that's OK with me. Mac OS X is a great java development platform, and the applet support was (and is) great without the need for JDK 1.6.0_10. But I'll bet that we see it. If not soon, then in Snow Leopard due out in January.

iTerm 0.9.6.1021 is Out

Tuesday, October 28th, 2008

iTerm.jpg

I was just thinking of how nice it'd be to get rid of the scroll bars on my Terminal.app windows, and it got me thinking about iTerm. I wondered if there was an update - so I ran it and sure enough, iTerm 0.9.6.1021 is out, and it fixed quite a few little things:

Version 0.9.6.1021 includes the following changes:

  • Fixed a bug that cause crashes when using vim.
  • 256 Color palette support (patch provided by Walter Dorwald).
  • Improved URL handling for ssh/ftp/telnet.
  • iTerm no longer sends a growl alert for a bell event if the winodw is the key window.
  • Highlight window when it's in the "send input to all tab" mode.
  • Better handling of "fork" errors.
  • The anti-idle is no longer sent to all tabs when "send input to all tabs" is on.
  • Other minor UI changes and bug fixes.

While I'm not sure it's still the complete replacement for Terminal.app, it's great to see that they haven't given up on it.

VantagePoint 4.6.6 build 209 Fixes Some Problems, Misses Others

Tuesday, October 28th, 2008

comboGraph.png

I heard back from my tech support contact at Visualize Inc. about an update to VantagePoint to bring it to 4.6.6 build 209 to fix the problem I'd been having displaying a Variable from a TwoDimDataSet on a secondary Y axis. It was a few weeks ago that I first saw this bug - it was brought to my attention by another developer. The bug only appeared in ver. 4.6.6 - as it was working fine in 4.6.4. So I emailed them, and while it took a while for other reasons, Gordon kept me updated on the status of this, and got me something working today.

Unfortunately, it's still got that weird bug where trying to plot Variable(i) ends up plotting Variable(i mod 2) no matter what the value of i. He said that bug would likely still be there, and after my tests, I informed him that, indeed, it was still there. Fair enough, he's going to work on that and get back to me.

For now, I've got one bug down, and another in the wings. As soon as that guy is fixed, I'll be able to give something to the developer that originally pointed out the problem to me.

DataGraph and Framework Updates to 1.6.1.1

Tuesday, October 28th, 2008

DataGraph1.5.jpg

I noticed this morning that DataGraph had been updated to 1.6.1.1 with several bug fixes regarding the inclusion of multiple y-axes on the same plot. Since I love to play with DataGraph, I decided to get the update for the app and the Framework - who knows, maybe I'll get around to playing more with it today and checking out the differences.

Apple Releases iPhoto 7.1.5 and AirPort Extreme Update 2008-004

Tuesday, October 28th, 2008

Apple-logo.jpg

This morning I noticed on Software Update that Apple had released iPhoto 7.1.5 and an update to the AirPort Express for connectivity and stability reasons, as well as bug fixes, I'm guessing. It's nice to pick up the AirPort stuff, but honestly, I haven't had the least bit of trouble from the AirPort Express since getting it in my first Powerbook. It's been flawless, but I guess others might be putting more of a strain on their systems than I do.

Anyway, good to get it updated.

Shopping at the Kindle Store and What Kindle Update?

Monday, October 27th, 2008

Kindle.jpg

Well... today I noticed that there were a few good books out from two of my favorite authors, and as soon as I get done with the latest Clive Cusser book Plague Ship, I was looking to dig into something from Vince Flynn or Brad Thor - both of the same genre. I noticed that they had two books out that I hadn't read - each, and so I got them. Love that Kindle shopping!

What I have been a little surprised about is the lack of additional rumors about the second-generation Kindle. The last leaked snapshots I saw were a step backwards. I'm wondering if the initial tests looked good, but then the usability and form-factor was really off. That was my take on it.

At the same time the new Sony eReader with touch-screen interface is really pushing the limits and it'd make the simply re-pacakged Kindle look pretty sickly. Maybe they pulled it for that reason. Whatever the reason, I think it's pretty clear that we're not seeing a new Kindle in the next 4 days, so the rumor of a new Kindle in October is bust.

Maybe early next year? Who knows. Until then, I'm very happy with the one I have. OK... there's a few things I wish it had - organization is the biggest. I wish there were ways to tag them as "this is the order I want to read them in", and/or put the publishing dates on them in a place easy to see.

Secondly, make it easier to file away a book that's read so it doesn't clutter the screen. And while you're at it, make 'Folders' for heaven's sake. How hard can that be? That would solve a ton on me issues. But until they do, I'll still keep reading.

UPDATE: I sent in the suggestions to Amazon and we'll see what comes of my suggestions. I'm guessing I'm not the only one asking for this kind of stuff, so maybe we'll see something. Would be very nice.