Mark Damon Hughes Topic: News [Parental Advisory: Explicit Lyrics] [about]
Tue, 2012Jun26 20:26:55 PDT
in Mac by kamikaze

Since I listen to podcasts much of the day and night, podcatchers (do people still say that? "podcast players" for the kids these days) are serious business. This is my every-episode playlist, many more I listen to at random:

Originally, I used a podcatcher Python script to pull down new enclosures from a list of feeds, drop them in a folder, then another script to sync those to my mp3 player or phone. I'm a nerd, it worked.

Then for years, I used desktop iTunes to manage podcasts, and it's powerful but so awful to use it makes me nauseous; then I'd sync my podcasts to the iPod classic, and listen all day. If I ran out, or wanted a new podcast, I had to wait until I got home. But I'd been doing that with slight variations for a decade, and it works fine.

Recently I switched to Instacast.

Subscribing is mediocre but usable: At the bottom of Subscriptions tab is a +, and you can enter a link by hitting the mystery meat chain icon; or search by title, author, description; or drag through popularity or genre lists. Every item shows the cover, title, description, and a bunch of show info; you can actually tell what you're going to listen to.

Once you've subscribed to a podcast, they can be organized into playlists, including unplayed, downloaded, and custom playlists. You can select which items to download, and it shows their progress.

