Archive for the ‘Open Source Software’ Category

Google Chrome dev 17.0.963.26 is Out

Thursday, January 5th, 2012

This morning Google Chrome dev 17.0.963.26 was released and the release notes indicate the the biggies this time were a new V8 Javascript engine - 3.7.12.12, and a few Mac-specific Lion bugs were felt with. In all, a nice update, but nothing major, which is nice to see. Again, stability means it's nearing a big release, or we are getting to the point that browsers are feature complete. It'll be interesting to see what the Google Guys come up with next.

Google Chrome dev 17.0.963.2 is Out

Monday, December 12th, 2011

This morning I noticed that Google Chrome dev 17.0.963.2 was out and there were just a few updates, but it appears that it's a standard bug-fix release. Interesting to see if this means we're nearing the end of this release cycle and about to jump major versions again. It'll be interesting because it's not been that long for this cycle, and there haven't been that many significant changes. If so, it might mean that we're nearing the end of the real development for Chrome. That would be interesting to see.

Google Chrome dev 17.0.963.0 is Out

Wednesday, December 7th, 2011

Google Chrome

This morning I saw that after a significant period of silence the Google Chrome team released dev 17.0.963.0 with some interesting release notes. I like that the V8 Javascript Engine has been updated to 3.7.12.6, several WebKit rendering bugs fixed, and even better fonts for PDF docs. Nice update.

It's been an interesting lapse in releases, not that it's bad, per se, but that it seems they were doing other things, or these additions have been more significant. If other things, then it's certainly understandable, and if these were especially difficult, or a change of people involved, then that's easy to understand as well. It'll be interesting to see if they come more frequent, or continue to slide.

Google Chrome dev 17.0.938.0 is Out

Tuesday, November 15th, 2011

Google Chrome

This morning I noticed that once again, Google Chrome dev was update - this time to 17.0.938.0 and this time, it looks like the big changes for me is the new V8 Javascript engine to 3.7.6.0 which includes the new garbage collector. The release notes post indicates that downloads might be broken for some, but thankfully, that's not the main usage I have for Chrome, so I'm safe - for now. I'm happy to see Google keep moving forward on Chrome, it's about the only thing I'm positive about when it comes to Google. The engineers aren't running the show anymore, and it pains me to see the "Do no evil" corporation do such horribly bad things.

Sigh.

But at least Chrome is going well.

Google Chrome dev 17.0.928.0 is Out

Friday, November 4th, 2011

Google Chrome

As expected, Google Chrome dev 17.0.928.0 is out, and with it are a few big ticket items: the new V8 Javascript engine is at 3.6.6.3, there are additions to the incognito windows, and several changes to the linux version to speed it up. Nice work. I read in the comments to the last release that Google is trying to make the release cycle six weeks. It's something to strive for, but I think that's a little arbitrary as there's no way to know what the next six weeks will bring, and how that will impact the ability to release significant changes to the code.

More likely, it's an arbitrary scale to just "change the numbers" and the third number, 928, is really the number to watch. Still, it's nice they are trying to have something out regularly. It's a nice goal to have.

Google Chrome dev 16.0.912.21 is Out

Wednesday, November 2nd, 2011

This morning I noticed that Google Chrome dev 16.0.912.21 was out, and while I'm still expecting 17.x any day now, it's nice to see that they are still looking into the finer points of the codebase. The release notes for this version are pretty tame - nothing amazing, but it's progress nonetheless.

The New Growl Version Detective Updates Old Apps!

Wednesday, November 2nd, 2011

Growl 1.3

This morning I noticed that the Growl Team had updated the Growl Version Detective to version 1.2, and with it, they changed significantly the interface and it's capabilities. In recent days, the Team had released the 1.3 SDK and the new version of the Growl Version Detective gathers together all the known Growl-based applications and lists their version of the Growl.framework. It then allows you to upgrade the app to version 1.3 of the framework, which is a nice new feature.

I was able to see that Colloquy was on 1.1.2, I think, and after trying to upgrade it to 1.2.2 myself, I didn't hold out a lot of hope that 1.3 was going to fix things. Silly me! I punched the button and restarted, and things started popping up in the proper style just like magic. Amazing. Clearly, they have done a lot of work on the 1.3 SDK, and then to put that into the Growl Version Detective was really a wonderful idea. Brilliant, in fact.

