inessential by Brent Simmons

Omni Job: Senior Front-End Web Developer

Omni’s hiring a Senior Front-End Web Developer to work on OmniFocus for the Web.

Omni’s a truly great place to work. You’d have your own office — and there’s a decent chance it would be right near mine. (The job is part of the Design department, and marketing is also part of the Design department.)

We also have common areas too, for when you prefer to work around other people. You’re not locked into your office. :)

Benefits are great. The view of Lake Union and Capitol Hill is beautiful. The kitchen folks make us wonderful food.

But best of all: it’s great fun to work with these people on these apps.

So — if you’re a web developer, please apply!

PS You can learn more about OmniFocus for the Web by listening to How We Built OmniFocus for the Web (an episode of The Omni Show) and by reading OmniFocus for the Web: Under the Hood.

Xcoders 15th Anniversary

This Thursday, Oct. 10, Xcoders turns 15 years old!

We’d be thrilled if you could come to the meeting. Your Xcoders podcasters will be talking to a panel of old-timers about the history of the group. And afterward we’ll go to the Cyclops and hang out — just like we always do.

I don’t think I need to remind anyone of the importance of community. It gives back to us so much more than we as individuals could ever put into it.

And Xcoders is one of the oldest and greatest of the Mac and iOS app-making communities. Any good history of the modern Apple development ecosystem would have a chapter on Xcoders: it’s an institution, and it’s been amazing to watch it grow and evolve over the years.

So I’m asking something of you: please come to this one and help us celebrate!

Come even if you haven’t been in a long time, or even if you have to travel. Even if you go to Redmond or Vancouver Xcoders. Or even if you’ve never been. We’ll be so happy to see you!

PS The Xcoders blog has the details on time and place.

NetNewsWire 5 is all good to go with Catalina!

New macOS days are super-fun. This year we get the added bonus of checking out all the new Catalyst apps. I’m psyched to see what cool apps are coming to Mac.

But I can’t help but note that two apps that I’ve put my heart into — and many thousands of hours of work — won’t run on Catalina: UserLand Frontier and NetNewsWire 3.3.2.

Well. I take note, and then I move on.

NetNewsWire Status

NetNewsWire 5.0.2 is the current shipping release; NetNewsWire 5.0.3b1 is the current test build.

We’re also working on NetNewsWire 5.0 for iOS, NetNewsWire 5.0.4 for Mac, and NetNewsWire 5.1 for Mac.

We have a lot going on! But we have multiple contributors, and we can handle it. :)

Here’s the status of each…

NetNewsWire 5.0.3 for Mac

This release is all about performance. NetNewsWire is pretty fast, but it can and should be faster.

Since there are places where we can get performance enhancements without having to stand on our heads, we’re doing them. (I’m a performance junkie, but I draw the line at writing weird code just to get performance.)

I was going to release 5.0.3 this weekend, but I found some more work to do. Just this morning I found a very significant boost we can get when downloading and syncing feeds. I bet we’ll have another beta later this week.

NetNewsWire 5.0.4 for Mac

This will have more bug fixes. It might also appear on the Mac App Store. No guarantee, though.

NetNewsWire 5.1 for Mac

This will have some small features — and one big one: Feedly syncing. (It might have some other syncing systems as well, but for sure we want to get Feedly syncing in there.)

NetNewsWire 5.0 for iOS

It works! I’m using it. Since I commute to work via bus, this is awesome.

We’re going to do a limited TestFlight release, by invitation only, right at first — mainly because I want to get my friend who’s an Award Winning iOS Designer™ to help with it.

After he’s finished with it, then we’ll do a general TestFlight release — you’ll be able to sign up if you want to. I’ll be sure to announce that here and on the NetNewsWire blog.

The plan is for the initial NetNewsWire 5.0 for iOS to include both Feedbin and Feedly syncing, but it’s possible the early TestFlight releases won’t have Feedly yet.

Here’s what the app looks like in Springboard:

