RSS
 

Archive for May, 2010

Weekly Update for 24/05/2010

24 May

Last week was short and hectic, but turned out to be way more productive than expected (at least as a team, if not personally). It started with a long flight and getting Ricky and Josh started, and ended with Pac Man and lots of reviews.

Last week

  • Helped Ricky and Josh get Kitsune and enough of TikiWiki up and running.
  • Worked with Paul to figure out some access control questions.
  • Reviewed a lot of stuff.
  • Helped keep SUMO up during the Pac Man incident.
  • Fixed Hudson builds and staging when new requirements caused problems.
  • Even fixed a bug today! (In Bleach.)

This week (me)

  • Help Josh gather requirements for his summer project.
  • Coordinate string and code freeze for 2.1.
  • Keep review queue empty.
  • Finish the bugs that are assigned to me.

This week (team)

  • Get everything on track to freeze 2.1.
  • Get to zero known 500 errors.
 
Comments Off

Posted in Articles

 

Surviving Pac Man

24 May

On Friday, Google showed off a fun new doodle in honor of the 30th anniversary of Pac Man: a Pac Man clone, complete with sounds.

Unfortunately, in the initial release, those sounds started playing automatically—an oversight or an homage to <bgsound>, I guess. Even if Google was open in a background tab or window, or in a hidden iframe created by an add-on, the Pac Man music and sound effects would start.

And that confused some people.

Many people came to SUMO looking for an explanation, and many of them, not finding anything in the knowledge base, started posting to our forum. So many, in fact, that our database server started running out of connections.

The pounding we took on the forums also caused replication on our slave databases to fall behind by as much as 1.25 hours, so even when we wrote an article about the noises [article has been removed], it didn’t show up for most people.

As Sean put it: “We just got DDOSed by Pac Man.”

To shore up the site and bring it back from the brink of toppling over, we worked with IT (thanks, Dave!) to implement a number of temporary solutions. We…

  • …disabled a particular kind of slow, frequent, and useless query.*
  • …blocked Google’s crawler from indexing the site.
  • …disabled our own sumobot’s forum-crawling features.
  • …rotated DB slaves out of the production pool to allow them to catch up.

Google has already removed the Pac Man doodle from their home page, and we can revert most of the emergency measures here on Monday. But the event does remind us to look at what we’re doing in Kitsune, our rewrite, to weather storms like this in the future.

One idea, suggested by Dave Dash, is a read-only mode where all pages that can trigger database writes are temporarily disabled. We’ll be looking pretty seriously at this over the next couple of days.

Another important take-away is to make damn sure pages only trigger database writes if they really need to. Writes can never bounce off a cache, so they are very expensive.

Finally, we should be more proactive in how we interact with our Zeus cache. We’ll also think about whether it makes sense to start using Wil Clouser’s Zeus interface, Hera, sooner than later.

“Too much traffic” is the best problem a web development team can have. Hopefully, the first time this happens to Kitsune, we’ll be ready.

* The queries that increment the number of views a forum thread has gotten are particularly slow for some reason. They’re also wildly inaccurate, since most people see a cached version of those pages and never trigger the query. The worst part: they occur on every (non-cached) page view, even while just reading.

(This post was translated into Belorussian, isn’t that cool?)

 
3 Comments

Posted in Articles

 

Weekly Update for 17/05/2010

19 May

Enjoyed the long weekend in New York, which was my big goal for this week. I was out Friday and Monday—which also happened to be the first day for Ricky, a new Mozillian, and Josh, an intern.

Being in New York with my family was wonderful, and more than made up for the odious travel. Wandering around Prospect Park on a beautiful Sunday afternoon made me think of Seurat: if only it had been a little more pointillist. The only part of the trip that worked well in both directions, though, was Caltrain. On the way to the airport, I just happened to get on the same car as an old high school friend I hadn’t seen in 4 or 5 years (I went to high school 2200 miles from here). Bizarre.

On to the business part:

Last week

  • Put a lot of time into getting ready for Ricky and Josh.
    • Filing 2.1 and 2.2 bugs.
    • Triaging [good first bug]s.
    • Doing preliminary 2.2 work.
  • Either worked on or reviewed basically all of the non-moderator UI for the discussion forums.
  • Reviewed wiki markup.
  • Started looking at new ways to use the SUMOdev meeting.
    • Need to think more about the meeting, mailing list, and channel.
  • Pushed 2.0/1.5.4 then figured out what went wrong.
    • Reviewed the fix for it.

This week (me)

  • Help Ricky and Josh get unblocked.
    • Get Kitsune and Tikiwiki set up.
    • Work through some code review and then turn them loose.
  • Work with Paul on admin and moderation.
    • Then review it.
  • Find the cause of the colossal memory errors.
  • Start planning a project with Josh.

This week (team)

  • Get everyone unblocked and ready to start contributing.
  • Get everyone to show up on the leaderboard.
 
1 Comment

Posted in Articles

 

Weekly Update for 10/05/2010

11 May

Last week

  • Filed lots of 2.1 bugs.
  • Meet with IT and QA in preparation of 2.0 push. (It didn’t go well, but not for lack of planning.)
  • Engineering plan is roughly complete through the end of the quarter.
  • Came up with a plan for an intern project.
  • Reviews.

This week (me)

  • Get things ready for new people starting Monday.
  • Get Sphinx to index the new discussion forums.
  • Make creating new threads work through the UI.
  • Start filing 2.2 bugs.
  • Update Support/Kitsune.
  • Think about ways to improve communication with the larger, more distributed team.
  • Enjoy my long weekend.

This week (team)

  • Push 1.5.4.
  • Finish 2.1 UI.
  • Start 2.1 admin and access control.
  • Get ready for two new people on Monday.
 
Comments Off

Posted in Articles

 

Playing with the Real-Time Web

08 May

Since I left Facebook, I’ve been working on a little project to take its place as an aggregator, or a central hub of all me-related activity on the internet: Planetoid.

Right now, if you’ve got the patience to get it up and running without documentation, Planetoid is just a run of the mill, particularly ugly feed aggregator. It’s built on Django, and it has a cron job that well pull in updates from all your feeds. (You edit the list of feeds in the Django admin.)

But that’s boring.

This is just the platform I needed. Now, I want to make it real-time.

The first step is implementing Pubsubhubbub subscriber support. Then the cron will only be necessary for feeds that don’t push update notifications.

The next step is where things get interesting: both the cron and pubsubhubbub subscriber will push notifications using Redispubsub feature. Node.js, running in parallel, will subscribe to the channel in Redis and will provide the server half of a Comet/long-polling setup, the rest of which will be implemented on the client side.

Then I just need to enable pubsubhubbub in a few places, and anyone sitting on jamessocol.com should see things like blog posts in real-time, and everything else automatically with a small lag.

Real-time and the tools to do it are very, very fun.

 
Comments Off

Posted in Articles