Web Page

August 5th, 2006

Summer is the season for circus camp. Yesterday was the end-of-session show. In preparation for which, Chris mocked up a schedule and roster for the various events. It turned out that as the show took shape, changes needed to be made (as they always do). The biggest change came with some of the aerialist routines; specifically the Spanish Web act. The schedule and roster needed to be updated.

“I need a new Web page”, said Chris.

By which, of course, she meant the piece of paper upon which were written down the details of the Spanish Web act.

Yes, chez nous, the meaning of “Web page” is seasonal.

Stumped

June 23rd, 2006

Cutting the tree down is the easy part.

It feels like you’ve made a lot of progress when you yell “Timber” and hear the big crash.

But getting the stump out is usually the bigger job.

Gina Responds

June 18th, 2006

Since I don’t enable comments (*sigh* spam), those who want to comment have to e-mail me. Here’s Gina’s response to my last post:

Dear R0ml,

I am writing to comment on your recent blog post, “Trophy Day”. In
paraphrasing what I meant, you may have unintentionally skewed my
ideas ever so slightly in order to facilitate the analogy between
Trophy Day and IT. As I have spent decades working with children,
however, I find it necessary to clarify my thoughts on this matter.
Although I was disturbed by what I observed at the event in question, I
considered myself heartbroken, not furious. OK - maybe I was a little
frustrated. And so I fumed. Just a little.

Yes, I believe that trophies should be reserved for the select few that
rise above. That’s how the world works, after all. Think National Merit
Scholarship, MacArthur Fellowship, Nobel, Tony, etc. I also agree that we set
our children up for an inevitable letdown when they reach that point in their
lives when they are no longer rewarded for simply showing up. However,
I am concerned that your readers think I believe such a meritocracy is
appropriate for the 3 to 5 set. I explicitly do not.

What concerned me most about “Trophy Day” was not that everyone received
a trophy as opposed to the few who earned it, but that there were any trophies
at all. I have taught gymnastics to preschoolers (numbering in the thousands)
and I have observed that the joy they experience is in the moment of motion,
and even more so in the acquisition of a much eluded skill, or the triumph over
a previous fear. It is NOT in getting a cold hard trophy to be photographed and
piled onto the heap of medals, certificates, and awards left to gather dust while
the ability to run, jump, swing, think, and take risks should last a lifetime.
Formalizing these achievements makes them an end, not a beginning.

It seems that we are conditioning our children to perform for a
reward, and not for joy. I happily noticed that only a fraction of the kids at
John’s event had learned this lesson, as most were still skipping from event
to event, oblivious of their parents and their requisite cameras, but I was saddened
nonetheless. It is only a matter of time until those eager, inquisitive, joyful children
forget what it feels like to really live as they themselves become the trophies of their
parents and grandparents, stiff, bored, and joyless.

Gina

And that, dear reader, is where (some) open source software comes from: the children who grew up to program for the joy of it.

Gym Trophy

June 12th, 2006

This weekend was the end-of-year “Trophy Day” for John’s pre-school gymnastics class. All the pre-schoolers show up for a gymnastics exhibition, attended by parents, grandparents and other relatives. Following the exhibition, all the students are awarded trophies. ALL the students are awarded trophies. I missed the event. When Gina came home, she was fuming. (As Gina is Sicilian, when she is fuming it is appropriate to conjure up volcanic images.)

“You know how you’re always talking about how advertising is going to destroy our civilization?” she asked. “Well, you’re wrong. Trophies will be our doom.”

Well, all right. She didn’t actually say the words “Trophies will be our doom”, but she was fuming, and, being Sicilian, gesticulating violently. Plus her usually impeccable grammatical constructions suffered from the onslaught of her Mediterranean temperament. I’m taking some editorial license and paraphrasing what she meant. Which was most certainly “Trophies will be our doom”

The reasoning goes something like this. It used to be that we believed in merit; in winners and losers; in the salutary effect of adversity and defeat in building character; in learning from mistakes. But on “Trophy Day”, we do not give a trophy to the best gymnast. And maybe the second best gymnast. No, on “Trophy Day”, we give a trophy to every gymnast. In the name of “self-esteem” and “not hurting anybody’s feelings”, we teach our 3-5 year old children that it doesn’t matter how hard you work, how much you learn, how good you become. Everybody gets the same trophy. And the other lesson we teach them is: it’s not about the excitement of learning or the joy of the sport. Mommy and Daddy and Grandma could take pictures every week at your gym lesson. But they don’t, because they don’t care about your skills or your interests nearly as much as they care about the shiny trophy that everybody gets — regardless of the effort you put in or the the quality of your results.