Screenshot of NetNewsWire icon in Springboard.

Dealing with entitlements, capabilities, provisioning profiles, app groups, and signing remains challenging. I wonder how anything ever ships.

We’re trying to make Handoff work, which appears to require the iCloud capability, which appears to require a provisioning profile. Xcode says, “Enable development signing and select a provisioning profile in the Signing & Capabilities editor.”

I recognize all the words! But I have no idea what I’m supposed to actually do. Luckily other people are helping me.

But still. I would love to see this stuff all made much easier.

PS This morning I found a spot where I can get a significant performance improvement when downloading feeds and when syncing. I’d love to work on it today, since it’s a Sunday and that means I can spend a few hours at it. But instead we’re struggling with the system.

You Should Get a Flu Shot

When I was in my twenties I usually skipped getting a flu shot. I was young and healthy, and getting the flu, while deeply unpleasant, was probably not life-threatening.

And that’s as far as I thought about it.

I’m older now. Getting the flu is still probably not life-threatening for me — but I almost lost a family member to flu a couple years ago. And another member of my family, who I see a couple times a month at a minimum, has a compromised immune system — if he gets the flu, it could be very bad.

Just remember, as you go about your day — on the bus, at work, at the grocery store, at a restaurant — you’re going to run across people, without even knowing it, who can’t get the flu without serious consequences. You’ll certainly run across people who are close to those people. People like me.

In other words, your getting a flu shot could save a life. For real.

Unicorns

I can hardly write a message on my iPhone without adding a 🐯 or 🎩 or other emoji at the end. I even use these as a kind of code — there’s a specific emoji I send to Sheila when I’m leaving work, for instance.

Most of my emoji come from the Frequently Used section — most often in the very left-most column, next to the screen edge. I rarely go hunting. What I want is right there.

This worked great until I installed iOS 13.

After I installed iOS 13, the left-most section changed — it became something to do with Memoji. My frequently-used emoji ended up just slightly to the right of the middle of the screen.

This was a pain for me, and I wanted to get it back to how it was, where the Memoji stuff would be gone and my most-used emoji column would be flush-left again.

I looked around in Settings and didn’t find anything for this — so I figured that if I delete my Memoji, then that section would go away, since I don’t have a Memoji anymore.

Wrong!

The section persisted, only now with funny unicorns.

The Solution Was Eventually Found

I finally realized that if I tap the little monochrome clock icon at the bottom of the screen, then I’ll get it back to how I like it.

The thing is: that icon was already selected, so it didn’t occur to me to tap it, until finally I did out of desperation.

And I realize now that if I tap it again, it shows Memoji. Tap it again, and they hide. All while the button still shows as selected (and presumably non-tappable). It’s… odd.

The Amazing Modern World

Our computers, devices, and software are amazing these days. It feels as if the very laws of physics have changed since I was a kid — that’s how marvelous all of this is. I love it, and I love writing apps and writing about apps.

I’m not picking on Apple with this thing about the emoji keyboard. Apple’s been the greatest of the prime drivers of all these marvels. My point was to pick an example that most of the people reading this would know.

These marvels are so great that billions of people are using them. The diversity of this population can’t be overstated — iPhones, for instance, aren’t just for the young, able, and tech-obsessed.

All of us in tech know this, but we don’t always go far enough in displaying the care that all of these people deserve. When we ship a bug, or even just an inscrutable bit of user interface, how many people are we frustrating? How much of other people’s time are we wasting?

I’m not saying don’t ever change your app’s UI. Make improvements. Definitely.

But always keep in mind that your app is probably only one of dozens that any given person might use. Most people don’t read your change notes. But they’ll notice if something they relied on, that was easy and useful, is now, suddenly, not.

It may even be that they could get it back to the way they liked it. But will they figure it out? And how much time will they all have spent on it? How much frustration?

Because our apps go to so many people, we should start thinking the same way other professions do: we have a real obligation to the public, not just to our bottom line. We should, at least, do no harm.