Tap a podcast, and you see the show description with working HTML links. Hit Start or Stream (if it's not downloaded), and you get simple controls, drag up to see more controls, hit the flip-over control to see the show links and bookmarks. For the main use case, seeing what's new and playing it, Instacast is basically perfect.

Downcast is equally capable, though I think it makes you spend too much time in navigation, whereas Instacast is faster to get updated and playing. That's a reasonable trade-off of ease of use vs. speed for an experienced user.

There's also network-specific podcatchers like 5by5 and Mule Radio, but I listen to too many diverse sources for those to make sense for my use, and I almost never listen live since I can't pause them.

Apple's just released their Podcasts app, and the word is: Ridiculous.

If you launch it on a "4G" iPhone, you just get "Could not connect to the iTunes Store. Please try again later." Turn on wifi, and now it sorta works. In contrast, all the other podcatchers work fine on cell data.

Catalog is standard iTunes organization, anything of interest to a semi-intelligent person buried under all the popular junk, so you'll spend all your time in Search. I did spend some time trying to find the podcasts I listen to, in the way a normal person would.

There's no description of a show or episdoes visible, so you just guess by title and cover image. Often there's reviews, but we all know how Internet comments are. I thought "Giant Robots Smashing into other Giant Robots" looked interesting, it has Red Robot (my spirit animal! Crush!) on the cover! But it seems to be some Ruby on Rails thing, BORING. If you tap a track without downloading it, you get a standard Apple media player, not the fancy reel-to-reel player.

If you subscribe, it appears in your Library. NOW there's a show description and (i) buttons by each track, so you can see what's what. MADNESS. Tap the down-arrow button, and it downloads, with no progress indication. From here, if you tap the track, downloaded or not, it uses the Podcasts special player.

I like skeuomorphism, in moderation, and when it includes full functionality. But what does any of this do? Can I spin the reel-to-reel back to rewind? No. The speed switch only does slow, normal, fast, but HOW fast? 150%? 200%? There are three sets of forward/back controls; sub-track, track, time, I guess? And then there's a non-skeu action button in the middle of the "reel to reel" to send email/tweet/im. Hurled out of the metaphor.


Meanwhile, there's no way to see the show notes and links, which other podcatchers do.

There's also a Top Stations UI, which is pretty, but random. A big radio control to pick category, then subcategory, and covers in a grid (WWDC attendees will recognize "new API sample code" behavior) with no descriptions. I clicked something and was suddenly listening to a Russian podcast playing Journey's "Don't Stop Believing". Which I'm OK with, but the Russian part is useless to me.

Apple's Podcasts is free, and worth every penny.

← Previous: Lord of the DVDs, Part I (Roleplaying) Next: Replicants (News) →
Lord of the DVDs, Part I
Sun, 2012Jun24 11:38:55 PDT
in Roleplaying by kamikaze

Background: Writing for fantasy games is hard work, and requires a certain mood. I like to get in that mood with a few drinks and movies as examples of what not to do. So I put in Lord of the Rings, Extended Fanboy Edition. I saw the trilogy in the theatre, then bought and watched the theatrical DVDs, and generally that’s the way to go: They’re somewhat edited for time, so they don’t get too dull. I’d only ever seen the Extended Director’s Cutting-Room Floor Edition of Fellowship previously.

Let’s get this shit started.

The Fellowship of the Ring, Part I

“The Shire. Shit. I’m still only in the Shire. Every time I think I’m gonna wake up back in Mirkwood. When I was home after my first adventure, it was worse. … Every minute I stay in this Hobbit-Hole, I get weaker, and every minute Gollum squats in the bush, he gets stronger. Each time I looked around, the walls moved in a little tighter.” —Bilbo Baggins

Decades after the dragon quest that ended in the War of Five Armies, Bilbo’s still on page one of his memoirs, “There and Back Again”, which will become the Red Book of Westmarch that Tolkien translated into The Hobbit, which is a far better book than Lord of the Rings. Surely a birthday party and abandoning his home will force progress.

Gandalf. Pot-smoking, firework-making, annoying old wizard. Claims to be super-powerful, immortal, but at this time we only see minor cantrips. In fact, given his performance in the films, I’d say he’s a 2nd-level Magic-User. Pyrotechnics and smoke rings, a few fire spray spells, nothing impressive.

Pipeweed is obviously marijuana, not tobacco. Not only does it affect their behavior, but there’s no tobacco in prehistoric Europe. There’s a bit in the books where Saruman says “Your love of the halfling’s leaf has clouded your mind.” Watch everyone when they smoke, they get that dumb but happy stoner look. Aragorn in Theoden’s hall especially.

Gandalf being a low-level Magic-User, he can only Detect Magic, not Identify the Ring, so he spends 17 years (implied to be less in the movie) in the library of Gondor (not named, so you’d have to have read the books or connected the third movie set back to this shot). Then he risks destroying Frodo’s magic ring if its not The One Ring. Jerk.

So now it’s urgent that everyone pack up and run, run for Bree. Oh, sure, take the gardener with you, he’ll be a help. Samwise is a goddamn 0-level henchman, he’s a total stepanfetchit English servant that reveals Tolkien’s classist bigotry, he’s not useful! And yeah, a couple of annoying thieves, they’ll be great on this quest. Party composition is not Tolkien’s strong suit, to be sure. A sane party would pick up a few Human or Dwarf meat shields in Bree, and a Cleric.

Corn. Potatoes. Tomatoes. These are totally wrong, they’re New World crops; the Old World would have had barley, turnips, and radishes. The fantastical elements of a story must be in addition to reality, they must not contradict known reality, or you disrupt disbelief. Tokien was scientifically illiterate, but when this was pointed out he did correct his manuscripts for later printings. Sadly, Peter “Meet the Feebles” Jackson is also scientifically illiterate, and does not have the sense or humility to fix it, so there’s dumb-ass corn fields of Iowa in ancient England. If I had my way, they’d all be flogged for this.

Bree and the Prancing Pony. “You will never see a more wretched hive of scum and villainy”. This is a place that desperately cries out for more screen time, the first real adventure hub, but no, quick drink, get the Ranger PC, get out in morning.

Tom “Sir Not Appearing in this Film” Bombadil. All the bullshit they wasted time on, and they couldn’t film Tom Bombadil, the Barrow Downs, the rescue, and the hobbits acquiring magical daggers? Terrible. It’s by turns silly and terrifying, like a proper fairy tale. Peter Jackson’s a fool for cutting this.

Weathertop. A ruined watchtower is not a good place to make camp, and it doesn’t even have a dungeon entrance! Total ripoff. Frodo’s lucky to just get poisoned. Now we see that not bringing a Cleric was stupid.

The First Speaking Female Character. Arwen is pretty awesome: Horserider, fighter, knows the river spirit’s name (tho it’s Glorfindel-never-seen-again in the book, Arwen in the book is boring). Naturally, she won’t go with these losers to save the world, because Tolkien was a proper woman-hating Catholic and barely acknowledged they exist. This shoddy treatment inspires a lot of what’s wrong in fantasy gaming. Robert E. Howard wrote kick-ass women characters, including Red Sonja. Leigh “I Wrote Empire Strikes Back” Brackett’s Jirel stories are awesome. Rule for any fantasy writer: If gender isn’t an intrinsic part of the role, roll 1d6: 1-4: Female, 5-6: Male.

Rivendell. No shops, no inn, just Bilbo distributing magic items. Exposition/nap time. Meet the rest of the party: Annoying but awesome Human fighter, Dwarf fighter, Elven ranger. “You have my axe! Uh, my other axe since I just shattered one on the Ring.”

“We are now… the Fellowship of the Ring!” Drink whenever they say the title of the film. Drink again for the posed camera shot, even though there’s no cameras in Middle Earth, assholes.


DM of the Rings: A terrible gaming group plays LotR badly through screencap comics.

Bored of the Rings; it’ll be back in print this November in iBooks. The classic tale of Dildo Bugger.

The Soddit by A.R.R.R. Roberts: Allegedly another good parody, out in US iBooks in September.

Leonard Nimoy sings The Ballad of Bilbo Baggins

← Previous: Mark Has Quit Xcode Unexpectedly (Mac) Next: Podcatching (Mac) →
Mark Has Quit Xcode Unexpectedly
Tue, 2012May22 13:34:26 PDT
in Mac by kamikaze

I'm almost 6 months into my AppCode experiment. It's going great, thanks for asking.

The AppCode editor highlights nicely, even large files color in fast, and it never turns my code into gibberish/Russian like Xcode often does for no reason.

Each file shows up in its own tab. Cmd-click to open a file, it opens in a NEW TAB, or switches to the existing tab of that file. AppCode doesn't replace my current tab's contents with a different file so I lose my place and can't get back. If nothing else, this sells AppCode to me. Xcode tabs are maliciously useless, you can get multiple tabs to the same file, but when you close one they all close. Insane.

Code generation is sweet. I can type the properties in my .h, then Cmd-N, synthesize/ivars, pick the ivars, and it makes the @synthesize lines. initWith and other generators work as advertised, too. Less typing, less mistakes. I've set up a ton of "Live Templates" which are clippings.

The refactoring tools actually work. Extract method and you get a usable method, not half-finished gibberish which Xcode always did to me.

The documentation popup works perfectly. Which is why it's then distressing that it opens Xcode to display full documentation and I want to die. I need to wire up Ingredients, because AppCode doesn't work with Services, since it's not a real Mac app. This is incredibly irritating.

The debugger is OK. It's spread out into a bunch of ugly little sub-tab tabs, you have to click on teeny little icons and drag things around until you get a layout that's usable. Typical Java UI bullshit, but once you get it set up LLDB runs fine.

AppCode basically never crashes. NEVER. It just keeps on running. Imagine using Xcode all day and never crashing. Leaving Xcode running overnight, and you come back and it's still working. Ha. As if. AppCode has no problem with that. It may be a giant bloated Java memory-consuming pig, but it's a rock-solid pig that doesn't fall over drunk every five minutes.

Now, be aware that almost every appearance setting in AppCode is wrong. This thing's made by dorky Java people, with absolutely no style at all, no idea that things could look Mac-native. The standard keybindings are stupid. So you're going to spend a good hour or two with a new install making it look and work right. I still hate the little tabs spread around the borders, popping up with yellow Windows-like hover messages.

JetBrains should hire a user interface designer to redesign the layout of every part, but keep the engineers who made it work reliably. Then they'd have a killer product.

I still have four reasons to see Xcode, but every time I do it's like being punched in the gut.

  1. Documentation.
  2. Interface Builder. This is very depressing, I want IB built into AppCode. Having to turn on or off various sidebars and dick around every time I want to draw some UI discourages me from doing UI.
  3. Core Data. I try not to use Core Data, but there's times when people pay me and I do it and I feel so ashamed. So really being flagellated by Xcode is kind of fitting.
  4. Adding "by reference" folders, not groups. I use reference folders for images and data files, drop my stuff in and it syncs to the app and I don't have to manage each add/remove of files. But AppCode has no idea these exist, so I have to open the project in Xcode. There's a bug for it: OC-3827, go ahead and vote it up.

I would like to think that someday Apple will release an Xcode 5.0 that doesn't suck, but until then, AppCode's replaced it almost entirely.

Related: Texts from Xcode

← Previous: Ze Frank, Invocation for Beginnings (Media) Next: Lord of the DVDs, Part I (Roleplaying) →
Ze Frank, Invocation for Beginnings
Tue, 2012Apr10 16:31:29 PDT
in Media by kamikaze

Ze Frank is back. Just go watch this. [transcript]

During the otherwise incredibly shitty year of 2006, every weekday morning I would wake up and there'd be another 5-minute episode of The Show With Ze Frank. Watch the whole series, but especially the Ugly MySpace episode flipped it from "funny videoblog about the news and little songs" into "HOLY SHIT, Ze's actually got a point about creativity and I should get off my ass and publish stuff again."

Let's start this shit up.

← Previous: Teenage Mutant Ninja Turtles (Media) Next: Mark Has Quit Xcode Unexpectedly (Mac) →
Teenage Mutant Ninja Turtles
Mon, 2012Mar19 15:52:48 PDT
in Media by kamikaze

Long ago, there was a series of black and white independent comics with a ridiculous title: "Teenage Mutant Ninja Turtles". The title and characters were funny, a parody of the X-Men, but the story was a grim, bloody tale of revenge and death and honor. You can read TMNT #1 online.

Yes, we can bleed

Shortly after the comic's release, indie publisher Palladium Books released the Teenage Mutant Ninja Turtles & Other Strangeness RPG, which was based on the first few issues of Mirage Comics TMNT with the direct help and new art from Eastman & Laird. The RPG had the same mix of humor with bushido, blood and death and honor, and a "Bio-Energy" system for making your own mutant characters from any animal. Fantastic game, great supplements including many in a post-apocalypse world, still sold as After the Bomb even though they don't have the license for the original game.

Then the good times ended. Eastman & Laird sold the rights to a Saturday morning cartoon, which eventually led to the movies. This was a dumbed-down, soft, weak pablum story for infants aged 3-12, nobody died (even though they're murderous ninjas with swords), shouting "Radical! Pizza! Skating! Dude!" I can't blame Eastman & Laird, they got paid well. I blame Hollywood.

The only analogy for how awful this was, is Star Wars. Star Wars and The Empire Strikes Back are entirely watchable by adults, have adult sensibilities, and are PG because people die; we see smoking corpses and chopped-off limbs. Then Lucas realized all the money was in marketing to children, and Hollywood distribution wanted movies for children, so he made that Return movie which was 15 minutes of Star Wars and a bunch of muppets, and two movies and a cartoon series of The Ewok Adventure and the "prequels" aimed at babies.

So today every little Gen-Whine brat raised on the shitty pablum version of TMNT is whining about Michael Bay's TMNT movie, and all I can say is:


Watch as your childhood favorites become dumbed down even further. Fuck you. Fuck all of you for buying cute crappy versions of TMNT. You get the Michael Bay you deserve.

RealMac's Clear to-do app is out.

Clear is lovely, the animation and even the sounds are perfect.

Most of the gestures are nice by themselves, but overloaded to the point you don't know what will happen—is it going to add an item or go up when you pull down? Depends. So it actually takes longer to use than a less-gesture-friendly app.

The list items are useless, they hold maybe 20 chars, no notes, no due dates, no priority. Completely vapid. Ironically the tips & tricks "list" has detail text, you just can't do the same.

Apple's Reminders (which can be managed from Siri!) and Cultured Code's Things (see my long discussion 2.5 years ago, nothing has changed since) are less pretty but far more functional. Clear is a lovely tech demo, for $0.99, but is in no sense a usable to-do app.

← Previous: Apple Future (Mac) Next: Teenage Mutant Ninja Turtles (Media) →
Apple Future
Sat, 2012Jan21 07:18:27 PST
in Mac by kamikaze

Hello, people of Twitter 2012! I am from the #AppleFuture of 2024! It is nothing like 1984!

Apple fans live in perfect glass arcologies for a 30% flat tax. Feist and Dylan play from iPod Hifis all day.

Xcode works great, it never needs rebooting! The cable into my eyesocket doesn't itch much all the time.

In the Redmond Wastelands, gangs of subhumans use MS Office and communicate only thru XBox Live Arcade (NAMBLA).

The Googleplex is "open", but every surface is covered in ads, and you are never allowed to leave.

Cannibalistic Linux Underground Dwellers (CLUDs) lurk beneath the cities, lecturing captives on free software.

Samsung operates a series of cheap plastic arcologies filled with smog. Nothing works, but it looks familiar.

The Talk Show broadcasts 24/7, but it's mostly what cheese @gruber likes. He was never the same after the war.

I must now return to the #AppleFuture! Prepare yourselves! Keep watching the skies!

Over on my new Mark Rolls Dice RPG blog, I have posted about Hasbro Announces Dungeons & Dragons Fifth Edition.

(I won't normally repost links, but this is a new site)

← Previous: Using JetBrains AppCode aka JetCidr (Mac) Next: Apple Future (Mac) →
Using JetBrains AppCode aka JetCidr
Fri, 2011Dec30 05:36:56 PST
in Mac by kamikaze

After not using Xcode 4 for a week, my head was clear and I was feeling optimistic. When I relaunched Xcode 4 to try to write a little toy app, it was like being held down and gang-raped by angry, horny baboons. I am displeased, Apple. So I decided to have a go at JetBrains AppCode again, the Java-based Objective-C IDE. Sure, it's by ugly Java dorks who make ugly Java apps, but it cannot be worse than being violated by baboons, right?

Download. Very slowly (my ISP or their servers?). The demo videos are in Flash, so I couldn't watch them on my iPad while I waited. Appalling. Who the fuck uses Flash video in the 21st century? I don't even have Flash on my Air anymore.

Set up, open a recently-created Xcode project. Works. Files are auto-sorted (yay), folders first, but language bundles are hidden, so XIB and strings files just seem to float at the top. Whatever, beats the manual file arranging in Xcode.

All the appearance defaults are awful, but fixable in preferences:

  • change color scheme: Solarized Light, change text background to white, caret row (current line) to no background
  • increase font size to Menlo 13
  • turn off code folding
  • turn on soft wraps
  • turn on line numbers
  • turn off that insanely stupid "Allow placement of caret after end of line" thing JetBrains likes which makes me want to stab them in their stupid faces.
  • change code formatter to use tabs, 4 spaces per indent, and put newline between method/function and first curly brace, as the One True Brace Style directs. No, I don't wanna hear about it, fuck you.
  • KeyMap, add Opt-Up to Page Up, etc., add Cmd-Up to Move Caret to Text Start, etc. Ctrl-D to Main Menu/Edit/Delete. Why can't these dumbass Java people get Mac keyboard keys right? I used to be a Java & Linux guy, and I still got them right whenever AWT didn't cock-block me.

Start writing code. Learn that completion key is Ctrl-Space instead of Ctrl-. I'll be using that a LOT. F1 brings up docs, and it works. Hey, already you're doing better than Xcode!

The editor tabs work correctly (though they have the x on the right, instead of the left where Apple puts them). Double-click a file, and it opens in a new tab. A new, UNIQUE tab. Hit Ctrl-Cmd-Up to edit counterpart, and it just magically opens the .h/.m file.


For this, I already love you and forgive you for a lot of shit, JetBrains.

No code completion for the dealloc method (no, I'm not using ARC today). Add dealloc to "Live Templates", in Objective-C context:

- (void)dealloc
	[super dealloc];

And to use it, just type dealloc[TAB]. I'd prefer if it was a code completion, but still nice.

The Property List Editor Misadventure

Need to edit a property list? AppCode only thinks it's text. Even if you convince it it's XML, an XML editor for plists is a shit solution. And Xcode 4 doesn't ship with Property List!

Sane Option: Buy PlistEdit Pro, $30 to nice developer Brian Webster. But that's blowjob money. Cheap Bastard Option: Dig out of Xcode 3.2.6. Problem: I don't have any old Xcodes in my backups, so I would have to install it on Snow Leopard, and my original white MacBook runs too old a version of SL for Xcode, all others have Lion.


Igor! Open the Xcode 3.26 dmg, and the hidden "Packages" folder! Use Tim Doug's unpkg! Drop in "DeveloperTools.pkg"! Copy Applications/Utilities/Property List to ~/Applications where THOSE MEDDLING FOOLS at Apple won't bother it! Igor! Copy these obsolete libraries from Library/PrivateFrameworks to ~/Library/Frameworks: (NO, IGOR, WE ARE NOT PLAYING GOD! WE ARE GODS!)

  • DevToolsCore.framework
  • DevToolsCParsing.framework
  • DevToolsFoundation.framework
  • DevToolsSupport.framework
  • JavaKit.framework
  • PlistEdit.framework

Throw the switch, Igor! Throw the motherfucking switch! Property List Editor lives! AGAIN! MUAHAHAHAHAHA!

So anywway. In AppCode's preferences, under External Tools, add an item, name it "plistedit", give it a group like "Mac Tools", program: open, parameters: -a "Property List Editor" --args $FilePath$, working directory: $FileDir$

Now I can right-click on a plist file, Mac Tools, plistedit, and BAM, I'm editing plists like an old-timer. Fuck me. Totally would've been easier to just buy PlistEdit Pro. And at some point, this entire edifice of obsolete frameworks that I have constructed will come crashing down.

Back to Work

Opening a XIB file pauses for a long time… then opens Xcode. Well, fine, can't build Rome in a day. Hopefully they'll replace that someday. I miss standalone Interface Builder.

To build and run or debug on a device, you'll have to edit the configuration dropdown, but it found my device, and built and launched the app just fine. Turn on "Stop running session", so it'll kill the old debugger when you start a new one. I haven't really used the debugger yet, but it has GDB and LLDB, so it might be OK.

AppCode supports Lion full-screen. It does mostly play nice like a Mac app, not a Java app.

I was extremely dubious when I first heard of JetCidr (the original name). The first beta was laughable and unusable. But it's now actually… not bad. Maybe better than Xcode as long as you're just editing code. The lack of a property list editor and Interface Builder are crippling, so they need to get on those fast.

AppCode is on sale for $69 until 2012Jan02, then goes back up to $99. I'll have to decide on the 2nd if it's a keeper, but it sucks less than the baboons.

← Previous: Apps Are the New Apps (Software) Next: Hasbro Announces Dungeons & Dragons Fifth Edition (Roleplaying) →
Apps Are the New Apps
Mon, 2011Dec26 23:21:49 PST
in Software by kamikaze

Another day, another very silly ex-Microsoft person says "apps are dead", "app developers … are mostly irrelevant", "mobile's old, dead, and boring". This isn't even correct enough to be wrong, it's just nonsense.

App store markets have exploded, see Distimo's 2011 mobile app store report:


A new mobile platform isn't even viable until it has a decent stable of basic apps (email, Twitter, Facebook, some camera/photo editing tools, book readers, task lists, etc.), games (at least Lights Off and Angry Fucking Birds), and maybe media apps (Rdio, Spotify, Netflix, JustinTV, etc.). And past that, it's all about who has the most good apps, the most good games.

Right now, and for the forseeable future, that's iOS. Android's store is mostly junk, often outright frauds or viruses, but it's on the chart. Everybody else is in the gutter, under 50,000, with nearly flat growth.

When you ask people what they do with their phones, they talk about apps. Not "Oh, I like to look at my contacts list, because those are the people I care about, and then I call them like some Hallmark fucking special painted by Thomas Kincaid". BORING. SO last century. Small talk now consists of "check out these awesome apps I found!"

You can't be on every app store, you don't have time, and you can't afford it. Unless you're Angry Birds, which relies on massive scale, payola from platform owners and carriers, and cheap eastern European codemonkeys to port to the shit platforms.

You can try making cross-platform web apps. Developing for HTML5/JS/CSS is incredibly hard to get even half-right, the experience is totally awful, and every platform still needs tweaking to work. And then how do you make money? Advertising? Ugh. Facebook's doing the worst of both worlds, making a web app with a native wrapper to handle system notifications for their iOS app… and it's the worst thing ever.

Compare that to a beautiful native app, like the new Path, which is fun and the little (+) button pops out SNIKKT! like Wolverine's claws, the clock moves down the page to show you where you are (which gets in the way after a while, but it's a thing no web app would even try to do), and the thing is fast and obvious and it works.

So what you end up with is you ship on the best platform: iOS. If you have time and money, you maybe target the also-ran Android (Path did, but their Android app is a seriously sub-par experience). This costs a lot, because us iOS devs are not cheap; even Android devs aren't as cheap as you'd think. Charlie's estimate of $100K-250K for an app is ridiculously low. That's a year of one or maybe two devs. For that you get a 1.0, if you're lucky. You don't get multiple platforms, you don't get cloud servers, you don't get anything fancy. Developing on the gutter platforms like Symbian, Blackberry, or Windows Phone 7 won't even pay the bills. You're throwing money away for no ROI.

Apple's managed to stay out of carrier-run marketing and carrier-fucked-up phones, but the reason it sells so well is the App Store. The iPhone 4S runs every iPhone app. The year-old 4 runs almost all of them, and the current OS. Even the 2-year-old 3GS runs 80-90% of the apps, and the current OS. The iPad 1 and 2 run almost all iPhone apps, and all the iPad apps, and a lot of the apps are universal. So if you make an iPhone app, you reach millions of happy customers, who will then spend every waking moment playing with your app and telling their friends about it.

Android handset makers have been stupid enough to let the carriers screw up their devices, the carrier marketing is abysmal, and the OS on any given phone is fragmented and often 2 or 3 versions obsolete, but you can make an "Android app" and reach millions of customers. Their customer satisfaction levels are low, and they don't pay for software, but they'll download free stuff and you can advertise at them.

This is why Windows Phone 7 is screwed. It needs apps. And to get apps, it has to compete for developer time and money with platforms that make money, either directly or by advertising. It has nothing to do with the carrier system. It has nothing to do with marketing. You have to convince developers to: Install Windows (which they won't do), learn the Windows dev tools (which they won't do), and then release on the Windows store, where it won't make any money, because there's no customers.

We must never forget the fond memories of last September, when Microsoft gave themselves a parade, claiming:

RIP Windows Phone 7 RIP U-Haul
OS Platform
☠ Buries the Competition ☠
Burma Shave

← Previous: C is a Wonderful Language (Software) Next: Using JetBrains AppCode aka JetCidr (Mac) →
C is a Wonderful Language
Mon, 2011Nov07 06:12:39 PST
in Software by kamikaze

I started programming with BASIC in 1980, 6502 assembly and LOGO soon after, Pascal and Action! in ’85. So I had high-level languages and the lowest-level, but none were suited to building large programs where efficiency mattered.

Then in '86 I learned C (from Stephen Kochan's Programming in C). Even with what were then very primitive tools, it made all other tools obsolete. It took me a couple years to learn proper memory management: for a long time, I just made big-enough arrays of structs, didn't use malloc. Took a long time to learn the right way to write programs, not just imitating BASIC and assembly. But C is just high-level enough that you can make a structured program, and still low-level enough that you can write efficient code, device drivers, graphics and sound, networking, and so on.

By '93 I got corrupted by Perl, Python, Java, and spent a decade away from C with high-level languages, doing server software, where efficiency mattered less. These languages have two or three well-padded layers between you and the machine, and they're comfortable. They're slower, in some cases much slower, but the worst part is that you can't even touch the hardware, you can't drop down to a lower level—unless you write native extensions in C, and there's a horrible set of compatibility APIs then. Java's JNI and Python extensions make you write so much wrapper code that you lose any advantage of doing C.

When I got Mac OS X, I had to learn Objective-C, and that meant re-learning C. And I re-realized how great C was. C's greatest virtue is that it hides most of the variations between hardware, but is still right above the machine level. The truth of what a computer is, is a CPU manipulating numbers in registers and memory addresses. There's nothing else in C, it provides libraries to handle those numbers as if they were strings or whatever, but you can read their source and see exactly how they work. No magic, no black boxes. Yes, it's low-level, and managing memory requires discipline and good habits, but these are good traits to cultivate anyway.

In iOS and Mac OS X, I think of apps as a collection of small programs. Each part (a view controller, say) has an Obj-C setup and teardown, limited interaction with other parts, and internal guts. You can go a long way with Obj-C, but if you write the internal guts in it, your performance will suffer, and it's tedious to box and unbox everything in object wrappers. It's much faster and more natural to write that in C. It's sweet that Obj-C just fades seamlessly into C, unlike Java JNI.

I suppose I wouldn't use C to build an entire program, unless it was just a little command-line tool. But C's survived from 1972 to present, and will be essential to understanding a computer for decades to come.

As for C++, the answer is just "No." C++ is symptomatic of everything that's wrong with programming, the glorification of complexity for no gain. The only good part about C++ is C, and you can just use C instead.

See also: Brent Simmons and Daniel Jailkut’s arguments for and against C.

← Previous: Goodbye, Steve Jobs (Mac) Next: Apps Are the New Apps (Software) →
Goodbye, Steve Jobs
Thu, 2011Oct06 08:17:59 PDT
in Mac by kamikaze

Bye, Steve, we'll miss you more than anyone.

I didn't grow up an Apple or Mac user. I liked them, in UI computer labs and at work, but most of the time I could've had one was the very confused post-Jobs era, random-number Quadras priced twice as high as competition. But NeXT excited me, though I also couldn't afford one. And when Steve came back and brought NeXTstep into Apple, that was the turning point.

In 2005, I got so frustrated with my big Linux box not mixing sound that I bought a cheap Mac mini, as a Unix workstation that Just Fucking Worked. From there on I've bought nothing but Macs, quit accepting shitty Linux or Windows workstations at work, and eventually switched to iOS development.

Now I'm accused of being a "Perfectionist Mac Elitist". I take that as a compliment. Accepting shitty hardware and software wasn't good enough for Steve, and it's not good enough for me. The Mac developer community is full of others like this. Shitty stuff gets criticized and ground down until it's awesome or goes away. These are not impossible standards. Everyone should try to make everything they do the best they possibly can.

I never met Steve, but I've seen him on the WWDC stage 3 times. He was (usually) as excited about the new things as we were. A couple of times you'd catch him sorta flattening when it was a lame or tedious thing, not up to his standards. Only once I recall we rebelled, shouted back at him, when he told us the "sweet solution" to iPhone development was HTML/JS. Train people to be perfectionists, and they won't accept anything but perfection.

I didn't feel like going out to a real Apple Store to mourn in public, so I made one in Minecraft:

Applecraft-20111006-01-sunset-256x160.png Applecraft-20111006-02-front-256x160.png Applecraft-20111006-03-logo-256x160.png

← Previous: Top 100 SF and Fantasy Books (Media) Next: C is a Wonderful Language (Software) →
Top 100 SF and Fantasy Books
Fri, 2011Aug12 02:02:42 PDT
in Media by kamikaze

NPR has a nice survey list of the Top 100 SF & fantasy books. My top 13 (lucky!) list would be different:

  1. The Hitchhiker's Guide To The Galaxy, by Douglas Adams
  2. The Call of Cthulhu, by H.P. Lovecraft
  3. Snow Crash, by Neal Stephenson
  4. The Dune Chronicles, by Frank Herbert
  5. Schismatrix, by Bruce Sterling
  6. Axiomatic, by Greg Egan
  7. The Elric Saga, by Michael Moorcock
  8. Software, by Rudy Rucker
  9. Gridlinked, by Neal Asher
  10. Chasm City, by Alastair Reynolds
  11. The Conan The Barbarian Series, by R.E. Howard
  12. The Fafhrd & the Grey Mouser series, by Fritz Leiber
  13. The Shockwave Rider, by John Brunner

If you read all of those and any sequels, you will be able to think more like me. And isn't that what everyone wants?

Here's NPR's list, with my note of R (I have read this, it was OK), L (I read & liked this), H (I read & hated this), or - (I have not read this). I "score" 79/100. Literacy is good for you. Or will drive you mad. Whatever.

R 1. The Lord Of The Rings Trilogy, by J.R.R. Tolkien
L 2. The Hitchhiker's Guide To The Galaxy, by Douglas Adams
R 3. Ender's Game, by Orson Scott Card (don't give Card money, he's an asshole)
L 4. The Dune Chronicles, by Frank Herbert
H 5. A Song Of Ice And Fire Series, by George R. R. Martin
R 6. 1984, by George Orwell
R 7. Fahrenheit 451, by Ray Bradbury
L 8. The Foundation Trilogy, by Isaac Asimov
L 9. Brave New World, by Aldous Huxley
H 10. American Gods, by Neil Gaiman
L 11. The Princess Bride, by William Goldman
H 12. The Wheel Of Time Series, by Robert Jordan
R 13. Animal Farm, by George Orwell
L 14. Neuromancer, by William Gibson
L 15. Watchmen, by Alan Moore
L 16. I, Robot, by Isaac Asimov
L 17. Stranger In A Strange Land, by Robert Heinlein
L 18. The Kingkiller Chronicles, by Patrick Rothfuss
R 19. Slaughterhouse-Five, by Kurt Vonnegut
L 20. Frankenstein, by Mary Shelley
L 21. Do Androids Dream Of Electric Sheep?, by Philip K. Dick
H 22. The Handmaid's Tale, by Margaret Atwood
L 23. The Dark Tower Series, by Stephen King
L 24. 2001: A Space Odyssey, by Arthur C. Clarke
L 25. The Stand, by Stephen King
L 26. Snow Crash, by Neal Stephenson
L 27. The Martian Chronicles, by Ray Bradbury
R 28. Cat's Cradle, by Kurt Vonnegut
L 29. The Sandman Series, by Neil Gaiman
L 30. A Clockwork Orange, by Anthony Burgess
L 31. Starship Troopers, by Robert Heinlein
L 32. Watership Down, by Richard Adams
L 33. Dragonflight, by Anne McCaffrey
L 34. The Moon Is A Harsh Mistress, by Robert Heinlein
R 35. A Canticle For Leibowitz, by Walter M. Miller
L 36. The Time Machine, by H.G. Wells
L 37. 20,000 Leagues Under The Sea, by Jules Verne
R 38. Flowers For Algernon, by Daniel Keys
L 39. The War Of The Worlds, by H.G. Wells
L 40. The Chronicles Of Amber, by Roger Zelazny
R 41. The Belgariad, by David Eddings
H 42. The Mists Of Avalon, by Marion Zimmer Bradley
- 43. The Mistborn Series, by Brandon Sanderson
L 44. Ringworld, by Larry Niven
L 45. The Left Hand Of Darkness, by Ursula K. LeGuin
R 46. The Silmarillion, by J.R.R. Tolkien
L 47. The Once And Future King, by T.H. White
R 48. Neverwhere, by Neil Gaiman
L 49. Childhood's End, by Arthur C. Clarke
R 50. Contact, by Carl Sagan
L 51. The Hyperion Cantos, by Dan Simmons
- 52. Stardust, by Neil Gaiman
L 53. Cryptonomicon, by Neal Stephenson
L 54. World War Z, by Max Brooks
- 55. The Last Unicorn, by Peter S. Beagle
R 56. The Forever War, by Joe Haldeman
L 57. Small Gods, by Terry Pratchett
L 58. The Chronicles Of Thomas Covenant, The Unbeliever, by Stephen R. Donaldson
L 59. The Vorkosigan Saga, by Lois McMaster Bujold
- 60. Going Postal, by Terry Pratchett
L 61. The Mote In God's Eye, by Larry Niven & Jerry Pournelle
- 62. The Sword Of Truth, by Terry Goodkind
- 63. The Road, by Cormac McCarthy
- 64. Jonathan Strange & Mr Norrell, by Susanna Clarke
L 65. I Am Legend, by Richard Matheson
- 66. The Riftwar Saga, by Raymond E. Feist
H 67. The Shannara Trilogy, by Terry Brooks
L 68. The Conan The Barbarian Series, by R.E. Howard
- 69. The Farseer Trilogy, by Robin Hobb
- 70. The Time Traveler's Wife, by Audrey Niffenegger
- 71. The Way Of Kings, by Brandon Sanderson
L 72. A Journey To The Center Of The Earth, by Jules Verne
H 73. The Legend Of Drizzt Series, by R.A. Salvatore
L 74. Old Man's War, by John Scalzi
L 75. The Diamond Age, by Neil Stephenson
L 76. Rendezvous With Rama, by Arthur C. Clarke
- 77. The Kushiel's Legacy Series, by Jacqueline Carey
L 78. The Dispossessed, by Ursula K. LeGuin
L 79. Something Wicked This Way Comes, by Ray Bradbury
- 80. Wicked, by Gregory Maguire
- 81. The Malazan Book Of The Fallen Series, by Steven Erikson
- 82. The Eyre Affair, by Jasper Fforde
L 83. The Culture Series, by Iain M. Banks
- 84. The Crystal Cave, by Mary Stewart
L 85. Anathem, by Neal Stephenson
- 86. The Codex Alera Series, by Jim Butcher
L 87. The Book Of The New Sun, by Gene Wolfe
- 88. The Thrawn Trilogy, by Timothy Zahn
- 89. The Outlander Series, by Diana Gabaldan
L 90. The Elric Saga, by Michael Moorcock
R 91. The Illustrated Man, by Ray Bradbury
- 92. Sunshine, by Robin McKinley
L 93. A Fire Upon The Deep, by Vernor Vinge
L 94. The Caves Of Steel, by Isaac Asimov
H 95. The Mars Trilogy, by Kim Stanley Robinson
L 96. Lucifer's Hammer, by Larry Niven & Jerry Pournelle
- 97. Doomsday Book, by Connie Willis
L 98. Perdido Street Station, by China Mieville
R 99. The Xanth Series, by Piers Anthony
R 100. The Space Trilogy, by C.S. Lewis
← Previous: Kindle Cloud Reader (Software) Next: Goodbye, Steve Jobs (Mac) →
Kindle Cloud Reader
Wed, 2011Aug10 22:48:26 PDT
in Software by kamikaze

Amazon's Kindle Cloud Reader is up. It's a Safari webapp, mainly intended for Mobile Safari for iPad.

Installation is by visiting the site, then hitting the Bookmark icon, and "Add to Home Screen". Then it prompts you to increase a database size. Weird and technical kind of install, rather than the standard App Store. Of course, they do this to avoid Apple's "draconian" request to be paid for stuff sold out of their storefront.

The webapp is slow to load. When you start up, you see a lot of spinners and "Kindle No Image Available", even though supposedly it's caching the book covers. Scrolling behavior in the book list is jerky and does not behave like a proper iOS scrolling area (it bounces too quickly, and keeps scrolling from a flick longer than it should). Better to just do pagination or linear scrolling than to do non-native scrolling like this. I don't like to even touch it, it's a visceral wrongness.

They've gone to considerable effort to make a non-native webapp that looks as much like the platform native apps as they could, but it doesn't behave like one. Amazon's "native" Kindle iPad app has a jarring, non-native look, and the Mac OS X app is built with the Qt cross-platform toolkit, so it looks completely weird and non-native. But none of them behave like native apps, and that's the part that matters.

There's a "Kindle Store" link in the top corner of the app, but it doesn't react immediately. Several seconds later, with no activity indicator or animation, it fades in a store page. Awful user experience. But the store itself is okay, a big section of "recommended for me" from my Amazon purchases. Oddly, there ARE animations in this section, and it's kind of a tolerable experience. Except there's no Fantasy or Science Fiction category in New & Noteworthy, and in the main categories everything's greyed out, disabled? The store page is a giant mess. I soon give up on this without making any purchases, go back to the H.P. Lovecraft collection I already have in my Kindle account. Closing just BLINKS the store out of existence. Jarring.

Reading a book is OK, but has a jarring instant page flip, no animation. It often sits and spins for seconds when switching between pages. Thanks for recreating the awful experience of the hardware Kindle on my high-tech iPad 2, Amazon.

The font appearance & options in the webapp are better than their native app, though it still doesn't allow selection of different fonts, only different sizes. You can set black-on-white, black-on-sepia, or white-on-black text, but you can't change brightness because this is not a native app.

Pagination and dragging the slider is still by "location", not by actual pages as defined in the paper book, or even by the font size. Remembering "location 328 of 7791" is not useful like "page 15 of 300" is.

The table of contents is just blue hyperlinks, no page numbers so you can't tell how long a chapter is. I would like to see "Dagon ... page 15", "The Statement of Randolph Carter ... page 22" and know that Dagon is 7 pages long.

You can make location bookmarks, but they have no titles and you can't rename them. You can't select text at all, so you can't look a word up, make notes, highlight, copy, anything. They went out of their way to completely cripple TEXT SELECTION, a basic goddamn system function. Buncha fucking savages at Amazon. THIS, above all else, fills me with hate.

Footnotes sort of link back, with the same mis-pagination behavior of their native apps, if you can even hit the back link. "Circular Logic1" will jump to "1 Logic, Circular", but you can't actually tap the back-link because it's covered by the "tap left side to go back" behavior.

There's still no way to properly import non-DRM epub and PDFs, such as those from Baen webscription or Pragmatic Programmers. Amazon lets you convert a PDF into their proprietary DRM format, but it destroys formatting and makes the book unreadable. Amazon is absolutely hostile to epub books, which are the industry standard. I don't care a lot about DRM, but DRM + shitty reader + shitty formatting + no epub import = no sale.

And that's about it. The webapp is marginally less awful than using the Kindle iPad app, but not nearly as pleasant as using iBooks. In iBooks, every transition is animated & responds immediately so you can see what's happening and why. The page reading is superior, you have multiple font choices, footnotes work both ways, and you can highlight and copy text. Almost everything now comes out in the iBooks store, and of course it reads DRM-free epub and PDF just fine. Apple doesn't care if you buy content (books, music, movies, whatever) elsewhere and load it on, they just don't want 3rd-party stores in their own storefront unless they get a cut.

This is the existence proof that you can make a webapp that's as good or better than a poorly-made native app. We still don't have any evidence of a webapp that's as good or better than a quality native app, though.

I don't understand how an organization with Amazon's size and technical talent can produce such an unbelievably awful series of book readers, and why their policies are so closed-minded.

← Previous: When Will Computers Go Away? (Mac) Next: Top 100 SF and Fantasy Books (Media) →
When Will Computers Go Away?
Sat, 2011Mar12 14:02:38 PST
in Mac by kamikaze

The iPad 2 launch seems to have gone well, Apple's lack of pre-orders resulted in the fun publicity stunt lines they love (as opposed to the Verizon iPhone 4, which was up for pre-order, because Verizon doesn't understand "free advertising", and everyone stayed home and bought that).

The reviews aren't just glowing, they're basically blowjobs for Apple:

Looks like iPad 2 is a very nice upgrade of the iPad 1. I'm still happy with mine, so I'll probably wait for next year's model; if you don't have an iPad, you should get it.

So, when do we turn the lights out on desktop/laptop computers? I use my iPad as a reading/web surfing/Twitter sidebar (and it is my constant companion because of that), but I can use it for a lot more. What I MUST have a laptop for:

  • Long writing in BBEdit (MAN, if there was BBEdit on iPad… I could happily use the BT keyboard instead of this). I could work in Pages, but I don't like WYSIWYG editing, need BB's regular expression support, and would have to write some AppleScript to pull Pages docs out of Mail and convert them to HTML; my MultiMarkdown process is easier. So one app away from usable.

  • Software development. No Xcode or Python on iOS. Yet. YET. And it's probable that this will be the last thing to leave the desktop, not so much for technical limitations as for Apple's control issues, and to get iOS devs to buy Macs. If you want to develop webapps on iOS, you already can.

  • Unix & AppleScript toolchains. Half the time I solve problems by gluing together a few other tools. None of the scripting tools I need are on iOS, and it doesn't have AppleScript, though it's the same basic OS, and wouldn't be hard to expose as services. I doubt that Apple will bother with classic AppleScript, but some kind of scripting is inevitable. You can, if you know the app, sorta do this now, with hyperlinks: Some apps respond to queries. If they let you specify a "callback URL", you could make something like Automator by calling one URL, then using the results to call another, etc.

  • Highly (sorta) demanding videogames like Minecraft, Myst Online, and World of Warcraft. But the iPad has Minecraft coming soon, classic Myst and Riven, and Pocket Legends MMO. iPad, iPhone, consoles, and handhelds are a better gaming experience than a desktop PC in almost every way, and cost 10-20% as much.

Other people have different lists, of course. Audio and video people need Final Cut Pro, not iMovie/iPad… 3D software like Blender or Poser are massive CPU hogs, in addition to burning video cards. But it's getting there. You can do amazing things in GarageBand/iPad, that are simply not possible with a desktop.

Tablet performance hasn't caught up to desktop yet, but soon will: iPad 2 is roughly 4x slower and less memory than a MacBook (which is adequate for all but the VERY highest end work). With Moore's Law, that's 3 years, 2014, and in 2017 it'll beat a current Mac Pro. While desktops will get faster, they're already a couple years past the point where 99% of the market makes use of it. And it may go faster, since ARM processors are simpler to develop & upgrade than Intel; Intel's made good use of scale, but ARM has even bigger scale now.

For user interaction, the iPad is already better. The mouse is a 50-year-old set of Etch-A-Sketch(tm) knobs moving a single dot around a screen, two levels of indirection; touch gives you direct manipulation. If an app needs precision, it can touch-and-hold to show a loupe (like the clipboard controls in text areas), or let you zoom in (like Brushes does). Your finger is the best pointing device there is, and you have 10 of them (usually). You cannot tap two or more places at once on a desktop, and the desktop thing of trying to hit a 1 or 2 pixel target never made any sense.

Desktop windows and dialogs and "spaces" are a pain in the ass. I just had to move 2 windows and a dialog box aside to get to iTunes to sync my iPod nanowatch. I do that crap a hundred times a day. How much of my life has a windowing GUI wasted? I'd like better background tasks than iOS handles, more like WebOS's cards, but complex GUIs were the wrong direction to go.

For display, an iPad can drive a monitor or projector. Hook it up to your Apple Cinema Display, and the app will either be mirrored on the big screen (useful for demos) or show whatever external video it wants, leaving the iPad as a controller.

If you need a physical keyboard for writing, the bluetooth or dock keyboard are exactly the same as a desktop's.

So I'm thinking somewhere between 2014 and 2020 at the latest, the desktop just goes away. There'll be servers and a few high-end workstations running dedicated software, and everyone else will be using tablets. And by "tablets", I mean iPads, because at this point I doubt anyone else is competent to produce a competing tablet.

← Previous: World of Minecraft (Toys) Next: Kindle Cloud Reader (Software) →
World of Minecraft
Fri, 2011Mar11 15:01:49 PST
in Toys by kamikaze

I've been playing Minecraft and thinking about it a lot more lately. I don't currently have spare time for other games, but I can spend 10 or 20 minutes, do a couple day/night cycles, and feel like I've accomplished something.

I've created a Mark Plays Minecraft blog with some ideas, thoughts, and screenshots.

← Previous: The Other Side (Mac) Next: When Will Computers Go Away? (Mac) →
The Other Side
Tue, 2011Feb22 07:32:56 PST
in Mac by kamikaze

I'm often accused of being an Apple partisan, an iOS bigot, wholly owned slave property of Steve Jobs. And that's fair, one could easily get that impression because it's basically true. I leave home each day with an iPhone 4G, iPod classic and Beats By Dre Solo HD headphones (exclusive to the Apple store), iPod nano with Hex watch strap, iPad, MacBook Air, and iPod touch 4 for development. "Saint Peter don't you call me, cuz I cain't go, I owe my soul to the iTunes sto'."

But for a moment, consider the current alternatives to Apple.


Android has a lot of users, and a plethora of phones on every carrier.

  • The UI is terrible. It's slow. Dragging through a list will jerk along, then fall behind your finger, and then stop. Pushing buttons often doesn't register anything, and when it does, the visual response isn't immediate. "Did I hit it, I better hit it again, oh shit, now I've purchased TWO Bolivian howler monkeys!" Apps look like ass, are poorly organized if at all, and look like someone ported them from desktop without ever using a touch device to test, which is often the case. The thing on Apple products and even third-party iOS and Mac apps, where they "Just Work"? Android doesn't.

  • The hardware is terrible. Not one of these is as solid or real as an iPhone 4. The Verizon Droid commercial shows stealth bombers dropping missiles, hurtling through the atmosphere, impacting and smashing the ground open, and the bombs open and extend a Droid phone to menace and destroy mankind. The Droid X commercial shows military NBC-suited crew entering alien tunnels, past the helmet of a dead soldier, and getting transformed into nanotech cyborgs by touching a floating alien rock. So, Droid must be the bastard love child of the Terminator and John Henry's hammer, a hard motherfucking burning chunk of steel and hate, right? Nope, false advertising, it's a flimsy little plastic thing with a wobbly back. As far as I can tell by reading CrunchGear and Boy Genius Report, they're all toy crap like that.

  • The dev tools are terrible. It's Eclipse, which is an enterprise Java environment designed for handling gigantic projects with no UI. Then Google glued in their fake-Java compiler, which doesn't support Eclipse's incremental compiles, so you can't even see error messages until you run it, like some primitive thing from the 20th Century. There's no real UI builder like Apple's Interface Builder, but there's a third-party "DroidDraw" which is like Visual Basic, again from the 20th Century. When I've tried making Android apps (twice in the last 2 years), the debugger didn't work, the console was unreliably updated so I couldn't printf-debug. It's almost malevolent, how bad this is.

  • The market is full of spam "apps", because there's no quality control; for any app on iPhone or Android, there's a rip-off wallpaper that costs $0.99 where the spammer hopes you won't realize it's not an app. The real Android apps aren't much better, most are bare-minimum functionality, with bare-minimum to no UI, because making a good UI with Android tools is nearly impossible.

  • Making money on Android is unlikely. The store generates a tiny amount of money: TechCrunch: Despite 861.5 Percent Growth, Android Market Revenues Remain Puny. Apple's App Store made 17.5x as much money, even though Android now has more unit market share. Where's the customer money? It's not there. Why? Because A) Google Checkout's payment system is grossly inferior to Apple's and isn't available in many countries, and B) Android apps aren't worth paying for. So Android apps are mostly free or ad-supported; imagine everything you do with a chunky ad banner in the way. The growth numbers look impressive because they came from nothing to a bigger nothing, but they won't continue like that.

  • Android tablets which are actually available, like the Galaxy Tab, are running a scaled-up phone OS, which doesn't make any sense on a tablet. They actually take the terrible Android user experience, and make it worse. The Android tablet OS aka "Honeycomb", and the tablets that'll be good enough to run it, are still not out, are more expensive than the iPad, and will have no tablet-optimized software available at launch, maybe ever.

  • Android is open and "free", which really means that if you're sufficiently insane and technical, and don't care about making money, you can modify Android, and they don't restrict scammers from putting junk on the store. That's not an "open" or "free" that even I need, and I'm insane and technical. You're probably not.

