inessential by Brent Simmons

March 2016

Sound Off Round 2 - UIKonf

Sound Off is raising money for live captioning at UIKonf:

Live captioning for UIKonf is not only going to open up the conference to the deaf community and the hard of hearing, but will be indispensable for many of the attendees for whom English is not their first language.

Donate now via GoFundMe.

How It Went at the Caucus

On Saturday morning we went to a nearby school (in my neighborhood in Seattle) and attended the caucus for our precinct. Sanders beat Clinton 94-35 — four delegates to one.

I was nervous, since I hadn’t been to a caucus before, and since I knew I’d be voting on the losing side. I was afraid my wife and I would be the only Hillary people there! But we weren’t.

I was also a little nervous that the proceedings might be other than completely civil. And there was one guy — Mr. Well Actually — who interrupted Hillary speakers until other people reminded him that everybody gets their turn. That was the worst of it, which means it wasn’t bad at all, and I needn’t have worried.

* * *

On the night before we pre-registered online and printed out a form and wrote in our initial preference.

On Saturday, just before 10 am, we took our forms and went to a gym room at the school and waited with a few other precincts for about half an hour. Then the guy running our precinct’s caucus called us together, and we walked out into the hall and found the particular hallway where we’d be caucusing. It was crowded and hard to hear, so the guy suggested we go outside.

We went outside. It was warm enough and sunny, so it was nice.

The people who run caucuses aren’t professional caucus-runners, obviously, so we didn’t totally stick to the script. We missed doing the initial tally. We did split physically into three camps: Sanders, Clinton, and undecided. Undecided had just a half-dozen or so people.

* * *

Then people volunteered to speak for Sanders and Clinton, and they alternated. There were four of five speakers for each, and each spoke for about three minutes. Nobody had a practiced speech that I could tell. (I didn’t speak, though I was tempted.) (One undecided voter spoke too.)

Only one of the speakers was at all provocative — a woman who said that Clinton supporters were “voting out of fear,” which elicited a bunch of head-shaking and audible no’s. The speakers who did best were the ones who talked about why they were for their candidate, rather than why they were against the other candidate.

* * *

Very few people changed their votes. We turned in our forms to the person running the caucus, then people huddled around him and did arithmetic. It took a while.

About half the crowd left during the math phase. But we wanted to stay for the whole thing, because that part is democracy too, and we like democracy. (It ended before noon. It’s not like it took ridiculously long.)

Once that was done, and the tally and delegate totals were announced, then each side elected their delegates. For us (since we had just one delegate), it was easy. A person volunteered, and we all just agreed. We needed two alternates, and people volunteered and we agreed. Simple.

Those delegates go to a local convention. There are layers of conventions before there are delegates to the national convention. So it’s no giant commitment to be a delegate — but still, it’s very cool of those people to volunteer.

* * *

I expect to caucus again next time. It’s kind of fun.

But I still massively prefer a secret-ballot primary system. You get way more participation that way: it’s more democratic. I’m not saying the outcome would have been any different — probably not. I just think it’s fairer. More people have a voice and feel like they have a stake when they can actually participate. It’s why we’re Democrats, after all.

* * *

It was my 48th birthday. For my birthday I got to cast a vote for the person I believe will be the first woman President of the United States of America. It felt great.

(No offense meant to Sanders supporters. I like Sanders too — I’ve been a fan for years. I think Hillary would be a better President, so I voted for her. Reasonable people may disagree.)

OmniOutliner 4.5.1

The latest OmniOutliner for Mac is up. (It will be in the app store once it passes review. This week is my guess.)

Changes include some printing bug fixes — and also a fix for a cosmetic bug that was driving me crazy: in the sidebar, when you collapse or expand the Styles, the Contents outline will now stay in place. (Previously it was changing position then changing back. Animatedly.)

The fix, by the way, was just to switch to a flipped NSView, so that 0,0 is at the upper left rather than bottom left. Given that we’re using auto layout, I didn’t expect the flipped-ness of a view to matter, but it does. (I should have known better.)

