This week's code refresh has added a number of really irritating story display bugs that we're working on. But, it also added a number of cool optimizations that should improve performance for a lot of readers. Tap that link below to read a brief description of them, and also a few serious notes about the achievement system we launched last Wednesday.
Ok, Optimizations. These really only affect the Index2 beta users and Firefox users. You should really be in one of these 2 groups.
- CSS Sprites: Vlad combined a number of our chrome images. Vroom used the same technique to combine our top 25 topic icons into a single image. The top 25 icons appear on 60% of our stories, and the chrome images appear on every page load. These 2 changes dropped perhaps 20 requests from a typical fresh page load. That should be a measurable performance increase for a lot of people.
- Library Purge: Scott removed the last remnants of the YUI library. This was THE library to use for AJAX a few years ago, but as of now, we have totally ported to jQuery. The last 2 bits that used YUI were some animation bits, and the discussion2 threshold changing floating widget thing. Porting those 2 things to jQuery let us pull several hundred k of JS from our includes. This let us trim another 85k from our compressed JS transfers. We've cut the JS included on Slashdot in half in the last month.
- Varnish: Jamie installed varnish as a reverse proxy behind the F5 but before our apache. Really this won't be a significant performance improvement for now. We use a complex system of static pages to cache the most read content on the site, but varnish will at last let us deprecate that ancient system for something much simpler. We'll be experimenting with this more over the week, but the only real change for most cases is that most of our static content can be served w/o the latency of NFS. Not a big deal really, but it's something. But when we purge out the old caching system, a lot of things will be a lot easier to maintain and debug.
- CDN: We're probably going to test a CDN this week. The performance gains will be minor, but it will let us move 50 megabits of traffic off our main router and distribute that globally. It sure won't hurt.
A note on Achievements. We launched this as an april fools day joke. We're glad many of you got it. We had great fun with it. But achievements are actually a real, working system. And they serve a purpose. Most of the major bits of functionality on Slashdot have a corresponding achievement. Posting a Journal? Getting a Story Accepted? Being Moderated Up? Using all of your Mod Points up? While many achievements are silly jokes: getting the first block of achievements is essentially a tutorial. And getting some of the more complicated achievements would be a useful indicator for a quality contributor to the site. The heavy lifting on this was done by Chris Brown.
We're also experimenting with a thing we call 'Auto-More'. When you get to the end of the page, a second block of articles will be added to your index. The cool thing is that this means we can serve a smaller selection of stories on the main page request. Since 2/3rds of you never read past story #6, that means that you will get your page a little faster. But 10% or so of you get to the bottom of the page. And you will transparently be given more content. We're doing a bunch of logs to see if this works out. It's just an experiment tho, we may kill it if there is a problem. I think it will eventually be connected to the pause/play function available to logged in Index2 users.
This week we intend to start rolling out the Index2 beta to a very small number of firefox users. A good number of you won't notice. Some of you will tho. You won't hurt our feelings by disabling the thing immediately but I hope you give it a shot. It's great on Firefox. It has a few bugs on Safari. It will work on Chrome as soon as Google gets a Mac port out (Hint hint!). As for IE... well, you'll keep the old system for a few more weeks, but you're only like 14% of our users, and you keep shrinking.
Ok, back to work. You too.