Chibimagic's Weblog

Archive for March 2009

Twitterrific is named after “terrific”, fine. But it’s a completely horrible un-terrific name and makes me think for 5 minutes every time I try to spell it. Terrific’s key consonants follow an alternating single-double-single pattern: t-rr-f. So does Twitter: t(w)-tt-r. Twitterrific doubles the t in terrific. So the corresponding alternating pattern would be double-single-double: twitteriffic. But that’s not how you spell terrific. Twitterrific’s key consonants are single-double-double-single: t(w)-tt-rr-f. Why would you do that do my muscle memory? Why would you make me think for 5 extra minutes and waste my time every time I want to write your name? I am angry that Twitterrific tries to be just a little too clever and ends up being not clever enough.

I hate everything else about Twitterrific now too. I hate how it doesn’t look or behave like a Mac app. I hate how it always copies the wrong thing (making me think about it). I hate how it goes to the person’s website instead of their Twitter page when I hit the right arrow key. I hate how there aren’t keyboard shortcuts for the things I want to do. And most of all, I hate how it logs you out of Twitter in the web browser, making you ever more dependent on it and its stupid ugly face.

Since the iPhone SDK came out a year ago, Apple seems to have completely abandoned the little niceties of iPhone web app development.

They’ve had support for apple-touch-icon.png and <link rel="apple-touch-icon" /> for a while for making web clippings from MobileSafari. Some time later, they added apple-touch-icon-precomposed.png and <link rel="apple-touch-icon-precomposed" /> so you’re not forced to use Apple’s box and glass effect on your icon.

In iPhone OS 2.1, they added support for <meta name="apple-mobile-web-app-capable" /> so web clippings look more like native apps by disabling the toolbars in MobileSafari. I finally added my PHP/AppleScript thingy to my home screen as a web clipping, but it’s dissatisfying whether or not I use this meta tag.

If I use it, it doesn’t preserve my digest authentication, so I have to log in every time I load the page. Also, after authentication, everything I click on opens in a new window in MobileSafari instead of the fake native app. If I don’t use the meta tag, it opens fine in MobileSafari, but doesn’t do the nice JavaScript scroll in my body tag (<body onload="window.scrollTo(0,1)">) which hides the top toolbar.

So, I am mildly unsatisfied with the state of web apps for the iPhone. Of course, it would be nice too if Apple provided the graphics and CSS to make fake web apps, but apparently they’ve entirely abandoned the whole web app game for their native SDK. I don’t blame them, because native » web, but in my case, it’s an easy way to write a custom solution for a personal problem.

It’s cold outside
There’s no kind of atmosphere
I’m all alone, more or less
Let me fly far away from here
Fun fun fun, in the sun sun sun!

I wanna lie
Shipwrecked and comatose
Drinking fresh mango juice
Goldfish shoals nibbling at my toes
Fun fun fun, in the sun sun sun!
Fun fun fun, in the sun sun sun!

Share

I hate these little spammy share links that show up everywhere now. Sure, the individual icons are kind of cute, but overall they’re ugly and annoying for a variety of reasons.

One, it shows you don’t know who your readers are. Are they the type of person that’s more likely to have a membership on LinkedIn or MySpace? Reddit or Twitter? If you don’t know who you’re writing for, you’re probably not doing it very well.

Two, it’s a distraction. Even if the person reading your article is active on one of these networks, they still have to scan through every icon to find the one they want. Takes effort = makes them less interested. The more icons you have, the more effort it takes. And the lower the signal-to-noise ratio becomes for your site. This is worsened by the fact that sites with a large collection of share features usually also make very short posts.

Three, why do we have a million ways of sharing things on a million different sites? These things are only useful if people are actually using them. I’m just waiting for the bubble to burst and most of these services to go away.

And finally, it shows you’re dumb, because these links don’t work anyway. Sure, that one article will get better placement on a variety of sites and more people will click on it, but these marginal people that you get are also less likely to care about what you’re saying. You’ll get bored ADD people clicking around and not really reading. These share links tell people that you care more about meaningless clicks than engagement and understanding, so the only readers these links draw in are the kind of people that spam and first post and misspell and insult. And then you start writing crappier things because you get discouraged by your crappier readership. It’s like the broken window theory, and this is your first crack.

Don’t let your neighborhood get destroyed.

I realized that the other solution was less than ideal. Every time I downloaded a new podcast or listened to an old one, all the tracks would change, and they would all have to be recopied to my iPhone. So! New! Improved! AppleScripting!

tell application "iTunes"
my setTrack("Mac OS Ken", 1)
my setTrack([Apple podcast 1], 2)
my setTrack([Apple podcast 2], 2)
...
my setTrack([Trivia podcast n-1], 8)
my setTrack([Trivia podcast n], 8)
end tell

on setTrack(theTitle, trackCount)
tell application "iTunes"
set trackList to (every track in playlist "(Podcasts)" whose album is theTitle)
repeat with aTrack in trackList
set track number of aTrack to trackCount
end repeat
end tell
end setTrack

Every category of podcast gets the same priority, and this makes it a lot easier to read and modify. Win!

I have a smart playlist in iTunes called “(Podcasts)” that contains all the podcasts I have not yet listened to. I have a preferred podcast listening order: Mac OS Ken, Apple/Mac podcasts, technology podcasts, news podcasts, tips podcasts, language podcasts, and general interest/trivia podcasts. I realized I was spending way too much time reordering the podcasts, so I wanted to write an AppleScript that sets the order automatically. To set the order:

set theOrder to (every track in playlist "(Podcasts)" whose (album is "Mac OS Ken"))
set theOrder to theOrder & (every track in playlist "(Podcasts)" whose (album is [Apple/Mac Podcast 1]) or (album is [Apple/Mac Podcast 2]) or ... (album is [Apple/Mac Podcast n]))
...
set theOrder to theOrder & (every track in playlist "(Podcasts)" whose (album is [Trivia Podcast 1]) or (album is [Trivia Podcast 2]) or ... (album is [Trivia Podcast n]))

where [something] is the name of a specific podcast. For a regular playlist, you could:

repeat with aTrack in theOrder
duplicate aTrack to playlist "(Podcasts)"
delete aTrack
end repeat

This works because everything in theOrder will be a reference to the specific track in the specific playlist, not the track in your general music library. However, you can’t manually add things to a live-updating smart playlist. So, I wrote the order to the track number instead. Since podcasts are just normal mp3 files and I don’t care about them after they’ve been played, I don’t mind changing the metadata:

set i to 1
repeat with aTrack in theOrder
set track number of aTrack to i
set i to i + 1
end repeat

Set the playlist to autosort by track, and I’m just an applescript away from a perfectly sorted playlist! ♥ @ AppleScript!

The iPhone is the ultimate jogging companion. Listen to music, track your time, and call for help when things seem sketchy. Now if only credit cards and keys would hurry up and merge with cell phones already.