Archive for December, 2008

iTerm 0.9.6.1201 is Out!

Thursday, December 4th, 2008

iTerm.jpg

I decided to check and see if there was an update to iTerm - and there was! The latest release hits the transparency problems as well as removing updating threads to limit the contention issues and pasting big hunks of text. While I'm probably not going to switch as Terminal is still better with the workspaces feature, it's nice to keep up to date and see what's happening with the project.

Who knows, maybe it'll leapfrog Terminal again? I still like that I can remove the scroll bars in iTerm. Wish I had that in Terminal.

The Perfect Tempo

Thursday, December 4th, 2008

cubeLifeView.gif

There are days... understandably rare... where the tempo is just perfect. I'm fortunate today to be having one of those days. Not too fast, not too slow. I'm able to help people with problems, do some good coding, write it all up nicely so there's documentation on the changes... it's been a wonderful morning.

Of course, now that I've written this down, watch it change, but even that's OK. A morning like this is better than none, and if I'm fortunate enough to stretch it out to a day... well... even better.

I've been talking a lot with some friends about where I'd like my career to go. Theirs too... it seems to be a common theme recently. I'm focusing on the idea of becoming an indie Mac developer. I've done the self-employed thing already with my old company, but this time I think I'd do it solo, or with very few people. Something I could do out of the office in the basement.

I figure that if I get one app that can net $250k I can be totally debt free. At that point, I only need living expenses and that's a lot less than the house, etc. After that, I can get another job that's not as demanding, and build the second app. Get three or four apps and you're able to have that be your job.

It's something I'd really love doing. That's my path.

VoodooPad (Pro) 4.0.2 is Out!

Wednesday, December 3rd, 2008

VoodooPad.jpg

I got a tweet from Gus M. at Flying Meat that VoodooPad Pro 4.0.2 is out with a ton of bug fixes. I read the release notes for a good 5 mins. There are changes in the Python interpreter for plugins, lots of crashing bugs fixed, and a complete WebDAV update. Sounds like a great update - had to get it.

Interestingly, now the tabs for the pages I have open are ordered differently, and I can't figure out how to order them manually. It's not a huge deal, but it'd be nice to know what the magic was to getting them in any particular order. Seems dragging them is the key, but what if one is off screen (to the right), due to a window being smaller than the combined widths of the tabs? Hmmm... no solution there, my friend.

Work-around: maximize the window, move the tabs, and restore it. Not bad.

The Fun of being Busy

Wednesday, December 3rd, 2008

cubeLifeView.gif

This morning it's been a hectic morning - lots of things to dig into, fix, write up, explain... it's been a blast. Nothing major, but it's like a wonderful little buffet of things to keep my mind working - and in some cases, exercising my patience as well.

Athens Exchange Acting Up Again

Seems every so often the Athens exchange is acting up from Reuters. Today we didn't get the clearing of the earlyClose.flag and that meant that things were not ticking as the price was based on the earlyClose.price and not the incoming ticks. Once I cleared that up, things started working better. My favorite support guy in the price feed group is going to look into this and try and see why we missed it yet again.

Looking to Filter Ticks by Historical Data

There are problems with the data coming from the exchanges - no doubt about it, but when it comes like it did today, it's a significant pain in the rear, and there's a significant push to try and find a solution for this problem. Today there was an option that was sending a quote (bid/ask) of 0.3/1.2 - creating a price of 0.75. Then a quote of 0/150 would come in making the price 150. One of these is clearly wrong, but is there an objective way to determine that? Not really.

We need to somehow look at the historical data for this instrument and determine if it's correct or not. If the last n ticks have averaged 0.75 with a tight grouping, then the 150 is bad. But it's also possible that the reverse is true. We need to look at the data in a larger sense. However, this isn't easy. The rules you start to make are hard to pin down with any accuracy. You end up making artificial judgements (limits) like 200%, and such. It's not logical, it's experimental.

So I sent out an email asking if now is the time to look at this - or do we want to put this off for later. It's going to take some time as the prices coming from some exchanges are not always clear and complete. Some have CLOSE, for instance, some do not. So we have to make complex rules for all this. And then there's the training process. It's not easy... or quick. It's going to take some time.

So we'll see if this is that time.

Fixed a Few Bugs

Hey... everyone makes mistakes, and this morning I had to fix up a few of mine. This was my gotcha based on the fact that some fields were not getting populated consistently. I had to make special cases for the different ways they got populated, and that fixed the problem. Shucks.

Worked Around Changed Behavior in VantagePoint