CocoaConf Seattle Sale

The Early Bird Sale for CocoaConf Seattle ends Friday night. Check out the great list of speakers!

@natashatherobot is doing two talks. That right there makes it worth it.

Notes from a Conditional Breakpoint

Write some good songs — that people like and that make them laugh — and make some slides to go with them. Create an album of those songs that appears in the iTunes charts. Then write some more songs.

Then — just to up the ante — do a bunch of live performances every year, but never with the same band. And be a great singer and entertainer every single time.

And be an intelligent, friendly, and good person. A person anybody would be glad to call friend.

That’s James Dempsey.

Because the songs are nerdy and funny, because James looks like a guy who’s just having fun, it might be easy to overlook what an achievement all this is. You try it!

* * *

I’ve played with James several times, which makes me a Conditional Breakpoint. (Including most recently at the Yosemite Cocoaconf.)

I’ve played campfire guitar and the occasional piano-found-in-a-bar — but never, before James, have I played with other musicians with a set list and a crowd. It’s such a pleasure, and one that I never expected in life. So much fun.

I have James to thank.

And I’d also like to thank, from the most recent Yosemite show: Jim, Laura, Allen, Jean, Serenity, TJ, Daniel, Christopher, and Jonathan. That right there is a super-group.

PS I remember a few spots where I messed up. The ending of a couple songs, and coming out of the bridge on “Model View Controller.” I’ll nail those at Seattle CocoaConf. :)

PPS In case you don’t already have it, you can get the album.

PPPS With Jonathan there, how could we resist doing a live performance of the ATP theme song? We couldn’t. I assume there will be a video at some point and I’ll link to it.

Update 3:30 pm: Here’s an iPhone video of the ATP theme song, recorded by Andrew Milham. And more of a close-up video recorded by Kim Ahlberg.

Nerds in a Room

At the Yosemite conference — which was wonderful, which you should attend if they do it again next year — I did the kind of talk I’ve been moving toward as I get away from technical talks.

Technical talks are great and a needed thing, but I don’t love doing them, so I leave them to other people.

Lately I’ve been doing what I think of as nightclub act. The idea is simple: do 15 to 20 minutes on something non-technical but, hopefully, interesting. Tell a story and throw in a few jokes. Roll with whatever happens.

Get the audience involved. If the crowd is small enough (such as at Yosemite) I just go around and the room and have everyone introduce themselves.

(Mic technique is key, there, and I flubbed it at Yosemite. The rest of the audience needs to hear what each person is saying, and I didn’t have the mic close enough in every case. Lesson learned.)

* * *

I’m not necessarily suggesting this for anybody else or even giving advice. And I’m not saying I’m great at this — just that I’ve gotten to where I can reasonably pull it off.

(As Laura Savino said in her fantastic talk: let’s not be afraid to be mediocre in public!)

But people asked me about it, so I figured I’d write up how I approach it.

The Goal

A thing like this has to be the last talk, preferably on the first night, and my goal is to propel people toward the socializing that happens right after. I want the talk to feel intimate, relaxed, and fun — because that’s the mindset we should all be in as we stand up and start talking to other people.

I also want people to feel as if they can talk to anybody. They’ve just heard and seen me be a big dork who goes around and does exactly that — and they can do it too. It’s as easy as asking “What’s your name?”

How I Prepare

I’m lousy at slide management, and I’ve realized I don’t really like slides. So I try to use as few as possible. This one had four, and I cut the first one (the one with the title and my contact info) at the last second, and so I had just three. And almost the entire talk was done with just one slide. (It was a giant, blurry photo of a raccoon in my back yard.)

(I might go entirely without slides next time. For what I’m doing, slides are a crutch, and I don’t need them.)

I wrote out my talk first. Then I spent about six hours rehearsing it over two days (and many thousands of steps as I paced), and revising it as I went.

