Flipping Slides with JavaScript

October 20th, 2006

I’ve been writing my talk notes in XML and delivering them in HTML for years. These days I rarely if ever use PowerPoint. Especially since my talks tend to be quite code heavy, HTML works much better. It’s much easier to put a decent amount of (still legible) source code on an HTML page than a PowerPoint slide, plus I can scroll if I need to.

One of the most common questions I get when I give one of these talks is how I make the slide advance from one to the next by just hitting one key. It’s actually not that hard, but it does surprise people, so I thought I’d show you.
Read the rest of this entry »

Privacy Tip #2: Mailinator

October 19th, 2006

Companies are really fond of collecting information from you they don’t really need before letting you read their website, check out demos, and download free-as-in-beer software. Occasionally they ask for this for free-as-in-speech software. One technique they use to make sure you give them your information is to e-mail you your username or password or license key. That way, even if the user is named “Barney Rubble” they’ve got a pretty good idea of your real e-mail address.

Certainly you good set up a free account on HotMail or GMail, and use that to register. However that takes time and effort. If you use the account more than once, they can cross-correlate your registrations on different sites. There is, however, a better solution: Mailinator.
Read the rest of this entry »

Autosave Considered Helpful

October 3rd, 2006

Over the last ten years or so, a new metaphor for saving data has slowly developed in some applications such as iTunes, Apple’s Address Book, iCal, and Eudora: the automatically saved document. In this model, the user rarely even sees the document as such. They simply open the program, enter new data, and close the program. There is neither an explicit open nor save step. They do not distinguish between the program and its documents.
Read the rest of this entry »

CSS Repeats Itself

September 25th, 2006

CSS has a noble goal: separating content from presentation. The sad truth, though, is that the implementation of that goal is unbelievably hideous. We’ve spent so much time over the last decade first evangelizing the goal and then excoriating browser vendors for not correctly implementing the specs, that we’ve neglected to notice some fairly fundamental flaws in the language itself. The first of those is a violation of the DRY principle: Don’t Repeat Yourself.
Read the rest of this entry »

The Importance of Being Wrong (and in the Right Way)

September 22nd, 2006

When I was an undergraduate, one of my math professors, Theodore Faticoni, explained to us the difference between a useful wrong proof and a useless wrong proof. When attacking an unsolved problem such as the Riemann conjecture, a useful wrong proof was wrong; but for reasons nobody expected. Finding the flaw in the proof taught you things about the problem you didn’t previously know. By contrast, a useless wrong proof was wrong for obvious reasons. It didn’t teach you anything new about the problem.

In fact a useful wrong proof could be far more valuable than a prosaic right proof. For instance, Yves Hellegouarch’s discovery in the 1980s that Fermat’s last theorem was closely related to elliptic curves was far more interesting and practical than the eventual use of that knowledge by Wiles and Taylor to finish the theorem. Similarly and much earlier, Euler’s “proof” of the theorem for the special case with exponent 3 was wrong, but nonetheless suggested many avenues of attack on the problem for the next couple of centuries. Writing software can be the same.
Read the rest of this entry »