Observations from a Comcast outage.

I use a Comcast cable modem at home… I’ve been satisfied with the service; it’s fast enough for my needs and is generally dependable (brief glitches happen once in a while, which quickly fix themselves). However, for the past two days my modem wasn’t able to connect at all, so for the first time I actually had to call Comcast. A few observations on the experience…

* The first thing you hear when calling 1-800-COMCAST is “This is Shaquille O’Neal, and this is Ben Stein… Thank you for calling Comcast” (in their voices). This is a fantastic way to confuse callers, since it sounds like you’ve dialed a wrong number. Why have a celebrity voice on their number at all? I don’t get it.

* While their phone system routes your call to the right department, you get treated to a completely irrelevant advertisement for their telephony service. These kinds of forced ads piss me off to no end. [See also: long-winded offers you’re forced to listen to when activating a new credit card.]

* I was amused that their automated phone service suggested that if I was having problems connecting to the internet, I could get help on their website.

* I dread calling “technical support,” because it usually means wasting time as they run though a standard troubleshooting checklist unrelated to what the actual problem is. To Comcast’s credit, I wasn’t subjected to this and it was an efficient process. The techs were nice, but I wish they had better diagnostic tools — the first two calls resulted in “your cable modem is dead, buy a new one”, and then my “dead” modem started to work the next morning!

* The scripted “I’m sorry you’re having a problem, I can assist you with this issue” phrase techs are required to say sounds really corny when you’ve heard the exact same line on each call. Mix it up a little?

* Dear Apple and AT&T — it’s just days until 20-fucking-10, and I still can’t tether my iPhone to my MacBook for internet access in a pinch? Sheesh.

Mega status update

I’m terrible at remembering to send out regular status updates, so here’s a belated list of things I’ve been up to recently in Firefox-land…

* CrashKill. We’ve been making a big push to reduce Firefox crashes. I’ve largely been working with 3rd party crashes (eg bug 519340). Some of these 3rd parties are very responsive and quickly work to resolve the crashes their product is causing, others are… less so. It was surprising to me to find that other software is directly responsible for a huge number of Firefox crashes… Antivirus software, Flash, and malware seem to be the worst.

* Firefox on Tegra. Working on getting Firefox 3.6 running well on Tegra netbooks, and diving into localization issues so we can fully support Windows CE like other platforms.

* Firefox application updater. I mentioned in a previous update that my fix for bug 517102 made the updater 3x faster. I’m working on what should be another big performance and reliability boost in bug 529464.

* Password manager fixes and features. These have been in-flight for a while, but unfortunately didn’t make Firefox 3.6. But I’m pushing to wrap them up in coming weeks and get them into the next release. Notable changes are bug 499417 (refactoring the “master password” code, a first step to bigger changes), bug 499233 (finally killing multiple master password prompts on session restore), bug 465636 (add timestamps to login metadata), and bug 223636 (support automatic login for HTTP Auth).

* Rewriting the Weave’s crypto backend (bug 513798). Last year I rewrote Weave’s crypto code to use NSS (Firefox’s own crypto library) instead of OpenSSL. That’s been working swell, but it’s a binary component, and is a real pain to deal with when making Weave available on other platforms (like all the new mobile devices we’re working with). Dan Witte recently landed JS-Ctypes, which allows JavaScript code to call into native libraries. So now I’m porting the Weave C++ code to JS to take advantage of this.

* Using CSS Transitions in HTML5 video controls (bug 521890). David Baron has added support for the CSS Transitions spec to Firefox trunk, so I took a look at having our HTML5 video controls use this feature. When I implemented the controls for Firefox 3.5, I had to use a pile of JavaScript timers and callbacks to implement the fade and slide effects… CSS Transitions GREATLY simply doing such things. Currently blocked on one issue.

* Performance work. Noticed an issue with Necko not caching protocol handlers well (unknown what the perf impact is yet), looked how often we check perferences at runtime (a LOT, no bug yet), and am starting to look at the impact of all the timers we have firing and how they might be impacting power usage. Also investigating a problem with restoring maximized windows. We inefficiently restore the size, which slows down opening a window on Tegra devices (which generally use maximized windows).

* Got a speedy new Windows 7 desktop, and have been getting it configured and running.

My next big project is finishing up Doorhanger Notifications, which are a critical UI feature for the revamped Firefox 3.7/4.0 themes. Matt Noorenberghe started the implementation this summer as an intern, so I’ll be wrapping that up and making it fit updated designs.