Archive for the ‘Open Source Software’ Category

Minor Update to Vim Gist Plugin for New GitHub API

Thursday, June 9th, 2011

MacVim.jpg

Today I was trying to use the Gist Vim plugin and noticed that it was a bit broken. In fact, it wasn't even close to working. I was getting HTML redirection messages, and that's not good. So I decided to take a few minutes and see if I could get it back working again. I looked at the site and noticed that it hadn't been updated recently, so it was going to be up to me.

What I figured was that it was in the URL for getting the Gist from GitHub. That's in this code:

  1. function! s:GistGet(user, token, gistid, clipboard)
  2. let url = 'https://gist.github.com/'.a:gistid.'.txt'
  3. let winnum = bufwinnr(bufnr('gist:'.a:gistid))

and after a bit of time reading the GitHub API site, and fiddling around with the URL, I was able to see that the correct URL is really:

  1. function! s:GistGet(user, token, gistid, clipboard)
  2. let url = 'https://raw.github.com/gist/'.a:gistid
  3. let winnum = bufwinnr(bufnr('gist:'.a:gistid))

So I changed that in my copies, and I'm good to go. For a while.

Google Chrome dev 13.0.782.10 is Out

Monday, June 6th, 2011

Google Chrome

This morning I saw that Google Chrome dev 13.0.782.10 was out with an updated version of Flash included. Since it's the only Flash player I have on by system, it's fine that it's at least contained there. I just don't like Flash all that much. I've also read that there was a Flash Player update from Adobe recently due to some security problems, and I'm not exactly sure if this guy is that patched version, or if this is one version behind. In any case, it's the update and I've got it now.

[6/8] UPDATE: that didn't last long... 13.0.782.11 is out already with a very minimal set of release notes. From the comments, it's not clear that this was really about UI tweaks, as much as there was a real problem in one of the builds and this was a quick fix for that guy. Who knows.

[6/9] UPDATE: neither did that... 13.0.782.13 is out today and it's got the same release notes about UI tweaks and stability fixes. I guess it's nice that chrome remembers my open tabs so it's painless to restart.

Google Chrome dev 13.0.782.1 is Out

Thursday, June 2nd, 2011

Google Chrome

This morning I noticed that Google Chrome dev 13.0.782.1 was out with some nice incremental features. I'm not a big printer, but I'm sure there are a lot of folks are, and that's important to them. Certainly, the comments are excited about the printing. Also the 2D acceleration looks to be nice - can't hurt, that's sure. It's nice and fast, which is what you'd expect from a peck of engineers, and as long as it keeps moving in that direction, that's great.

[3/3] UPDATE: that didn't take long. Already 13.0.782.4 is out. Must have been a pretty serious problem to issue a new release so soon. Well... glad they responded so quickly.

Finding Allocation Errors with TCMalloc – Ain’t Easy

Wednesday, June 1st, 2011

google-labs-logo.gif

Today I've learned a very valuable lesson today: TCMalloc really doesn't have bugs, but it sure looks like it does and stack traces can be very deceptive at times. I have been getting a series of segmentation faults on some code and the backtrace was always in about the same state, and was saying something like this:

  #0  0x0002aac607b388a in tcmalloc::ThreadCache::ReleaseToCentralCache
        (tcmalloc::ThreadCache::FreeList*, unsigned long, int) ()
        from /usr/lib/libtcmalloc.so
  #1  0x0002aac607b3cf7 in tcmalloc::ThreadCache::Scavenge() ()
        from /usr/lib/libtcmalloc.so
  ...

The lesson learned, after googling this backtrace, is that TCMalloc doesn't have bugs, it's just too stable. However, it's not able to properly trap double-frees, or illegal frees, so when it finds that it's structures are corrupted, it bails out and appears to have a bug, when the problem was really in the 'hosting' code. Meaning: user error.

So I started looking at what was leading up to this in the backtrace. I worked on this for the better part of a day, and reformulated the code several times. In the end, I was totally unable to correct the problem. Very frustrating.

Then it hit me - maybe it wasn't in the calling stack? After all, this same code was working quite well for months in other apps. This was the 'Eureka moment' for this guy... it wasn't the call stack at all - it was somewhere else in the code. So I started grepping for all the 'new' and 'delete' instances in the code. Sure enough... I found a few problems.

It's so easy for junior guys to miss these things, and they did. I only look for them because I've been bitten so badly (like this) so many times - it's the first thing I do when building a class with heap support - make the allocations and deallocations match. No two ways about it.

I'm hoping that this fixes these problems, and it's looking good so far. Just awfully tricky when the bug is nowhere in the stack. Wild.

Upgraded to WordPress 3.1.3 at HostMonster

Thursday, May 26th, 2011

This morning I noticed that WordPress 3.1.3 was out, so I headed over to HostMonster and upgraded my installations with SimpleScripts. It's really an amazingly easy way to keep things up to date. Wonderful choice I made back in the day - HostMonster has been wonderful, and WordPress has been more than I could have imagined. Great.

Google Chrome dev 13.0.772.0 is Out

Tuesday, May 24th, 2011

V8 Javascript Engine

This morning I noticed that Google Chrome dev 13.0.772.0 was out and the release notes show some nice progress. The latest V8 engine (3.3.8.1) as well as print preview are both nice. It's great to see them making progress.

Google Chrome dev 13.0.767.1 is Out

Wednesday, May 18th, 2011

Google Chrome

This morning I saw that Google Chrome dev 13.0.767.1 was out with a few nice updates, and something I hadn't noticed in the past - significantly better restart rendering performance. I mean Wow! When I restarted 13.0.767.1 the first page was there. This is in start contrast to taking a few seconds to get that first visible page up. Now I don't know if it's just cached, and that's OK, but either way, the impression is that it's UP, and fast. Very nice UI choice.

Google Chrome dev 13.0.761.0 is Out

Friday, May 13th, 2011

Since it's post-Google I/O days for Chrome, the boys at Google Chrome have released an update to the dev channel - 13.0.761.0, and this morning I picked it up. It seems to handle remembering page passwords better than the previous cut - maybe that's a fix, or just a different fork of the code. There's no release notes up (yet), but I'm guessing this is just the next in the series. Good enough for me.

Google Chrome dev 12.0.742.30 is Out

Monday, May 9th, 2011

This morning I saw that Google Chrome dev 12.0.742.30 was out and the release notes say the only difference in this release is that they updated to the latest version of Flash. I'd forgotten that Chrome was using an embedded Flash, and dropping the embedded H.264 decoder. Two sad points, but it's their choice to include it or not. I wonder if there's a plugin that does the H.264? Anyway, still polishing up the product.

Google Chrome dev 12.0.742.21 is Out

Friday, May 6th, 2011

Google Chrome

This morning I saw that Google Chrome dev 12.0.742.12 is out and it's still basically a polish release, but there's one rendering bug in the Mac version that's fixed as well. That's nice to see, but I hadn't hit that issue - yet. I'm guessing they are only a week or so away from releasing 13.0, and calling 12.0 the 'beta' release.

Progress.