Coding Horror

programming and human factors

Fear of Writing

When I meet people that have something to say, and an interesting way of saying it, I encourage them to blog. But there's one big hurdle many people simply never get past: the actual writing.

I can respect that. Writing is hard. People spend their entire lives learning how to write effectively. It isn't something you can fake. It isn't something you can buy. You have to work at it.

That's exactly why people who are afraid they can't write should be blogging. It's exercise. No matter how out of shape you are, if you exercise a few times a week, you'll inevitably get fitter. Write a small blog entry a few times every week and you're bound to become a better writer. If you're not writing because you're intimidated by writing, well, you're likely to stay that way forever.

If you're still hesitant, I highly recommend John Scalzi's Writing Tips for Non-Writers Who Don't Want to Work at Writing, and Brian Marick's Hints for Revising. They're absolutely dead on with every point. Consider your writing a natural extension of your spoken conversations. If you aren't comfortable reading it out loud, rewrite it until you are. In the words of Elmore Leonard:

If it sounds like writing, I rewrite it.

Blogging isn't for everyone. But if you think it might be for you, don't let fear of writing keep you from doing it.

Discussion

Standard Browser Keyboard Shortcuts

All modern browsers have extensive keyboard shortcuts:

I tested every shortcut, and here's my list of keyboard shortcuts that work in all browsers – or, for the rare keyboard shortcuts I found especially useful, those that work in at least two of the above browsers.

Standard toolbar buttons

Alt+, or Backspace
Back

Alt+, or Shift+Backspace
Forward

F5
Reload

Ctrl+F5
Force Reload (no cache)

Esc
Stop

Alt+Home
Homepage

Ctrl+N
New browser window

Address Bar

Alt+D, or Ctrl+L, or F6
Set focus to Address Bar

Ctrl+Enter
Add "www." and ".com" prefix to Address Bar

Alt+Enter
Open Address Bar location in a new tab

Tabs

Ctrl+18
Switch to nth tab

Ctrl+9
Switch to last tab

Ctrl+Tab, or Ctrl+Page Up
Switch to next tab

Ctrl+Shift+Tab, or Ctrl+Page Down
Switch to previous tab

Ctrl+W, or Middle Click tab, or Ctrl+F4
Close current tab

Ctrl+T
Open new tab in the foreground

Ctrl+Shift+T
Reopen last closed tab

Ctrl+Left Click, or Middle Click
Open clicked link in a new background tab

Shift+Left Click
Open clicked link in a new browser window

Ctrl+Shift+Left Click
Open clicked link in a new tab, and set focus to it

Reading

Space
Scroll down

Shift+Space
Scroll up

Home
Go to top of page

End
Go to bottom of page

F11
Toggle full page mode

Ctrl++, or Ctrl+Mousewheel down
Zoom page larger

Ctrl+-, or Ctrl+Mousewheel up
Zoom page smaller

Ctrl+0
Set to default zoom

Bookmarks

Ctrl+D
Add current site to bookmarks

Ctrl+H
Open browsing history

Ctrl+J
Open download history

Search

Ctrl+E, or Ctrl+K
Set focus to search box

Alt+Enter
Perform search in new tab

F3, or Ctrl+F
In-page search

F3
Scroll to next in-page search item

Ctrl+F3
Scroll to previous in-page search item

Developer

Ctrl+U
View source of current page

F12
Developer tools

Ctrl+Shift+Del
Delete browsing history

While it's not a keyboard shortcut per se, also note that left-click-and-hold on the forward and back buttons will show a list of the last (n) pages to select from, if you want to go forward or back more than a single page at once. This comes in handy at least once a week for me.

It's good to see browser developers standardizing on at least a few common keyboard shortcuts rather than making up their own.

Discussion

Lotus Notes: Survival of the Unfittest

Via Ole Eichhorn, the UK Guardian's Survival of the Unfittest:

Lotus Notes is used by millions of people, but almost all of them seem to hate it. How can a program be so bad, yet thrive?

