inessential by Brent Simmons

August 2018

Historical code: NetNewsWire Lite 4.0

NetNewsWire Lite 4.0 was the last version I shipped before the sale to Black Pixel, back in 2011. It was a free app on the Mac App Store.

I put the source up on GitHub.

I’m not publishing it as some kind of example app — some code is good, some is bad, and most is middlin’, and it’s all old. It’s published for historical reasons only.

However — if we can get it building, and I bet we can — I’ll end up making it available as a download.

I don’t know what to do about NetNewsWire 3.3.2, which was the last release of the non-Lite full version. That code is really, really old and I don’t even really want to publish it. But I might. Or I might get it building and release a 3.4 version of it.

We’ll see! No need to rush, of course.

NetNewsWire Comes Home

Update one year later (26 Aug 2019): NetNewsWire 5 is now shipping!


After some years spent traveling the world, NetNewsWire is now back where it started! It’s my app again.

We’ve kept its room ready for all these years. And I am thrilled to welcome it home.

Thanks to Black Pixel

First thing: I want to thank Black Pixel for their stewardship. They released NetNewsWire 4 for Mac and iOS, and they even brought it to Apple TV. They wrote and deployed a syncing system — which is a massive challenge. (I happen to know, from several first-hand experiences, just how difficult syncing is.)

They kept it moving forward — the app is now 16 years old — and that’s huge.

And I want to thank them for a second thing: their incredible generosity in bringing it back to me. When I asked them about it, they told me they’d already been discussing it. There was never a need to convince them: they thought it was the right thing to do before I even said a word.

You might reasonably wonder if nevertheless they asked for some large amount of money. There was no charge. That’s what I mean by “incredible generosity.”

As a friend of mine said on this subject, “Sometimes life is poetic.” Thanks to Black Pixel for making that true.

If you haven’t already, you should read Black Pixel’s announcement.

What This All Means

Here’s the scoop:

You probably know that I’ve been working on a free and open source reader named Evergreen. Evergreen 1.0 will be renamed NetNewsWire 5.0 — in other words, I’ve been working on NetNewsWire 5.0 all this time without knowing it!

It will remain free and open source, and it will remain my side project. (By day I’m a Marketing Human at The Omni Group, and I love my job.)

Black Pixel will stop selling their versions of the app, and will turn off the syncing system and end customer support — all of which is detailed in their announcement. (Important note: I will not get any customer data from them, nor will I be doing support for Black Pixel’s NetNewsWire.)

My Goal

I want one thing: to make the very best versions of NetNewsWire ever made.

And, along the way, I’d love to have your help.

Nothing to Download Yet

I don’t actually have an app bearing the name NetNewsWire ready to download yet. I will have test versions ready soon, though. It’s still going to be a while before the final version of 5.0 ships.

The repository is on GitHub.

I’ll also be creating a website for it, of course. And I’ll have news about a Slack group you can join.

PS For Reference

I should outline NetNewsWire’s history:

  • 2002: NetNewsWire Lite 1.0
  • 2003: NetNewsWire 1.0
  • 2005: Bought by NewsGator. I continued working on NetNewsWire as a NewsGator employee.
  • 2011: Bought by Black Pixel. I remained at NewsGator, and stopped working on NetNewsWire.
  • 2015: Started work on Evergreen
  • 2018: NetNewsWire comes home; Evergreen renamed to NetNewsWire

It was acquired twice before now. I worked on it for nine years before it went to Black Pixel, and it was there for seven years. And now it’s back home.

For good!

PS Pardon the dust — there’s a bunch of renaming to do and ducks to line up. Things may be confusing at first. But where you see the name Evergreen, think NetNewsWire.

Social Media Mobs

Back in 2009 (I think; I don’t feel like checking) a whole bunch of people on Twitter turned on me all at once. It felt like a mob. The mob wasn’t in any way self-aware or coordinated — but it still felt like a single driven thing.

This wasn’t over culture or politics or social issues — it was over my own software and a mistake (actually two simultaneous mistakes) I had made. (The details are unimportant.)

Twitter was much younger then, with fewer people, and it was still a mostly-fun place.

But I went into a serious funk and for a year considered leaving the tech industry altogether. Shuttering this blog. Just quitting. Which is a consequence completely out-of-proportion to my actual mistakes, which were forgotten pretty soon as people moved on to other topics.

But I didn’t forget my experience. I never really recovered all the way — something left me, something about how I think about people, something I can’t quite name or describe, but it was a good thing and it left.

I’m lucky, of course — if anyone can come back from something like this, it’s someone as all-around fortunate as I am.

