inessential by Brent Simmons

The Public Square

Last night I deleted all my tweets going back to the beginning of Twitter time. (Except for a mysterious 49 tweets that apparently can’t be accessed?)

And I tried to make my profile info very clear about me not being there any more. Removed avatar and background image. Changed bio to “Finished with Twitter.” Changed display name to the name of this blog.

* * *

My problem with Twitter remains the same: centralized social networking concentrates way too much power in one place.

Twitter is awful in other ways, sure, not just for that reason. (The issues with Nazis and harassment and abuse. The way it treats third-party Twitter developers.)

And Facebook, too, is awful in its own ways.

But, even if it were well-run, centralized social networking is still a deeply bad and unhealthy idea. Josh Marshall writes that we should be concerned about

…ceding so much of the public square to private platforms which really aren’t about free speech in any way and don’t have free speech in any way. They’re all ordered by algorithms designed to maintain time on site and service ad sales. In no sense are they open or free.

Twitter is not the public square. It just wants you to think it is. The web itself is the public square.

* * *

It’s not like I’m short on ways to read and write and connect: email, RSS, text messages, podcasts, Slack, the chat app my company uses, GitHub, my blog, my microblog. Plus real life!

* * *

I get it, though, when people think they need Twitter for exposure and marketing. In fact, I help with social media at my job — and I’m a professional, and I try to do the best job I can and get even better at it.

But I don’t need Twitter for me. For a long time there’s been just one thing I’d like to convince Twitter users of: that centralized social networking is harmful to society and to individuals.

I can make that point on Twitter — but it’s hollow there, since the medium really is the message. Better to make that point by not using Twitter at all.

PS Matt Haughey has left the building.

Nikhil Sonnad, in Everything bad about Facebook is bad for the same reason:

…the imperative to “connect people” lacks the one ingredient essential for being a good citizen: Treating individual human beings as sacrosanct. To Facebook, the world is not made up of individuals, but of connections between them. The billions of Facebook accounts belong not to “people” but to “users,” collections of data points connected to other collections of data points on a vast Social Network, to be targeted and monetized by computer programs.

There are certain things you do not in good conscience do to humans. To data, you can do whatever you like.

The Old Reader blog — Thanks, Google!:

It’s now clear that the demise of the Google Reader was first really loud warning that you can’t rely on a publicly traded, profit-driven Silicon Valley tech company to deliver content. There is no way that story ends well. They will feed you sponsored crap, undermine your democracy, or pull the rug out from under your feet entirely.

Nick Heer on The Bullshit Web:

The vast majority of these resources are not directly related to the information on the page, and I’m including advertising. Many of the scripts that were loaded are purely for surveillance purposes: self-hosted analytics, of which there are several examples; various third-party analytics firms like Salesforce, Chartbeat, and Optimizely; and social network sharing widgets. They churn through CPU cycles and cause my six-year-old computer to cry out in pain and fury. I’m not asking much of it; I have opened a text-based document on the web.

Evergreen Diary #10: Syncing, Feed Data, and Swift 4.2

It’s difficult to write a future-proof schema for Evergreen’s Feed object because the needs of syncing systems — and other future features — may require me to add properties I don’t know about yet.

And: different syncing systems might need different properties, and I don’t really want to create an uber-schema which is the union of all of these. (And I don’t want to create a Feed protocol, because Set<Feed> is then impossible.)

What I really want is two things:

  • A Feed object where I can write feed.someSyncThing and feed.someSyncThing = whatever with type safety and without defining someSyncThing as a property or part of a database schema.
  • A Feed object where getting and setting these things gets and sets from a database. Persistence needs to be automatic.

In other words: I want arbitrary dot-syntax gets and sets, and I want automatic database-backed persistence.

Let me tackle these in reverse order.


I spent the first seven years of my career programming in UserLand Frontier, which includes a database that can be thought of as a giant nested dictionary. Dictionaries contain key-value pairs — and any value could be another dictionary, right?

It was the same in Frontier, except we called them tables. Tables could contain tables. There was no schema: any table could contain key-value pairs.

Persistence was exactly as easy as that: you could get and set values and tables, delete things, etc., and the whole giant nested dictionary was stored on disk as a database.