We've all had bad software experiences. However, at one of my jobs, our corporate email client of choice was Lotus Notes. And until you've used Lotus Notes, you haven't truly experienced bad software. It is death by a thousand tiny annoyances -- the digital equivalent of being kicked in the groin upon arrival at work every day.

Lotus Notes 6.5: It still sucks.

I won't say that Lotus Notes was the reason I quit that job, but it was definitely a factor in my decision. The UI is the application.

Lotus Notes is a trainwreck of epic (enterprise?) proportions, but it might be worth studying to learn what not to do when developing software.

Discussion

Presentation Zen

So I've been critical of other people's presentations. Which naturally leads to a few questions:

  • What makes a presentation good?
  • Why don't you try giving a presentation?

I realize that giving presentations isn't easy. But I still feel that some speakers haven't done the basic due diligence that's necessary to give a good presentation. It's either that or they just don't care. So I'm giving them the benfefit of the doubt here.

Well, one easy way to deliver a better presentation is to keep it simple. Garr Reynolds' Gates, Jobs & the Zen Aesthetic illustrates this brilliantly:

Bill Gates presentation

Not simple.

Steve Jobs presentation

Simple.

Which presentation would you rather be attending?

As Garr noted, when it comes to presentations, less is more:

You do not need to (nor can you) pound every detail into the head of each member of your audience either visually or verbally. Instead, the combination of your words, along with the visual images you project, should motivate the viewer and arouse his imagination helping him to empathize with your idea and visualize your idea far beyond what is visible in the ephemeral PowerPoint slide before him.

Lawrence Lessig is a professor at Stanford Law, founder and chairman of Creative Commons and a board member of the EFF.

Among other things, he's noted for exactly this kind of minimalist presentation style. Consider his most recent presentation, Is Google Book Search fair use?

Lessig doesn't just ignore the classic "no more than five bullets per slide" rule in his presentation, he practically defenestrates it. He uses a single phrase or image per slide. Sometimes there's only a single word on each slide!

It's better to experience it than it is to read about it. Download the full torrent, or watch his presentation.

This style clearly works for Lessig, but can it work for other speakers? Dick Hardt gave a presentation on Identity 2.0 at OSCON 2005 in the Lessig style – he even attributes it to Lessig in his final slide. It's a bit more frantic than Lessig's presentation, but I found it every bit as effective.

I urge you to watch these presentations. Compare how you felt about them with the many other presentations you've seen. And if, like me, you were utterly transfixed by content presented this way, consider moving toward minimalism in your next presentation.

Discussion

On Audio Visualization

I'm a big music fan. And as a longtime computer enthusiast, I've always been intrigued by the intersection of computers and music: audio visualization. The first experience I had with visualization was the 1993 CD-ROM add-on for Atari's short-lived Jaguar console. It included Jeff Minter's VLM-1 (Visual Light Machine) burned into the firmware:

Atari [was] developing a CD-ROM add-on for the Jaguar, and me and Ian Bennett, one of the Inmos guys, flew out to Sunnyvale to pitch them the idea of building a VLM implementation into the CD-ROM's firmware, to be invoked whenever the user played an audio CD. I was in particularly good favour at Atari, since "Tempest 2000" had been released to a degree of critical approval, and we got the green light to develop VLM for the add-on. It took about six months to make, with me doing all the graphical stuff and Ian writing the code to sample the audio stream and generate a frequency spectrum analysis which I then used to drive the visuals.

Atari Jaguar VLM control panel

The results were very pleasing - I have vivid memories of going into the office in Sunnyvale when we were out there finishing off the code, and finding Leonard Tramiel playing classical music through it and dancing ecstatically around my cube.

The VLM-1 was just the latest in this llama-obsessed developer's series of software experiments with audio visualization, going all the way back to 1984..

Psychedelia 1984 Commodore 64
Colourspace 1985 Atari 400/800, Atari ST
Trip-a-tron 1987 Amiga, Atari ST
VLM-0 1990 (unreleased) Inmos Transputer
VLM-1 1994 Atari Jaguar CD-ROM
VLM-2 2000 Nuon
VLM-3 2003 (unreleased) Gamecube
Neon 2005 Xbox 360

