A Good Product

A few days ago I decided that my eyes deserved a break and I deserved a treat. I ordered an Acer 24″ AL2423W LCD monitor from NewEgg.

Let’s get to the bottom line:

This monitor is one of the few things I have bought in many years that I really liked right out of the box and beyond.

Nowadays, I live in a world that habit and a slippery slope has filled, to my constant irritation and chagrin, with “stuff”. Lots of stuff. A houseful of stuff. Useless stuff. Wasteful stuff. Stuff that should never have been aquired, bought, stolen, accepted or allowed in to this house. Stuff. Stuff. … … … … Stuff.

I don’t easily buy more stuff. Buying stuff hurts. Bad.

But this monitor I like.

Online reviews say it’s too bright. It is bright. I like it bright. It made my 21″ CRT look dim by comparison. Yes!

It runs 1920 pixels by 1200 pixels. That’s nice. And it’s big enough that you don’t need to squint to see those pixels.

The out-of-box is great. Both DVI and VGA cords are included. A class outfit, Acer. Make the customer smile. Make it easy for the customer to like the product.

Again, I do.

Well.

Except for one tiny thing:

Turns out, a cap on the top of the stand comes off.

And, if you’re inadvertantly holding the monitor by that cap while you attach the VGA cable to a rather hard to reach plug, and the cap does come off, then the monitor falls on the corner of the keyboard and …

Broken Acer LCD Monitor

I screamed. I swore. I hated the thought of even using the computer without this monitor. This monitor is the kind of thing you start using and in 30 seconds you never look back. I screamed some more. I swore some more. … What are the stages of grief? Who cares? I screamed some more.

It’s not the cap’s fault, really. I just blew it. It really hurts. I liked that monitor. It simply made me smile to look at it and use it. It brought moments of happiness to me. I’m not 12. Stuff doesn’t do that any more. This monitor did.

But, now it’ll be hard to justify a third one to twin the replacement up. 6 bills is 6 bills, after all. And, the kids aren’t completely de-nested.

Changing a program you don’t know

How might a language help solve the problems of those who wish to safely add code to a big project that they don’t understand very well.

Well, such a language might make it hard to build a program with the “pragma assert”s stripped out. (Stripping asserts is a powerful tool for those who spend time “proving the correctness of programs” or who, in the dark recesses of their minds, agree with the thinking of the early days of computers: “A bug?!? Why, that’s so totally unexpected!”)

And, could you be encouraged to write self-test code that does not execute in-line, but rather works kind of like a conditional hardware breakpoint at a higher, more complex level?

Heck, there’s gotta be some way to keep all these multi-core CPUs busy.

Now, if you could build a system that wrote such high-level, self-test code – that would be kinda interesting.

The promise of open source

It’s funny how the promise of open source is an unreachable ideal.

Let’s take a popular open source project: Thunderbird.

Gosh, it would be nice to make a few changes to it.

But it’s too big. And, as a guess, you’d need to spend a lot of time (and perhaps money) setting up a development environment to actually work on it.

In an imaginary, ideal world, such a program would be made up of many clearly labeled, independent, smaller parts with clear, decoupling APIs between them.

Yes, there would always be a bucket of shared library, “memcpy” kinds of things. But those things should just be there in an opaque monolith, always available, never obtrusive.

And, in that ideal world, the pieces of the program would be written in a modern language (i.e. not C/C++).

Telling experience: A few years ago, I needed the Perl POP3 module to do something. Since the source was part of Perl, I simply modified it, sent the author/owner (whose contact information was at the top of the source file) the change and moved on. Soon thereafter, I noticed he had imported the change in a better, more general way. That was all good and pleasant. That the program ran directly from the source was the enabling factor there.

I wonder how much FireFox and Thunderbird would be improved if there were a Tools|Advanced button to toggle the UI/Javascript source between the .jar file format it’s in and a fully expanded form. … And much more of the program were moved up to Javascript from C++. … Or if writing extensions weren’t so chaotic a process.