Windows Phone 7

Nah, I'm just kidding. Seriously, don't buy another Zune, what's wrong with you? The hardware is by the same vendors who make shitty Android phones. Microsoft won't report actual sell-through sales numbers, only "2 million shipped to retailers". I believe that far less than 1 million have been sold to customers in a quarter.

Unlike with the Kin's aborted launch, this time MS seems determined to follow the Xbox strategy and throw money at Windows Phone 7 until it succeeds, even if it costs them billions of dollars which they will never recoup. But hitching your business to them is a foolish waste of time and resources.

Nokia has abandoned its own OS projects and will be making WP7 devices later this year, but Nokia has no idea how to sell products to the US. Remember the N-Gage? The side-talking taco-phone gaming device where you had to pull the battery out to change cartridges? Yeah, nobody else remembers it either, because it was the worst product launch since the Apollo 1 disaster, which killed Gus Grissom, Ed White, and Roger Chaffee without even leaving the launchpad. I do not believe that Nokia will do any better this time around. They'll sell few WP7 devices in Europe (which despises Microsoft products even more than I do), none in Japan (where their lack of design sense will be up against the now-ubiquitous iPhone), and none in the rest of the world (where their phones will be too expensive).

Microsoft's plans for a tablet are the same as the last decade, and the decade before that: Put desktop Windows on a tablet, and ignore the usability problems. And they'll continue to fail at tablets exactly as they have for the last 20 years. Which means Nokia will fail at tablets. It's so stupid, but Microsoft's incapable of learning from experience.

