I've wanted to write something similar to this: The trajectory of a society matters. (I've retitled it for my link as I don't think the original really captures the point.) I'm fairly confident that one of the reasons why my political views differ from others is the firm belief that what we have here in the US and civilized world, where we don't worry about where our next meal is coming from or whether we'll have good water to drink and that sort of thing, is more fragile than most people think.

Anger Management

Of all the problems facing the United States, and the civilized world in general, I would pick this as the most important: ...the anger that lately pervades our politics is more than just an aftereffect of six years of Democratic setbacks... Our political anger is only the most impressive expression of a much wider cultural transformation. In politics, in music, in sports, on the web, in our families, and in the relations between the sexes, American anger has come into its own.

A classic example of why legislation shouldn't involve technology, only effects: If you record MP3s off of your satellite radio, are you infringing a right belonging to the copyright owner, given a law that says it is legal to record music from a radio? That is, do one or both of the definitions of "radio" or "record" as used in the law somehow not apply in this case? You can see the technology-based arguments fly in the inevitable Slashdot article: "

Programming and the Gender "Gap"

This article has spawned a lot of discussion about the "gender gap" in programming. What bothers me about the discussion is that nobody ever states a goal. What is the ideal outcome? I think the ideal reads something like this: "For any person, they will have some degree of happiness with a given job. Society also has some degree of need for a given job. The best job for the person is the one that best balances their happiness with society's need.

I've been watching some of the television-season DVDs we've collected over the years again, and once again I can't help but notice how much nicer the TV-DVD experience is over real TV. The only minor complaint is the occasional commercial break that feels forced, but that's not too big a deal compared to the fun. Along with the audio-visual advantages of watching TV on my laptop (at 1650x1050, it's basically an HDTV that fits on my lap), the lack of commercial interruptions and the fact that TV shows have to be written very tightly to work around that means you end up with a very concentrated experience that has to be seen to be believed.

So, if the only valid thing left for modern art to do is hold up a mirror to the viewer, does that make people who spend a lot of time looking at and talking about modern art narcissists? Bonus: The heuristic works! (Proximate trigger: This quality art "criticism".)

Well, that was fast. UPDATE: So far the big announcement is that new Bravia TVs will stream HD content via the Internet, in partnership with Yahoo, AOL, and Grouper. The "Bravia Internet Video Link" will be a small module that will fit to the back of the TV, and connect directly to the Internet without a PC. And the service is free. - Instapundit Not even two weeks have gone by since I predicted set top boxes would do just that.

Something's rotten in the state of [web] Devmark...

I've got a Django review in the pipe, and it's generally positive. It's still cooking both so I can gather more experience, and while some fact-checking occurs.

But there's something still missing that I can't put my finger on. I think cutting away even more of the general cruft of making web apps is bringing it out. I've been programming on the web for nearly ten years now, and something's not right. Despite the fact that I have gotten generally good at programming, and I keep refactoring and refactoring, I keep writing the same web page over and over again: I've got a tree of heterogeneous objects that I need to render, which itself a view of a graph-like structure, I allow the user to manipulate it somehow, and I have to propagate those changes back to the database. And for some damn reason, no matter what I do, there's always something super-special about this form that requires special treatment and requires further extension of the frameworks or libraries I'm using.

(Note this programming post meanders a lot; part of the point is that I don't entirely know where I'm going with this.)

Practical Closures

The problem I see with most introduction to closures is they choose examples that can be done easily with a standard for loop, or some other standard construct, leading a student to ask (with great justification!) what the point is and why (s)he should bother. In my opinion, the best place to start understanding them practically is to look at their ability to decouple logic, because there they have benefits that are difficult or even impossible to replicate without them.

So despite the huge amount of verbiage on the net about closures, I thought I'd take another crack at explaining it with examples that actually do something that is much harder to do without closures.

After a bit more thought about my previous post, I'm pretty sure this is going to be a disaster for Microsoft.

Microsoft has two goals here:

  1. Become the dominant distributor of video content, and probably eventually leverage that into dethroning iTunes and becoming the dominant distributor of content, period. By that I mean they will own the platform, not necessarily the stores themselves.
  2. Destroy open source by making it borderline illegal, if not actually illegal, to have drivers that open source software can use.

I wouldn't even care to guess which is more important to them. I'm sure they really, really want #1, but if they had to choose only one I wouldn't be surprised they'd rather have #2.

But this entire plan is predicated on two very strong assumptions:

  • People are so desperate to experience high-quality video on their computers that they are willing to put up with all the other continuous degradation of their computer's performance to do it.
  • The Windows monopoly is so entrenched that no matter how they screw with your computer, you have no choice but to buy Windows, and hardware vendors have no choice but to sell hardware for Windows only, completely snubbing Linux and quite possible Macs as well

If either of these fail, Microsoft loses, and both are highly questionable.