On Bullying in Our Community

Janie Larson writes about being bullied, and you should read it.

It’s natural to wonder who the bully is and who the conference organizers are — but I’m resisting the temptation to spend any time on it. It’s not a puzzle to be solved. Janie’s explicit that she doesn’t want this to result in anyone getting harassed, and she doesn’t want to start a feud. Respect that.

Instead, she talks about the human cost of being bullied, and she presents a guide for handling bullying — which is written especially for people witnessing it.

Even if you think it’s unlikely that you yourself will ever be bullied (and you might not think that), it’s worth remembering that you might see it happen to someone else. I hope you and I would do the right thing.

NaNoWriMo is next month, and I will continue my streak of not participating in it. I’m super-impressed by the people who do, though.

It would take me a month of hard, solid work all November to decide on an idea to write about, then another month to think it through some more — or two months, really, because the holidays get in the way — and then about a year of nightly work to decide on a plot outline and characters and tone, and then another year of refining that outline, and then, by NaNoWriMo 2021 or 2022, I’d be ready to start writing. I suspect I’d average about 300 words a day, which would get me about 9,000 words for the month — which is well less than a novel or even the 50,000 words goal.

I blog instead.

PS What made me think of this: Cheri Baker, Let’s Half-Ass NaNoWriMo Together.

This leaked audio from Facebook — where Mark Zuckerberg promises that “you go to the mat and you fight” Elizabeth Warren — is a reminder: any corporation that has the power over the speech of billions of people is still a corporation with its own interests. And those interests don’t match yours or mine or the interests of democracy.

You don’t have to support, or even like, Elizabeth Warren to understand that.

Do you trust Facebook not to tip the scales in favor of Zuckerberg’s interests? I sure don’t.

This is about Facebook and a specific presidential candidate — and it’s also about giant corporate communications platforms and how they subvert civilization.

PS Reminder: Instagram is Facebook too.

I had the fun of interviewing old friend Daniel Jalkut on the latest episode of The Omni Show.

NetNewsWire 5.0.1 Released

NetNewsWire for Mac icon: globe with a satellite in the foreground.

NetNewsWire 5.0.1 is almost entirely a bug-fix release — see the release notes for the full scoop.

It includes one sort-of new feature: there’s now a checkbox in Preferences for turning off the unread count in the Dock. (It was a hidden pref — now it’s visible.)

Status

Here’s what else we’re working on:

  • iOS/iPadOS app
  • NetNewsWire 5.0.2 for Mac — which will mainly be about performance (yes, we can make it even faster)
  • NetNewsWire 5.1 for Mac — tentative feature list includes content extraction and at least one more syncing option (but we might change our minds on these: anything can happen between now and then)

We might also distribute NetNewsWire 5.0.2 for Mac on the Mac App Store. No guarantees yet, of course, but work is happening in that direction. This goes to our goal of getting as many people as possible using RSS readers.

Had to get a new key fob at work today — my old one wore out. Just a couple weeks shy of my fifth anniversary at Omni! Time flies.

I figure I’m just over eight years from retiring, so I’m not even halfway done here. :)

On Syncing NetNewsWire Using iCloud

People have been asking me about supporting iCloud as a sync method for NetNewsWire.

It would be really cool because:

  • There’s no sign-in
  • It’s free — no need to spend money on another service
  • It would help broaden the pool of people using RSS, since there would be no additional expense or service they’d need — they could just get going

It’s a great idea — no question. Given that my goal is to get as many people as possible using RSS, this makes total sense.

Why we didn’t ship with this feature

For the first release — I still think of it as a 1.0, because it really is — our best bet was to appeal to people already using an existing RSS service. We know that those people like and use RSS, and they’re the people most likely to check out a new RSS app.

(We could have delayed and shipped with support for more existing services, but we figured one was enough to get started with, and we could add other services later. And we are.)

