On walkabout in life and technology

How Support via Twitter Works

Daniel Jalkut asked a question on Twitter

There are over 2000 items in my Keychain. So if I want to dump/migrate to e.g. @1Password, do I really have to approve every single access?

The gang at agilebits (makers of 1Password) respond with a set of scripts to completely solve his issue, no questions asked:

@danielpunkass https://gist.github.com/1583781

That, friends, is how Twitter support should and does work.

The Demo Bag

I’m demonstrating software this afternoon, so out comes the demo bag. It’s a Cocoon 15" GRID-IT™ Case (not an affiliate link) that I picked up at the local Apple store.

The things that sold it to me are:

  • It’s black and conservative looking so no-one knows how cool it is
  • It’s a hard-ish case, so my goods are protected
  • It’s the right size for a 15" Macbook Pro, an iPad and related cables, and no bulkier
  • But the biggest selling point of all, it has the GRID-IT™ system, no more digging around a bag to find the cables and accessories needed in a demo. Just look at it:

The only negative is that the shoulder strap squeaks in the shoulder pad when I walk. But I can live with that.

Of course, engineer me has yet to find the optimal layout of accessories on the actual grid. But the benefit of being able to see and grab an item instantly, just love it.

Annual Apple WWDC Disappointment

It’s the annual “week before WWDC” and the rumor mill is going wild. Newspapers and blogs publish wild rumors, people read them as real insider knowledge predictions, and this sets high expectations. Then WWDC happens, Apple releases some amazing products, and these same people are disappointed because the releases don’t match their wild expectations. Apple shares fall. Lamentations are written.

Happens every year.

History repeats itself.

You’d think we’d learn.

But it’s happening again, right now.

Here is what I know:

  • Apple is the best at keeping secrets, especially about upcoming product. They are paranoid about it, not wanting to impact sales of current products until the new product is ready. (See the Osborne Effect)
  • Rumor sites, pundits and the press have absolutely no idea what Apple will announce at WWDC. None at all. So they guess, make it up and create wild rumors. They present these imaginings as facts, base them on their personal expectations, previous WWDC announcements, time since product was last updated, LSD trips, the reading of entrails, or on other rumor sites (quoting the ‘source’). This is good for them as link-bait drives page-views and page-views make money and money is what the press needs. Too bad the truth falls by the wayside.
  • Apple engineers have spent the last few years working on and perfecting the products that will be announced. Years, folks, not just since the last WWDC. Some are ready, some are not. Apple will only announce something that it believes is ready (with Siri and Messages being the exceptions). If the product does not meet Apple’s stringent quality guidelines, it’s not going out the door. No matter what rumor-mongers want. How can one be disappointed with a nonexistent product that does not work anyway?
  • Whatever they do announce at WWDC will be amazing in the absence of wild rumor expectations. We should appreciate the time and effort they put into making real products instead of berating them for not meeting magical made up make believe merchandise.

So do us all a favor folks, treat the pre-WWDC rumor barrage as just the annual “lets make stuff up” circle-jerk and keep your mind clear for WWDC.

Apple engineers deserve it.

And you won’t be disappointed.

Notice of Revocation of Independence

Since it’s Jubilee day in the UK, I’m taking this opportunity to reprint a fake “John Cleese Letter to America” from 2005, otherwise known as the “Notice of Revocation of Independence”. Note that John Cleese do not, in fact, write this. It’s just a really great internet joke, and appropriate for jubilee day.

Dear Citizens of America,

In view of your failure to elect a competent President and thus to govern yourselves, we hereby give notice of the revocation of your independence, effective immediately.

Her Sovereign Majesty, Queen Elizabeth II, will resume monarchical duties over all states, commonwealths and other territories (except Kansas, which she does not fancy), as from Monday next.

Screw the Power Users

Nick Bradbury in Screw the Power Users:

We're the ones who made computers so hard to use. And we’ve done it by catering to power users - by building software for people like us instead of for people who don’t know and don’t care about all the geeky little details.

Couldn’t agree more.

Mac App Store vs Buying Direct

Jonathan ‘Wolf’ Rentzsch wrote a great article on Mac App Store vs Buying Direct, positing that application sandboxing tips the scale in buying direct.

I always prefer to buy direct because (using his words):

More Money Goes to the Developer: For a $10 application, only $7 goes to the developer when you buy it through the Mac App Store. For a direct purchase, it’s more on the order of $9.

The fact more developers weren’t encouraging customers to buy directly is a testament to how much Mac developers care about User Experience — they’re willing to forego the extra profit of selling direct to make things easier for their customers.

But this is a power user decision. I believe it’s App Store all the way for non-techies, family, friends and my mum’s computer.

The Last of the Workstations

I started this post a few days ago, before WWDC 2012, before Jim Dalrymple's famous 'No' to whether it will be discontinued (see Marco's note), when I felt that Apple had finally given up on the Mac Pro. I'm posting it now because I really do love true workstation performance, and hope that the Mac Pro product line continues this tradition.

