jb… a weblog by Jonathan Buys

Principle of Least Software

April 3, 2011

Use only the software that you need. No more, no less. Choose one application for each task, and become an expert on that application.

I have two types of applications that I’ve had a hard time finding a favorite: web browsers and text editors. When I first started writing, I wrote everything in Microsoft Word. When I needed to learn vi for work, I unconsciously relegated it to headless servers. Later, when I had a brief fling with Linux on my work PC, I used, and despised, Open Office. Last month I found that I had purchased or installed every major word processor and text editor for available for the Mac.

I’ve had Word, Pages, Mellel, Mariner Write, Ulysses, AbiWord, Bean, WriteRoom, OpenOffice, MacVim, and TextMate. To top it all off, I’ve coupled the last two with LaTeX for “document generation”.

Browsers are a similarly sad story. My default browser as gone from OmniWeb to Camino to Safari to iCab to Shiira to Firefox to Flock to Sunrise to Stainless to Chrome to Opera and finally back to Safari.

All of this, everything I wrote about each of those applications above is ridiculous. I have the utmost respect for the developers, but the honest truth is that I simply do not have the time or desire to keep trying new software.

Which leads me to the “Principle of Least Software”. The less third-party software you install, the less likely you are to run into problems when upgrading. Apple has brilliant engineers working for them, and their bundled applications that come with OS X set the bar for competing apps. Safari is a perfectly good web browser; it’s fast, loaded with features, and supports extensions. That’ll do, thanks.

Another perfectly good application bundled with OS X is TextEdit. The humble text editor that could. When I am writing, I need only for the text to be rendered in a pleasing font, and for standard OS X keyboard shortcuts to be recognized. Everything else is gravy. I write my blog posts in Markdown, so most of my writing looks like plain text anyway. Markdown syntax is so minimal that having keyboard shortcuts for it is almost silly. How hard is it to put an asterisk at the beginning and end of a word? Or to enclose a word in brackets and follow it with a URL in parentheses? Not hard, and I’ve been chasing my tail on these “productivity hacks” for far too long.

I’ll keep Word around, because, face it, sometimes you just need Word. For everything else, I’ll be sticking with TextEdit and Safari. I’ve been to the fancy TextMate clubs, and the exclusive Vim resorts. I’ve been to the Firefox festivals and Chrome love-ins. I’ve been there. I know exactly what they can do, and I’m no longer impressed.

Use only the software that you need. No more, no less.

I need only one text editor, one web browser, and a handful of other single purpose apps. What do you need?


Keyboards and Wheels

March 29, 2011

I have one wish for the next major iOS release: full keyboard support. The iPad works with the bluetooth keyboard, and the original iPad came with a keyboard dock, but support for doing things other than basic text is sparse at best. My wish list is small, but meaningful. I would like to see support for all the keys on the keyboard, the ability to command-tab between running applications, and arrow key navigation for apps that include table views.

When I purchased my iPad last summer, I also bought the bluetooth keyboard and the dock. My intention was to be able to use the iPad as a writing device and a terminal for systems administration tasks. Using the iPad for writing works well, but trying to use the keyboard to SSH into a server and manipulate text turned out to be far more difficult than I thought. I use vi constantly, and have the shell on my servers configured to accept vi keybindings, but the iPad did not recognize the esc key, which meant a lot of moving back and forth between the keyboard and touching the screen. For a touch typist, one who has the vi keybindings embedded in muscle memory, this was unacceptable.

The second thing I’d like to be able to do is switch between apps quickly using the keyboard. The existing key-combo command-tab seems like a natural fit for this task. Imagine writing an article, or an email, and needing to reference the text of a web page. If you had the device in your hands at the time you could double-click the home button (or use the fancy new gestures) and tap Safari. If you have the iPad in the dock and are writing a longer email, reaching up from the keyboard to double-click the home button is frustrating.

Bringing up any application with a tableview in horizontal mode should allow the user to navigate that tableview using the arrow keys. It’s been this way on the Mac for as long as I can remember. I can see perhaps needing to touch the screen to select the tableview (if it doesn’t already have first responder status), but after that, the arrow keys should be able to select the next and previous items in the table. For extra points, an app could support right arrowing into the main content area.

