Sentinels of the Palouse
August 6th, 2008
On August 3, 2008, I drove from Spokane, WA to Lewiston, ID, and chronicled the transformation of the Inland Northwest skyline by the harbingers of modern communication: the cell phone tower. These sentinels have joined grain elevators and power line towers in watching over, or rather listening over, this farmland.
Check out the full "Sentinels of the Palouse" Flickr set.
More Evidence of the Smalltalk Conspiracy Against Ruby on Rails
June 24th, 2008
This is the Reason YouTube was Created
May 9th, 2008
Enable Your Extensions in Firefox 3
April 14th, 2008
... because I keep forgetting how.
There is no guarantee that your Extensions will work, but they will try. For example, Gmail Manager has some display issues, but it's good enough.
- Type about:config into Firefox's address bar and click the "I'll be careful, I promise!" button.
- Right-click anywhere. Choose New>Boolean. Make the name of your new config value extensions.checkCompatibility and set it to false.
- Make another new boolean pair called extensions.checkUpdateSecurity and set the value to false.
- Restart Firefox.
Thanks, Lifehacker!
Newspapers: The Killer App?
April 10th, 2008
In my article The User-Generated Content Game I talked about how facinated I am by SFGate.com's ability to inspire users of the site to comment on their new article, generating massive amounts of valuable user generated content (UGC.) I regularly read the site and check out the number of comments. Today, I was floored once again.
The Olympic Torch made it's only North America stop today in San Francisco, and with a clever switcheroo the city announced one official route, but took the Torch on another route to avoid protesters. When I found the SFGate article about this, "Torch leaves S.F. after surprise route shift", the article had 1668 comments at 8:33pm.
Here is the progression of comments between 8:33pm and 10:05pm.
9:00PM: 1759 Comments.
9:22PM: 1801 Comments.
9:33PM: 1818 Comments.
10:05PM: 1885 Comments.
187 Pages of Comments. Whoa.
My point is, the comments just keep flowing in. People are reading and replying and taking a deep interest in the conversation. I wish every application that I've worked on had as involved a user base as this. While this is an oversimplification, SFGate just put newspaper articles on the site and let people talk about them. The killer app.
04/11/2007 - Update
2 days later: 2172 comments.
Update: you will need to install Growl if you do not already have it installed.
Even though iTunes is slightly better about loving NAS drives than it used to be (see my post Mac Attack: Vantec loves America, OS X 10.5 Leopard) life is not perfect. For me, once my Mac loses it's connection to the NAS, such as after waking from sleep mode, iTunes cannot find the original files, even though they are there. The error reads "The song xxx could not be used because the original file could not be found. Would you like to locate it?"
After quite a bit of investigation and trial and error, I'm not sure who's fault it is: it might be the NAS's fault, based on my "solution:" if I list all of the files in the My Music folder on the NAS, iTunes can find them again -- that is, all I need to do is acknowledge their existence and things start working.
My NAS is named "VAULT." Using the Terminal, I executed the following:
ls -R /Volumes/VAULT/My\ Music/
File and folder names streamed by for about 30 seconds, and when it was done, iTunes was able to find the original files again. Great!
Automator It
But, I wasn't satisfied -- I wanted something I could run from within iTunes to fix this when it happens. I decided to fire up Automator and create a little app that would do this for me. Jump to here to download "Find Original Files.app", but to use them you will need to edit the two files within and change some stuff (more on that later). If you'd rather make your own instead of editing my version, here's how:
- Open Automator and create a new, blank workflow
- Optional: Add a Show Growl Notification Action with a handy message, such as Title: "Repairing iTunes Library..." and Description: "This might take a few minutes"
- Add a Run Shell Script Action and add "ls -R (location of your iTunes music folder)" -- example: "ls -R /Volumes/VAULT/My\ Music/"
- Optional: Add a Show Growl Notification Action with a finishing message, such as Title: "Done!" and Description: "Hopefully your iTunes library is fixed."
- File - Save As - Application. Give it a name and Save it in
/Users/(your user here)/Library/iTunes/Scripts. Create that directory if it does not exist.
Unfortunately, iTunes will not let you run Automator apps or workflows from within it, but thanks to Jason Kacmarski's Apple Discussion response to "How do I get automator scripts into iTunes? Very frustrated" I was able to figure it out: create an AppleScript script to launch the Automator app.
- Launch Script Editor
- Add the following, substituting your application name and your folder names where appropriate:
tell application "Finder"
activate
open application file "Find Original Files.app" of folder "Scripts" of folder "iTunes" of folder "Library" of folder "(your user here)" of folder "Users" of startup disk
end tell
3 . Save this to /Users/(your user here)/Library/iTunes/Scripts
Now when you launch iTunes, you should see a little "Script" icon on the menu bar with your application it.
Find Original Files.app
Good luck, and I hope it works for you. Here is a zip file with my version if this little helper app. Unzip the following to /Users/(your user here)/Library/iTunes/Scripts.
Remember: you will need to edit "Find Original Files.app" in Automator and "Find Original Files.scpt" in Script Editor to fix the appropriate directory paths for your particular setup! Also, if you get a Growl error, you will need to install And you might need to install will need to install Growl, too.
The User-Generated Content Game
March 4th, 2008
Question for you: as of 10:30pm on March 3, 2008, which of the following blog or news posts from today have the most user-sumitted comments?
- Do coat hangers sound as good as Monster cables? (boingboing.net)
- Marc Andreessen For Obama (techcrunch.com)
- The $3,000,000,000,000 War is a Domestic Issue (huffingtonpost.com)
- Ceiling cat makes his glorious appearence in da sky! - (icanhascheezburger.com)
- Man on life-support after being beaten following a car crash (sfgate.com)
Maybe you can spot the dark-horse winner here, and maybe you can't. I'll make it a bit more clear: boingboing.net, techcrunch.com, huffingtonpost.com, and icanhascheezburger.com are all in the Technorati Popular top 10 blogs. sfgate.com, on the other hand, is not ranked in the top 10, nor even the 100. Readership-wise, it stands to reason that the vague, 4-sentence article about a horrible road-rage incident in Oakland, CA should not be as commented upon as today's most popular articles from top-10 blogs. So, how did this little local article stand up?
- Do coat hangers sound as good as Monster cables? (boingboing.net) - 46 comments.
- Marc Andreessen For Obama (techcrunch.com) - 110 comments.
- The $3,000,000,000,000 War is a Domestic Issue (huffingtonpost.com) - 156 comments.
- Ceiling cat makes his glorious appearence in da sky! (icanhascheezburger.com) - 180 comments.
- Man on life-support after being beaten following a car crash (sfgate.com) - 197 comments.
But wait! Here comes the M. Night Shyamalan surprise twist of an ending -- how did today's SFGate's article "State Supreme Court takes up same-sex marriage" do?
635 comments in one day. That's 64 pages of juicy user-submitted content to be ad-targeted, sold, and/or data mined. Internet gold.
SFGate, really? I read SFGate on a regular basis and have gotten into the habit of looking at the article's comment-counts. I'm continually surprised at the amount of user-contributed comments for what is basically the digital version of the printed newspaper. Plus, these are local stories, not reprints of national or international AP articles. Personally I think this is really big. Somehow, someway, "S.F. braces for major health care cuts" (86 comments) got over twice the comments today than celebrity gossip "Lindsay [Lohan] Invites You Into Her Mystical World of Tattoos" (40 comments.) in our celebrity-obsessed world. The same-sex marriage article was written by Bob Egelko, Chronicle Staff Writer, not celebri-blogger Michael Arrington or professional pundit and one time California gubernatorial candidate Huffington. Nope: Bob wrote it, and his article probably generated more direct user feedback than any of the other "regular" blog out there today.
(I'm intentionally punting on the Digg issue: sites like digg.com generate massive amounts of user contributed content.)
So what's going on here? What's different? Is it the newspaper? People love the paper. Is it that people are invested local issues? Today's story about local computer programmer Hans Reiser's murder trail has generated 91 comments, up from 86 from 10 minutes ago, and 83 about 10 minutes before that: it's 11:30pm PST time and people are reading the newspaper, then the comments, and adding to the conversation.
And now midnight: 94 comments.
This really fascinates me. People are very invested in this local news site in a way that seems to keep up, if not beat (in the user-generated content game), many niche sites out there that appeal to people's specific passions (read: Long Tail): gadget sites, computer programming humor, hockey, knitting. Maybe that's the answer: it's not different at all -- the San Francisco Bay Area is niche, too. But I suspect that people care more about it than other niches, since those of us that live here can walk outside and see our fellow SFBA-niche enthusiasts walking down the street, eating in restaurants, trying to park, and bitching about MUNI. How many Lindsay Lohan lovers have you spied today?
Poor image spacer...
March 2nd, 2008
Mac Attack: Automatically Importing Screenshots into iPhoto
March 2nd, 2008
Ok, so, I'm about 5 years behind the curve, even though I'm a supposed professional Web 2.0 developer, but I'm just now getting into Flickr. Also, I really like taking screenshots of interesting things using CMD+SHIFT+4 and uploading those to a "Screenshots" Flickr photoset. Here's what I wanted to do to to feed my Screenshots Flickr set: Take a screenshot and have it automatically imported into iPhoto, and then upload it from iPhoto to Flickr. Will it "Just Work?" No, it does not. See my rant here.
Save Screenshots in a Special Folder
Download Deeper. Deeper is a Mac app that let's you tweak many hidden settings for your Mac. The only one I use is customizing the name of screenshot images and the location to which they are saved. I save my screenshots in [me]/Pictures/screens/ and each one is prefixed screen.
Automatically Import into iPhoto
iPhoto cannot "watch" a folder and automatically import images dropped into it. Instead, and disappointingly, you must become a pseudo-programmer and create an Automator workflow to perform this action for you. Automator is a program that lets you create workflows to, well, automate repetitive tasks, such as importing images into iPhoto. Here's what you do:
- Download Deeper, mentioned above, and configure it to save your screenshots to a Folder. I chose
Pictures/Screens
- Open iPhoto and create an album to hold your screenshots. I called it Screens, too.
- fire up Automator, which lives in
Application/Automatorand create a new Custom workflow. - Add "Get Specified Finder Items" to the list and use the
Add...button to add the folder where your screenshots will land when created
- Add "Import Files into iPhoto" and choose
Existing albumandScreens - Save it as a Folder Action:
File - Save As Plug-in...and give it a name.
- Choose
Plug-in for: Folder ActionsandAttached to Folder: screensor wherever your folder new screenshot folder resides.
Now, take a screenshot and see if iPhoto fires up and imports the image. If so, great! If not... well, maybe I messed up, maybe you did. I'm that helpful.
iPhoto Sucks
March 2nd, 2008
It will not Just Work. Why? Mostly because iPhoto is the single worst Mac app ever written. I love my Mac. It rocks. Wouldn't give it up. But iPhoto is just about the most counterintuitive and restrictive app Apple has ever written. It does not Just Work. I could go on and on and on, and to their credit iPhoto '08 has copied many feature from Picasa, my favorite photo management app (Windows only :( ). Perhaps one day I will enumerate everything wrong with iPhoto, but right now I wont.
Why? Because I don't know. That's the thing about Just Works: it Just Works: you really don't know why. It is the principal of least astonishment: you should not be surprised by whatever happens when you use a program. It's not that you are happy, it's that you are not unhappy. With iPhoto, I am constantly astonished. When I hit the ESC key, I usually say to myself "Whoa, what was that?". Tab? Surprised. Right-click? Surprised by what is not there. Multi-select images to batch-process them? Good luck.
And integration? Not with Flickr or any other non-Apple photo site. Ordering prints? From Kodak only.
Time Breakdown of Modern Web Design
January 28th, 2008
Mac Attack: Vantec loves America, OS X 10.5 Leopard
January 27th, 2008
There is a fix for the Vantec Nexstar LX which will allow it to work with Leopard. To skip all of this drivel and download it, click here
My NAS drive works with Leopard! As chronicled here in my other post, Mac OS X 10.5 Leopard has well-documented issues working with network attached storage (NAS) hard drives. Namely, no worky. The drive and its top-level folders will occasionally reveal themselves in Leopard, but they incorrectly appear to be empty.

Sad. After emailing Vantec USA, the manufacturer of my Nexstar LS NAS enclosure, regarding the issue, Vantec Technical Support replied that their development team is aware of the problem and is working on a new firmware to resolve this issue:
Our development team is aware of the problem and is working on a new firmware to resolve this issue.
Cool, but, you know... we'll see. I'm a rather jaded person when it comes to promises from tech support when they are too far away for me to walk over to and hand them a bottle of Wild Turkey as motivation to fix my problem. But, then again, I did get an email, and they do have a history of blowing my mind by actually helping me. Start the flashback machine an delay the satisfying ending to this story!
The Little Tapeworm
In 2005 I bought a Vantec hard drive enclosure -- not a NAS, just a regular ol' external enclosure. While swapping drives in and out of the thing the IDE cable shredded.

Where was I going to find a little bitty cable like that? I had about 10 full-sized cables, but the would not fit inside the enclosure, monster tapeworms that they were. So I thought, what the hell --- I'll just ask them to send me a new one.
Me:
Several days ago I bought a NexStar 2 HDD Enclosure (Model NST-355U2). Despite very gentle and careful handling, the ATA cable ripped apart and the connections on one end broke into several pieces while I was removing a hard drive from the enclosure.
Please send a replacement ATA cable to: (My address)
And 2 days later, from Vantec:
Joseph, your replacement cable was mailed out today via USPS.
BUWAAAAAAAAAAAAAA? No way. But yes way! The cute little thing arrived a couple of days later. Amazing -- actual human contact, and solutions!
The Fix
Flashback over -- back to the NAS drive. Three days ago I a received the following email from Vantec Technical Support, also know as My Homie:
We just received the new firmware this morning. I'm including the new firmware with this email... Please let us know if this help in resolving the Leopard problem with our LX enclosure.
And the firmware was indeed attached. I used the Nexstar's Windows-based firmware updater (different machine), rebooted the NAS and CHA-CHING MONEY MONEY MONEY! When I mounted the drive (and I kinda want to) the NAS worked like a charm -- all of my files, including my iTunes library were finally available again.
All is not quite perfect, though. Normally a NAS drive will show up in the "Shared" area in the OS X Finder, but mine does not. I have to manually mount the drive by either hitting CMD+K or Finder -- Go -- Connect to Server... It does not show up under "Network," either. I'll let them know, but I'm a satisfied guy considering that the NAS is fixed and Vantec kept it's promise.
Here it is, the firmware. Use it at your own risk!
Vantec Nexstar LX NAS Firmware with OS X 10.5 Leopard Fix
Close the lid. Close the lid. Close the lid.
January 23rd, 2008
Am I am old codger? A strait-up square? Maybe that's why I'm bothered so much by my current pet peeve: people working on their laptops in meeting and seminars.
Oh boy, I might make some enemies with this one. Come on, guys, you know I love ya! But you know this is good for you, you know you have a problem. Consider this an intervention. Please, repeat after me: Close the lid. Close the lid. Close the lid.
I understand: meetings suck. They're not supposed to, though. Meetings have a good heart, have good intentions, great personalities. You know all those times when you say "if these damn people would just get together and talk then these problems would go away?" Yeah, those are called meetings. Luckily I work at a place that has very, very few meetings, but I'm on assignment of sorts for a while and my client has meetings, and meetings, and meetings. Plus, this week we have a seminar that is teaching us all about the business side, and I really want to learn it because the business fascinates me. But, everyone has a laptop. Throughout the presentations people are clicky clicky clicking working on emails, chat, calendars, other random stuff. Surfing the web. It kills me. Yeah, I get it: you need to get your work done. But, I wonder: how much more work would get done if people paid attention in meetings and solved problems?
TomTom, Mandy, and Software That Worked With Me
December 16th, 2007
Today we finally decided upon a gift for my father-in-law: a GPS unit. After a bit of research we settled on the TomTom One, 3rd Edition, and on impulse we bought one for ourselves, too. Being a geeky couple, my wife and I tore into it as soon as we got it back to the car and used it for the rest of the day, listening to the "Mandy" voice direct us around the SF Bay Area. It was quite a fascinating experience. Geeky and gadget-happy as I am, I have never once used a GPS device -- I was a complete user-experience blank slate, and I am happy to report that the TomTom is extremely easy to use. And, as we drove around, something very strange happened: software worked with me, not against me.
We were driving around Oakland when, despite Mandy's ample and timely promptings, I missed a left turn. As I watched my street pass into the rear-view mirror, I felt a bit of panic: I did something wrong, I broke the rules, I failed, I violated the logic. What was Mandy going to do? Would she yell at me? Scold me? Make me feel guilty? Require me to flip a nasty U-turn to appease her? Based on my usage of software, and knowing how I've coded software myself, that's what I expected. Password invalid! Username not on record! Field required! You 'freakin idiot, why didn't you accept the privacy agreement?!?! You missed that turn, dumbass!
But despite missing the turn, Mandy did not berate me with my failure: the TomTom briefly stated that it was "recalculating route," updated my path on the map, and Mandy said that I should take the next right-hand turn. And I was shocked, shocked I say, at this turn of events. The TomTom's software actually worked with me, rather than forcing me to work with it. Missed the turn? No problem! Mandy's fine with that... hey, in fact, maybe you're way's better, Joe, great idea! Left turns suck anyway. The software could have easily ruined the experience with the smallest indication of disappointment: a beep, a ding, a buzz, a flash of red... but "recalculating route" is just fine to me.
How can we apply this working-with-you idea to traditional software? Unlike the streets of Oakland, most software deviations result in dead ends, not scenic routes. If you don't log in, you can't see your bank account balance, and passwords really are required. I would really like to consider TomTom's happy-to-adjust-its-expectations approach in other software design situations that might be more flexible. Google does this successfully: Search for "tommtomm" and Google asks "Did you mean: tomtom". Well, yeah, I did, thanks!

Google is also my spellchecker, too, happily suggesting corrections to my butchering attempts to spell.
There are examples of software that seems like it's trying to work with me, but it's not. Instead, it's guessing what I want to do, and guessing wrong. Like that annoying guy who is always interrupting you to finish your sentences... incorrectly. My favorite example of this is "auto completion," a feature curse to software as diverse as Microsoft Word to the program I'm using to write this blog post, TextMate. Try wring up a lab report Chem 115 using the symbol for calaries, (c): you'll get © instead. Nice try, Microsoft, but no ©igar. Software development tools are the worst, especially when typing operators and symbols used often while coding, such as ', ", {, [, and (, which are "helpfully" expanded to be ' ', " ", [ ], { }, and ( ). It seems like that should help programmers type less, but I have yet to meet one that actually likes this feature. It has something to do with the lack of control -- we're writing the code, thank you very much, and when we're done defining that Hash, we'll type the ending } ourselves. Other code-completion actions require the programmer to "ask" for them by hitting a magic key combo, such as CTRL+Space, but not those damn symbols. Oh well, nothing''s ""perfect.""

























I'm