January 31, 2003
themes (interlude): Before I talk about how the theme capplet went wrong, let me mention that I’d been wanting someone to make a themes:/// vfs layer. I’d done a lot of the work needed. Someone needed to just take the work done by James and that in capplets/common/gnome-theme-info.[ch]. I tried to recruit some people to do it, with limited success. I had a few nibbles, but no bites. Then, some guy writes ‘themus’, checks it in to GNOME CVS. It has a lot of work to go, but is a good start. More importantly, the guy who did the work is energetic and enthusiastic.
And, most importantly, we now have modules named ‘fontilus’ and ‘themus’ — the two founders of GROME.
January 23, 2003
Christmas: It’s been way too long since I’ve updated this. Christmas is done with. It was fun, but short. I am not sure I know how to vacation anymore as I spent much of it worrying about various GNOME and Red Hat responsibilities. I knew I should relax, but wasn’t really sure how to. To make matters worse, a close family friend was struck by a car on Christmas day. We spent much of it in the hospital waiting room.
Christmas was also tempered by the fact it is likely to be my last one in Los Angeles. My dad recently got a job heading a new astrophysics facility at Stanford University. He’ll likely be moving to Northern California in the Fall. More info at:
This is great news for him, and I hope he is able to make the most of it.
toy: I got a danger phone for Christmas. This is a great, great toy! I love it!!! It is also obviously much closer to what the future of cell phones will be like then my Nokia. Good job guys.
themes: So, my theme capplet was basically a bust. I have gotten a lot of complaints about it — mostly private. People don’t like the way it acts, and quite frankly, I don’t blame them. The current UI is definitely a big compromise and it shows. I was very aggressive in trying to get it into GNOME and I probably should have backed off. Unfortunately, the old stuff wasn’t much better and wasn’t really worth reverting to. So what went wrong?
The big problem was trying to fit the theme capplet into ‘The Capplet Way’. Before I go on a little more, I should probably explain this as it has never been explicitly written down. When Bradford and I first started on the control-center for GNOME 2.0, we decided to make the capplets instant apply at the urging of Seth. Despite being a little dubious we gave it a shot. The results were surprisingly pleasant — especially for things like the mouse capplet. After playing for a while, we came up with the following rules:
1) Every update of the capplet must be triggerable externally. This means that the capplet can’t necesserily validate the data that gets set.
2) No change by the capplet can be limited to a local scope. This means that, if the user modifies the capplet, it must immediately propagate. Along those lines, capplets must be as stateless as we can make them. It must always be possible to close a capplet and restart it without it affecting the user.
3) Every change must be easily ‘revertable’ by the user. That is, if the user selects ‘left handed mouse’, they must be able to switch back to ‘right handed mouse’ just as easily. There is no need for a ‘revert’ button as they can just put the state back themselves.
Every capplet I’ve written thus far has followed these rules, and I have been extremely happy with the results. We have nice, maintainable code, some beautiful dialogs, and an understandable system.
Lets look at each of these in the context of the mouse capplet. This dialog itself doesn’t actually control the mouse — that’s done by gnome-settings-daemon. It doesn’t have any exclusive control over the settings either. I can have any number of mouse capplets running at any one time. It’s function can always be replicated by gconf-editor (or xset, in some cases). For simple boolean values (such as the handedness of the mouse) this is very straightforward. When the value changes, you update the UI. When the UI changes, you update the value globally.
(As an aside, one of the problems with this example is that people had trouble figuring out that they had to right click on the toggle button to switch back from left handedness. We solved this by making the button respond to both clicks. Even simple examples sometimes aren’t.)
Getting the theme capplet to fit into this mold was hard. It was also much more complex than any other capplet written thus far, with the possible exception of the mime capplet. I had all sorts of problems with it, most of which I’ll document later when I’m more awake and able to do it justice. Stay Tuned!!!
November 23, 2002
knitting: Apparently knitters have copyright problems too. A knitter/designer named Alice Starmore has been sending cease and desist letters to anyone using her name in any fashion. She has apparently even threatened people posting images of sweaters she designed that they’ve knit. Amazing. More links below.
I need to renew my EFF membership sometime…
themes: I have a plan. It’s going to be rough to implement. Fortunately, I have 20 hours in a train to figure it out.
sky events: I watched the Leonids with Zana, Garrett, and three of Garrett’s friends. It was a little dissapointing; there was a thin fog layer that meant that we missed all but the largest meteor strikes. Still, it wasn’t a bad show. Zana made muffins which were certainly appreciated.
To top off the meteor shower, Zana and I saw an absolutely stunning lunar halo last night. It was much more impressive than the Leonids, and has made my month. I really wish I could have photographed it.
Food: Zana made a really interesting meal tonight. It had mashed sweet potatos and curried beef with currants. There was also grape tomatos, pine nuts, and broccoli lightly sauteed in apple cider vinegar and a touch of olive oil. It was extremely tasty, and not like most of the food I eat. Yum.
November 1, 2002
health: Still not doing great. I’m able to get in to work when I try, but it’s still much more comfortable at home. I’m able to get a lot more work done here, anyway. I still wish I could get a good nights sleep.
themes: Wrote a metatheme capplet. Lets see what happens.
October 29, 2002
health: A month ago, I was hiking around in the rockies. Three weeks ago, I had trouble walking up Couch Mountain with Owen (about 350 feet). Two weeks ago I couldn’t walk around the block. One week ago I was jogging the dog at 3:00 in the morning. I don’t know how I’m doing today. Most of me still works normally. Parts of me still don’t.
It’s very unsettling to lose partial control of one’s body. I feel a lot of the little fictions I have over my life slipping away. The things that I thought ‘I’ controlled turned out to be such fickle things – heavily modified by the drugs and the disease. Many people deal with a much worse deal every day, so I can’t complain too much. And we all grow old in the end.
Still, I wouldn’t mind my old body back.
bloat: In a fit of annoyance, I added dingus support to gnome-terminal for s/key challenge/response queries. I doubt many people will notice. I will, though, which is the most important thing.
themes: Thinking about metathemes. Have a plan. Need to write lots of code, now.