This is exactly the kind of thing I want backing my Feed objects. I want a Frontier-like database with a table called feeds, and a subtable for each individual feed (keyed by feed ID). The table (remember it’s like a dictionary) for each feed contains exactly what it needs — including any arbitrary future stuff I haven’t needed or though of yet — and nothing else. No database migrations ever. Just room to grow.

Well — I’ve been working on this for a while, and it’s not quite done, but it’s close. See ODB, which is part of my RSDatabase framework.

Great! So that’s half the job.

But what about the dot-syntax part? Swift is all about type safety, and being able to refer to object.anything seems un-Swift-like, no? I mean, that’s like a dynamic thing, right? Isn’t that more suited for those free-range kids who write in Ruby and Python?


My ODB code was far enough along that I started to actually revise my Feed object to use it and to handle arbitrary key-value pairs. I started by implementing a subscript method, so I could write code like feed[Key.etagHeader] = whatever — but I just didn’t like the look of it.

I really wanted dot-syntax, so I could write feed.etagHeader = whatever instead. Something — I forget what — made me vaguely wonder: wasn’t there something about this recently?

There was! Check out User-defined "Dynamic Member Lookup" Types, which was implemented in Swift 4.2 — which I’m using — and which makes me extraordinarily happy.

The gist is this: you can add a @dynamicMemberLookup attribute on a type, and then use dot-syntax to refer to any arbitrary data, and then implement a special subscript(dynamicMember: String) method (or multiple methods for different types) that gets and sets that data.

This is perfect. It means my Feed object can be as dynamic as its storage — without losing any syntactic niceness or type safety.

I realize that this new feature was written with the idea of working better with languages like Ruby and Python.

But I’ve long maintained that there are cases where dynamic solutions are appropriate even in Mac and iOS app code, even in code written in Swift.

Given the truth — that different Feed objects used with different syncing systems will need to store different data — it just makes sense to make Feed schema-less. And the combination of my ODB code and Swift 4.2’s dynamic member lookup feature means I can.

(Note: I haven’t finished my updated Feed code to check it in yet. I’ll update this post with a link once it’s up.)

I don’t remember the opening day of the App Store as well as I remember the July 4th before as I was frantically finishing up NetNewsWire 1.0 for iPhone — so I could get it submitted in time.

As people were coming to my house for a big family barbecue. As I was stuck inside on a nice day.

As I did get it finished, and then we had a great barbecue, and then on App Store day one it was all worth it. :)

Twelve-bar Blues

Without the twelve-bar blues progression there would have been no rock-n-roll. Without rock — the music of rebellion and of fun — every decade from the 1950s on would have been very different.

On the theory that knowing something about how music works helps your appreciation — after all, musicians themselves understand music, and this enhances and does not dim their love — I figured I’d explain twelve-bar blues to people who don’t know about it.

Three Groups of Four

There are many variations, but the basic progression looks like the below. We’ll use the key of C to illustrate. Each note here represents a chord played for four beats.


Instead of specifying the key, you could use Roman numerals. The root chord — the one matching the key (C in this case) — is I. If you count C-D-E-F, then F is IV. And C-D-E-F-G makes G number V. So you have:


In the key of E these would be E, A, and B, for example. Same pattern, any key.


In a very traditional blues, you sing the first line, then repeat it — maybe slightly differently, because the chords are slightly different, and because some variation is good — and then sing a line that rhymes with that first line. Something like this:

Oh baby, don’t you want to go

Oh baby, don’t you want to go

Back to the land of California, to my sweet home Chicago

(This is from “Sweet Home Chicago” by Robert Johnson.)

But it’s not always that way. Consider the lyrics to “Blue Suede Shoes” by Carl Perkins:

One for the money
Two for the show
Three to get ready
Now go, cat, go — but

don't you
step on my blue suede
(no singing)

You can do anything, but
lay off of my blue suede
(no singing)

(Also note that “Blue Suede Shoes” uses V V to start off the third line instead of V IV. There are no rules other than sounding good.)

Electronic Blues with a Backbeat

(I’m simplifying a lot here, obviously, but I think the below is correct as far as it goes.)

