Archive for September, 2010

Updated My Variant Map to have Variant Keys

Monday, September 20th, 2010

Professor.jpg

This morning I started on some major improvements in my client to the cross-platform, load-balancing, resilient messaging system that has been built in-house for the next generation of trading systems at The Shop. The messaging broker is built in erlang by a guy that's far too smart for the locals - really pretty impressive guy. Anyway, the protocol in C++ is not as elegant as in erlang, but to be fair, it's pretty good for C++, as I've written a few in my days.

So I needed to start by retrofitting my variant's map structure with the concept that keys can be something more complex than STL std::string values - they needed to be variants themselves. This is just going to make the speed a little less, but it makes it much more like the Java-based data services which benefit from the existence of Object - something I do so wish C++ had, but I can see both sides of that now.

I modified the map to have variant keys, and then updated all the tests to work with the new key type. To be fair, the variant can hold an STL std::string, so most of the tests worked anyway, I just had to add a few to make sure I hadn't botched something really obvious.

So far, so good.

Adium 1.4b19 is Out

Monday, September 20th, 2010

This morning I got a tweet about a new beta of the IM client I use every day: Adium 1.4b19. There are a lot of little things that have been fixed, and several localizations have been updated. Nice stuff. I wasn't aware that they had added twitter support to Adium, but it makes perfect sense as the all-purpose instant messaging client. Even better.

Massive Redesign of Another Project – Time to Play Catch-Up

Friday, September 17th, 2010

cubeLifeView.gif

Well... as the saying goes - Better late than never, or maybe Better sooner than later, but today I sat in with a few other guys and helped them imagine the complete redesign of their system that I'm going to be using for some critical data I need for my ticker plant. It's nice to be included, but as you can imagine, it'd be even nicer to not have to do this after the fact. But so it goes.

The new design is a lot simpler - socket connections are not of a specific "type". There are no "automatic" actions. You open a connection to the broker, he gets your message to the right guy, and you can maintain that connection for as long as you and the service provider wish. When you're done, the connection is severed, and the socket connections are put back into the pools from which they (most likely) came. There's no need to kill a socket, but you can do that if you want.

Like I said - Simpler.

Problem is, it's a massive change and that means that I've got a lot of coding to do to play catch-up and get my stuff ready for these changes. I'll be busy Monday, that's for sure.

So Much for ‘Don’t Be Evil’ – Switching Back to Firefox 4b6

Friday, September 17th, 2010

pirate.jpg

I've been a big fan of Google over the years. A really big fan. I have appreciated their clever interview questions posed as adds in trade magazines... I have really loved and used their Google Visualization API... but the company seems to have taken a turn for the worst. These problems with Skyhook are really too much.

If Google is going to behave that badly, I'm heading back to Firefox 4 and stopping using Chrome. It's not that I need that great a secondary browser, and I just have a hard time backing a company that is doing such bad things when clearly they don't need to. They are letting power corrupt them. They should have known better.

So until I see something that really convinces me, I'm back to Firefox.

UPDATE: it turns out that Firefox 4 takes a little less memory than Chrome 7.0.517.8 - nice. I'm hoping that what I've read about the performance of the JavaScript engine in Firefox 4 is as good as they say. I just would hate to have to move back to Chrome to get something that was responsive. Don't Be Evil - indeed.

Google Chrome dev 7.0.517.8 is Out

Friday, September 17th, 2010

Looks like Google Chrome dev has a few more bugs fixed, but the blog of the release notes is a little sketchy about what the exact nature of these bugs are. So I take it on faith that I'm going to like these changes, and install the update. Can't do a lot else.

Consequence of Fast Development – Moving Targets

Thursday, September 16th, 2010

I'm the first one to accept the consequences of quick development - I've re-written the same code several times... thankfully, each time it got a little better. But it's still tough sometimes when the ideas aren't clearly laid out. Such is the case today with another system that I am going to need in order to get my work done. It's got to change - for the better, but it's how it's changing that is tough.

I'd like to believe there's a singular conscience - or at least a collective decision, at work here, but there's not that so much as a new need and the inability for the current design to support. I think this is going to require me getting into the design part of this project - at least enough to help them get that vision refined to the point that they can create the Java version, and I can write the C++ version.

