Tinkering in the Sideshow

Last week, Alex Payne and Mark Pilgrim both made some heartfelt arguments explaining why they think the fact that Apple's vision of the computing future as a relatively closed appliance is depressing. I agree, and I want to explain exactly why, now that I think I've figured it out.

Each post got plenty of responses. Dissenters have a wide variety of reasons for why it's no big deal, ranging from "tomorrows tinkerers will just play with different technology, like bio-mecha" (fascinating!), to a lot of people saying, essentially, "Just don't buy the appliance if you want a computer" (obvious!).

Others have made a solid point that the iPad is the next big computing paradigm. Steven Frank calls it a "New World" device. I can't help but agree, and of course powerful devices that empower instead of confuse the user are a good thing. Replacing most of the world's overcomplicated, fussy laptops with focused and reliable devices is a good thing.

Of course, general purpose, hackable computers are not really going away, not soon. Even if everyone uses an iPad for personal stuff and a Chrome OS netbook to access private cloud services for business work, there will still be a need for workstations, and I hope the people building complete personal systems out of Free Software don't give up.

However, in a response to comments on his post, Mark Pilgrim made a gloomy prediction: "People haven’t figured it out yet, but Mac OS X is on its last legs. By 2015, Apple will make appliances and developer add-ons. Not general purpose computing devices."

If you ask me, this is the real problem.

The problem is that hackable computers that I want to use could very well be fading out. Maybe Mark's overstating things, but I would not be surprised to see the Mac, and OS X, as a relatively low priority for Apple in the near future. Design and development effort and creativity will naturally go increasingly toward the more profitable platform - the one making computing finally pleasant for the normal person.

I'm worried that this will happen for third-party developers too. I'm not the only one. Back in 2002, Brent Simmons described developing user code for the Mac as "the show". Is there any doubt that Apple's mobile OS is "the show" now?

Where does that leave the rest of us who still have to or want to use a more powerful platform?

App History

I just saw Brent's post from a couple weeks ago about an App History App - I think that'd be really cool. I especially like the screen shot idea, since I love seeing posts from a developer showing what an app looked like along the progression. It's too easy to forget to document that kind of thing, and I'd love it if we saw more of these behind-the-scenes posts.

Measuring PDFs with Skim

Skim Measurement

I love it when I can guess how to do something new in a program. Skim just did this for me - I needed to figure out how big the rectangle of text in a paper I'm working on is, in inches. I looked for rulers, and then decided I'd just see if I get any size feedback when I make a rectangular selection. Turns out there's a nice feedback status line in the bottom right - clicking toggles between measurement in pts and in inches.

I like how this solves my problem without adding a lot of new UI for measurement - no rulers, no extra tool to measure length.

If your childhood memories include an SG...

If your childhood memories include an SGI Indy set up underneath the coat rack downstairs, maybe you'll get the same time-traveling wonder out of the Electropaint Screensaver. I found a Universal Build of ElectropaintOSX at vonBelow.com, and it's just how I remembered. There's a picture there, but you have to see it in motion. It's like a deck of cards circling a bug-zapper. It's beautiful.

I'd like to see a community-run version...

I'd like to see a community-run version of the Apple Design Awards.

Anyone could nominate an app, and the developer community would vote on who wins, in just a few categories.

I'm thinking the categories could be a little more user-centric than Apple's. For instance, I don't really care about best adoption of OS X technologies, but something like "best refinement of a common task" or "best default behavior" or "best scriptability" would be interesting, and something that'd be easier to use as a marketing badge...

This is just off the top of my head, so there are probably others. "Least data lock-in"? "Easiest to learn?", "Best plugin community"?

Email Death Link Dump

A recent Wall Street Journal article noted (pay link) the rise of alternatives to email. The article itself is balanced and mentions that new ways of communicating are likely to just add to how much time we spend with this stuff, not replace email and cure its problems. Whether that's good or bad depends on what you're communicating, I guess.

