Archive for October, 2010

Adium 1.4rc1 is Out

Thursday, October 21st, 2010

Adium.jpg

This morning I saw a tweet that Adium 1.4rc1 was out with a nice collection of updates that are going to polish the app and really get it ready for major release. I think I've been on the 1.4 series as long as Snow Leopard has been out, but maybe even longer than that. This is really for the rest of the users, as the vast majority of folks like me are just using the betas, and it's working just fine.

Transmit 4.1.3 is Out

Thursday, October 21st, 2010

Transmit 4

I noticed yesterday afternoon that Transmit 4.1.3 was released but I was too busy at the time to do much about it. This morning, however, I took the time to upgrade as it's simply a fantastic file transfer utility. Far better than Cyberduck (which just had it's own update) and it's all about the polish and the completeness. Transmit is simply the cleanest, nicest, most well-thought app of it's kind. Simply amazing.

Cleaning Up Things and Creating a Streaming Iterator

Wednesday, October 20th, 2010

GeneralDev.jpg

Today I spent quite a bit of time tweaking the codebase to make sure that there wasn't something I was doing that could be done more efficiently with a little work. I've been working very hard on getting things done in the ticker plant, and it's client, that I haven't had a lot of time for the make it faster part of Make it work then make it faster mantra, so today I wanted to take some time to try and see what I could do to get anything more out of the system.

I also got a few requests from the new users, and I added those changes into the system, and I even actually like one of them. Based on the person that asked for it, I was surprised that I liked anything he had to say, but that's personal. Professionally, he's a dud too, but that's a different story, no?

After I was pretty much done with that, he came back to ask about something else, and I told him the API I had implemented for him - but hadn't finished to this point. It's some of the details that I knew I'd have to come back to, and it just hadn't been the right time. Clearly now, was that right time.

What I found in digging into the source of the data I needed was that there's no way for me to handle it by conventional means. It's data stream is about 55 MB, and that needs to be deserialized into a map of maps representation of about 800,000 elements. Way too big. All I need is the name-value pairs in the data, and I don't need to blow it all into a map-of-maps and then walk the maps to get the pairs. I can do that in a more streaming manner.

So I started to think about that and came up with an absolutely wonderful idea - I'll make an iterator for the data. It'll look and act like a standard STL/boost iterator where you'll initialize it with the data stream, and then 'increment' your way to the end. Each 'step' will have all the data you need for that step, and then the trick will be that the processing of the data will be up to me, the caller.

This will work wonderfully, as I won't have to deserialize all the data at once and I won't even have to spend the time to deserialize all the data at once. I can hold onto the data stream and deserialize what I need. If the user breaks out of the iterating loop I stop decoding. Simple.

I spent the time to get most of the header file done, and tomorrow I'll need to implement it. But I'm very excited about this as it'll fit very nicely into the scheme of things and really help what I'm trying to do.

Cool stuff.

Apple’s Back to the Mac Announcements

Wednesday, October 20th, 2010

keynote_sm.png

First off, I'm very impressed that Apple is continuing with the live broadcasting of it's major keynotes and product releases. I think for a technology company, it's what should be done, as opposed to what can be done. If you invest in massive server farms and huge datacenters, with streaming video, TV, and movies, then if you can't pull off a keynote, you're in big trouble.

That said, I had hoped that there would be something really neat about the things I'd see in the keynote. But there weren't. I can understand that a lot of people like to work their apps full-screen. My wife is one of them. Makes sense for her, as that's how she "sees" the computer - a device that has "multiple personalities". It can do email, it can do web, it can do music, but in her mind, as with many others, it doesn't do these all at once.

And that's where I sit. All kinds of things happening at once. For me, my phone can do one thing at a time, and with the fast app switching, I have to say I'm not upset about the "reconfiguration" time. But for a computer? That would be horrible. So while I can see the keynote going for the more consumer-level audience, it missed me.

Don't get me wrong, I'll upgrade to iLife '11, but not because of the full-screen modes.

But as for Mac OS X 10.7 - Lion, I didn't see anything there that I liked. Not a thing. I'm very comfortable with Spaces and Expose. I don't need them in a different view. I don't dislike the new view, but it's something I'd never have asked them to improve upon in a million years. It's perfect at what it does.

As for the App Store. I'll wait and see. There's a lot to like about it, but I like the way in which my apps now work. They all update, or close enough. They are easy to find with LaunchBar, and I don't have to worry about those ugly screens of apps. That's something for a phone, not a real computer. At least, not for me.

They didn't highlight the little things, and I'm hoping there's more to like about Lion than what I saw. The new iOS-like scroll bars will be nice. I don't want to see them if I'm not needing to see them. Scroll bars on Terminal.app have been something I wish they could remove for ages. Glad to hear that the rumors say they'll be updated in Lion.

I'm sure I'll get Lion for my machines. It's the future. But I hope there's a lot more to like about Lion than what we saw in the keynote. That's awfully thin, in my book.

Finally, the MacBook Air. Nice looking notebook, but too small and too underpowered for me. It'd be nice to see a higher resolution screen on my 17" MacBook Pro... along with faster processors and more memory. I'm already excited about the SSD option, but just need to wait for a nice update to the MacBook Pro line to get a new one.

