Easy Gradient Backgrounds for UITextViewCells

When you create a table-view-based iPhone app, by default you get tables with plain white rows. But all the cool kids are making apps with 3D-ish gradient backgrounds. You want to make those kinds of apps too, right? This article explains how.

"Speak Count of Words on Clipboard" Automator Service

As part of my "write a blog entry every day during November" commitment, I considered imposing a minimum word limit for each entry. I've decided against that, because I don't want to feel pressure to add filler, but before deciding that, I created an Automator service that would help me to count words.

Not Quite NaNoWriMo


I've often dreamed of participating in NaNoWriMo, the National Novel Writing Month, in which people pledge to write a novel during the month of November. Unfortunately, I'm not really a novel-writing guy. I could maybe write a short story or two, but I'm just not enough of a writer to generate 2,000 words of fiction per day.

So, instead of doing that, I'm going to commit to do these things during November:

  1. Publish a blog article every day.
  2. Get a new iPhone application into the App Store.

This article does not count as a daily blog entry, as it is really more of a meta-entry. The real blog entries need to be programming-related or computer-related.

This is why you'll be seeing a lot of blog entries from me this month. Please feel free to call me bad names if I skip a day.

Getting Into iPhone Development

I know some people who are interested in getting into iPhone application development. There is a lot of advice out there. Here's my advice for experienced developers who start out knowing nothing about iPhone or Cocoa development:

After that, you'll be able to delve into the other things you need in Apple's documentation. I'd recommend learning all you can about Core Animation and Core Data, but it depends a lot on exactly what kinds of apps you want to write.

Finally, write lots of little iPhone apps before you start on that big important app you really want to write. The language and tools are a little strange at first, but the more you use them, the better they feel.

A Little Service That Converts Files to EPUB Format

To make it easier to put content on my Sony Reader, I've created a service, using Automator, that will invoke calibre's ebook-convert tool on files selected in the Finder.

Building Emacs from Source for Mac OS X

There are a few binary Emacs packages for OS X floating around out there, but I always build it myself from the sources. This usually results in an Emacs that works the way I expect, rather than the way some "helpful" distributor thinks it ought to work.

I'll assume you have the developer tools and bzr installed, and know how to open Terminal and type some commands. Here are the commands you need to type:

bzr init-repo --2a emacs/

cd emacs

bzr branch bzr://bzr.savannah.gnu.org/emacs/trunk/

cd trunk

./configure --with-ns

make install

When this is complete, you'll end up with Emacs.app in the nextstep subdirectory. You can run Emacs.app from there, or copy it to your Applications directory.

Update 2010/10/29: Discovered that the Emacs team now uses Bazaar (bzr) rather than CVS. Updated the instructions accordingly, following advice from http://www.emacswiki.org/emacs/EmacsForMacOS and http://www.emacswiki.org/emacs/BzrForEmacsDevs. Also, found what appears to be a faithful binary distribution at http://emacsformacosx.com/.

The iTunes UI Sucks

I like most of Apple's products, but iTunes is a very dark corner of the Mac universe.

For example, here is what you have to do to download updates to your iPhone apps:

  1. Click the Applications link in the upper-left corner of the navigation pane.
  2. Move the mouse over to the lower-right corner and click the tiny, tiny Check for updates button.
  3. Move the mouse to the upper-right corner and click the Download All Free Updates button.

Three steps, requiring moving the mouse pointer all the way across the screen between each. There is no automatic-update feature.

There is probably some way to write an AppleScript to automate this, but AppleScript sucks too.

Do a web search for "iTunes sucks", and you'll find a lot more examples.

To paraphrase Bjarne Stroustrup: There is software everyone complains about, and software nobody uses. One could chalk up the iTunes hate to the simple fact that so many people are forced to use it whether they like it or not. But iTunes really does suck. I wish Apple would do a complete re-design of its UI, and make it act like an Apple product.

We Loves the Preciousss

It's not always easy to be an Apple fanboy: read "In Nomine Jobs, et Woz, et Spiritus Schiller" by Merlin Mann

I've installed Snow Leopard on my old 13-inch white Macbook (which I don't use for anything important). I've had no problems with it, but I'm going to wait a month or two before upgrading the Macs that I rely on. I want to wait until Apple releases a patch or two, and I need to let some dinosaurs catch up.

Snow Leopard is a nice upgrade which is definitely worth the thirty bucks, but for most users, it doesn't provide any benefits that justify the pain of being an early adopter.

UPDATE: Have installed Snow Leopard on my work laptop. No problems, except that my HAL 9000 screensaver doesn't work anymore.

Menubar Countdown 1.2 Works with Snow Leopard

Menubar Countdown, my Mac OS X countdown timer application, has been tested with 10.6 Snow Leopard, and it seems to work just fine.

(But if anyone finds otherwise, please let me know.)

MINI Cooper S Convertible Review

My wife and I bought a MINI Cooper S convertible almost a year ago. These are my thoughts about it:

The MINI Cooper convertible is the Apple Macintosh of cars. It's very expensive in comparison to other models with similar performance and features, and it has a lot of annoying flaws, but people who own them absolutely love them. It is the only car I've owned that has delighted me.

First, I'll note that I am not a "car guy." I won't say anything about horsepower, torque, zero-to-60, how it handles on a race course, or how it compares to any of the bazillion other cars on the road.

I'll start with what I don't like. It's small. Two adults fit in the front seats fine, but the rear seat is basically unusable. The trunk is almost unusable as well. We've had to cut shopping trips short because we knew we were carrying more shopping bags in our hands than would fit in the car. A full-size suitcase won't fit in the trunk, so think "duffel bags" if you want to do any traveling.

While it's small, you don't get a lot of the advantages of a small car. We only get about 26 MPG, in mostly highway driving. It's short nose-to-tail, but is about as wide as a typical car, so you can't squeeze into those parking spaces that other cars have to pass by. The turning radius is a lot wider than you would expect.

With the convertible top up, visibility is terrible. You can't see much out the rear window, due to the roll-bar thingees on top of the rear seats, and the blind spots in the rear quarters are huge. I often have to put my chin down on the steering wheel to see traffic signals, due to the low ceiling.

The GPS system sucks.

But with all those problems, I'm still thrilled with it.

Despite its small size and tiny engine, it feels more like a mid-size car. It's very stable, and takes corners well. The automatic transmission works pretty well in most circumstances, and switching into the semi-automatic mode is great when driving on twisty mountain roads like the one that goes up to my house.

And it has this magical aura that makes people smile. People come up to me in parking lots and ask about it. Other MINI drivers wave at me on the road.

So, if you just want practical inexpensive transportation, stay away from the MINI. But if you want to be happy when you're driving, give it a try.

P.S. Don't buy a MINI or any other car from Global Imports BMW in Atlanta. Those guys suck.

Syndicate content