The earliest blues was played in the South on acoustic guitars. And then two things happened: the African-American Great Migration, and the invention of the electric guitar. And then you had urban blues — in Chicago, Memphis, and elsewhere.

Rock music started as just another form of the blues. It’s impossible to say where electronic blues turns into rock. But one thing was especially prominent in rock music: the backbeat.

Blues and rock both have four beats to each measure. The accented beat is not the first beat, or first and third — it’s the second and fourth: beat BEAT beat BEAT.

It’s where you clap along. It gives rock music its drive. It moves you to dance — where, for instance, the acoustic version of “Sweet Home Chicago” probably doesn’t.

Another Difference

The early greats of rock in the ’50s were — not surprisingly, given where the music came from — African-Americans: Chuck Berry, Little Richard, Bo Diddley, Fats Domino, and plenty more. (Chuck Berry is the singular indispensible rock-n-roller.)

There were white artists too: Elvis Presley, Carl Perkins, Bill Haley and His Comets, Buddy Holly (the first nerd rocker), and so on. And this was a pretty big difference from the blues.

Great music should be shared and played by whoever feels it and can do it. Great music can bring people together — and rock music helped bring down segregation. At first, at least.

But what happened next is the tragedy of rock: by the late ’60s, just a little while later, an African-American playing rock was an anomaly. There was Jimi Hendrix — and who else? The list is short.

People other than me have written about this at length. But the upshot was that decisions were made to separate the music racially into Rhythm & Blues (R&B) and rock categories, and rock was largely white. (Yes, this isn’t a complex and nuanced telling of the story — but it’s enough for this blog post.)

Never mind that every white rocker was playing, essentially, a form of the blues. The Beatles, Rolling Stones, Yardbirds, the Animals, Creedence Clearwater Revival — they were all blues bands of a sort.

These Days

You don’t hear twelve-bar blues in rock so much these days. In fact, you may not hear that much rock-n-roll at all, depending on your taste.

But it’s worth knowing something about this music, about how it works and where it came from. And the good it did, and does, and the tragedy. All of it.

We can’t change the past, but we can understand what happened and remember it. And maybe we can notice when we’re about to make similar mistakes, and not make them.

Uncle Whisky

When I was a kid we spent more time with my Mom’s family than with my Dad’s, but we still spent lots of holidays with my Dad’s family.

My Dad is the oldest of four siblings. The youngest, his brother, is only 10 years older than me. I remember my uncle and his sisters when they were teenagers.

The thing about the family was that everyone was constantly joking and laughing. I loved this.

I wanted to join in, so I did, from an early age. And sometimes I even got laughs! But most of the time I didn’t.

One day my uncle — who must have been about 20 then — gave me some advice about it. He said, “Hey, you don’t have to say everything you think of. Just the ones that are actually funny.”

Okay, I thought, so now it wasn’t enough to be fast enough to think of something that might be funny — I had to also evaluate it for likeliness? All in the space between sentences? And make it seem natural? Who can think that fast?

I think what he was doing was trying to get me to be less annoying. But I took it as earnest advice. And, well, I remember thinking, after a while, that it worked.

* * *

My uncle, Peter Simmons, became an actor and writer. He lives these days in Minneapolis, and he surely remembers none of this conversation.

* * *

My uncle had a dog named Whisky who was born the same spring when I was born. I called him Uncle Whisky, and I believed, until I was about 10, that of course dogs can be uncles too. Perfectly natural.

* * *

Whisky — sometimes called Wick for short — enjoyed hors d’oeuvres in the afternoon. There was always chips and that sour cream and onion dip. When you picked up a bad chip, you gave it to the dog. Those were called Wicker Chips.

To this day when I get a bad chip I mentally set it aside for Whisky, who was a good dog and a great uncle.

* * *

I’m a terrible introvert. The other introverts around me seem extremely outgoing. I marvel at them.


But I had this weird family training, and so I can, for instance, go around a room at a conference with a microphone and talk to every single person, put them at ease, quickly think of things to say, make it seem natural — and even be a little funny.

Not only that — I enjoy it!

