Quoth the master:

As I have now said many times and written in many places: program testing can be quite effective for showing the presence of bugs, but is hopelessly inadequate for showing their absence.

— Dijkstra, A Discipline of Programming

This is much less powerful than it should be when taken out of context. Clearly, test suites no more “prove” that a program is valid than a predicate is “proved” by manually checking a few cases. Test suites are actually an improvement over customary practices, but only because customary practices are abysmally primitive. I’m not talking about pre-Internet primitive. I’m talking about pre-Russell, not to say pre-Descartes primitive.

Dijkstra’s writings are still among the most clear and solid examples of reasoning I’ve read, let alone reasoning about computer programming, and the fact that one can make a living as a “programmer” without thinking formally about anything ever, is as damning an indictment of the industry as I can imagine.

Not a very new one, but (as most of what Baez writes), quite interesting. The most enlightening bit for me:

Many of the puzzling features of quantum theory come from the noncartesianness of the usual tensor product in Hilb.

Physics, Topology, Logic and Computation: A Rosetta Stone

One of the craziest things I’m working on right now is a Python interpreter for a Forth-inspired mini-language I call pyf. It’s not a practical programming tool in almost any sense, being much less useful than the language I wrote the interpreter in, but I’ve found that the combination of Forth’s very simple syntax (in its way, it’s as elegant as Lisp’s) with Python’s rich semantics (pyf’s stack holds Python objects, not bytes, making it horrendously slow by Forth standards, but also saving me the need to write a bunch of utility words) makes it a potentially useful tool for creative programming/doodling with code/however you might want to call it. When done right — and I’m not there yet — Forth-style stack-oriented programming is a surprisingly interesting cognitive tool, because it seems to mirror and take advantage of cognitive heuristics that are more awkwardly modeled by other languages (and, of course, vice versa).

I might even end up using it as a macro language in other projects, I guess.

Inspired by a Frontier Economy article on email clients, and doing a Frankenstein on mail-trends, I created a Python script that analyzes your Gmail habits and makes heuristic recommendations on things that you should move to RSS feeds, and, perhaps more interestingly, people you might want to get back in touch with (a la Facebook, but for those of us that are still email-centered).

Question is, what would be the best way to deploy this? I’d like the feature to be available to the least-technical audience possible, and either contributing back to mail-trends or distributing it as a separate Open Source program (but still a Python command line script) wouldn’t be very effective in this sense, I feel. I thought about setting it up as a web service, but it does need Gmail password, and that’s probably a privacy no-no, specially for an unknown site. So I guess I should do it as a well-packaged and user-friendly small desktop utility… pretty much the kind of project I really, really don’t enjoy doing.

Ideas? Comments? Suggestions?

AntipodeanSF has just published a short story of mine, Apocalypse Hotel

You stand in the middle of an empty street, watching missile trails converge high above you. The plasma warheads explode, turning the air into an incandescent fluid that destroys everything you see. The blinding light is cold against your skin.

Digital Rights Management is the bone-headed idea that you can control information once it has left your systems.

Privacy is the bone-headed idea that you can control information once it has left your systems.

The digital movie that can’t be pirated is as mythical as the business or government record that won’t be warehoused and cross-indexed. In both cases technology makes too easy and untraceable what interests make too desirable.

Eric Schmidt is an hypocrite and a tool. That said, I don’t think we’re going to have any more success controlling our bits than the media distributors have had with theirs, so we need to figure out something else.

Am I happy with this? Nope. But it is what it is.