* * *

The mob never apologized. Mobs never do.

Imagine: a bad thing happens to you, which you perceive as wildly disproportionate, and, later on, the actors never say they’re sorry.

But who would an apology come from? A mob can’t apologize.

I started to wonder if I really deserved it after all. Maybe the mob discovered the truth about me, that I’m a bad person. I thought about what penance I should pay. (Eventually I did decide on a penance, and I did pay it, and that was wrong.) I wondered if I shouldn’t quit so much as accept a shunning.

For a long time after everyone forgot.

Anyway: that’s what that’s like.

* * *

And maybe this is why I’m extra-sensitive to social media mobs. What I went through is tiny compared to what other people have been through. Not worth remembering by anybody, not even me (though I can’t help it).

Then there was this thing with Wil Wheaton getting booted from a Mastodon instance. I don’t know much about Wil (I did watch Star Trek, of course) or what mistakes he may have made.

And I don’t care. The power of mobs in Mastodon reminds me of the power of mobs in baby Twitter of 2009. Which is to say: it’s entirely possible it will get worse and worse — as it did on Twitter — to the point where lives can be ruined and even threatened.

So I’m thinking about whether or not to stay.

Free Reeder 3

The Mac Observer reports that Reeder 3 is free for Mac and iOS.

A tweet from @reederapp says:

Reeder is free until version 4 is released later this year as a paid upgrade. No subscription.

This is great news — go get it!

* * *

For one second I had that sinking feeling in my stomach about a competitor doing something that might hurt sales of my own app…

…but then I remembered that I’m not selling an RSS reader. I’m writing Evergreen, and making it free and open source, out of love, and because I want to ensure that RSS remains uncontrolled and widely used.

And people using Reeder absolutely fits with that goal. There should be multiple RSS readers, since that will help make sure more people find an app they like.

So, really — go get it! It’s a great app. And be sure to take a look at Reeder 4 when it comes out later this year.

Unofficial Seattle Xcoders special fifth Thursday event is this week — it’s, well, on Thursday at 6:30 pm at the Waterwheel in Ballard.

(Note: not Cyclops! Waterwheel is our fifth Thursday place.)

It’s a fun time and everyone is welcome — designers, testers, support folks, documentarians, managers, fans of iOS and Mac apps.

Even marketers are welcome! Which means I’ll be there. :)

(To be fair to myself: I did commit some code yesterday.)

I’m a Goddamn Social Media Professional

Social media is part of my job. And, frankly, it always has been (especially if you include blogging as social media).

I’ve joined Mastodon, and I find myself constantly confused. It’s not the idea of the federation — I get that. Not a problem. It’s just that the apps I’ve tried (including the web app) are difficult to use and/or don’t do the things I want them to do, or do them confusingly.

Some notes, in no particular order…

Please steal the best solutions from Tweetbot and Twitterrific!

I don’t ever care about the firehose timelines. Ever. If it were me writing the app, I wouldn’t even include these. Just hide them away somewhere if you have to have them. Most people are never going to care — they want to see toots from the people they follow and they want to see mentions/replies.

Support for multiple accounts is a must. I have two so far, and it’s entirely likely I’ll have more.

Goddamn social media pros like me sit in front of a Mac all day, because it’s the best way to be super-efficient. I need a good Mac app. Native. I can’t run yet another Electron app. (Two — Slack and this thing we use at work — is about all my computer can take.)

On the Mac, support for multiple accounts also means multiple windows so I can have different windows for my various accounts. (This is how I use Twitterrific on my Mac.)

The most important thing is to be able to participate in conversations. It should be easy to read a thread and reply. (See Twitterrific and Tweetbot.)

I want a tab for my mentions. I also want mentions in the main timeline.

I don’t need notifications about new followers. I’ll check my follower count once a week or so to make sure it’s going up.

I need to be able to check my follower count easily.

I don‘t need notifications about likes and boosts to be in my face — these can be tucked away for when I want to look.

I don‘t care about trends. At all. Ever. The thing I care about is people talking about my things or things that interest me. Trends could (and should, really) just go away.

Searching, on the other hand, is critical, and I need to set up persistent searches for my things and things that interest me.

iOS apps should support Dynamic Type or at least provide a way to change the font size. Pulling out my readers from my bag — while I’m on a crowded bus — is not going to happen. Mac apps should also provide a way to set the font size.

I need to be able to disable boosts on a per-user basis — some people are interesting but their boosts are not so much.

Simplify!