And I can do a podcast. And I can point to the latest episode with Aaron Cherof as one of the better episodes. I suspect Aaron may have had a family kind of like mine.

Om Malik on blogging:

They are incomplete and by nature more mysterious, more episodic, and thus more interesting. Blogs are meant not to leave you with everything. The whole idea is to think to deliberate, and to come back again and again, to finish what was started a long time ago. But there is no end, just a pause, for a voice to start, talking again.

I love that.

I never became the Hemingway or Fitzgerald type of writer that I wanted to be when I was young. No short stories, no novel, no cover of Life magazine.

But I have written a blog for almost 19 years — and that’s something. It‘s still a new medium, and it’s new to have blogs hitting (and even passing) the 20-years-mark.

Here’s a provisional thought (all thoughts on a blog are provisional) — to read a good blog is to watch a writer get a little bit better, day after day, at writing the truth.

On Not Doing Prepared Talks Any More

Some time last year I decided to retire from doing prepared talks at conferences.

I’ve been doing them for 15 years, and I’ve enjoyed some of them. Eventually I started playing with the form, and that was kind of fun.

The best talks I ever did usually had some story-telling parts, and those turned out to be the parts that people liked most. The only problem with that is that my stories usually didn’t have anything to do with the conference. I just like telling stories. Stories about raccoons and squirrels. :)

Preparing a talk is a lot of work, and my standards for my talks kept going up, which meant ever more preparation, and more stress — and since I didn’t love it, I decided to stop.

I don’t mind being in front of an audience, though — I’ll emcee, appear on a panel, moderate a panel, or play in a Breakpoints Jam.

But the actual talks from me are over.

Here’s the thing, though: this means one less middle-aged white man taking up a slot. This is a good thing. If you were thinking of asking me to do a prepared talk at your conference, instead ask someone who doesn’t look like me.

And if you’re having trouble finding someone, just ask me and I’ll help.

Fascism These Days

I can write just about anything I want to on my blog for the simple reason that it doesn’t matter.

Times change. Fascists learn. There’s no pressing need to cut off any websites.

* * *

Fascists don’t leave so many fingerprints these days.

Example: there’s no actual agreement anywhere that makes Twitter a de facto arm of the Trump Executive Branch and all its unofficial partners — but it is.

Twitter bans the people who report abuse and it retains the Nazis and Russians. It amplifies the distractions and fills the pipe with lies and outrage. (And gives us special emoji as rewards.)

The truth can’t be found in the ever-thickening fog.

Though Twitter has been used for good, I’m more and more convinced that giving it anything just feeds it. If the medium is the message, then the message is lies, lulz, and bullshit, no matter what you put in.

* * *

That’s not to say that fascists won’t ever take our freedoms away. The fascists grow stronger and bolder, and those who would check their power chicken-out.

But it won’t usually be laws, or even executive orders, that take away freedoms. Think of the NFL, which — utterly disgracefully — now mandates against kneeling.

Samantha Bee survives on TV this year — but will she survive next year?

* * *

What if agents in the Secret Service or FBI begin quietly talking to bloggers or tweeters who express an anti-Trump point of view? No law needed. No take-down notice. It’s just agents doing their jobs.

Would you keep blogging after having a quiet meeting with a couple armed men who — politely and calmly — explain that they’re just checking to make sure you’re not a threat to national security?

Would you even tell anyone about the meeting?

This hasn’t happened to you. Okay. (Or to me.)

But how would you know if this is already happening to other people? If a friend told you a rumor that it was happening, what would you think? Is it plausible from the team that already works so hard to discredit the free press? If you thought it might be true, would it change how and what you write?

Consider that there wouldn’t have to be any order or directive at all from the White House to the Secret Service or FBI. The White House wouldn’t even have to know about it.

This is one way fascism works. It leaves no marks. It doesn’t even have to lift a finger sometimes.

They don’t have to do this at all, in other words. They just have to get to the point where you wouldn’t put it past them. At that point they can let our imaginations and rumors do the rest — and people will surrender their voice.

For the record — and this is super-important — I do not believe this is happening. This is merely illustration, and I’m not that paranoid, and you shouldn’t be either.

The Easy Target

