NPAPI Plugin SDK and Documentation

I have to implement NPAPI drawing models soon, so in preparation I have been updating our MDC Plugin documentation and sorting out our plugin SDK situation.

Our plugin SDK situation isn’t good right now. We have Windows and Linux SDKs from mid-2005 and that is all. The new plugin SDK page at MDC should keep people informed about the situation. I hope to have new SDKs up for all three platforms sometime soon.

My short-term plan is to finish migrating project page information from to MDC, kill off the project page so we stop confusing people, and get new SDKs posted for all platforms. After that, I hope to clean up our sample plugin situation (organize the sample plugins, get them all building on the appropriate platforms), but that might take a little longer. I also want to get a system in place for periodically updating SDKs, perhaps only for major releases at first (which would still be a huge step forward).

A huge thank-you goes out to Eric Shepherd, who I’m pretty sure is responsible for most of the awesome NPAPI plugin docs section on MDC. You can’t imagine how surprised and happy I was today when I saw all of that great information organized nicely in one place!

Don’t be afraid to say you don’t have the data

I recently started using Apple’s Dashboard widget for tracking stock prices. I don’t day trade or anything like that, but every now and then I like to glance at the prices of the stocks I own and see how things are going. Actually, I’m mostly curious about how certain news stories and events affect stock prices.

Events that affect stock prices are happening all the time, and they can cause a stock to go up and down quite a bit during the day. Maybe at 10 AM some broker publishes an upgraded opinion of company XYZ and at 11:30 AM company XYZ drops an unfortunate press release. That could easily cause a big drop in the price between 10 AM and noon. Because of this, it is important to have the price of a stock that reflects its value from some time in the past minute or two if you want to either day trade (not me) or watch for significant events during the day.

Apple’s stock tracking Dashboard widget has a problem with displaying up-to-the-minute information. The problem is that when you bring up Dashboard, the widget displays the last information it downloaded even if that information is very old – and it doesn’t indicate that the information is old. Say I open Dashboard at 10 AM and company XYZ’s stock is at +1.25. If I open Dashboard again at 2 PM, it’ll say the price from 10 AM until it is able to get the new price from Since I’m just glancing at the prices, it has about 3 seconds to make that network connection and pull the data successfully, which it usually can’t pull off in that amount of time (lame in its own right). Occassionally I have to wait 10 seconds to 10 minutes to get an updated price! Now I don’t care that much if it takes some time to get the right price, but I can’t use the widget any more because I never know when I’m supposed to wait for the updated price and when it is right. Half the time I end up going to Yahoo finance to verify the price on the widget anyway, so now I just skip the widget and go straight to Yahoo.

What needs to happen is when Dashboard gets pulled up, the widget should check the last time it pulled data. If it was more than a minute ago, it should display N/A for the prices until it gets new data. Until this happens it is pretty much useless. It might as well only show closing prices from the previous day.

Break it up, bucko

I started landing pieces of my Mac OS X native theme rewrite. Native theming is not turned on for content in Firefox yet, I’ll flip the switch when the majority of it has landed and things are working well.

Originally I had it in my head that I was going to post a monster patch that just *poof* fixed native theming on Mac OS X and turned it all on. Turns out that this is more complicated than I thought it would be and I was ignoring some lessons I’ve learned in the past about monster patches. Now I’m breaking up my big patch into digestable chunks and it is making things much easier.