In all, it's interesting, but not earth-shaking.

Working Really Remotely

Wednesday, October 20th, 2010

NetworkedWorld.jpg

Yesterday I had the real pleasure of working with the lead developer of ZeroMQ on a problem I was having with my TickerPlant. Specifically, I was sending one message and seemingly receiving more than 10. Very odd. When I started off with a note to the mailing list, it then transitioned into a nice chat on IRC, and when he needed to see code, I simply posted the programs I had been using on github as gists. It was a completely amazing experience.

I haven't worked remotely for a long time - about a decade, really. But when I did, the experience was a wonderful one. I got a ton of work done, I didn't feel out of the loop, and everyone was happy. This experience was even better, and it's because of the tools that are now available: github, the Mac and iSight cameras, universal development tools on most platforms - it's really made it possible for someone like me to do my job completely physically removed from the traditional workplace.

Once again, I long for the days of working at home. There's just so much to like about it.

Gist and Excessive ZeroMQ Message Receipts

Tuesday, October 19th, 2010

ZeroMQ

I'm trying to narrow down my problem with the excessive messages I've receiving in my ZeroMQ receiver based on the messages I know I'm transmitting. Basically, the difference is about a factor of ten. It's bad.

So I made a very simple ZeroMQ-only receiver application with everything set up the same to give to the same results and tested it. Yup, same problem. Now, how to share it to the mailing list?

Gist!

I remembered that you can throw up code samples, etc. up there and then share them. So I pulled it up on my work box, sent up the app, and then saved it as a public gist. Bingo! I have a super simple URL to post on the mailing list and they'll be able to see what I'm trying to do.

I sure hope someone has some ideas.

UPDATE: I've been able to see that the transmitter is using just two of the 27 URLs and when I limit the receiver to those two URLs, the numbers match. It's as if the broadcasting is duplicating on all 27 of the channels and the receiver is picking them all up. I've sent something else to the mailing list and we'll have to wait and see.

[10/20] UPDATE: On the mailing list, I got a response from Steve-o that indicates that I really need to be using unique ports as well as unique addresses. The switch will filter on the address, and the OS on the port, but the listening on the port is by the port number, and it appears that the suggested use from Tibco is to have unique ports. This matches with the exchange multicast channel mappings, and I can do that.

When I put that into my receiver and re-ran the tests, the results were rock-solid and accurate. Martin still thinks there's a better way to allow for this in ZeroMQ, and I'm all for that, but until then, I'm very happy with the unique ports as it seems to make the OS/NIC as happy as the switch is with the unique addresses.

Sweet!

MarsEdit 3.1.2 is Out

Tuesday, October 19th, 2010

This morning I saw a tweet about MarsEdit 3.1.2 being out with several fixes to the Rich Text editor as well as a few things in the Media Viewer. Not bad.

I hadn't had any real problems with MarsEdit, but it's great to see that he's still working on it.

Google Chrome dev 8.0.552.5 is Out

Tuesday, October 19th, 2010

GoogleChrome.jpg

Once again, the Google Chrome guys have pushed out a new release, this one's only "release note" is: Fix minor stability issues. Some day, we'll read that this is really something akin to wiping out your hard drive, and they just wanted to downplay it so as not to harm "the brand". Like so many things in life, perception is far more important than reality.

Still, it's nice to see it getting better. I'd really like to see the OpenGL accelerated rendering and playback in the Mac OS X port, but I can wait.

UPDATE: I'm still disappointed in the default zoom rendering. It has all the graphics in a very 'rough' state until the window stabilizes, and then it redraws it to the right scale. Annoying, and I'd have thought they could put in the default CSS, but that's not working in this version either. Oh well... I wait for fixes.

LaunchBar 5.0.3 is Out

Tuesday, October 19th, 2010

LaunchBar5.jpg

This morning I noticed that LaunchBar 5.0.3 was out with an impressive list of features. I use it every day, all the time, and can't imagine not having it around. While I understand that Apple tried to do something like it with Spotlight, it's not the same, and for me, it's worth spending the few bucks to get something that's as good as this.

Excessive Message Receipts with ZeroMQ and OpenPGM?

Monday, October 18th, 2010

ZeroMQ

Today's problem is a stumper - aren't they all?

I'm sending about 3000 msgs/sec out of a ZeroMQ transmitter using the OpenPGM encapsulated PGM transport, and on the client side I'm receiving about 50,000 msgs/sec! Where are these messages coming from? I know they are duplicates of the messages I'm receiving as I'm conflating them in my receiver's queue, but still... what process is generating these guys?

I look at the stats for the transmitter and receiver, and I don't believe they are miscounting. I don't believe that it's possible for the same code to under count on the transmitter and over count on the receiver. And it's the same code.

The only speculation I'm left with is that it's in the OpenPGM part of ZeroMQ. Maybe this is how they are handling the "reliable multicast", but if that's the case, then why isn't the client filtering out the duplicates?

I'm going to have to figure this out tomorrow. Time to go listen to a talk on RabbitMQ.