Is the current Mac Pro the last of the true workstations? I hope not. Apple has not updated this product line for years now, yet there is nothing else on the market today that provides the Mac Pro’s badass performance and expandability in the true workstation space.

Using Mission Control Desktops

In order to reduce distractions while I am working, yet still have the benefit of having these applications running, I use multiple Mission Control desktops on my Macintosh computers. In short, I work, with focus, on Desktop 1; respond to email on Desktop 2; IM and Tweet from Desktop 3; and manage my time and activity on Desktop 4.

Here’s why and how it works.

Each desktop has a purpose

Desktop 1 is my work desktop. I only want the applications I need to perform the current task running on this desktop. So I use my Application Context Pack macros to launch and terminate the application packs I need for the task that I am performing.

For example, right now, since I am writing a blog article, Desktop 1 is running:

A little later today, I’m going to be doing some Ruby on Rails programming, so I’ll switch to the Rails Context pack, closing everything on Desktop 1 and opening TextMate, BBEdit and a Terminal for that on this desktop.

The most common activity I perform when not directly working is checking on and responding to email. So that goes on Desktop 2. On the laptop, Desktop 2 is just full-screen email. To check email, I use either ⌃→ or ⌘2 and viola, my work goes away and my email comes into view as Desktop 2 slides in. Check, read, respond, then ⌃← or ⌘1 and Desktop 1, my work, slides back in ready to continue.

Desktop 3 is for stuff I want open, but do not want to look at very often. I used to have these application on a second monitor, but found I would interrupt work all the time to monitor these. So I moved them to another desktop, and switched to a single monitor workflow. This is where I usually leave Reeder for RSS news, Messages for IM and Twitterrific for twitter, just hanging out collecting stuff until I have the time, or take a break, and look at it. If an IM comes in, or I have an inspired tweet, I can switch easily by pressing ⌃→ twice or ⌘3 once. Check, respond, read, and return to work via ⌘1.

Desktop 4 is my time and activity management desktop. It always has OmniFocus and Billings running. I like having OmniFocus running so I can use the ⌃⌥Space combo to capture a new task, yet keep it hidden so I do not have to stare at the due list. And I use Billings to capture my time for consulting work, it’s got to be running somewhere. I often leave nvAlt running on this desktop too, so I can switch to it when a call comes in and take notes.

Finally, I use the Dashboard as a quick glance screen. There, I run clocks and weather for New York, Tokyo and Sydney (the family locations), Stocks so I can see how badly or well AAPL shares are doing and instances of GAget to monitor activity on my web sites.

How to set it up

The first thing you want to do it create all the desktops. Launch Mission Control by either clicking the icon or pressing F3. Then click the add button at the top-right to create the desktops.

Tip 1: I like to set a different desktop picture for each desktop so I can, at a glance, know which one I am on. To set the picture for a desktop, switch to that desktop first, then open System Preferences, choose Desktop & Screensaver and choose the picture. Close System Preferences, switch to the next and repeat.

Tip 2: I also like to use keyboard shortcuts to switch between desktops. To do so, after you have created the desktops, launch System Preferences, the choose Keyboard, then Keyboard Shortcuts. Click on Mission Control and enable the shortcuts for each desktop.

The next thing you want to do is set it up that each application launches only on the desktop you want. This is a little more tricky:

  • Make sure the application is not running
  • Switch to the desktop you want it to launch on
  • Launch the application and wait for it to start up
  • Right-click on the running application icon to bring up the context menu
  • Choose Options, then click This Desktop

From now on, whenever you launch this application, OS X will switch you to this desktop and launch the application. Now switch to the next desktop, and do the same. Only do this for applications that you want pinned to specific desktops.

Even better, if you use Lion’s auto-resume feature, when you reboot, these applications will relaunch on the right desktop.

The workflow

My workflow is pretty straight forward now. On boot, I launch all my regular applications using a single Keyboard Maestro macro (I do not use auto-resume). All these applications open on their respective desktops, and I am left facing a blank Desktop 1. I usually check email on Desktop 2, then choose the Application Context Pack I want and start working on Desktop 1.

During the day, I switch context packs as I switch tasks, switch to Desktop 2 occasionally to check email and to Desktop 3 or 4 as needed.

This way, I gain the benefit of a distraction-free work environment with fast access to necessary applications.

Project Specific Data

One of my personal workflow bugbears has always been managing project specific data. Data like project specific contacts (who to call for what for a given project); IP’s, logins and passwords (for servers, VPN’s, specific applications, client LAN’s); and account information (hosting, third party vendors and project specific subscriptions).

I have finally nailed a way to do this that works just great for me and my markdown flow (See The Markdown Mindset). I create project specific wikis using VoodooPad 5 from Flying Meat Inc written by the great Gus Mueller (Blog: The Shape of Everything, Twitter: @ccgus).

The Old Way

One of the things I am religious about in a client engagement is documenting what I spend my time on. Each week, I open a new markdown document for each engagement in BBEdit, which is always running. As I perform tasks, I jot down what I did in these files.

This process is great as I can always tell what I did, why I did it and how I did it. I also record all the key information I needed or used, IP addresses, logins, passwords, etc. That way, whenever I need it again, I can search these logs to find this project specific data.