In the BKTimeSeriesViewer, the init() method was blowing up with an exception in the hiding of the non-existant points on the graph. It turns out that in the latest cut of VantagePoint, the method getVariables() will return a null of there's nothing on the graph to show. In the past, it returned an empty int[]. This null was caught and we had the problem. So... what was the solution?

Turns out it's pretty simple - allow the null. The method getColumnsOnGraphOnSecondaryY() in the BKBaseGraph was the problem, and if we model it after VantagePoint, then it's simple to say that if there is a null returned from getColumnsOnGraph() (as it calls the VantagePoint method), then it's reasonable to return that from getColumnsOnGraphOnSecondaryY() as well. The rest of the code handles it nicely, so it was a simple change.

Gave this to the developers asking for it and all was well.

It’s Amazing What Passes for Senior Developer These Days

Tuesday, December 2nd, 2008

cubeLifeView.gif

Today a developer chatted me saying he was having a problem with the secondary Y axis on a graph he was building. I knew there were the problems with VantagePoint prior to the fixes I made, so I asked him if he had the latest versions of the BKit jar and the VantagePoint jar. Both were important for the fix.

He want away for a minute or two and came back saying that he got the latest BKit jar and it seill wasn't fixed. OK... let's make sure you have the most recent VantagePoint jar too - it's important as well (didn't I already say this? Yes, I did.)

He went away for a minute or two and then said it still wasn't working. OK, I asked him to send me the HTML and I'd look into it. I got the page, stripped out all the crud that wasn't necessary (headers, text, Javascript) - got it just down to the applet and it's tags. When I ran it in appletviewer I got this:

Pavel's Working Graph

Looks good to me. So I sent him back the HTML after I called him over to see the graph, and agree that it was as he thought it should be. OK, it's got to be on his end.

He comes back a few minutes later saying it's still not working. So I walk over to his desk. The jars are the correct version, and appletviewer on this box shows the right graph, so how about changing the codebase on the applet tag and seeing if appletviewer will show the right graph.

Oh... that worked.

"Well..." I said, "it's got to be IE's cache." - which I had mentioned as a possibility a while back, but he dismissed.

A few minutes later I get a chat from him - all is working. Surprise.

My rant is that this is simple debugging that any developer should be capable of doing. This isn't something special to me, or any advanced or elite status... this is simple Debugging 101. Yet it eludes him so completely. I know it's not going to make any difference, but it's stunning just the same. Some days I wish I had the ability of calling a programming foul and penalizing him 15 yards for illegal use of an education. Something like that. Gimminy.

Walking the Line Between Support and Honesty

Tuesday, December 2nd, 2008

SwissJupiter.jpg

This morning I was talking to a newly-returned (prodigal?) co-worker trying to bring him up to speed on what's happening in the area that he's been asked to focus on. Answer: a lot in the year he's been absent, but nothing he can't pick up on. What turned out to be at least as important as what's happened (to me, at least) was what the mood was after a year of absence.

It's vastly different, and while I didn't want to curb his enthusiasm, I didn't want him to charge off and find that his ideas, while good, were met with a load of screaming folks with torches and pitch-forks. And at the same time, I didn't want to rain on his new parade. There had to be a middle-ground. Someplace where I could tall him that it's important to consider the moods and feelings of the folks doing the work, and letting them determine his choices.

I tried to point out that while his ideas are good, and possible even necessary, there are other things that would be much less volatile and serve just as important a purpose to the overall effort - just not have as immediate a payoff as the more volatile ones. Part of this has to be tempered with the fact that we're in the final days of a year-long push that has left many people at wits end. Work on something they need, but aren't yet critically dependent on, and in a few months when things have settled down, and you've delivered a little bit of help to the crew, you can approach the things they have depended on for the last year. Hopefully, by then emotions will have settled down and even they will understand the problems in the existing system.

It's tough, and I don't envy him his position. But I wanted to help him so that he didn't get too frustrated right away and have a bad feeling before he even really gets started.

MySQL Creator Says 5.1 has “fatal bugs”

Tuesday, December 2nd, 2008

MySQL.jpg

Over the past several weeks I've been mulling over the MySQL/PostgreSQL and PHP trifecta in my head. Wondering if I needed to just give in and switch to MySQL as it was/is supported by the PHP Apache plugin from Apple. It would certainly make good sense. Then this morning I read this article and I'm glad I didn't.

In the article, MySQL creator Michael Widenius is quoted from his personal blog:

"We still have 20 known and tagged crashing and wrong result bugs in 5.1 [and] 35 more if we add the known crashing bugs from 5.0 that are likely to also be present in 5.1," he wrote. "It's of course impossible to get all issues fixed, but we should at least have tried to ensure that all issues important to a lot of MySQL developers and MySQL users should have been discussed, fixed and/or addressed in a public manner! We should also never have a single serious crashing/wrong data bug in a GA release."

This sounds like a serious quality control issue until you read later that it's systemic to the MySQL group at Sun. Again, from the article:

Despite the alleged friction between prominent MySQL developers and Sun management, Widenius contends that Sun was not responsible for the failures behind the 5.1 release. He blames MÃ¥rten Mickos, the senior vice president of Sun's database group and former CEO of MySQL AB. According to Widenius, Mickos no longer treats quality as a priority and unilaterally chose a premature GA release date because "he needs something he can sell."

While I can understand the need to sell a product in Sun's corporate environment, it seems more reasonable to have smaller, more stable releases, as opposed to adding in all the amazing new features in 5.1 just to have something that's feature-rich for the selling. It's certainly not where PostgreSQL is right now, and given this, I think it was the right thing to do, and continues to be the right thing to stick with.

I was hoping that Sun would take MySQL to a new level... but maybe it was a new low. Sigh.

Managers – Part Comedian, Part General

Monday, December 1st, 2008

PHB.gif

It's hard to even know where to start with this one. I couldn't even come up with a decent title on this guy because it's actually so bizarre that it almost defies classification. But I'll try.

I was summoned to my boss' office this afternoon and after I walked in, I could tell on his face it wasn't going to be what I consider 'fun'. He started out with a "How you been?" - simple enough, I told him my back hurt a little - it does, and that it was something that I'll deal with and it'll get better in the coming days and weeks. Then he jumps right into the reason for the meeting.

"OK, I know you're not happy, so bitch... about me. Go ahead."

Hmmm... now there's several ways to play this. I could go with the 100% honest answer and clearly get into a fight that I cannot win. Not a good idea. I could try to point out the most offensive remarks of the recent days, that had merit. I could also deny it all.

I started with the denial. It didn't work. Shucks!

So I went with the most recent issue - that of the "total honesty" approach he's been using.

"Well..." I said, "I just wish you'd say less - particularly about the 'I don't care what you think' kind of talk. It's unimportant, as I'm going to do it anyway, and it's just demoralizing. It doesn't get things done faster, and while it may be true, it's not really helpful in the least."

He defended himself as if it was necessary to tell me this and then launched into a 45 min talk about what was coming up, and why I should be happy about all that. While it was a reasonably good outcome for me - I didn't have to be as honest as he was being, it was amazing that he really didn't want me to get things off my chest, he wanted to get things off his.

I don't mind these 'diverted' conversations. Primarily because they are actually informative to me about what's happening. But it's funny that he defends his actions about telling me he doesn't care what I think, and further to try and almost cheer me up with the stories of what's coming.

It's no surprise that in these financially turbulent times, guys in middle and upper management are worried that they won't be able to get the new BMW this year. It's understandable. So they think "Where can I make cuts?" and "Who's going to back me?". Not a fun place to be, I can see that, but to pull things like this is really shooting yourself in the foot.

Anyway... it's an odd meeting that I'm glad is over.

Upgraded to WordPress 2.6.5 at HostMonster

Monday, December 1st, 2008

wordpress.gif

This morning I noticed that Fantastico had updated WordPress to 2.6.5 (from 2.6.2) to keep up with the security fixes, etc. and three known bugs. I'm sure they are also making strides in the UI to keep things fresh, but that's OK too. I'm happy that Fantastico is keeping up with things. It really makes using HostMonster a lot nicer.

Interestingly, there was a fake WordPress 2.6.4 floating around, and because of that the WordPress Team went from 2.6.3 to 2.6.5 with this release - making it a lot easier to know if you have the right copy. Interesting play on trojans. These guys are nasty at times.

I must say that this is about the fastest Fantastico has updated WordPress. I was planning on doing 2.6.3 on Friday, and then today shazam! it's 2.6.5. Impressive.

Calc Board Updated to 1.6.1

Monday, December 1st, 2008

CalcBoard.jpg

Calc Board is a wonderful little Dashboard widget that I use at least once a week. Little sums, or calculations that I need to do and don't use a calculator for because I want the results to hang around a while. It's got a lot more capability than I use, but it's nice in what it does, and if I ever need the help, it's nice to know it's there as well.

Excellent little widget.