Mar
27
2008
Speaking of Arthur C. Clarke, another of his achievements was to live a long life without making a complete ass of himself. A goal we should all emulate, but one that’s eluded too many other SF writers.
For example! Take Larry Niven and Jerry Pournelle, who, having ceased putting any mental effort into their writing at least 25 years ago, now have the free time, in their dotage, to advise top government officials on national security issues … in their own inimitable way:
Members of the group recently offered a rambling, sometimes strident string of ideas at a panel discussion promoting the group at the DHS science and technology conference. Among the group’s approximately 24 members is Larry Niven [...]
Niven said a good way to help hospitals stem financial losses is to spread rumors in Spanish within the Latino community that emergency rooms are killing patients in order to harvest their organs for transplants. “The problem [of hospitals going broke] is hugely exaggerated by illegal aliens who aren’t going to pay for anything anyway,” Niven said. *
[Emphasis mine.] Hmm; this plan wouldn’t by chance require a huge reprint run of a Spanish edition of The Long ARM of Gil Hamilton, to be [...]
8 comments | posted in Humor, Ideas
Mar
18
2008
I had lost this historical document for a long time, but finally found it the other day on an old backup CD. It’s the original 1997 sketch I made of a chat user interface based on speech balloons.
13 comments | posted in Computers, Ideas, Me, Social Software
Mar
7
2008
After digesting yesterday’s iPhone announcements [with fava beans and a nice Chianti] I started thinking about the pricing models made possible by the “Application Store”. In particular,
How cheap can an iPhone app be?
I think the answer’s clear. The Application Store will obviously be based on the iTunes store, whose bread-and-butter is a product, the AAC audio file, that sells for … 99¢. Apple’s clearly able to make a profit at that price point, despite credit-card processing fees, bandwidth costs, and comparable payments [Updated. Thanks, Dru!] to the record labels. So I see no reason they wouldn’t allow a developer to price an application that low.
But why would a developer want to sell an application for a net 70¢?
Micropayments
Because at such a low price, with a one-click store a couple of taps away, it becomes an impulse purchase. It’s a form of micropayment, an idea that’s been talked about for years but hasn’t widely taken off due to the practical difficulties of collecting very small payments. The few areas where micropayments (albeit larger than the canonical 1/10¢ originally proposed) have worked include the iTunes store, and the downloadable-game stores for the Xbox and Wii.
And let’s not forget the most amazing example [...]
45 comments | posted in Computers, Ideas
Feb
19
2008
I’ve been thinking about writing an essay about the beauty & weirdness of cryptographic hash functions. The way any digitized data, however huge, can be named by a short fixed-size binary string. The way there are in theory an infinite number of hash collisions, but in practice zero. I was talking to myself about it, this morning, and two quotes appeared, which I write down here to remember:
“Hashing is my favorite computer-science concept.”
and
“SHA is the Dewey Decimal code of Borges’s Universal Library.”
(except that there’s a fallacy in the second statement, which I leave as an exercise for the reader.)
9 comments | posted in Computers, Ideas
Feb
9
2008
Distributed version-control systems have fascinated me for while. Unlike CVS and Subversion and the like, they don’t rely on a central server; instead, any user of the software can host a copy of the repository, and change-sets are pushed between repositories in a peer-to-peer fashion. These are a lot more powerful and flexible—the centralized CVS model is merely one special case of the configurations that a distributed system can use. And the issues of trust, synchronization and branching that they deal with are very similar to those that appear in peer-to-peer networks.
I’ve tried out several of these, including Monotone and Bazaar, but lately I’ve settled on Mercurial. I find it the simplest to understand and use, and being written in Python it’s extremely portable.
Mercurial’s having a contest to design a new logo. I hadn’t been paying attention, but today I was reminded of Mercury’s symbolic connection to alchemy and the occult, and decided to design something incorporating John Dee’s Monas Hieroglyphica, a symbol he designed based on the astrological symbol for Mercury. (I’m not an expert on Dee or on the occult, but I am a fan of John Crowley, who used both John Dee and his symbol in his [...]
8 comments | posted in Computers, Ideas
Feb
6
2008
You can’t avoid asynchrony when writing network code, since operations can take an arbitrary amount of time, and often do. To keep the app responsive it has to be able to get other things done while a slow operation is in progress.
My first exposure to network programming was in Java, whose approach to asynchrony is to use threads. Lots of ‘em. The API calls are [almost] all blocking, so you run them on background threads. This is good because it makes the way the API works more intuitive: you call a method, and it returns a value when it finishes. This makes your own code more intuitive, as it just performs the operations in order, like: open connection, send request, read response, parse response, close connection, return.
The downside is that making heavily threaded code work correctly can be very hard, and the problems are subtle, hard to understand and debug, and sometimes almost impossible to reproduce. Edward Lee’s paper The Trouble With Threads describes a complex Java server that was excruciatingly well-designed, code-reviewed and tested.
“No problems were observed until the code deadlocked in April 2004, four years later. Our relatively rigorous software engineering practice had identified and fixed many concurrency [...]
4 comments | posted in Computers, Ideas, Languages
Jan
27
2008
Dear Lazyweb,
The project I’m working on will be using cryptographic certificates in a distributed web-of-trust model a little like that of PGP. It will also use certs as more than just proofs of identity. Given that I’ll be writing a lot of code using certs, I want to avoid the nastiness of X.509 whenever possible.
After thinking about this a while, it seems to me that RDF ought to be a good way to represent certs, since it describes arbitrary types of relationships between entities (e.g. FOAF), and allows them to be composed in complex ways. And there are a lot of tools available for parsing/storing/querying RDF.
Unfortunately, I know very little about RDF so far, or about the uses to which it’s being put. I’ve been looking, but I haven’t found any existing schema yet for using RDF for cryptographic certificates. Does anyone know of such a thing, or something related?
(The closest thing I know of is SDSI, a Simple Distributed Security Architecture, which was inspirational to me in showing how one can use general-purpose data structures like S-expressions to describe certs and form a web of trust. But SDSI and its successor SPKI seem to be dead, sadly, and nothing [...]
4 comments | posted in Computers, Ideas, Social Software
Dec
10
2007
In some online forums I list as interests both gnosticism and agnosticism, which is a bit of a joke since the two words are literally contradictory, but is true in that both are interesting and important to me. Agnosticism as my attitude toward religion: that the existence of a God or gods is fundamentally unknowable, undecidable, unprovable. Gnosticism as a mystic tradition, a suppressed early fork of Christianity, whose beliefs have more recently had a large impact on the literature of the fantastic and on postmodern philosophy (notably Philip K. Dick’s SF novels, the Matrix films, Philip Pullman’s His Dark Materials trilogy, and Jean Beaudrillard’s cultural theorizing.)
A few weeks ago I had the thought that you could combine Arthur Clarke’s famous Third Law with some of the ideas of Gnosticism, and arrive at a “proof” (which I’m aware is a contradiction in terms) of agnosticism. I’m sure this isn’t entirely original, but it amuses me.
Clarke’s Third Law states that “Any sufficiently advanced technology is indistinguishable from magic”. This idea has appeared in any number of science fiction plots, where time travelers from the future or astronauts visiting technologically-primitive planets are treated as wizards. It’s also been used in a way [...]
5 comments | posted in Ideas
Aug
27
2007
Paul Graham [who is obnoxiously elitist, but frequently insightful] has a new essay, “Holding a Program in One’s Head“, that is making me feel sad this morning.
“A good programmer working intensively on his own code can hold it in his mind the way a mathematician holds a problem he’s working on. Mathematicians don’t answer questions by working them out on paper the way schoolchildren are taught to. They do more in their heads: they try to understand a problem space well enough that they can walk around it the way you can walk around the memory of the house you grew up in. At its best programming is the same. You hold the whole program in your head, and you can manipulate it at will.”I know that feeling so well, and I want to be back in that [non-Euclidean] space again.
4 comments | posted in Computers, Ideas, Me
Jul
18
2007
37signals gripes about those annoying Bluetooth cellphone headsets with even-more-annoying blinky LEDs on them.
I once had the idea of a charity that would collect discarded headsets from yuppies and distribute them to mentally ill homeless people. Just by wearing the headsets, they would eliminate the social stigma attached to talking to themselves on the street; this would help re-integrate them into society.
3 comments | posted in Humor, Ideas