inessential by Brent Simmons

September 2000

09/26/2000

Reminder: the Seattle Frontier User's Group meets tonight. I'll be there! Eric writes: "Discussions topics are up in the air, but I'd bet that Radio Userland and connecting to interesting backend services is going to be a large part of it."

There are people who support a political party, Democrats or Republicans, almost as if it's a religion. I'm not sure if these people can't or won't think for themselves.

I'm one of those people.

Why?

There is a small handful of hugely important issues that my party stands for. The other party vehemently disagrees.

It's not really religion on my part -- it's total pragmatism. My party could nominate a rock or a racoon or an oak tree -- and I'd vote for it. Because that rock is going to be on my side of those issues.

I have never been disillusioned about politics, because I have never had any illusions. My earliest memories are of sitting at the dinner table and watching the Watergate hearings. I remember watching Nixon resign. This was my first exposure to politics. First impressions last.

I call it the Presumption of Nixon. I assume that every candidate for every office is no morally better than Nixon, I assume they have done or would do what Nixon did, or worse. I'm continually surprised that people expect politicians to be better than that.

Given a choice between two evil jerk-off artists -- and given that that's the only choice you will ever have in a million years -- you vote for the one who agrees with you on the issues you most care about. It's the issues that matter.

09/23/2000

Question for Windows developers:

Radio UserLand has embedded the browser control. If we want the same Work Offline command that IE and Outlook Express have, how do we do it?

What I can't figure out is how to get and set the global offline status. If someone has chosen Work Offline in IE, Radio UserLand should respect that flag. And vice versa -- you should be able to choose the Work Offline menu item in RU and have it respected in other apps.

Things I've tried: IWebBrowser2 methods for getting and setting offline status, InetIsOffline, InternetQueryOption, and InternetGetConnectedState. I get different behavior from each -- some return inconsistent results, others are consistent but have no basis in reality.

I've been RTFMing like mad.

What would be extremely helpful is some sample code that showed how to get and set this flag. Or a simple explanation -- like "set the ___ key in the registry," for example.

Can you help? If so -- thanks!

Update: Matthew Barger sent me email -- there's a GlobalUserOffline registry key at HKey_Current_User/Software/Microsoft/Windows/CurrentVersion/Internet Settings/. So: I'll see if that works as expected.

This moody bastard installed Mac OS X last night. Here's my report.

Boring part

The first step in installing a new OS is the boring part -- backing up the hard drive. Bleh. It serves a purpose, though -- not just in protecting your data but in instilling a sense of scientific detachment.

I'm going to start with the bad news then move on to the good news.

Aqua

Before installing OS X, I thought that the people complaining about Aqua were just whining.

I was wrong. There's a lot to complain about.

My hope is that these and other issues are fixed before it ships. Most things I don't like could be fixed by giving me ways to turn them off or configure them.

Problems:

1. Window dragging and resizing is slow and jerky on my G4. Being able to turn off display of window contents while dragging would help tremendously. I've got that feature turned off on my 500 Mhz Pentium III because this feature is too slow there too.

2. Anti-aliasing is not appropriate at the size of most text that's displayed. It makes text seem blurry; it hurts my eyes. OS 9 allows you specify a minimum font size for anti-aliasing -- I want the same thing here. This is serious -- I can't even browse the web for more than a couple minutes because of this.

3. Drop shadows -- the whole 3D effect is cluttery. It's like a bad website from 1997. Let me turn 'em off.

4. Translucent menus -- let me make them opaque. It's a readability issue.

5. The blue Mac at the top of the screen -- I've said it before: it's the cyber equivalent of having a pimple on your nose, right between your eyes. It's the placement that stings -- please move it.

6. The dock -- where do I start? I want to move it. I want to make it vertical on the right side of the screen. I want to know why some apps that aren't currently running are in the doc. I want labels -- not on mouseover, but persistent labels. I need text. I want to turn off animations. (On Windows I get the choice -- and I use it.) I want to know why sometimes windows appear in the dock and sometimes don't. It's confusing. Major feature request: I want to click on an item in the dock and get a popup menu.

7. Resizing columns when in list view in the Finder is sloooow.

8. I couldn't figure out how to set the color of my desktop. I don't like the default picture that's there. I want a solid color.

9. Throbbing is another type of animation I want to turn off. Anything that catches my eye distracts me. It's like animated GIFs.

10. What happened to drag-and-drop text?

On the whole, it's better than Windows, but that's low praise coming from me. It's a long way from being as easy to use as Mac OS 9.

Good things

Apps crash but don't take down the system. At long last. This alone is worth the price of admission.

It really is UNIX(ish). I had to see this for myself. Here's what I found:

1. Terminal.app! My favorite app so far. It's the command line.

2. emacs, my preferred text editor, is here. The basics -- less, ping, df, telnet, etc. etc. -- seem to be here. (Python is missing, however. Sadly.)

3. Apache is installed. It's off by default.