[Update 2011Feb22: Microsoft can't even manage their updates to a few hardware vendors successfully: Windows Phone 7 update bricks phones ]


Don't be stupid. RIM has had 3 years to try to make a touch phone that doesn't suck, and they can't do it. They're dead and floating face-down in Waterloo's Grand River.

HP/Palm WebOS

Not out yet, but honorable mention.

  • The UI is beautiful, powerful, and solves real problems. WebOS is the only mobile OS where multitasking makes sense and can be managed by normal people. It's not the same as iOS, but is just as good or even better.

  • The hardware is in HP's hands, and HP can make some awesome, fantastically reliable solid gear. Or they can make shitty $99 disposable printer junk. 50/50 chance.

  • The dev tools may be tolerable. Based on Eclipse, but with a UI builder, better error reporting. It's still inferior to Apple's Xcode, but it works.

  • The market is currently very small. Will HP/Palm take responsibility and keep a well-pruned walled garden like Apple, or just give up and let weeds grow like Google?

  • Making money is a giant question mark. How will HP/Palm take payments into the store? If they can get carrier billing, they can sell in more countries than even Apple. If they can't, they'll have the same problems Android has, with the added problem of initially low market share.

  • The TouchPad tablet looks pretty damned awesome, and the integration with the Pre makes it more of an essential third device. The rumored price is $699, which for the device shown might be reasonable.

It's a tragedy that the original Pre could only get out on Sprint, and nobody likes Sprint (I had a Treo on Sprint, and was happy to escape to AT&T even though I almost doubled my monthly bill). The new HP/Palm devices will be on several carriers. I think they have a shot, but it's going to be a hard fight.


My Lord and Master, Apple. There is no truth to the rumor that I have an Apple tattoo, and have changed my name to "iMark". … But only because I haven't got around to it yet.

  • Apple's UI is beautiful, simple, and it works. I think they've found a good balance of skeuomorphic pseudo-reality decoration, and abstract computery widgets. The opposite extreme is Windows Phone 7, which has no skeuomorphism, no familiar affordances, just sterile bleak panels with cut-off fragments of text. WebOS is sort of in between, a little more abstract but familiar enough that you can work out how to use it.

  • Apple's hardware is amazing. The iPhone 4G and iPad feel like solid glass and aluminum that magically display information, not electronic devices. Much of that is from Jony Ive "being inspired by" Dieter Rams, but with modern innovations. If you're going to steal, steal from the greatest industrial artist of the last century. Nobody else (except maybe HP) even shows the slightest sign that they understand that hardware design matters.

  • Apple's dev tools are fine. The current Xcode is a thin shell over great tools. The project manager is kind of awful; in team projects, we just warn each other before overwriting the project, you can't really merge it. The next version of Xcode has significant bugs right now, but it should be a better tool when done. The Xcode debugger and analysis tools are amazing, second to none. Interface Builder is the only GUI builder for any platform that actually works the right way. And you develop iOS apps in Objective-C and Cocoa, which are by far the most advanced and efficient language and library on the market. Nobody else is even within a decade of matching Apple's technical lead.

  • Apple's market is, as we all know, enormous. 10 billion downloads as of Jan 22, 2011. 10 BILLION. And while some of the apps are of dubious quality, there are few or none which are viruses, outright scams, or dangerous. Apple's "draconian" control makes things suck less. Most small developers can only afford to build for and support one platform, and it's going to be Apple's.

  • You can make money on the App Store. I get regular small checks from Apple for my games, and much more from the contract work I do, which is funded by checks from Apple. And that money flows because Apple has iTunes and your credit card, and can take payment in as many countries as possible, and they're responsible about paying out. If there was nothing else good about iOS, I'd still be on their store, because that's where the money is.

  • The iPad tablet is pretty much the only real tablet there is so far. And it's fantastic. I have ONE device where I can read books and comics and news and Project magazine, and Twitter and web, and plays games, and plays TV shows and movies, I can write on it, or draw, and the battery lasts forever (well, all day). I laughed at Steve Jobs' hyperbole for calling it "magical and revolutionary", but he was being deadpan literal. You can do much of what an iPad does on a laptop (say, a MacBook Air), but the reading experience is all wrong.

  • Against all that, Apple's not at all open. Nothing is free. You get what Apple thinks you should get, at the price they or a developer thinks is fair. If you want to sell stuff, Apple wants a cut. If you want in their store, you have to play by their rules. If you want to play by different rules, you can go to the web, or to Android, or just fuck off; Apple doesn't care. And to be honest, I don't care, the process works for me and produces good hardware and software.


So, there's really no alternative. Android's terrible and profitless. Windows Phone 7 is vile. RIM is incompetent. WebOS isn't out yet.

← Previous: You Gotta Pay a Fee, Dobbalina (Mac) Next: World of Minecraft (Toys) →
You Gotta Pay a Fee, Dobbalina
Mon, 2011Feb21 13:45:58 PST
in Mac by kamikaze

Wherein I tell three stories of unsuccessful business pitches.

Story #1

You go to a comics shop, and tell the owner: "Hey, Comics Shop Man, see this awesome new comic? I sell it by subscription, but I'm going to distribute it from your storefront. What? No, you don't get a cut."

Comics Shop Man will beat you like a red-headed sidekick and kick you to the side.

Story #2

You go into a diner, and tell the owner: "Hey, Mrs. Sammich, I'm'a sell my own Dagwood sandwiches from the front table in your diner, and keep all the money myself. I'm not even gonna buy your daily special."

Mrs. Sammich will call her husband and 6 brothers, all of whom are giant steel-girder-lifting construction workers, they will tenderize you like a roast beef, and bury your corpse in the foundation of a building.

Story #3

You send an app to Apple's App Store, and tell the owner: "Hey, Steve Jobs, I'm'a take all my money over on a website you don't control, and you get NOTHING! HAHAHAHAHA!"

Dear readers, I cannot begin to describe the horrors that Steve will visit upon you. Oh, yes, I can. Apple will reject your app.

The Moral

If you're in someone else's store, getting their distribution, getting their advertising presence, you pay them their vig or you don't fucking sell anything. Today, that fair share happens to be 30%; it was considerably more (50-70%) for magazines and books to newsstands and bookstores back in the physical media days. Quit trying to rip off the distributor.

← Previous: Xcode documentation viewer (Mac) Next: The Other Side (Mac) →
Xcode documentation viewer
Mon, 2011Feb07 19:11:49 PST
in Mac by kamikaze

The newest version of Xcode has some serious problems displaying documentation; the old mouse shortcut is gone, and the viewer doesn't have a useful section/method index anymore. Maybe nobody at Apple uses docs, they just read the source. Maybe it's an oversight. I have filed and will file more bug reports.

Meanwhile, for documentation viewing I'm using Ingredients.

To launch it, create an Automator workflow, Run AppleScript, and paste in:

on run {input, parameters}
    set q to item 1 of input
    tell application "Ingredients"
        search first window query q
    end tell
    return input
end run

Then in System Preferences, Keyboard, give it a nice key, like Cmd-Ctrl-/

Sigh. I hate having to spend my time making workarounds instead of writing code.

← Previous: MultiMarkdown (Mac) Next: You Gotta Pay a Fee, Dobbalina (Mac) →
Sat, 2011Feb05 18:03:56 PST
in Mac by kamikaze

Mention this morning of writing tools like VoodooPad, Scrivener, and Circus Ponies Notebook made me rethink a long-standing pain in my writing process.

I like

  • Writing in BBEdit, or OmmWriter when there's too much noise in my head to concentrate, or Pages on iPad with the formatting bar rolled up.
  • Having formatted output.
  • Definition lists, so Standard Markdown isn't fully useful to me.
  • One keypress to preview my document.

I don't like:

  • Writing in a word processor. I get distracted with all the shiny formatting tools. VoodooPad and Scrivener are nice for organizing formatted text, but I often don't want that.
  • Writing plain HTML. Even after almost 20 years, I can't see the text for the <tag>s.


MultiMarkdown does almost all of that.

To preview, I wrote this script, made it a BBEdit Unix Filter, and gave it a key Cmd-Ctrl-M in the Unix Filters Palette:

$HOME/Applications/MultiMarkdown/bin/ "$1"
outfile=`dirname "$1"`/`$HOME/bin/ "$1"`.html
mv "$outfile" "$TMPDIR/Markdown-Preview.html"
open "$TMPDIR/Markdown-Preview.html" is a little Python utility I wrote to remove the extension from any filename passed in, put it in your ~/bin

#!/usr/bin/env python3.1
import sys, os.path
filename = os.path.basename(sys.argv[1])

Also, add a BBEdit Language entry for .md = Markdown, and you get syntax highlighting.

To turn off those stupid goddamn “smart” quotes, open MultiMarkdown/bin/ and change the line:

my $smartypants_attr = "2";


my $smartypants_attr = "0";

Obviously, this is only a valid solution for serious Mac/Unix nerds, but I'm liking it so far.

@Verso says: "MultiMarkdown is The Way, The Truth, and The Light. So say we all."

← Previous: The Daily Two Minutes Hate (Mac) Next: Xcode documentation viewer (Mac) →
Page:   0    1    2    3    4    5    6    7    8    9    10    11    12    13    14    15    16   Archive  
Feedback  | Key: ] =local file, * =off-site link  | Copyright © 2003-2010 by Mark Damon Hughes | Subscribe with RSS 2.0