The United States of America was the easy-to-choose target for the fascists.

It was the richest and most powerful country in the history of countries. How could any fascist not want to take it over?

It was the work of several decades.

They built up a giant military/industrial partnership — mixing government and unaccountable corporations with secrets — with almost no resistance.

Sure, they faced some setbacks from time to time: the end of apartheid in former slave states, for instance. But they fought back by privatizing the prisons, instituting mass incarceration, and militarizing the police force — and ensuring that it remained a tool of white supremacy.

They stoked fear of communism, as if adding just a penny of tax meant imminent Sovietization; as if labor unions were anti-American insurgents; as if a social safety net would make Jesus cry. As if “equal opportunity” meant Fidel Castro walking into your house with a machine gun.

They gutted the education system and fought knowledge with mass disinformation. They made sure that corporations could and would hook Americans on opioids and blather and outrage.

While some of us did learn that the beauty of America is our constant striving to better understand our founding creed — and finally live up to it — they made sure that half of us believed in America as a land and as a race.

And now that they’ve won — they’ve gotten their orange leader with the red cap, they’ve gotten their system of cruelty — they’re carving it all up for themselves. They’re cutting it all up with jigsaws and burning what they can’t use right now.

There were, and still are, leaders who could fight back, but who just plain refused.

If we’re lucky enough one day to have a true history, those people will go down as among our greatest traitors. Every day I long for that day.

What I Actually Do

Now that I’ve switched over to marketing, people — co-workers, even! — keep asking me what I actually do all day.

Fair question. Since I’ll probably get asked the same thing in San Jose next week, I figured I’d write it up.

The team

Our team could be a small software company on its own — we have engineers, testers, designers, and a person who makes movies. Everything I do is part of working with that team.

If you think I’m being paid to be a blogger and podcaster, you’re not too far off the mark, but that description misses some things.

I’ve traded in Xcode for BBEdit and Marked, since most of what I do is writing. I write for the blog and for the podcast, of course, and also lately I’ve written:

  • Inside OmniFocus blog posts
  • App Store editorial pitch
  • Sponsorship blurbs for podcasts
  • App Store description for OmniFocus 3 for iOS
  • Product pages and related pages for OmniFocus 3 for iOS and OmniFocus 2 for Mac
  • Some first-run text in OmniFocus 3
  • Press release
  • Other release-related email
  • Omni microblog (OmniDogs!)
  • Newsletter
  • Various tweets

Note: again, though, it’s a team effort. Some things go through extensive feedback and editing before being finished.

And some things — like the product pages — will evolve a bunch during design and production. As it takes shape we can see where the writing needs to change.

And some things I write — especially anything that ends up in an app — will probably get revised by other people before it ships.

I do some things besides writing. I edit customer stories for Inside OmniFocus. I work with people who write to Omni’s marketing email address.

And even the writing isn’t just writing — I help figure out what to write, and when, and how to talk about things.

So there you have it. I’m part of a team, and my particular role is the words. And there are a lot of words.

PS See How We Do The Omni Show for what all goes into making the podcast.

Rumor: Running iOS Apps on Macs

I’ve heard more than once that at WWDC we’ll learn about how we can run iOS apps on Macs.

I’m worried, of course, that this will lead to the further degradation of the Mac UI, and even less incentive for developers to write Mac apps.

I’m agin’ it. But, also, I don’t know if it’s true and I don’t know any details — so maybe it would be awesome? We’ll see.

Or not see. Could be totally made up. Could just be speculation run wild.

PS “Agin’” is short for “against,” not “aging.” Okay?

Delta Blues

Lately I’ve been trying to learn to play delta blues. I’m not ever going to play like Robert Johnson — nobody ever will — but I’d like to learn it as well as I can. Well enough so that, if you like the blues, and you heard me at a coffee shop, you’d enjoy it.

(Not that I’m going to start playing at coffee shops.)

I’ve been playing guitar for 38 years, and I’ve known the 12-bar blues progression and the blues scale for almost as long. But I always figured that learning to play like this would be way beyond my abilities.

* * *

The first thing to notice is that, in the hands of someone like Robert Johnson, it sounds like two guitars playing.