On my latest The Omni Show — the podcast I do at work — we (me, Dave Messent, Ken Case) talk about upcoming features in OmniFocus 3 for Mac.

I consider myself amazingly fortunate to be able to do podcasting and blogging for a living. :)

I‘ve said it before: my fondest hope is that all these people come to think of the day Trump announced his candidacy as the worst day of their lives.

Paul Manafort, Mike Cohen, Rick Gates, Michael Flynn, and George Papadopolous are all criminals, either by conviction or plea.

We’re getting closer to names like Kushner and Trump.

Real Life in Seattle

Seattle Xcoders started in 2004, I think. I was invited as a guest speaker in 2005, and I attended — and I never stopped going.

Well, I don’t always make it to the actual meeting the last few years, but I do attend the after-thing at the Cyclops.

And here’s why: it goes back to that very first meeting I attended 13 years ago, when I realized that seeing people regularly in real life is a fine and healthy idea.

Even for a solid introvert like me. Especially for introverts like me.

And now that we’re all replacing Twitter with other things for our social needs — with Mastodon for some people, Micro.blog for some (including me), Slack, Snapchat, plus falling back to the usual things like blogs and texting and email — we should remember that regular hanging-out-with-folks is massively important.

The Xcoders meetings are good and sometimes great. But the fact that it’s a social club also is not to be minimized or glossed-over — it’s super-important.

* * *

There’s an unofficial Seattle Xcoders (no meeting) this Thursday at 7 pm at the Cyclops. You don’t have to be a coder to attend — designers, testers, writers, and lovers of Mac and iOS apps are all welcome and encouraged.

I won’t actually be at this Thursday’s thing this time (though I’m usually there) — but a week from Thursday (Aug. 30) is our special fifth Thursday unofficial at the Waterwheel in Ballard, and I’ll be there. It’s doubly unofficial — and a whole bunch of fun.

* * *

Just for fun, I thought I’d estimate how many times I’ve hung out with some of the original Xcoders such as Gus Mueller. Let’s call it an average 24 events a year, and let’s say we’re both at 12 of them. Over 13 years that’s 156 times.

I’ve probably said to him “Gus was the name of my cat” at least 100 of those times.

Icro, the Micro.blog client for iOS (which I use), is now open source. Cool.

Rainier Diary #9: The Renaming

Over the weekend I renamed my in-progress app from Frontier to Rainier.

As you may recall, the app was to be a modernized, rewritten-in-Swift version of UserLand Frontier, the classic Mac scripting app.

But then this weekend I started down a slightly different path, and renamed the app to Rainier.

And here’s why: if it’s called Frontier, that implies compatibility with older versions of Frontier. There are two problems with that:

  • Achieving compatibility with Frontier is actually an extremely difficult job. So much has changed over the years.
  • Achieving compatibility also means having to live with decisions made years ago — but there are some cases where I’d rather have the freedom to make other decisions. (New mistakes, maybe!)

The app remains inspired by Frontier. It wouldn’t exist without it. The core concepts remain the same — the hierarchical database with integrated scripting language, for starters.

* * *

I don’t, at this point, have any intention of making a Linux version, though technically that would be possible, given that Swift is available for Linux. I’m sure I’ll never make a Windows version.

It’s possible that it could end up running on iOS some day. But my focus is on the Mac app, and my focus is really on Evergreen right now, which is way closer to shipping than Rainier is. (There is some overlapping code between the two apps, though. Sometimes I’m working on both apps at the same time.)

* * *

Mount Rainier is one of the tallest mountains in the continental United States. You can see it every day from Seattle except when clouds get in the way. It is a stratovolcano.

There is no scenario where the Twitter we loved in 2008 comes back.

Even if it were sold to some entity with energy, resources, smarts, and good intentions, it’s too late. It has celebrities with millions of followers. It has the president. It has millions of accounts using it for unlovable purposes.

It’s never coming back, and using your emotional energy hoping it comes back is a waste.

No Ill Effects

Have I noticed any ill effects from being done with Twitter over a week ago?

Well, I was on vacation for much of it (was in North Dakota; back now) and so maybe it’s not a fair test. But I don’t feel that frequent compulsion to just keep checking what people are saying now, which is nice.

(I’ve got a full bouquet of compulsions in full bloom — I feel like dropping any one of them is a victory. Or a small relief, at least.)

I keep thinking this thought: nothing that is said on Twitter is actually important to me. It could go away suddenly one morning and I’d be the same.

Twitter from the outside now looks like a massive world-wide frenzy for no reason. It’s the illusion of something valuable.

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.