Its clear that Apple has put years of thought, experimentation, trial, and error into the touch screen experience. Using the iPad is superior in most ways, but not in all. Apple giving us the iPad was almost like suddenly having a car that could fly, but for the few use cases when you need to drive on the roads (like landing, maybe?) having fully functional wheels, instead of, say, tank tracks, makes the experience much better. Tactile response to keyboard input is necessary to truly lose yourself in the task. Its why the first thing we learned as high schoolers in typing class was to type without looking at the typewriter. We looked at the sheet of paper we were transcribing, and learned to only look at the typewriter when we could feel that we made a mistake. Using the iPad without the hardware keyboard, there is no tactile response, no way to feel the F and J keys, so you are forced back to the first days of learning to type, and having to look at the keyboard, hunting and pecking.

Physical keyboards are the closest thing we have right now to a perfect input device. The more time and attention that is given to learning how to use the keyboard, the faster and more accuratem typing becomes. When you expand your use of the keyboard to include hotkeys, using a mouse becomes more of an annoyance than a necessity. A virtual keyboard is a step back in performance and usability.


Quicksilver and Go2

March 21, 2011

Go2 1.2 is in review, and when it is released it will bring a new feature that I’m hoping will speed up access to bookmarks considerably: Spotlight integration. Spotlight is amazing technology, and one of the biggest advantages OS X has over it’s competition. The Spotlight search and matching algorithms can index millions of files, which makes it a perfect companion for people who have anywhere from hundreds to thousands of bookmarked server connections in Go2. So far, my own menubar indexing gets a bit choked up at around 1500 bookmarks or so. It still works, but no where near as fast as Spotlight.

How Go2 makes its bookmarks available to Spotlight is a bit strange. When the user selects the option in the preferences, Go2 creates a folder in the users’ Public folder named “Go2Data”. Go2 exports each bookmark as a .go2 file inside the Go2Data folder as a basic XML file. I chose to put the bookmarks in the Public folder because, for one, the folder is not normally used, and two, the Library folder is, for all practical purposes, invisible to Spotlight. I even asked about this on StackOverflow, and it seems there is no way to force Spotlight to index files inside the Library folder, which is unfortunate because that would be the perfect spot to put the .go2 files. However, I believe Public is a good alternative, we will see if Apple agrees by approving the 1.2 update.

A secondary, and unexpected, benefit from Spotlight integration is that Quicksilver can now index and launch Go2 bookmarks. Simply add the Go2Data folder as a custom “File and Folder Scanner” object to the Quicksilver Catalog, and ensure that you select a depth of 1 for the folder. I’ve been using this myself for a few days and I’m happy with the speed and the result matching.

As long as nothing goes drastically wrong, Go2 1.2 should be available in the Mac App Store in a few days.


Fragility of Free - The Brooks Review

March 15, 2011

When you pay for software/services upfront you know how much it is going to cost right away.

via: Fragility of Free — The Brooks Review

Great post from Ben Brooks on why he likes paying for things. I agree, I much prefer an honest transaction, where I am the customer, and I’m giving them money for goods or services. Of course, this is also a good place to draw a line between free and open source. If it’s free, you are not the customer, you are the product being sold. This applies to web services too. Gmail is free, but it is not open source.

In Ben’s theory, if Gmail were to be shut down, there’s nothing we could do about it. If it were open source, we could open up our own Gmail on our own servers. Furthermore, if Tweetie were open source, we could create a fork without the #dickbar. I think what Ben is really concerned with is the continuance of software that he enjoys, which is where I agree with him, and why I prefer my software to either be paid-for commercial versions or open source. Both models have a greater chance of sustainability than “free”.


Back in Black

March 14, 2011

There used to be a line between having a Mac, and owning a Mac, and that line was drawn with Quicksilver. Quicksilver changed the way I thought about using my computer in a very fundamental way. It led me to think more about telling it what to do, instead of clicking about asking it to do something. It led me to think about mastering my tools like a craftsman, choosing my tools with great care and thought. Quicksilver was my first step towards owning my Mac.