Notes, meeting notes, agendas, document drafts, etc are all recorded and managed in nvAlt using my file naming convention of file type, client, subject and date (See Distributed Note Taking). I regularly archive these to keep nvAlt clean, but again, the data is findable.

Any contacts or people I deal with, I add to my address book. Once every few weeks, I clean my inbox and drag all project specific emails into a project folder. These too are searchable.

Tasks, todo’s and reminders are all managed in OmniFocus. I balance my time and client engagements using my own variant of GTD this way.

Why the old way sucks

The main issue with the old way is that project specific data is stored in one of these many places, the log files in BBEdit, notes in nvAlt, address book, emails and OmniFocus. Now it’s easy to search for it, but I want this data in one place. A place I know where to go and find it. Without searching.

The second issue is that I don’t like to mix my project data with other project’s data or my personal data. Yet my address book, emails and notes all get mixed up. If I search for a server address, I get server addresses for all projects.

The other issue is that these documents are not secure. Markdown is conveniently plain text, but plain text containing passwords is not a good thing to leave lying around your hard drive or DropBox.

What I need is a place for project specific data while I continue the disciplines of OmniFocus, project logs and notes in nvAlt.

The Way that Works

I’ve been following the VoodooPad project for years. I’ve downloaded the light version and the trial many times but never had I found a reason to actually continue to use it and always deleted it.

It’s this need to collect and secure project specific data that triggered a search for a file-based, markdown based, password protected solution. And then I remembered seeing an article on VoodooPad 5 announcing the new Markdown page type.

So I downloaded the trial and created a document in my current project’s home folder. I created markdown pages for contacts and for logins and passwords, and then searched all logs, notes and emails for this data, consolidating it in the VoodooPad wiki. Then password protected the document. This solved the problem. Elegantly.

So I created another VoodooPad wiki in the previous project, and the one before that. And of course, I purchased the product.

I now have a project specific place for project specific data. I still get to use my preferred markdown format, but no longer are the project secrets and passwords strewn about in multiple locations. One place, one password, one data wiki per project. Perfect for project specific data.

The Missing Feature Fallacy

If I had a dollar for every time a potential customer told me that they would buy my product if it just had this one missing feature, I’d have enough to pay rent, in a penthouse, in New York, with a view, for a year.

The assertion is that the customer would buy the product if I would implement the specified missing feature. The counterpoint assertion is that the customer perceives the product as useless without this missing feature, and the product becomes useful only because of the missing feature.

The fallacy is that they intend to buy the product at all.

Over the past 21 years, I have sweated bullets to implement these missing features to appease these customers. Rarely have any of them changed their purchase decision. Mostly, they never had an intention to purchase anyway.

People either ‘get’ the product you have designed, and purchase it, or they don’t. It either fits, or it does not.

So why do people still talk about missing features in sales calls, and why do people still expect that the sale will happen if the missing feature is implemented. I have a few theories.

Theory #1: The customer does not want to say no

In many cultures, it’s rude to say no. So instead of saying that they don’t need your product, they make up a missing feature excuse to say why they don’t need it. In a way, the worst thing you can do for them is actually implement the feature, because now they need a new excuse, or they are forced into an uncomfortable no.

Theory #2: The customer needs more time to decide

It’s also possible that the customer needs more time to make a purchase decision. They want to poke and prod more, look at competitive products, or are too busy to decide now. And its embarrassing to state that they need more time. So they make up a missing feature excuse, hoping you’ll go away and give them more time.

Theory #3: Want’s trump needs

I’ve been designing and developing software for decades and the one truth is that customers have no idea what they really need. What they do have is a laser like focus on what they think they want, with no clue as to the cost or benefits of this want. If your product does not have this want as a feature, to them it’s missing. And they will not purchase it even though the product does everything they actually need.

Theory #4: The smarter than you customer

Some people just like to play games, especially power games. Even though they have no intention to purchase, they still want to play. To prove that they are smarter than you, they invent a missing feature, and look to see if you’ll dance to their music.

Theory #5: They really do need a different product

A butter knife is no good at cutting steak. If I make a butter knife, it’s quite silly for me to try to sell it to a steak eater. To them, the ability to cut steak is a missing feature. In fact, we’re talking about different products.

Theory #6: They really do need the missing feature

In the rare cases that it happens, they really do need the missing feature, and quite rightly do not purchase a product that does not have it.

Fact or Fallacy

The issue is determining when the missing feature is a real need and when it’s a fob off. Empirically speaking, based on the odds, it’s most likely a polite fob off. Hence the fallacy that if you implement it, you’ll make the sale. In the rare cases that it is a fact, you need to detect it, but it’s still not certain that the sale will take place. Other factors, such as cost, time, attention, and changing business needs affect the purchase decision as well.

It is better to spend your time selling your product to those who need it than it is to implement the missing features for those who won’t buy it in the first place. Or better yet, commit to implementing the missing feature after they purchase. If it’s a real missing feature, real money will change hands. Until then, assume the missing feature fallacy holds.