Roughly speaking: the thumb is doing a regular shuffle beat, often with two strings, while the other fingers are doing fills and melodies. At the same damn time.

I’m a life-long strummer and power-chord player. Flat pick. Rhythm guitarist. I’ve never had to develop this kind of coordination. It’s difficult.

The second thing to notice is that every single pitch your guitar can make is on the table. Sure, there’s a progression and a scale — but players regularly use notes outside the standard blues scale, and they hit pitches, by bending strings, that are between the notes.

And throw a slide in — which I’m learning to do — and it’s just nuts.

This music is incredibly complicated compared to the pop rock I’ve always played.

* * *

But I am learning it. Slowly. It’s going to take a few years before it sounds effortless. Right now I sound like a person trying really hard.

The thing is this, though, and this has wider application: for some reason, when I was a teenager, I told myself that I didn’t have the talent to play anything more complex than basic rhythm guitar.

I learned the cowboy chords, barre chords, power chords, notes in first position — and convinced myself I didn’t have the ability to learn fingerpicking or delta blues or anything that would make me a musician as opposed to just someone with a relaxing hobby.

I honestly don’t know why I thought that! I mean, I learned all this stuff, and figured I couldn’t keep learning at some point?

But here I am, now, learning it. It’s hard, but I’m learning.

* * *

Maybe I was confused by the word “talent.” I didn’t think I had that thing — where is it? I can’t see it — and I figured that, without it, I had hit my wall.

But… I’ve always been good at rhythm. It comes so easy that I thought everybody had that ability. And then I’ve seen other guitarists struggle at rhythm bits that take me no time to learn.

I’m also very good at remembering songs. It’s like I have a karaoke machine in my head. This comes with little effort at all — once I learn a song (sometimes just by hearing it) then, usually, I know it forever.

At least the chords. At least enough to be able to play it by the campfire. (Or at a piano, because that’s a thing I do too. Though I play piano like a rhythm guitarist. :)

Maybe these are some small musical talents that I actually do have?

But: hearing pitches and intervals and understanding melody is much harder for me, and that’s just come with a ton of practice. Mostly by listening, trying to recreate what I hear, and trying to figure out why it works.

* * *

I think I’m making a point about impostor syndrome. I told myself I couldn’t learn to play guitar at a deeper level — at the level of real musicians — and here I am at age 50 wondering why I told myself that, because here I am doing it.

Why did I wait so long?

And, sure, maybe I do have some small amount of musical talent, but whatever. If I hadn’t, I probably wouldn’t have been interested at all.

So maybe it’s a good bet that if you’re interesting in a thing, you may already have some talent for it. And maybe, just maybe, interest and talent are really synonyms, or close to it.

* * *

PS I started playing with a thumbpick to get that bass shuffle sounding good.

The Developers Union

Some of the press coverage about The Developers Union uses words like “angry” and “fed up.” These aren’t accurate characterizations at all. Nobody’s mad here!

But here‘s the deal: Apple controls the App Store and its economics. The system could be set up better to support high-quality apps, by indies, that last for years.

Apple doesn’t have to, of course. But we can ask! It’s totally okay to ask, so we are.

We think that an important first step would be a standardized, App-Store-supported way of offering free trials. (And where, once purchased, Family Sharing works.)

Trial versions have worked great for years for indie Mac developers, before the App Store, and we think it would benefit indies on the iOS and Mac App Stores.

And the platform would get better — and more sustainable — apps. Everyone wins!

If you agree, you can sign up. Add your name. Add your app.

I realize you might be worried about doing a thing that could upset powerful people inside Apple. I strongly doubt that that worry is actually well-founded — but, then again, that’s part of why this is a big list.

* * *

I should note that I’m not doing this as part of Omni. I’m not even doing it for my side projects — they’re all free, and it’s quite possible that none of them will ever appear on any App Store at all.

Instead, I’m thinking of my friends, of developers I admire, of up-and-coming developers I haven’t even heard of yet. I — quite selfishly! — want them to thrive. I want to see what great stuff they could make. I want everybody to have the opportunity I’ve had.

I’ve been lucky, and I’ve done well — and my experience should not be rare.