Birch Street Computing -

about me

John M is a Linux fan in Lowell, MA.

I work at at a local company writing software. I fool around with Free and Open Source software for fun.

I am an avid user.

Power, Usability and Freedom


I've been wanting to write about usability for a couple of weeks now. But, not the typical topic of usability in GUIs for average users. I've been thinking about usability of CLI tools and APIs for power users, administrators and developers. I don't have all my ideas prepped for this, so it's not happening today.

However, this article on the (so called) "Properties Pattern" popped up on my radar and really resonated with me. Since I do a lot of work related to configuration, to me, it just makes sense to build software that does not punish me when I want to add or modify values. In addition the pattern adds ways to talk about inheriting values and such. One thing that I really liked was how Yegge mentioned that it's very common but not very formal. I can thing of a number of times at work, and for fun I've done an ad-hoc sort of subset of this.

This brings me to the next thing I was thinking about, the traditional engineering trade-off. I think everyone has a bias, whether it is to work toward performance, or user-facing usability, or flexibility to change the system. In my case, I think I tend toward the latter cases. I prefer dynamic languages and having a way to store/fetch configuration without having to change a lot of code. It might bug other people that it you can't say for certain that 'foo' will appear somewhere or not, but that is part of the trade off. I'm not dead set on anything, though, but I like mulling over this kind of food-for-thought.

On an unrelated note, I don't think I'm going to try to do entries on Sunday. I think I should just start writing when I have an idea. By the time I decide it's time to sit down and write an entry, I've already forgotten some of the things I wanted to write. :-P

Every blog page or article on this site is available under the CC-BY-SA license unless otherwise noted.