.. and ending with the Xbox 360. It was quite a coup for Microsoft to get Minter to write the visualization software embedded in every Xbox 360:

[Neon] finally realizes my design of a modular lightsynth on top of that awesome computational power, and inheriting the multi-user controllability from VLM-3, and the results are simply amazing. Even I am continually amazed at what it is possible to get out of it, and I designed it. It is a true light synthesiser, and easily the most beautiful thing I have ever made, by a very long way. We thought VLM-3 was good, but this makes VLM-3 look like Psychedelia. It's truly a generational increment - hence after years of long service I decided it's finally time to lose the VLM name.

It can be used purely as a visualizer - but a visualizer which instantly obsoletes all those still currently struggling along with VLM-1 techniques straight into the Stone Age. Or you can pick up the controllers and feel what it's like to fly it as a Crew. It is truly a thing of beauty... I believe it finally begins to achieve the potential that I saw all those years ago when I first made Psychedelia... and I am happier with it than I have ever been with anything I've created in my entire career.

Talking about the Neon visualization doesn't do it justice. You have to see it in action to appreciate how impressive it really is. If you have an Xbox 360, rip an audio CD and try it yourself. If you don't, Minter provides screenshots and movies.

I remember looking around in vain for PC audio CD visualization software in 1996; it took the MP3 revolution and WinAmp to make audio visualization mainstream several years later. Minter clearly influenced an entire generation of PC programmers:

A while after [the Atari Jaguar's CD-ROM add-on] was released, other "visualisers" started to appear on the PC, and at one time I was at a computer show in the US and one of the guys from Nullsoft came up to me and apologised for "borrowing" the techniques I'd used on the Jaguar VLM for their own visualisations. And, in fact, to this day much of the visualisation stuff that you see in the likes of Winamp, Windows Media Player and iTunes uses fundamentally the same technique - using feedback to amplify small source input dynamics - that I used in VLM-1.
Although the grandaddy of the PC visualization scene is the DOS based Cthuga, the breakthrough PC visualizers were both WinAmp plugins: Geiss and G-Force. G-Force, as noted in this 2001 Wired article, has an interesting history:
For Andy O'Meara, creating a trend-setting computer graphics program has been a thoroughly depressing experience. After launching his program-turned-phenomenon, O'Meara had to ship out on a five-year tour of duty in the U.S. Navy.

Last year, O'Meara released G-Force, software that "visualizes" music through an ever-changing stream of trippy graphics that morph and pulse to the music's beat. G-Force, and other "vis" software like it, are rapidly becoming the equivalent of flying toasters -- a wildly popular and instantly recognizable icon of the times, like lava lamps or disco balls.

But for O'Meara, finding himself at the vanguard of the movement has been anything but uplifting. Thanks to the Navy ROTC scholarship program that paid his way through college, O'Meara spends most of his time on a nuclear submarine when he could be embarking on a multimedia career. He has already been offered the chance to join pop star Seal's forthcoming Togetherland tour, and he signed a lucrative licensing deal with Apple that convinced him he can make a living writing code. "If I wasn't in the Navy, I'd be on tour with Seal working on visuals for him," said O'Meara from his home port of San Diego. "Am I depressed about it? Yeah."

As alluded to in the article, G-Force was licensed for inclusion in iTunes. It looks like O'Meara survived his stint in the Navy and is now actively maintaining and selling G-Force, with plugins available for virtually every player out there. Geiss, on the other hand, is still WinAmp-only, and the latest version was released in 2003.

Although G-Force and Geiss are still decent visualizers, they've barely evolved at all: they are limited to 8-bit color internally, and make no use of hardware acceleration. On the plus side, they use very little CPU time on a modern PC, either. Seeing the Xbox 360 Neon visualizer next to these two makes them look antiquated:

gforce visualization   Xbox360 Neon visualization

 I suppose we'll have to wait another few years for the audio visualization developers to catch up to the hardware capabilities of newer PCs.

Discussion