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.
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:
- 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.
hgwithmqis really awesome when you want to make lots of smaller easier to review patches- Unit tests are awesome when you are refactoring code.
- 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.
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
Rudeness
Ugh. Today was a bad day for me in the polite department. Little things that I’m generally quite good about (like listening when someone is talking to me, actually explaining things that are asked of me, etc) just got missed today. It’s very much unlike me to miss that stuff, and I feel really bad about it. I’ve reached out and apologized to the most grievous instances of my rudeness today, but I know I didn’t cover everyone. So for the rest of you, I’m sorry. I’ll do my best to not let it happen again.
(Some might argue that this blog post is even a bit rude. However, I’ve always believed that a bit of public humiliation goes a long way to correct bad behavior in normally good people, so I’m publicly shaming myself)
