Archive for the 'tech' Category

Come to my SXSW panel on user interface consistency

February 27th, 2007

At this year’s SXSW Interactive festival, I’ll be moderating the panel Getting to Consistency: Don’t Make Your Users Think. The blurb:

Predictable and consistent software is much easier to use. This session explores interface consistency, examples of consistency failures and their consequences.

This is going to be a really interesting discussion. I have three fantastic panelists:

  • Steve Johnson, Senior Manager, User Experience, Adobe
  • Jennifer Fraser, Lead User Experience Designer, Corel
  • Alex Graveley, User Interface Engineer, VMware

We’re going to explain what consistency really means to you and your users and show what it can do for you. What happens when you’re not consistent? We’ll demonstrate examples of failures from the silly to the catastrophic and list the obvious (and hidden) costs of inconsistency.

Sometimes, however, you don’t want to be consistent. We’ll explain why.

Come to this session and be the new best friend of your performance, security, accessibility, tech support and product documentation teams. (Then, go to the session on managing social networks and information overload.)

thoughts on code

February 20th, 2007

“The best code you have is the code you didn’t write.”

“Legacy code is any code without tests.” (likely paraphrasing Michael Feathers)

Address Book AppleScript example

February 13th, 2007

Here’s a simple AppleScript that exports all of the email addresses in your Mac OS X address book as a comma-separated list:

tell application “Address Book”

set emailList to {}

set peopleCount to (count every person)

repeat with i from 1 to peopleCount

set emailList to emailList & (get value of every email of person i)

end repeat

set outputFileName to choose file name with prompt “Save address book as text:” default name “addressbook.txt”

set outputFile to open for access outputFileName with write permission

repeat with e in emailList

write e & “, ” to outputFile

end repeat

close access outputFile

end tell

Windows Vista upgrade decision flowchart

February 6th, 2007

Windows Vista upgrade decision flowchart

What is my IP address?

January 27th, 2007

Ever been stuck behind a firewall, proxy, NAT box or other such device and wanted to know where you really where?

Here’s my simple, easy and clean What is my IP address site.

My Toronto Star crossword puzzle fetcher

December 26th, 2006

On weekday afternoons, the Toronto Star publishes an eight-page PDF edition, “Star PM.” I download this for one reason: the free crossword puzzle.

But sometimes I forget to download this, and since there’s no archive, I lose the opportunity to do that day’s crossword. So I wrote a script to automatically fetch today’s Star PM and save it to my hard drive. Then, I went one better. Using the CoreGraphics Python module, I remove pages 1-7 of the PDF, so I store only the crossword puzzle. Then, it prints the PDF to my default printer.


## Toronto Star crossword puzzle fetcher
##
## Paul Schreiber <misc at paulschreiber dot com>
## http://paulschreiber.com/
## 1.0 -- 26 December 2006
##
## Licensed under a CreativeCommons-Attribution License:
## http://creativecommons.org/licenses/by/2.5/
##
## Usage: starpm.py <directory to store crossword puzzles>

How to fix Safari if it can’t view plugin content

December 25th, 2006

For a while, I haven’t been able to view plugin content (Flash, QuickTime, etc.) in Safari. I decided to do some quick regression to determine the source of the problem.

First, I viewed the pages in another browser, Camino, and they appeared correctly. So my plugins themselves were not corrupt.

Next, I logged in as a different user and viewed the pages in Safari. They appeared correctly. So Safari itself was fine.

Third, I logged back in as my original user and looked for potential culprits:

  • I renamed ~/Library/Safari to ~/Library/Safari.orig and launched Safari. No luck—it was still broken.
  • I deleted ~/Library/Caches/Safari and relaunched Safari. No luck.
  • Then, I moved aside ~/Library/Preferences/com.apple.Safari.plist and relaunched Safari. Aha! That was it.

Now, I didn’t want to lose all of my Safari preferences, so I deleted the newly-created com.apple.Safari.plist and put my old one back in place. I went into Terminal and issues this command:
defaults read com.apple.Safari

I searched through the pages of results, looking for anything relevant. I spotted “Saft Block Plugin,” but it was set to 0, or false. Wait — then I saw that WebKitPluginsEnabled had somehow been set to false.

I ran this command:
defaults write com.apple.Safari WebKitPluginsEnabled 1

and relaunched Safari and I was back in business.

Why C++ sucks

December 14th, 2006

If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor, and when was the last time you needed one? —Tom Cargil, C++ Journal (via KDE)

When marketing attacks

November 5th, 2006

AOL’s marketing is so pervasive, it has snuck its way in to their bounce messages:

: host mailin-02.mx.aol.com[205.188.155.89] said: 550 We
    would love to have gotten this email to reenandsabo@aim.com. But, your
    recipient never logged onto their free AIM Mail account. Please contact
    them and let them know that they're missing out on all the super features
    offered by AIM Mail. And by the way, they're also missing out on your
    email. Thanks. (in reply to RCPT TO command)

Vote for my SXSW interactive panel proposal

September 21st, 2006

I’ve proposed a panel for SXSW interactive 2007, “Getting to Consistency: Lessons Learned from Big Cats.” The panels will be decided by an online vote. Head over to the 2007 SXSW Interactive Panel Proposal Picker and vote for me. :)

Here’s the description:

Making software predictable and consistent makes it much easier to use. This session will explain UI consistency and point out examples of failures and their consequences. We’ll discuss when it’s appropriate to break consistency, and how to build tools and process to ensure applications are consistent with human interface guidelines and real-world practices. Specific attention will be paid to consistency in your everyday tools: Mac OS X and Adobe applications.