The article inspired a number of posts about the death of email, misunderstanding the article, but providing some interesting info. Here's a few of them. Both The End of Email Predicted, Wrong as Usual, from emailserviceguide.com, and Why Twitter and Facebook Will Never Kill E-mail from the technomix blog at FastCompany.com make some good points about some uses for which emerging 'cloud' services are just not as good as email. They mostly focus on business, which makes sense. You probably don't want another company between you and your customers or partners. Imagine if you could only hold meetings at Starbucks - hit or miss, right?

Rackspace.com's email hosting blog gives us some data in a post entitled "Is Email dead?" short answer - no. It's getting bigger.

And surprisingly, there were a good number of lucid and interesting comments in the slashdot thread about the article. Provided you filter out comments with a score of 3 and lower...

Etiquette for the resend ping.

[caption id="" align="alignright" width="120" caption="inspired - merlinmann"]inspired - from merlinmanns photostream[/caption]

From Merlin Mann's flickr stream, I noticed the book "Time Management for System Administrators" hiding under there, and went over to the O'Reilly site to take a look - there's a full google preview of the book, and it has a chapter with some good advice about handling email.

I'll highlight the one piece of advice that I see there and elsewhere - learn to let go of messages that you didn't get to in time. You don't need to waste time thinking about your email back-log.

I'm not sure if everyone's to that point yet, but I think a lot of busy people effectively are, and so I'm comfortable proposing a corollary: It's not rude to re-send an important email request to a busy person.

[caption id="" align="alignleft" width="100" caption="Peeking from that pile"][/caption]

You can't assume they'll eventually get back to you even if they read it, and they might be assuming that you'll re-send if it's really important.

We need a convention for a polite way to phrase the resent ping. I've been using "This might have fallen off the end of your inbox, so I'm resending it." The problem is how to remind them without implying that they're disorganized. Maybe a convention of putting something like [reping] in the subject line would make sense. It might give email clients (or filters) a chance to adjust the priority of a message in a way that's more meaningful than the useless priority header that only seems to get set on marketing messages and free food notices.

Better SVN workflow in Emacs

I've found a way to get the 3-column window layout with vc-dir, vc-diff and vc-log I showed in my previous post about SVN workflow in Emacs by default, without the manual setup I was complaining about.

(Update: It looks like this customization only exists in Emacs 23.)

The key is that vc-mode uses a standard function, pop-to-buffer, to create the new window for vc-diff and vc-log. This is the function that keeps creating horizontal splits that make no sense on my widescreen display. However, it ends up calling a function called split-window-sensibly, which can be customized (of course!). So, if I set the "Split Height Threshold" to nil, split-window-sensibly will never split horizontally, and then the default behavior just magically does what I want. If I start with just a single vc-dir window and invoke vc-diff and vc-log, I get my three columns!

To get to the right customization screen, just do M-x customize-apropos <ret> ^Split.*Threshold. That'll get you the two relevant customization items. Enjoy!


TextShapeView was another Cocoa Text system hack project I started a few years ago.

I made a view that displays a zoomed out view of a string from a text view, with indentation, along with a rectangle showing where the text view is in the file.

You can click around in the view to move the It also highlights the selection, and draws lines in blue if they contain the string in the NSFindPBoard, so you can see all the lines in the file that match when you use the Find panel.

This is available under a Creative Commons license, and I'd ask that if you make any improvements, you send them back to me or join the 'leverage' sourceforge project, where the code is hosted. I wanted to eventually make this into a Cocoa text plugin like my I-Search plugin.

Here is the SVN repository for the textshape code.

There was also a Source code Tarball with a demo app, shown in the screenshot below:

Stakeout info

This post is here to prevent broken links, since I've noticed people coming here from a link to my old Stakeout page.

Stakeout was a program that runs something when files change, by watching for file changes at the system level using kqueue. It was intended to support running automated tests. The 2nd version even worked with growl to pop up info about the test success or failure.

I still have the Stakeout-2 tarball available, but I haven't tested it in years.

Why? I've been working on things that take too long to test, so I don't want to run a suite every time a file changes anymore. I still think it's a useful idea.