In short, it has most of what I like about Linux. What it doesn't have -- Python, Samba, BIND, etc. -- I wouldn't be surprised if I could install before long.

More good things -- developer tools

I installed the Developer Tools CD, which I gather isn't included with every public beta, just with the Developer shipments.

Anyway, I did a quick run-through to see what's there, and missed most of it, I'm sure.

The first thing I tried -- could I create a simple command-line Hello World app? You know, the classic printf ("Hello, World! ");?

Yes, indeed, it worked.

Call me a geek, but at this point I'm pinching myself -- I'm doing this on a Macintosh OS. Not Linux.

Then I launched Project Builder and created a new project using their stationery. A Java app. (I don't ever want to learn Objective-C.)

Naturally, since I made no changes to the project, it built and ran the first time.

I launched Interface Builder and edited the menu for the project, then re-built it. It worked. Mind you, I've looked at no documentation; I just remembered from other reports that Project Builder and Interface Builder are the NeXT-derived tools for building apps.

At first glance they seem easy to use. How much power and flexibility there is I don't know. If you're the kind of person who likes using object-oriented frameworks and visual editors and inspectors and all that -- go to town. It may be that this shit is the bomb. (Me, I prefer C and text files to all that, but that's just me. I could probably learn to like Project Builder and Interface Builder.)

What I'm thinking is that Mac OS X is, if not a developer's dream, at least a hobbyist's dream. You've got all that UNIX stuff -- gcc, Perl, etc. -- and whatever you don't have yet I bet you will have soon. Then you've got the tools for building Cocoa apps, which seem like they give you lots of features for free, so you can get started pretty quickly.

And you've got a platform that needs more software. There are tons of holes -- small, medium, and huge -- to fill.

I can't wait to get Radio UserLand and Frontier running here.

09/22/2000

I just got my Mac OS X Beta CDs in the mail today. (Two CDs, the OS itself and developer tools.) I'll do the install sometime tonight. I might write about it. Or maybe not. Call me a moody bastard. Actually, I've been looking forward to this for quite a while. Not so much for Aqua, which sounds like it needs work, but for the UNIX-ish foundation. To paraphrase Mike Myers: "If it's na' UNIX it's crap."

09/20/2000

There will be a Seattle Frontier Users Group Meeting next Tuesday. I'll be there! Eric Soroos writes: "Discussions topics are up in the air, but I'd bet that Radio Userland and connecting to interesting backend services is going to be a large part of it."

Sheila: "I felt like I was in the future, but I also felt like the future was pretty darn cheesy. "

I live in Ballard, Seattle's Norwegian neighborhood. (Sheila's maiden name is Erickson, and there's a statue of her ancestor Leif here.) But last night, at the local Walgreen's, we had a decidedly non-Norwegian experience. As I was fumbling with the debit machine, the clerk tells me -- "the machine is meshuggeh." Though not Jewish myself, I grew up on the east coast; New Jersey is my ancestral home. That is to say that Yiddish isn't a completely foreign language to me, and it's heart-warming to hear it spoken in this Scandinavian enclave.

09/19/2000

I've been fixing bugs like mad today. I'm one of those types who loves fixing bugs. Bringing new features to the people is cool -- but sometimes fixing bugs is more thrilling.

Some of these bugs are Radio UserLand specific, others are in the kernel shared by Frontier and Radio UserLand.

09/14/2000

Phil Suh points out two books that he finds inspiring and helpful.

We've been fixing lots of display glitches in the kernel -- here's one that I just ran across that remains to be fixed. If you have a headline that fits on one line, and select some text, then choose Add Link... from the HTML menu, you'll get text drawn over other text. Boy is this annoying.

As they say...

09/11/2000

I've been re-reading Writing Solid Code, an excellent book about development practices. Highly recommended. Last night the book was reminding me to write very boring code. Don't rely on side effects. Functions should have clearly defined behavior.

In tone and in usefulness, this book reminds me of Strunk and White's The Elements of Style, another book I like to re-read.

It may seem counter-intuitive, but both books are inspirational -- even though they're rule books, or books of guidelines. They get my juices flowing. Maybe because they take seriously the work I do all day without making the work seem heavy. They're fun.

Another thought -- I've always been obsessed with aesthetics. I even have college credits in aesthetics. (I also have credits in interpretive dance, so take that with a grain of salt.) The books could be re-titled as The Aesthetics of Code and The Aesthetics of Prose. Without coming out and saying so, they teach you what beauty is in their respective art forms.

What's interesting are the common elements -- readability, clarity, precision.

Garret asked if Writing Solid Code is useful to a moderate programmer who doesn't know C. Yes, absolutely, even though many of the examples are in C. You don't need to know C to understand what's going on. When I first read it, I applied it to my scripting work. I recommend this book for anybody doing Frontier or Radio UserLand scripting.

It was originally recommended to me by Dave. One of the first things I did when I started working at UserLand was read this book.