I do not try to stick too close the script when rehearsing — I let myself improvise. Sometimes those bits end up back in the written version, and sometimes not. But it makes me comfortable with improvising, which I then bring to the performance later.

(Example: in the delivered talk, I had a made-up-on-the-spot thing about how the folks in the room were the people who wrote the targeting computer that Luke Skywalker switched off before blowing up the Death Star. We had unit tests! It would have worked! But no. Luke’s a jerk.)

How I Perform

I like to swing my arms above my head a few times right before starting. It gets a little adrenaline going and it loosens me up. It makes me feel like I can move. I’ll do that right off-stage — or even on-stage — because it doesn’t matter if people see me doing it. If people think, “Hmmm, that’s oddly dorky of him,” then that’s fine.

I probably end up moving around during the talk more than I should, but I’d rather that than get trapped behind the podium.

Then I keep in mind a few things:

The audience wants it to go well. Of course they do! That’s why they’re here. They’re rooting for me and for every other speaker.

And: time flows at a different rate for the speaker than for the audience. It feels like ten minutes for me equals one second in the audience — so I compensate and slow down more than actually feels right. Also: when my brain suddenly goes multi-threaded, I just pause, let it go back to a single track, then move on.

My brain sometimes wants to comment on what’s happening — so while I allow for improvising, I filter out, as much as I can, the self-conscious things my brain comes up with.

(Just as time is different for the speaker and the audience, attention-to-detail is also different. When I’m up there, I’m hyper-aware — and critical — of what I’m doing, but nobody else in the room is in that position. So I don’t sweat if I flub a sentence or lose the train for a second or whatever. If I remain cool, then it’s like we’re just a couple nerds talking. Which is totally what I’m going for.)

So: having prepared, having rehearsed improvising, knowing that the crowd starts out on my side, having gotten ready to move, having slowed down my sense of time and turned on my self-consciousness filters, I then just hope that something happens.

I want that particular performance to be possible only in that room, that night, that hour, with those people.

And something always does happen. I went way too far stage-right and triggered some nasty feedback, and backed away slowly. (The subtext of every moment like that: we’re just nerds in a room! Total amateurs! Mediocre in public! We laugh and move on.)

Even better, though: since it was Yosemite, I could bring a pint of Stella on stage with me. And then — unplanned, and brilliantly executed — Jim Dalrymple snuck up and refilled my beer right as I was getting to the main point of the talk. I couldn’t have planned anything better. (Lesson learned: I should always require that Jim is in the room when I talk. We understand each other.) Sure, you had to be there — but that’s my point. It worked right there and then, and it was unplanned yet so right.

(I don’t actually recommend drinking, even beer, while presenting. It just makes the whole thing a bit more challenging, and if you go too far then you’re not actually going to give the audience their money’s worth. So let’s just say that it worked largely okay once and leave it at that.)


Then I spend a week thinking about how it went and how it could go better. Next time I’m sure I’ll have a different story to tell — or I’ll have modified the story in some important ways to make it work better.

And I vow to spend even more hours in rehearsal next time. The more prepared I am, the looser and more comfortable I will be — and the better able to roll with the room.

Funny thing: the more I do this, the harder I work at it. I’ve gotten to the point where it’s fun, and I hope it shows.

Chug on Fixing the App Store

Chuq Von Rospach writes:

I’m a strong believer that the indie developers are where the innovation comes from, not to mention the next generation of experts on the platform, and that it makes sense to invest in supporting them beyond what the revenue their apps will return through sales on the platform, but in all honesty, the revenue numbers and analytics make that a tough sell, and Apple is likely in that place where there are 300 proposals on the project list for the next year, and resources for 50 of them, so how do you choose which ones make the cut?

Indies and the App Store

Rene Ritchie, in What no indie developer wants to hear about the App Store, writes:

Big apps get all the attention these days, just like big movie, music, or book releases — or big toy releases — and indies get what little is left, when there’s even a little left. The App Store is big business, and that’s how big business works. Only our nostalgia keeps us thinking otherwise. Just like our nostalgia for the corner store in the age of online and big box.

On this same subject, Ben Thompson’s Why doesn’t Apple enable sustainable businesses on the app store? is worth a re-read.

* * *

Obviously some companies are doing well — such as Omni, where I work — selling productivity apps on the App Store.

And indies would do better than they are right now — possibly much better — if the App Store had trial versions, upgrade pricing, and a faster and better review process. (And the Mac App Store should make sandboxing either less onerous or, preferably, optional.) (And — since I’m listing the ponies I want — it would help if Apple took something like 10% rather than 30%.)

But a couple other things are true:

There was never a golden age for indie iOS developers. It was easier earlier on, but it was never golden. (Yes, some people made money, and some are today. I don’t mean that there were zero successes.)

And there’s a good chance that many of the people you currently think of as thriving iOS indie developers are making money in other ways: contracting, podcast ads, Mac apps, etc.

* * *

Speaking of Mac apps: ten years ago you could make money writing and selling Mac apps. There was a small-but-awesome community of indie Mac developers. This hasn’t changed.

The Mac has for a long time been overlooked — first because Windows was so huge, and then web apps, and now iOS. For my entire career people have said that the Mac is a bad bet, that it’s dumb to write Mac apps.

In 2002, in Why I develop for Mac OS X, I explained that I write Mac apps for emotional reasons.

Those emotional reasons still apply, and are enough, themselves, to keep me writing Mac apps. But my experience since then tells me that writing Mac apps is the best economic bet for indies. (Particularly if you sell the app yourself, so you can have a trial version and upgrade pricing.)

It’s okay that you totally don’t believe me. I know you don’t. But Mac developers have been going against the prevailing wisdom — and making great apps — for decades. We’ll keep going.

* * *

Update 2:20 pm: See, from 2008, Advice for indies.

Question for Ted Cruz

In 2014 Senator Ted Cruz attempted, by use of a filibuster, to prevent Congress from raising the debt ceiling. Had he been successful, the United States would have defaulted on its debt, with unknown — but likely extremely dire — consequences.

Cruz — throughout his Senatorial career and through this campaign — has often spoken of returning America to the rule of the Constitution.

But there’s the matter of the 14th Amendment. From Section 4:

The validity of the public debt of the United States, authorized by law, including debts incurred for payment of pensions and bounties for services in suppressing insurrection or rebellion, shall not be questioned.

This was ratified after the Civil War, hence the “suppressing insurrection or rebellion” part. But the gist remains: the validity of the public debt shall not be questioned.

If the only way to follow the Constitution is for the President to ask Congress to raise the debt ceiling, would President Cruz do so?

(Historical note: the debt ceiling was raised 17 times during President Reagan’s time in office. It’s not a new thing.)


The Omni Group’s Liz Marley, who recently transitioned from testing to engineering, appears on the NSNorth 2016 podcast. She talks about…

…challenges in engineering school, working with office cats, making the transition from software engineering to testing to developing and how knitting, like code, has the ultimate undo.

Knitting is serious (though not somber) business here at Omni.

OmniOutliner 4.5

OmniOutliner 4.5 is up on Omni’s site, and should be in the Mac App Store within days.

With this release — see the release notes — I helped work on, of all things, printing bugs and features. This is the first time in my entire career where I worked on printing support that was more than just the most basic possible thing.

And that sounds weird for the year 2016, I realize. But here’s the thing: working on printing support is far from glamorous. You wouldn’t call it fun. But the people who need these features really do need them, and it’s a matter of respect for OmniOutliner users that we do a great job even with printing.

But I sure am glad to get it finished and shipping. And I’m proud of the work we did — more proud than I expected to be. It’s solid, and I think the people who print from OmniOutliner will be very pleased.

Now we’re on to other new features, including editing Markdown documents with OmniOutliner.