How much better if Grandma was supportive and excited and snapping pictures even if you didn’t get a trophy? How about if the feedback was “work harder and maybe you’ll do better next year”? Think of the self esteem generated by getting a trophy that only a handful of kids could get! Is it unfair that everybody doesn’t get one? Well, maybe some of those kids will win swimming trophies or dancing awards. Is it right to rob every child of the thrill of victory in order to spare them all the agony of defeat?

Alas, such a quaint Dickensian notion. Today, everybody gets a trophy. We are raising a generation which doesn’t understand the difference between winning and losing, success and failure. The doom of civilization, indeed.

But, what, I hear you ask, does this have to do with IT?

At AT&T Wireless, I had the privilege of working for someone who believed that success was different than (and better than) failure. Everybody shouldn’t get a trophy. One of the first things he did was institute a daily call to review the IT failures of the previous day, and discuss steps for resolution. If a system you worked on failed, you had to explain why it failed and what you were going to do about it. It wasn’t a witch hunt. The objective isn’t to shoot the three-year old who doesn’t do a cartwheel correctly. The objective is to teach the three-year old to admit that they, in fact, are not doing it correctly, so they must change something in order to start doing it correctly. And, of course, you’re unlikely to get a trophy for doing it wrong. The trophy is the recognition that you’ve mastered the skills. The bar is always set high enough so that most people haven’t mastered the skills yet.

Before we could improve our IT infrastructure and applications, we had to admit that they needed improving. This turned out to be a significant cultural change. I remember one particularly lengthy argument in which a team refused to admit that a failure to deliver reports on time was their fault. Eventually, we agreed that the customer had seen a service interruption, and somebody should take responsibility on behalf of IT. We made an elaborate certificate with flowery script that read “Acknowledgment of Defect” — and showed the before and after line of code which needed to be changed. We signed it, had it framed, and sent it to the CEO. He loved it. After that, it was easier to get people to admit that they had made a mistake.

Of course, making mistakes was not a good way to get a “trophy”. If you made a mistake, you got taken to task. The task was to learn how to do it correctly. Often, it wasn’t pleasant.

Over the course of my career, I’ve sometimes worked in places where management prefers the “Trophy Day” style of management. No matter how badly things go, the management memo talks about the “great team effort” and “awesome accomplishments” and the “great success”. You never see the memo that starts out: “Our last upgrade was an embarrassing botched job.”

I know why Gina gets so exercised about “Trophy Day”. I don’t like places like that, either.

Paying if you will

May 14th, 2006

Gina is reading Dickens again. David Copperfield, this time. Dickens is one of her favorite authors. The difficulty that arises when Gina is reading Dickens, is that every 15 minutes or so she bursts out in peals of laughter, or exclaims “Just so!” and says “R0ml, you have to hear this.” Sometimes it’s hard to write code when Dickens is in the house.

Here’s the one that made me pause.

In case your Dickens is as rusty as mine, here’s what’s happening: Miss Trotwood wants to send David to school in Canterbury, but he can’t board at the school, and she doesn’t approve of any of the nearby boarding houses. Her lawyer, Mr. Wickfield, offers to take him in. She demurs. Until:

“Come! I know what you mean,” cried Mr. Wickfield. “You shall not be oppressed by the receipt of favours, Miss Trotwood. You may pay for him, if you like. We won’t be hard about terms, but you shall pay if you will.”

Which, of course, made me think about both the Internet and Open Source.

I guess both the Internet and Open Source software would have fared better if Victorian sensibilities had survived. Imagine Miss Trotwood being offered capable software for free. Imagine Miss Trotwood being offered the use of an online service for free. Obviously she would demur. What kind of person would willingly allow themselves to be oppressed by the receipt of favours? Certainly, no respectable person. No, a respectable person would will to pay. There’s no need for the provider to be hard about terms.

