Categories
Mozilla

Thunderbird User Study

An interesting usability study being done at CMU was brought to my attention recently, so I thought I’d give it a bit of free PR since the Mozilla world will probably be interested at least a little in it.

It looks neat, so if you use Thunderbird, you should check it out.

Categories
Mozilla

Places Threading

For one of my classes, we got to pick a project of our own choosing that uses multithreading in some way. My initial project wasn’t working out well, so I recently decided to try my luck with a Mozilla idea – making places use a background thread whenever possible. I do believe I’ve just scratched the surface, but I figured I’d share what I’ve gotten so far.

It turns out that the nsIThreadManager is pretty easy to use. Basically, I create a background thread when the nsNavHistory object is created, and shut the thread down when it is destroyed. So far I’m just failing one unit test, and that’s because it’s expecting the api calls to be serial so that the database is updated immediately. This code is neat because I’m doing at least one thing in a more modern manner than what most of our codebase is. I’m using namespacing quite extensively, which is pretty much a foreign concept as far as I can tell. I like it a lot though, and it’s making my code easier to follow.

I did learn some important things while doing what I’ve done so far though:

  1. Our storage API pretty much sucks when you start to throw threading at it. I fixed the biggest issue in the first patch on my queue, but my fix is hacky at best. Suggestions welcome.
  2. hg with mq is really awesome when you want to make lots of smaller easier to review patches
  3. Unit tests are awesome when you are refactoring code.
  4. Our perf results are completely unapproachable if you don’t already know what you are doing. If someone could tell me what if I helped or hurt things (or even how the hell to read the numbers in a useful way), I’d greatly appreciate it. Stats are on this tinderbox for the next 24 hours, and then I don’t know where they go.

I have to do a report for this project, so I’ll be posting that as well when I get closer to being done.

Categories
Mozilla

Me Four?

Apparently we can learn a lot about each other by doing this, so I figure why not…

1 sdwilsh $ uname -a
Darwin udhcp-macvpn-490.public.engin.umich.edu 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386 i386 i386
2 sdwilsh $ history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
127 vim
122 make
44 cd
38 ls
36 hg
15 open
15 ./proj5
14 ssh
14 /Applications/Minefield.app/Contents/MacOS/firefox-bin
9 echo