The Land Before iPhone

In which millennials try to recall kindergarten pre-iPhone

iPhone was nice, but not a big change to my lifestyle; I already had a Treo, and before that a LifeDrive, and before that a Palm III, and had Internet since before I was boinking those kids’ mothers. I was basically the model for the Mondo 2000 “R.U. A Cyberpunk” poster (the joke being R.U.Sirius was… nevermind), and yes, I read Mondo2k & Wired before they were dead and/or uncool.


Indie game dev leads you to some dark and terrible places.

I so miss the App Store being an endless payout slot machine without spending $10M on advertising, and miss the 6-figure jobs for fixing peoples’ apps because nobody knew Objective-C (even less know it now, but they’re stupidly trying to rewrite code they don’t understand into Swift, which will break again in 6 months).

Now I’m a poor but honest pixel farmer, forced to shovel shit to get to market.

Making a Mac binary for Reaper’s Crypt was trivial (on a Mac, probably impossible elsewhere), and produced 1 file: “Reaper’s” (a Mac application bundle, hiding all the mess so you don’t see it).

Making a Linux binary was not much harder, and produced 17 files and directories, with libraries and data scattered all over, with the binary sitting in the middle where nobody could see it. So I’ll have to make a little script to go launch that untidy mess. When I did Linux, there were at least 3 standards for icons, and by now I’m sure there are 13 more, so they get a raw image file.

Making a Windows binary required me to install WINE with MacPorts, which took hours, and the binary is in the middle of a similar mess of 20 files and directories. So for this I need an installer to make a .msi file, which nobody I know has done this decade; I think I have a handle on this. But now I don’t know if I need 32-bit “win32” or 64-bit “win32” (what.); there’s no fat binaries in Windows, so it’s one or the other.

I am not Hercules, and these Augean stables are filthy.

The Real World

People who think the “Real World” matters and care how much they “made a difference” just weird me out.

Electrons are a real part of the world, too.

You will die and your persona & works will be forgotten. Humans will go extinct, possibly quite soon. In a billion years the Sun will burn the Earth to a cinder.

There are, as you know, no gods or souls.

So it’s OK to fuck around and do nothing productive, make art for no purpose. Because nothing matters, you can do anything.

Revenger (Alastair Reynolds)

Revenger, by Alastair Reynolds

Just what I needed, a reasonably hard SF adventure story.

In the Eighteenth “Occupation” of the solar system, millions of years after the Sun & planets have gone boom, monkey-people more or less like us live in millions or billions of habitats, from Little Prince-style planetoids to big cylinders, and solar sail & ion drive ships cruise between them looking for ancient booty in booby-trapped worlds called baubles (not quite to be confused with Vernor Vinge’s Bobbles). It’d make a great RPG setting, and there’s at least 3 things I plan to steal^W liberate for my SF game.

Character expectations are subverted often: The protagonist Arafura Ness & her sister Adrana, seem like “nice” pseudo-Victorian girls until they run off to join a ship, the robot Paladin seems like a harmless nanny or tutor until it isn’t, the ship’s crew start out rough but soon you get some sense of who they are and why, and the specific jobs in bauble-hunting make sense. The villain’s a right bitch, but there’s a justification… But the title tells you how Arafura sees things. While the girls and Captain Rackamore in particular are sometimes fools, at no point do I lose interest in anyone or feel annoyed by them existing and taking up pages, like everyone in The Stars are Legion.

I have a slight complaint in that the bauble worlds, the mechanics of the traps & treasure troves, are barely touched on, and I want a detailed sourcebook with maps and diagrams, or at least an inside cover map of Fang like Treasure Island. The physics isn’t given in enough detail for me to check Reynolds’ math, but it’s not wildly implausible, just handwaved.

“Very well, Just Fura. I make no promises. You look like a barefoot street waif and you’ve got spite in your eyes. You’ve been on the glowy and that never sits well with me, especially if it gets in the grey. But if you’re half the Bone Reader you think you are, maybe you have something to offer.”
“I’ve plenty to offer,” I said. “Intelligence. Baubles. Fortune. Quoins.”
I spared him the bit about bloody retribution.


It’s Reynolds doing “YA”, more in the style of a Heinlein juvenile than the usual trash of that genre, but that also means it’s mainstream enough that children who can neither read or think have taken to posting meme-image “did not finish” “reviews”. Ignore them. Trust only in me.

Update: Reynolds wins the Locus award for best YA novel, and clarifies its YA-ness

The Stars are Legion (Kameron Hurley)