The more I thought about this, the more I realized that, in fact, one of the (very few) things that Gina and I have in common, is our nineteenth century sensibility — mine deriving more from Conan Doyle than Dickens (which makes me a trifle more modern). And the more I thought about it, the more I realized that I was, in fact, feeling oppressed by the receipt of all those favours. Last year, I began to prefer purchased software over gratis software. This year, my project will be to choose paid websites over free ones.

I resolved to cancel existing accounts for free services. As I came across things that were too useful to cancel, I would see if there was a way to pay for them, or to find alternatives where I could “pay if I will”.

The initial attempts have been … interesting. And thereby hangs a tale for another time.

Atualização

May 10th, 2006

I’ve been writing code lately. Makes me feel young, again. Unfortunately, something terrible happened.

For some reason (and thereby hangs a tale), I decided to write the application in Brazillian Portuguese. You know, localized for pt-BR only.

Based on my Smalltalk days, I decided to write the “Check for Updates” code first. (A Smalltalk programmer would write a one line app that did nothing, and then change it until it did what they wanted. If they had to quit and restart just because they had changed something, they lost a point. I guess thereby hangs another tale). I figured the modern equivalent was to release an app that didn’t do anything except automatically check for updates and update itself. Then, one could release, and add functionality as needed — losing a point, of course, every time somebody needed to re-install manually. But, I digress

So, obviously, the first method (I’m using Cocoa on a Mac) I needed to write was buscaAtualização. That’s Portuguese for “fetchUpdate”.

That’s not a valid identifier name in Objective-C. Or more precisely, it might theoretically be a valid name, but gcc doesn’t implement universal character names.

Programming languages, it turns out, aren’t localizable. Or localized. If you want to write something in a computer language, you need to write English. I should have suspected something the minute I launched XCode. The menubar had a File (instead of Arquivo) menu. Development tools don’t seem to be localized either. Not much point, really, since you’d have to write in English anyway.

Even if I could have named my method buscaAtualização, what is the Portuguese localization of [[NSURLConnection alloc] initWithRequest: aRequest delegate: self ]? Well, it turns out that all the library and framework classes, methods, functions, variables, macros, etc. are in English. And none of it is localized.

Even something as ancient as strerror(3) returns the POSIX error messages in English. No localized Portuguese error messages here.

This is terrible. I’ve been such a great fan of Literate Programming for so many years — it never occurred to me that for most of the world, even literate programs must necessarily be written in a foreign language.

Even as modern a language as Haskell wouldn’t accept buscaAtualização as a valid identifier.

This is awful. We’re much farther from using programming languages as a form of communication than I had thought. I’ll need some time to digest the implications.

Does anybody have any suggestions on how to write a program in Portuguese?

Decanting Breakfast Cereal

May 8th, 2006

Yes, we do.

Here’s what it looks like:

Three different kinds of cereals. In their decanters.

Yup, that’s part of putting the groceries away. Milk on the refrigerator shelf. Bread in the bread-box. Bananas on the banana hammock.

And cereals, of course, decanted. And the empty boxes discarded.

It seems that most people don’t decant their cereals, so we sometimes get asked why we do.

The answer is: For the same reason we don’t get broadcast or cable TV; to shield us from advertising. There’s too much advertising on a cereal box.

Some people object to unsolicited messages in their e-mail, and resort to counter-measures to minimize that nuisance. Some object to pop-up ads in their browser, and resort to counter-measures to minimize *that* nuisance. We do those things. But there are also unsolicited commercial messages broadcast on television, and printed on cereal boxes. We take counter-measures against those, too.

Web 2.0

April 29th, 2006

It seems like the entrepreneurs have acted on Gina’s tutorial faster than I expected…

Kim’s teeth

April 28th, 2006

Gina used to have a recurring dream where her teeth would crumble in her mouth and fall out. Apparently, this is a common dream. Her mother used to have the same dream. And, shortly after Kayla went away to college, she called home to say that she had the teeth-falling-out dream, too.

A few weeks after that, Kim called home. She had never had the teeth-falling-out dream. However, she was sitting in class, and her teeth actually crumbled and fell out. Well, not all of them. Just two of them. And they weren’t teeth. They were caps. Nevertheless, if felt like her teeth disintegrated in her mouth, and the pieces came out.

