One of my fascinations is the chinese game of Go. The article is a good introduction so I'll assume you at least know what I'm talking about :). One day I was looking up some past reviewed games on the go teaching ladder. All the games are available in a standardised "sgf" format, which you download and load up in a viewer.
I thought about how nice it would be to have that all embedded in firefox for me. A quick google around showed that there was no such thing. So what did I do? Well the logical thing would be to associate my viewer with the MIME type so that it would load up automatically when I clicked a file.
Instead I decided to write myself a plugin to view the files. Because I'm just that crazy.
I've been working on it for about 10 days now and I've about got everything I want in it, at least for the initial revision. Now I need to work on optimising it because at the moment it's extremely heavy and clunky.
The first version I did I wrote using xlib, because that's the format all the examples are in (plugin development isn't that amazingly documented. I'm considering writing a guide and quick introduction). Then I found that xlib was far too basic to realistically do it in, so I looked up how to use gtk in the plugin. The solution is what's known as the XEMBED protocol, which allows one application to be embedded in another. That, and a couple of requests for a gtk context was all I needed to do to get my plugin set up. Currently the plugin executes a program to do all the rendering, because I couldn't manage to get it working in the plugin itself.
So now I finally have it all set up and working, I need to go through and remove all those ugly loops through several thousand objects, and set it up right. First get it working, then get it working well.
In other news my retailer finally got back to me after a month and said they're received a replacement 6800 Ultra from the manufacturer. The snag was that the manufacturer had sent the OEM card back, but I had returned the whole retail box. This ended up working out well for me. It meant I paid a small extra fee and there is now a nice PCI-E 7800GT winging its way to me.
I also ordered myself a new silver case, nforce4 motherboard and AMD64 3500+. Pictures will probably go up early next week, but needless to say although my wallet is weeping I am happy with this :).
EDIT: oh, I just saw my previous journal entry and thought I should tell you guys I won first prize in the competition for that picture in LOGO.
EDIT 2: I'm up waaay too late, but alpha 1 is about done. It's optimised to scroll smoothly, loads within a second or two for large SGFs and it has all the features I want for an intial release. Tomorrow I'll make sure it compile on a clean copy of mozilla (that'll take a while), then try and port it to windows, as well as older versions of firefox. Then I'll get some friends to help me test it on as many sgfs as possible. If you'd like to test it send me a PM or something, extra help would be appreciated. I can't guarantee I'll get it to work on windows though.