Dr. Holger Reibold has finished and published a book on Evolution 2 for technical publisher Bomots.de. I can’t read German, but it looks lovely and I encourage everyone in the de_DE locale to check it out.
Category: Words
Slogans that Fail to Impress
From the next article in the NYT series on health care in prisons, the phrase “Prison Health Services, a Nashville-area corporation that bills itself as the gold standard of jail health care”… rings both true and meaningless.
That’s my kind of wording.
Groupware vs. Social Software (updated)
People have been talking about “social software”being good and groupware being bad. Sure, I want to share my address book and calendars. You want a genuinely funny story, unlike JWZ’s unfunny story of Netscape’s death (Ok, ok, I get it, it was a horrible tragedy, and as a result you became very rich and have to run a nightclub, and the world has to use Mozilla Firefox for free instead of paying for Netscape Navigator Gold 12) and why business users shouldn’t be your target customers?
In the original Evolution manual I wrote about how you could share calendars and address books, deciding which ones were shared and which ones weren’t. On an individual item basis, even. It seemed like the sort of thing that would be useful: if I’m JWZ’s 22-year-old college kid, or my target customer of a 35-year-old middle-manager, I need to keep track of some things privately and some things in public.
Of course, Evolution couldn’t do that– it barely ran at that point. But also, it wasn’t in the list of things it was planned to do. I tried to convince the developers that if I got to the manual before they got to the functionality, they had to code it the way I had described it. That didn’t work. Evolution was just a client app and we didn’t have a server to host that data and control access to it. Nowadays there is the opportunity to really do all the things I imagined Evolution would be able to do. What do I want it to do?
For address books: I need to have an address book of everyone in my CS class or marketing team or study group or book club, one that I can share with just the CS class or marketing team or study group. (The CS class one should be run by the prof, obviously, the others should be run collaboratively by anyone who joins). I need to have access to the whole school or company’s directory so I can look up random people I need to talk to, but we already have that.
For calendars: I need to keep track of public events that I may or may not be involved in (Red Sox games), personal events that only I am involved in (my work or study schedule), and — here’s the tricky part — semi-public events like the meetings that only five or ten people are invited to, or the schedule for when I am babysitting or having my baby sat upon.
Basically, I want to share these things with a selective audience. And I want to have different levels of power and privilege assigned to different people. And that at some point requires a server. And it requires people to join. And it requires giving up some of the cool.
JWZ’s argument is that something can be made to work, but people won’t love it unless it’s cool. Mine is that something can be made cool, but people won’t pay for it unless it works — and works in a way that nothing else does. Ideally it’s both, and I think there’s room for both coolness and functionality in Hula. Go Hula.
The Story Behind the Interface
Sometimes, one comes across an application with an interface that is so bizarre, the manual has to admit that it’s aberrant. Such is the case with hdparm, a command with nearly forty single-letter option flags, some of which can be combined, most of which have multiple functions depending on their arguments, and several of which can cause horrible irreversible damage to data.
The flag I found hilarious, though, was not dangerous– it lets you set the amount of time the drive should wait, unaccessed, before it assumes it’s not being used and spins down to save electricity and wear-n-tear. The use is as such:
hdparm -S N
where N is some number. Typically you’d guess that 0 turns the feature off, and any positive integer would be a number of seconds or minutes. Oh no. I quote from the man page:
Values from 1 to 240 specify multiples of 5 seconds, yielding timeouts from 5 seconds to 20 minutes. Values from 241 to 251 specify from 1 to 11 units of 30 minutes, yielding timeouts from 30 minutes to 5.5 hours. A value of 252 signifies a timeout of 21 minutes. A value of 253 sets a vendor-defined timeout period between 8 and 12 hours, and the value 254 is reserved. 255 is interpreted as 21 minutes plus 15 sec�onds.
Then comes the clincher: “Note that some older drives may have very different interpretations of these values.”
My guess is, this is determined by hardware engineers who had only had so many bits for the value, and tried to divide 256 options into some reasonable range of timings. They’d have said, we need an option for no timeout, an option for leaving it at the vendor default, and one set aside for just in case we forget something. After that, how do we divide up the remaining options? Well, what’s the smallest increment you’d reasonably want? Five seconds. So, we’ll do it in five-second increments. But at 20 minutes adding five seconds is just silly, so they go to 30-minute intervals. At that point someone says, hey, but what if I want 21 minutes and 15 seconds? They all laugh, and assign a couple joke values because it’s 3am and they’re still at work and it’s just this one drive, right?
Of course, later, they just go with the one they used last time, and six trillion drives later, everyone has the same insane interface.
Subfusc phthisic peripatetic
Today I got a letter from Mrs. Jesus. She wanted to know if I wanted to have some fun, since her man was away. I also got a message titled “Advanced Degrees.” It was a letter from my college alumni office, asking if I had an advanced degree, and if I had, would I please let them know, so they could put together a list. I wrote back and asked if I should have an advanced degree, and if they had an opinion about which was best, since they seem to be pretty easy to buy online.
My reputation as an editor
Today I am revising a whitepaper and using the OpenOffice.org Track Changes feature. All the text I change is in red; all the unchanged text is in black. I think my reputation as an editor is safe.
Oryx
On vacation I read:
Too Beautiful for You, by Rod Little. Short stories. Wicked, dirty, nasty, hilarious. Read the first, and if you’re laughing at the end, you’ll like the rest of the book. If it makes you sick, stop there.
Dirty Havana Trilogy, by Pedro Juan Gutierrez. Did I say the previous book was dirty? This is, as its title implies, dirty. It’s about this guy who avoids dealing with economic and social and spiritual collapse by having a lot of sex. It’s not porn, I promise.
Best of all, Oryx and Crake, by Margaret Atwood. I particularly liked that the protagonist is “the words guy” overshadowed by his “numbers guy” friend. The numbers guy becomes a great success and hires the words guy and puts him in charge of advertising and marketing an exciting new product that will reshape humanity. Eventually, everyone dies.
There are brilliant, meditative bits about how and why humanity is being reshaped. But more importantly, there are some brilliant, hilarious bits about the absurdity of the humanity being reshaped. Like where the “words guy” goes to the Martha Graham Academy, which is desperately striving for relevance as a fine-arts or even liberal-arts college, and so adds the motto “Our Students Graduate with Employable Skills” to the original Ars Longa, Vita Brevis. So he studies “Problematics” which includes things like “Applied Rhetoric” and “Relativistics” and goes on to a career in marketing: “The prospect of his future life stretched before him like a sentence, not a prison sentence, but a long-winded sentence with a lot of unnecessary subordinate clauses…” Anyway, this is brilliant, brilliant work, and you should read it now.
Gossip
Word Choice
No Name-Calling Week is a … well, it’s a dumb name. But “tolerance” is basically ruined for progressives, just as the word “liberal” is. I mean, better call it “Don’t Be A Jerk” week, or have a “Be Nice For Once Dammit Parade” than to promote something as vague as “tolerance.”
I’m just surprised that people are opposed to an anti-bullying initiative, as counterproductive as it may be (I mean, come on, what most of these kids want is to run and hide, not be mentioned or singled out by authority for any sort of praise or defense. That’s the worst thing that can happen to a kid– being liked or defended in public by the school faculty or staff.) What, you’re in favor of being mean to kids?. Oh, wait, you’re part of the religious right. Of course you’re in favor of being mean to kids– you also want them to be ignorant about science, particularly biology and astronomy, and to live in fear of being struck by lightning for having a crush on a rock star or taking too long in the bathroom.
How not to write instructions
There are two lines of actual description in the esd (Enlightened Sound Daemon) manual page. I know this is not useful or constructive criticism– and I don’t know enough about how they’re supposed to work to begin to help with these documents. I just want to point out a bad example for you to avoid emulating as you go about your own development.
DESCRIPTION
esdcat pipes data from a pipe to the sound device
USAGE
esdcat [“-s” server] [“-n” name] [“-b”] [“-m”] [“-r” freq] < file
Let me count the ways this is bad. I’m not talking about how it should have an “OPTIONS” section where the options are described, although to fit standard manual page layout, it should. I’m talking about basic, basic failure to write anything at all useful to anyone other than the developers.
-s server: So, we’re specifying… the host or destination for our audio data?
-n name The name of the pipe? The name of the server? The audio device? The user?
-b and -m I think that -b and -m mean 8-bit and mono, because they’re used for that in other related applications. But the manual page doesn’t explain them here.
-r frequency Setting frequency with -r is strange– Maybe you meant -f? Or did you mean sample rate? Other esd-related commands use -r to set the sample rate. Maybe in this application it’s set in Hertz rather than bits per second. Or is it samples per millisecond? Or does it set the frequency of the sound you want to hear come out of the speakers, so you could put in audio recordings of a concert and have them come out as a single, even tone. Or you could increase or decrease the pitch by the frequency specified?
< file What kind of file? Is this the file used for output? Input? Probably a named pipe or a device of some sort, since esd doesn’t handle any audio file formats directly.
Esdctl and the rest of the esd docs are almost as vague.