I’ve been trying and failing to read The Stars Are Legion by Kameron Hurley (who I have liked in short stories) for weeks now, and I’m giving up 1/4 in. The characters are all idiots, I loathe most of them, and the story is repetitive. There’s bits of cool worldbuilding and then the author says “no, there will be no sensawunda here! Eat shit!”

★☆☆☆☆ for what I’ve read.

WWDC 2017

Just a few minutes to DubDubDeeCee!

Despite that I’m currently not working on any iOS or Mac-specific software, and it hasn’t been great since Steve died, I’m still always excited. Just a few years ago I was always in that keynote line, and then a week drinking from the session firehose, getting my apps problem areas looked at by engineers, and overdrinking at the parties and beer bash with usually shitty bands (but one year they had Barenaked Ladies!!!)

So this week I’ll be watching sessions when they have something that isn’t nonsense about IVE-1138’s white room, or Swift the walking dead CPU-burner of a language. And then get back to work on a modern platform.

Using Atom

“Have you tried Atom?” #RuinADateInFourWords

Have gone to the dark side temporarily: Atom handles my ES6 better than BBEdit currently. 😭

But it’s not quite right, so I fix. Atom configuration is a bit of a mess, but everything-is-a-plugin is a good philosophy.

  • One Dark UI & One Dark syntax themes are OK. But for crazy-go-nuts, install ubik-neon-syntax, and atom-material-ui. Goddamn this makes me want a bottle of Jolt Cola and an Information Society CD blasting on endless repeat.
  • install logo-file-icons, garish but the more popular file-icons is bland and ugly.
  • install symbols-list, because the default symbols tool doesn’t find new-style classes.
  • install eslint, because nobody writes JavaScript good, even me after 20 years of it.
  • install atom-mac-terminal, gives you an “Open in Terminal” right-click.

  • packages, linter, settings, turn off “Lint On Change”, because that slows down an already slow editor.

  • packages, autocomplete-plus, settings, turn off “Show Suggestions On Keystroke”. Ctrl-Space is fine. I learned to touch-type on an IBM Selectric, so I type faster than JS can autocomplete anything but a very long constant.

  • % atom ~/.atom/styles.less and add:

    /* scroll bars should be grabbable */
    .scrollbars-visible-always {
        /deep/ ::-webkit-scrollbar {
            width: 20px;
            height: 20px;
    /* turn off all that folding folderol */
    atom-text-editor.editor .icon-right {
        width: 0 !important;
    /* make the gutters different from text so I can see indentation */
    atom-text-editor.editor .gutter {
        border-right: #222222 1px solid;
        background-color: #111111;
    /* ubik-neon-syntax has overly dark functions, was #133460 */
    .theme-ubik-neon-syntax .syntax--entity.syntax--name.syntax--function, .theme-ubik-neon-syntax .syntax--support.syntax--function {
        color: #4f6db4;
        font-weight: bold;
    /* ubik-neon-syntax recolors the semantic class of arguments to functions; I want types to be colored the same in or out of a function call. */
    .theme-ubik-neon-syntax .syntax--arguments, .theme-ubik-neon-syntax .syntax--meta.syntax--function-call {
        color: unset;
  • (new 2017-06-10) % atom ~/.atom/keymap.cson (why is there no UI for keymapping?!) and add:
    # I hate editors & other long-term applications closing by instinctive Cmd-Q
        'cmd-alt-ctrl-shift-q': 'application:quit'
        'cmd-q': 'pane:close'
  • (new 2017-06-10) % atom ~/.atom/snippets.cson (why is there no UI for snippets?!) and add:
            'prefix': 'me'
            'body': '''module.exports = {

Open issues:

  • I can’t find a package to get rid of tabs and only badge/color open files in the tree view.
  • Regex field is unbearably small. I often copy over to BBEdit, do a big regex there, copy back.
  • To figure out any style element to customize, you have to open developer mode ⌘⌥I and pick the element and find the exact right style from a mess of styles. A lifetime writing HTML & CSS pays off in customizing a fucking editor; if you’re not me, you’re probably stuck with it. BBEdit lets you customize styles right there in Preferences. At least atom-material-ui has a couple choices for accent colors.
  • I wrote this post in BBEdit. Atom has a Markdown preview, but it’s awkward and far slower.

News Snark

OK, what’s going on in tech today?

  • Apple’s bragging about the fucking trees on their spaceship compound. link

  • Tech companies are powerless against coal/oil company politics. link

  • Google’s ad-blocking everyone except Google ads. link

  • Nintendo wants you to pay $20/year for online multiplayer, still no backup, and an NES emulator (back when their games were good). link

(I don’t expect to do this often, but my sarcasm levels are higher than my bullshit-tolerance this morning)