I'm hoping that tomorrow I can come away from some discussions feeling a little better about where this is going.

Acorn 2.5 is Out

Thursday, September 16th, 2010

I got a tweet today saying that Acorn 2.5 was out, and it appears to have a bunch of new features including layers. Very slick. Maybe Gus is giving Photoshop a run for it's money! Wouldn't that be a hoot! Anyway, it's a great graphics editor from a really nice indie Mac developer, so I had to update.

I’ve Seen How the Sausage is Made

Thursday, September 16th, 2010

pirate.jpg

Spam. Social Engineering. Everything old is new again.

I've received a lot of new spam today - all with HTML attachments that I'm supposed to be dumb enough to actually click on. They are all about one thing or another. I'm either getting money, or it's something about the softball team, but all try to look like something I'd get - but they all fail to realize that I've seen how this all works, and I'm not about to click on anything I don't know the source of.

What continues to amaze me is the fact that they send this at all. They must get people clicking on them because they send them. So many times...

I just wish I could put my name on some hacker's list that says "Don't even bother...", but then they'd probably just make that the one list they'd try harder on.

Sigh...

Helping Folks Can Really Slow You Down

Wednesday, September 15th, 2010

cubeLifeView.gif

I've been given the opportunity to see if a developer in the Shop would be a better fit for the project I'm working on than the one he's currently on. Well... sure. I think to myself - why not? Well... the answer to that question is, of course, that adding this person to the group would slow me down to the point that I miss every deadline I've promised, and drive me to the brink of sanity.

I'm not sure what I'd call this personality, but it's an interesting mix. There's skill there to be sure. But getting that skill out is a very time-consuming operation. I'm not sure it's really worth it, as the work seems to be something I end up re-writing anyway, but it's based on a decent set of skills. Just bad ideas, I guess.

So I'm working with him to try and see if I can correct the problems - thinking they aren't that severe. After all, if they got here, the theory is they are valuable, right? So they are worth saving, right? At least those are the assumptions I'm working under.

So I'm asking him to have a look at some unit tests, and write a few more. This is how I like to introduce new developers to the codebase. It gives them an idea of how the code looks, how the tests are built, and how to compile and run the code on a very baby steps approach. It's been a pretty good approach for me so far.

For this guy it didn't seem to help a lot. I still had to do a lot of re-writing. More importantly, the designs, which should have been simple and small extensions to the existing objects, were instead complex, tangled messes of code. I don't think I've ever seen as bad an extension to a class as I've seen here. He just didn't even seem to try to look at the existing code and make his like it in any way.

But while this is all understandable, and I can re-write anything, the big surprise to me is the time it takes to talk to this person. It's measured in hours. Really. It's not like this is someone that can take an idea or two and run with it. Nope. It's got to be argued over and over again - and then, he'll do something about it. The code is bad, yes, but the time sink is really what pains me.

I'm throwing away large chunks of my day to this person, and I'm not sure any of it is doing any good. It's as if there's nothing being really transferred from me to him. He's not learning from the corrections I'm making to his code, and he's not learning from the talks we're having. I've had talks with people in his previous group here at The Shop, and they are tickled pink that he's with me now. They are guessing it saves them three hours a day to have this person off their team.

I'm being a good corporate citizen and doing what I'm asked, but I've already alerted my manager and the project lead that this person is going to double all my time estimates. I don't know what they are going to do, but until they tell me something, he's my problem and I need to come up with some way to at least keep the conversations to a minimum.

Yikes. I had no idea what I was getting into.

Google Chrome dev 7.0.517.5 is Out

Wednesday, September 15th, 2010

GoogleChrome.jpg

This morning I checked and Google Chrome dev 7.0.517.5 was out so I updated to see what the new features were. I have to say, it's nice to see that they are getting more Mac-like, and I hope it's a good sign. There has been a lot of grief in the press lately with Google and Apple, and while I'm not trying to say everyone should be nice and happy, it's really much nicer for me if the two companies I use a lot would be at least professionally polite. It makes for happier folks all around.

Anyway... Chrome is updated and that's always a good thing.