Andrew's (Tumbling) Interwebdiary

A Hideous Triumph of Form and Function

Jun 28
Another derp moment from CNN!

Another derp moment from CNN!

Jun 21
Klout believes I’m influential about it. I wonder if that means I get super-admin powers?

Klout believes I’m influential about it. I wonder if that means I get super-admin powers?

Mar 15

Nov 5

Cocoa, CoreData, and XCode are sucking my will to live

Recently I tweeted this and got a reply from @pilky asking what in particular was bothering me. Since I had more than 140 characters of gripes, here we go.

Before I get into full rant-mode:

  1. I’ve liked my iPhone development experience and Cocoa is a compelling platform.
  2. I’m willing to admit that I might be spoiled. And before you jump to conclusions, yes I am a Ruby developer and most of my experience is in web apps. It’s true, I’m one of them.
  3. I know things aren’t this way just because people at Apple want me to suffer. They’ve done some impressive things and on the whole, I have a positive opinion of the development environment.
  4. More than likely, there are perfectly acceptable solutions to some if not most of these. However, I have been following the demo applications fairly closely, so if there’s something better, it’s not exactly obvious.

But, I do have to vent:

Cocoa (Objective-C too, I guess):

  1. If I want to add a simple accessor, I have to make changes in at least four places! Twice in the header: the instance variable and the @property declaration. Then twice in the implementation file: once for the @synthesize declaration and then release it in the dealloc method (granted garbage collection would help, but this is the iPhone). There’s no way to be DRY when the language makes you repeat yourself. When are these lines going to be different? Why can’t there be a terse standard behavior and an expanded 4+ line version for when efficiency or special use cases demand it?
  2. Ridiculously long method names. Sure code completion helps writing them, but what about reading them? How many times do I have to read tableView:(UITableView *)someTableView cell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath canHasCheeseburger:(Cheeseburger *)cheeseburger?
  3. Namespacing. Ain’t got it. UI, NS, CL, CF, etc. Just don’t like it.
  4. Numeric constants with tremendously long names. Same complaints as the last two, however given numbers it’s even harder to debug, especially in callback functions when you’re not sure what the API is actually doing.


  1. [NSEntityDescription insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context] is a convenience method for creating a new NSManagedObject. That’s convenient?! It’s even less convenient when it silently produces a nil instead of an object because something is wrong with the NSEntityDescription.
  2. No general purpose data viewer. For all of the really excellent development tools, why can’t I specify an xcdatamodel file and a data file and be able to browse it? Best I could get was cd to ~/Library/Application Support/iPhone Simulator/User/Applications/{long application id}/Documents/ and open the sqlite3 command to open it. Given that CoreData does some funky things with it’s DB schema, I’d rather not resort to this. And god help me I were using more of CoreData’s immense and impressive capabilities.
  3. How many lines does it take to do the equivalent of SELECT * FROM my_table ORDER BY created_at DESC? I’m counting 12 not including whitespace. And that’s without a predicate. Now, this isn’t just annoying. And before someone says, “Oh look at this guy he doesn’t like typing stuff—what a dumbass” realize how hard this is to query your datastore from a debugger. Wouldn’t it be nice if there was some kind of general purpose data viewer?


  1. Lack of language specific indentation rules. Objective-C uses hard tabs/4. Ruby uses soft tabs/2. And now I have an iPhone app that is soft/2 because I forgot to switch after playing around with MacRuby. :-(
  2. Autocomplete is sketchy sometimes. The normal argument for why wordy APIs are fine is that “good” IDEs will make it all better. But when I have an instance variable with the same name as a class, autosuggest gives me the class name.

Well, that felt good. Did anyone actually read all of this?

Apr 1

Seventeen Years Ago in Hampton Roads

Excerpt from today’s Ledger-Star

Let’s take a moment to remember an event that occurred on this day 17 years ago: the day Mt Trashmore exploded. Thanks to Tommy Griffiths and Henry “The Bull” del Toro of WNOR, the only members of the local media with the courage to report the seismic anomalies and chemical irregularities, thousands of lives were saved. Though they were warned of the panic that would ensue, their commitment to truth and public safety set an example for local news to come.

"I told them, ‘The people that live around [Trashmore] are just a bunch of ignorant rednecks who’ll eventually die in meth lab explosions or tractor demolition derbies’," said WAVY-TV 10’s Alveta Ewell. “‘Saving them will only forestall the inevitable’. But Griffiths and del Toro showed me the true measure of a newsman that day and I have striven to atone for my words ever since".

Others were not so flattering. “For their defiance of the Council of The Trapezoid [the cabal of local news organizations in Hampton Roads], they should have been thrown into the Pit of Argonzac!” said Jim Kincaid, formerly of WVEC from his basalt tower in Elam, Virginia. “But that dastardly FCC stepped in and inflicted their own mediocre punishment before we could act. Oh, the agonies we had in store for them! When a man spends seven months with a broken back in a Vietnamese hospital, he learns a lot about the peripheral nervous system.”

In closing, we have only to say thank you, Tommy and “The Bull”, for you service to our region.

Keys to the cities of Norfolk and Virginia Beach were presented by Mayors Fraim and Sessoms to Griffiths and the del Toro’s widow, Glenda “The Cow” del Toro.

Happy April Fool’s Day to everyone back home.

Feb 27

Mysterious DM-Salesforce Issue Solved!

I did my good turn for the day and wrote up a Salesforce issue on the dm-salesforce project wiki that held me up for an hour or so.

If you’re trying to use the ruby datamapper adapter dm-salesforce to connect to a sandbox and you get “INVALID_LOGIN: Invalid username or password or locked out. (SOAP::FaultError)”, you should take a look. The thing that really held me up was having to clean out my old version from ~/.salesforce.

Feb 11
From 15 or so years ago…  It’s eerie isn’t it?

From 15 or so years ago… It’s eerie isn’t it?

Feb 2

If your not familiar (warning: irritating singing ahead) with Microsoft Songsmith, it’s an application that adds background music to any song (or any spoken word for that matter).

Overall, the instrumentation is mediocre for a human, yet impressive enough for a completely automated process. I don’t think it’s going to put any musicians out of business, but it’ll enable scores of teenagers and emo-kids to record their “music” without running it through the filter of public scorn first. I fear for us all.

Soooo, how does it compare to the real thing? Some intrepid youtubers are trying to find out. Crazy Train sounds ridiculous. White Wedding actually makes a very interesting blue-grass murder ballot. Eye of the Tiger sounds like Against the Wind. Johnny Cash’s Hurt is ruined forever. And there are more…

Original report and more information from the Christian Science Monitor.

Dec 18

Dec 8

Page 1 of 9