At first, Quicksilver is a difficult application to get your head wrapped around. At least it was a few years ago. It’s an application launcher, a file browser, a mail client, a basic text editor, a database manager… and more. What truly sums up an explanation of Quicksilver is that it’s a unified interaction paradigm for the Mac. You speak to it in sentences, tell it what you want, and then what you want done with it.

Here’s what I said about it in a paper I wrote in 2006:

Using a Mac can be made much more productive by installing the free application named Quicksilver from Blacktree. Quicksilver runs in the background and waits until the user presses a pre- defined key combination. Once the main Quicksilver window is available, the user types in the first few letters of what he is looking for, followed by a tab, and then the first few letters of what the user wants to do with the item selected. For example, to launch the Safari web browser, the user could type “S tab return” and the application would launch. Quicksilver is a major leap forward in human computer interaction, however it currently has a very steep learning curve and takes some getting used to.

I’m so glad to see Quicksilver back in active development again. I’ve looked at the source code, and it’s a daunting task, but it seems like the group who’s adopted it is a dedicated bunch. They’ve set up a twitter account, and a blog; both of which are worth following.

There are so many things that Quicksilver does that I’ve forgotten how much I’ve missed them. Appending a text file on the fly, adding an event to iCal, shooting off a quick email, searching the web at DuckDuckGo, keyboard access to an apps menu, moving files, printing files, the list goes on, and on.

I suppose this is a testament to open source, that a dead project can be resurrected by a few who want the app to continue. Here’s hoping that it not only continues, but thrives.


Please Give

March 11, 2011

The devastation from weather related disasters in the past few years has been overwhelming. Japan was ready, as ready as you can be for a disaster of this scale, Haiti was not, nor was Christchurch.

If you’ve thought about giving to Red Cross before, now is a good time. Text REDCROSS to 90999. Information


Dazzle Them With Science

March 11, 2011

It’s not really a science, it’s more of an art. If you are careful, and attentive, you can see when someone starts working this particular art form. In a technical discussion, bit by bit, you start getting lost in the conversation, wondering how we got on to this topic, when it doesn’t have anything to do with what needs to be accomplished. Then you realize that the same guy has been talking for the past few minutes, and he’s been working his art, casting his spell, and the whole room has fallen under it. He’s convinced everyone in the room that he knows so much more, that his knowledge on the topic is so vastly superior to anyone present that no one is on the same level. Which is exactly where he wants your mind to be, because the next step after that is agreeing with whatever he wants to do.

There are several problems with the scenario described above. First, that the culture of the organization would allow a meeting to continue when the topic has been lost, and confusion has taken over. Second, there’s a good chance that the guy throwing out acronyms and buzz-words doesn’t understand the topic, or how the acronyms he’s spewing relate to the topic. He probably has a vague concept, he looked it up on Google, maybe even read about someone else doing it on TechCrunch, but he’s missing the deep understanding of the subject to speak with real authority on the matter. Einstein said:

If you can’t explain it simply, you don’t understand it well enough

If things are getting deep and confusing, and the guy doing all the talking is talking too fast, and you start to see the same looks around the room, it’s time to take a step back. It’s time to say “wait, stop, I don’t understand how we got on this topic, let’s get back to how we can fix X”. It is at this point you see what the guy is really made of. If he’s good, he’ll respond by saying something along the lines of “ok, no problem, let me walk through it a bit slower so everyone is one the same page”. If not, he’ll try to push back, either with intimidation or more technical jargon, or he’ll change the subject, which might be best for everyone.

The most important problem that should be addressed directly is that the guy doing the talking is behaving just like a schoolyard bully. Like any bully, the one and only way to deal with him is to call him out. Make your stand, demand an answer. Of course, making a stand means that you are going to have to prepare first. You can’t stand up to him if you don’t have a solid grasp on the situation. But, if you do, if you know your tech inside and out, by all means call him out the first time he starts throwing around terms that you know don’t belong. After a few times, he will start to acknowledge your presence a little differently. He’ll start to think a little harder, and choose his words a little more carefully. An end result that will benefit everyone involved.