In other words, we tried to make an app that the existing market would like. And that’s the right call when you’re starting out.

Also: iCloud sync makes the most sense when you have both a Mac and an iOS app, and we don’t — the iOS app is still in progress. We totally expect people to use NetNewsWire on the Mac and Unread or Reeder on their iPhone and iPad — and iCloud sync won’t work across apps. This scenario requires using services such as Feedbin.

Why I have no idea when this feature might appear

For any existing RSS service, we can be confident that our effort to support it in NetNewsWire would be successful. This is well-trodden ground: we make some web API calls, integrate with our database, and done. It’s not nothing, but conceptually it’s simple and there’s no cause to worry about technical issues.

But iCloud syncing will mean writing exploratory code and only then finding out if it’s going to work.

Syncing the feeds list should be relatively easy — the real issue is with syncing read/unread/starred states of articles. That means a lot of small records.

Is CloudKit up to this? What are the limits? How fast is it? How reliable?

We just don’t know.

Yes, it’s encouraging that News Explorer has this feature — but that doesn’t tell us much about the limits, reliability, and performance.

Working on this is a risk.

So — as you can imagine — we’re still more keen on supporting existing RSS services, because we know there are plenty of people who for-sure like RSS, and who might like NetNewsWire, but who won’t switch their syncing system just to use NetNewsWire.

That said: I do think we’ll get around to trying this, and I’ll be super-pleased if it works, because it really is a great idea — but we have a bunch of other work to do first. (Including the iOS app!)

Markos Charatzas writes about his excitement in joining the Apple developer world in 2009 to his eventual disillusionment today.

On the Many NetNewsWire Feature Requests to Show Full Web Pages

A number of people have asked that NetNewsWire show the full web page — right there, in the app — after clicking a link.

The idea is pretty good! It solves two big problems:

  • You get full content, which is great when a feed contains only summaries or truncated articles
  • You don’t have to switch to another app: you can stay right where you are

You’d think it’s a no-brainer, and we should just go ahead. But there are other considerations.

One big one is that your ad blockers and privacy extensions won’t run. They work in Safari, but they do not extend to other apps that use WebKit. This means that viewing a web page in NetNewsWire would be less secure and more annoying than viewing the same page in Safari (or whatever your browser is).

This points to one of my design principles: the app should have boundaries. Some features belong in the app, and some features are best left to apps that do that feature way better than NetNewsWire could. One of those things is showing web pages — that’s really a web browser feature.

Having boundaries means we can concentrate on doing a great job at the things that do belong in the app.

(Before you mention SFSafariViewController, recall that it’s iOS-only.)

What about the glory days?

“But Brent! In NetNewsWire 2.0 you added a tabbed browser to NetNewsWire, and it was awesome and a hugely popular feature!”

It was! But times have changed. Many websites are hostile these days. In 2005, this feature was fine — but these days it’s totally not.

A winged messenger arrives with a solution

There is a solution to the problem of showing full content and not leaving the app, and it’s a feature that really does belong in an RSS reader: using content extraction to grab the article from the original page.

If you’ve ever used Safari’s Reader view, then you know what I’m talking about. The idea is that NetNewsWire would do something very much like the Reader view (but inline, in the article pane), that grabs the content and formats it nicely, without all the extra junk that is not the article you want to read.

There are a number of open source options for this. We’re looking at using Feedbin’s content extraction service (which wouldn’t require you to have a Feedbin account).

The generous folks at Feedbin are running a copy of the open-source Mercury Parser, and they’ve offered to open this service up to RSS readers like NetNewsWire. (Reeder uses it already, for instance.)

When?

Right now we’re working on NetNewsWire 5.0.1, which is (almost entirely) a bug-fix release. I don’t know what’s going to be in 5.1 yet — we’re still digesting all the feedback, looking at our original roadmap, and thinking about things.

We’re also working on NetNewsWire for iOS! We’re busy.

But this is definitely the kind of feature that should come sooner rather than later.

Archive