So I'm now just waiting for Colloquy to get an update. It's in the offing, waiting for the 1.3 SDK to become final, and then they should be able to update the codebase and release something. Looking forward to it.

Google Chrome dev 16.0.912.12 is Out

Wednesday, October 26th, 2011

Google Chrome

This morning Google Chrome dev 16.0.912.12 was released and I picked it up. When I went to the release notes site, I saw that Google Chrome 15.0.874.102 was released to stable which just blows me away. That means that stable and beta are both 15.x.x.x and dev is on 16.x.x.x - that's not going to stay that way for long. I'm guessing dev is jumping to 17.x.x.x pretty soon. Additionally, there were no release notes for 16.0.912.12 at the time the code was available. So maybe it's coming sooner than later.

Always interesting times.

[10/28] UPDATE: don't blink - they just released 16.0.912.15 with typically sparse release notes. That's less than a day after the last release. Yup… it's about to jump to 17.* soon…

Creating a Solid, Reliable C++ Wrapper for hiredis Library

Tuesday, October 25th, 2011

Redis Database

Most of today has been spent trying to get my simple C++ wrapper around the hiredis C library for redis working in a way that allows for a significantly more robust usage pattern than I originally had. Specifically, all was fine until I shut off the redis server, and then my client would try to recover and reconnect and end up dumping core. The problems are only made worse by the fact that I really had no support docs on the hiredis site - only the source code, which is optimistic in the extreme. No argument checks, etc. make it ripe for a problem if it's not used exactly right.

Clearly, I wasn't using it exactly right, and those misusage patterns were what was causing the code dumps. So the first thing was to track down what I was doing wrong, and that meant that I really needed to become much more familiar with the hiredis source code. To be fair, it's a decent open source library, but it's missing so much that would have added so little to the runtime load and would have made it far more robust to the kinds of misusage patterns I had in place. After all, my code worked, so it's not that it was totally wrong, it's just that when things started to go badly, the things that you needed to do become far more important than when things are going well.

For example, if I wanted to send multiple commands to the redis server at once, you can run several redisAppendCommand() calls, but each really needs to be checked for it's return value. This isn't clear in the code, but it's very important in the actual system. Then there's the calls to redisGetReply() - typically one for each call to redisAppendCommand() - but not always. Again, you need to check for the critical REDIS_ERR_IO error that indicates that the redis context (connection object) is now so far gone that it has to be abandoned.

Then there's the reconnection logic. It's not horrible, but you have to be careful that you don't pass in any NULLs. There simply is no checking on the hiredis code to ensure that NULL arguments are skipped. It's simple to do, but it's not there - not at all.

In the end, I got something working, but it was hours of code dissection and gdb work to figure out what was going wrong and what needed to be done to handle the disconnected server and then the proper reconnection. Not fun, and several times I was wondering if it just wouldn't be easier to write my own as it's all TCP/telnet based anyway… but I kept going and in the end I have something that's reliable and solid. But it was nasty to get here.

Dropping Join/Part Messages from Colloquy and Adium

Monday, October 24th, 2011

Colloquy.jpg

One of the things that I haven't liked about Colloquy and Adium is that for the sake of accuracy, they have all the join/part and connect/disconnect messages. The problem is that on busy IRC channels, or even some days when my friends on Adium are in and out, those messages are the vast majority of the messages I see in the window. That's not the ideal situation for me, so I was looking for a way to clean those messages out.

Unfortunately, there is no option on either app to remove these messages. Luckily, I found this in a conversation in the Colloquy chat room. It's how to change the CSS for the join/part messages so that they don't show. Neat idea! You just have to Option-Click on the Apperance button in Preferences and it'll pull it up in an editor, and you can add:

  .event {
    display: none;
  }

and then a quick /reload style in Colloquy and the join/part messages are gone!

Adium.jpg

With this, I decided that it might be worth trying it on Adium as well. After all, I know from my own hacking on the Adium themes that they are CSS and HTML driven as well. In Adium, you need to get to the theme in question and then add:

  .status {
    display: none;
  }

to that file, and restart Adium and you're done!

These two changes are great! They allow me to keep more of the conversation in the window without scrolling. What a wonderful change!