Apotheker Seeks to Save HPs Lost Soul With Software Growth - Businessweek

March 9, 2011

Starting next year, every one of the PCs shipped by HP will include the ability to run WebOS in addition to Microsoft Corp.’s Windows, Apotheker said.

via: Apotheker Seeks to Save HP’s ‘Lost Soul’ With Software Growth - Businessweek

Well, this will be interesting. Porting WebOS, which is Linux based, to run on x86 hardware should not be too difficult. What will be difficult is managing the user interface. How are they going to integrate the touch based UI of WebOS with the standard PC?

Apple is solving some of these problems with new gestures and interaction changes with OS X 10.7, but they are not porting iOS to the Mac.

Also, dual-booting is a pain. I used to dual-boot Windows and Linux, before I started using my Mac at work, and the problem I’d run into was that I never knew where my data was. Did I save that file in the Linux partition? Did I accept that meeting invite on the Windows side?

I’m going to assume that HP plans on including WebOS as an option for fast, almost instantaneous boot to use a limited subset of the computers capabilities, and not as a full-blown Linux install. In that case, no one will ever know its there, and will continue to boot straight into Windows.

If HP is really serious about this, I’d suggest that they not install Windows on their machines at all, and ship them with an enhanced, more desktop ready, version of WebOS as the one and only operating system.


Anatomy of a Crushing

March 8, 2011

We charged money for a good or service

I know this one is controversial, but there are enormous benefits and you can immediately reinvest a whole bunch of it in your project sips daiquiri. Your customers will appreciate that you have a long-term plan that doesn’t involve repackaging them as a product.

via: Anatomy of a Crushing (Pinboard Blog)

Exactly. I’ve said before that I prefer an honest transaction with a company, where I am clearly the customer, and am not volunteering to be part of the product being sold.

This post by the owner of Pinboard is full of interesting information. For example, the service is hosted on three (now four) large, dedicated HP servers, which, according to Netcraft, are running Ubuntu and Apache. His database servers are MySQL, with a simple Master-Slave replication setup. I especially like this part:

It has become accepted practice in web app development to design in layers of application caching from the outset. This is especially true in the world of Rails and other frameworks, where there is a tendency to treat one’s app like a high-level character in a role-playing game, equipping it with epic gems, sinatras, capistranos, and other mithril armor into a mighty “application stack”.

I had just come out of Rails consulting when I started Pinboard and really wanted to avoid this kind of overengineering, capitalizing instead on the fact that it was 2010 and a sufficiently simple website could run ridiculously fast with no caching if you just threw hardware at it. …

If you offer MySQL this kind of room, your data is just going to climb in there and laugh at you no matter what kind of traffic it gets.

Over-engineering is something we deal with at my workplace, and something I’ve been guilty of myself. Which is part of the reason I’ve been looking at moving away from virtualization, clouds, and other buzzwords and returning to the simplest, most reliable setup possible. A concept that Pinboard has nailed.


Our Lean Startup

March 7, 2011

There is no profit margin on mediocre. While every company including ours has its hiccups as it grows we set the bar on day one to offer a premium service and priced it as such. We are unapologetic about it.

via: [Our Lean Startup   WordPress Hosting Blog Page.lyWordPress Hosting Blog Page.ly]1

I’m always wary of free services. I like knowing who I’m dealing with and what our business relationship is, preferably with me being the customer, and them providing me with goods or services in exchange for money. Very simple. Services based on advertising revenue will eventually start preferring the advertiser over the user of the service.

For example, take the recent Twitter app update. Twitter is a great service, fun to use and interesting in how it allows you to connect to people. But, it’s free, and since its free we have never been Twitter’s customers. As such, the recent update introduces a new “quickbar” which annoyingly obscures the tweets we want to read with a trending topic we couldn’t care less about. This happened because Twitter needs to please the people who are giving them money. I would much prefer the ability to pay for the service. Paying for Twitter would reduce spam and refocus the company on what really matters; people.