Our dentist is Mark Dunayer He’s awesome. I always use Dr. Dunayer as the quintessential example of excellence in any field. When we run out of medical reasons to go to the dentist, we occasionally opt for some cosmetic dentistry, just because the experience is so satisfying. If you don’t look forward to a dental appointment, you owe it to youself to schedule some elective dentistry the next time you’re in the New York metro area. But I digress.

We were of course, surprised that Kim’s teeth had come undone. “Don’t worry,” we told her. “Dr. D will put things right.” And, of course, he did.

But this post isn’t about dentistry, it’s about Open Source business models. As with software, you could view dentistry as a service business or a product business. You could think of it as buying a filling, which comes with free installation — or getting a free filling, and paying a service charge for the installation. Or some combination of both. In any case, if the filling falls out in a few weeks, it’ll probably be replaced for free. Three years later, if it needs work, it’s more like upgrading to a new version than “supporting” the old.

How would dentistry work if it had to use an Open Source business model? Well, the fillings or crowns would need to be free. We’d have the option of installing them ourselves — although dentists would sell installation support. And they would also sell “support contracts” for preventive dentistry — cleanings and the like, as well as “bug fixes” — crumbling teeth. Perhaps the amount of money involved would be the same in either case.

So I consider the options. On the one hand, the original dental appliances are free, and I’m paying for a “support contract” in case I need help. On the other hand, I’m paying up front for a “license” to the crown and expecting some kind of implied warranty, for fitness or merchandisability, as the EULA would have it. The difficulty with Open Source dentistry is convincing the market that charging for “maintenance” and giving away the dental supplies doesn’t create a perverse incentive to do shoddy work. Things go wrong with dental work — even the best. It would definitely make sense to buy support contracts for free (excellent) dental work.

How different is the software business and dentistry? Would we be as comfortable paying for support for free dentistry as we are for free software? And then there’s the “free-as-in-freedom” issue. Aren’t there laws preventing anybody from practicing dentistry? Wouldn’t “free-as-in-freedom” dentistry need to abolish such restrictive practices? Or do we think software licenses are bad but dentists should be licensed? Perhaps the software and dental equipment shouldn’t have licenses, but the programmers and dentists should be licensed? Why would we license dentists if we don’t license programmers? And there’s still the “free-as-in-beer” aspect. Now that we’ve convinced ourselves that free software isn’t socialism, I guess it implies that free dentistry wouldn’t be socialism either. Or would it?

I’m confused. But I do know this: if your software fails, you can still chew your food.

Farmer, Farmer, Let Me Down

April 26th, 2006

Over the last few months, I’ve been struggling to understand the “Attention Economy”. Gina explained it to me the other day.

There’s a children’s game called “Farmer, Farmer, Let Me Down.” I had never heard of this game. I “googled” for it, and found nothing. Gina, I should note, lives in a world that is often undetectable by electronic means. That’s why the perspectives she offers are so valuable. To borrow terminology from Zelazny’s Amber series, she doesn’t walk in Shadow, where you and I live.

Anyway, back to “Farmer, Farmer, Let Me Down.” It is played on a see-saw. Rather than just oscillate up and down, the game proceeds by turns. One child is raised into the air. They stop. The child in the air then yells out: “Farmer, farmer, let me down”. The child on the ground end of the see-saw yells back: “What will you give me?”. Then the child in the air offers some farm implements or livestock. As an example: “I’ll give you two cows and a chicken.” At this point, the other child can “let him down”, thus rising into the air himself, and the roles are reversed. Or, the child on the ground can say: “Not enough.” In which case the child in the air needs to sweeten or change the offer. “I’ll give you a plow and a sack of corn”. I should point out that the items do not actually have to exist, nor does any actual physical barter occur. All that is happening is that the airborne child is attempting to intrigue (capture the attention of) the earthbound child. Play proceeds until recess is over. Or until boredom or exhaustion set in.

The “Attention Economy” happens when an entrepreneur decides that she can increase sales of farm equipment and supplies by analyzing video tapes of “Farmer, farmer, let me down” and generating targeted marketing at specific individuals based on their FFLMD preferences — i.e. which items are more readily offered, and which items are more likely to result in being accepted for “letting me down”. Armed with this business plan, the entrepreneur raises venture capital and builds free playgrounds equipped with see-saws and video cameras. The marketing literature to drive playground traffic emphasizes the added safety of continuous playground monitoring.

I get it, now.