What is a JSON feed? Learn more

JSON Feed Viewer

Browse through the showcased feeds, or enter a feed URL below.

Now supporting RSS and Atom feeds thanks to Andrew Chilton's feed2json.org service

CURRENT FEED

inessential

Brent Simmons’s weblog.

A feed by Brent Simmons

JSON


Permalink - Posted on 2019-12-05 00:57

I can’t help but wonder if — given equivalent knowledge of UIKit and AppKit — iOS development isn’t harder now than Mac app development. At least for some kinds of apps.

Mac apps don’t have to deal with size classes, safe area insets, two very different classes of devices, getting killed by the system, a split view controller that isn’t suitable for some common purposes, presentation controllers, user activities, and — toughest of all — background app refreshing.

And some things that were Mac-only, such as multiple windows and contextual menus, are now iOS features too.

Even if I’m wrong, I can’t help but notice, as we work on NetNewsWire for iOS, that iOS development is starting to approach Mac-app-like complexity, and is already more complex in some areas.


Why I Listen to Podcasts at 1x Speed

Permalink - Posted on 2019-12-04 02:43

On my microblog I mentioned that I always listen to podcasts at 1x speed.

Here’s why:

We’re in danger, I think, of treating everything as if it’s some measure of our productivity. Number of steps taken, emails replied-to, articles read, podcasts listened-to.

While accomplishing things — or just plain getting our work done — is important, it’s also important that not everything go in that bucket. The life where everything is measured is not really a full life: we need room for the un-measured, the not-obsessed-about, the casual, the fun-for-fun’s sake.

So I’m in no hurry. I will never, ever be caught up on all the podcasts I’d like to listen to. So, instead, I just play whatever I feel like whenever I feel like listening.

I’ll miss things, and that’s totally fine. But, in the meantime, I get to listen to the human voice somewhat close to realistically, with its the natural human pauses, with its rhythms and flows relatively unmediated and natural. Its warmth and music means so much more to me than being caught up.

But, again — I’m not saying this is right for you. But I would remind people that we have choices about what falls under productivity and what doesn’t.


The Apple Curtain

Permalink - Posted on 2019-12-02 21:24

I’m always happy for a friend when they start a job at Apple — but I’m also sad when it means they have to stop their community activities: no more podcasting and blogging, developer meetup organizing, presenting at conferences, writing side-project apps, contributing to open source things.

Another friend of mine at Apple, who worked in an area relevant to some trouble we were having with NetNewsWire, wanted to look at the source code – and they had to go ask permission before they could even look.

I understand! I understand why Apple PR and legal departments are the way they are. But I still feel a loss to the community every time somebody I know goes to work at Apple.

There’s a curtain between us and them. Colorful, well-designed, made by lasers — but still a curtain.

PS This would even prevent me from ever working there. I have a great job, and I intend to stay at this job till I retire, but if I were unemployed and saw the openings in Apple developer publications based here in Seattle, I totally would have applied. Except that working there would have meant the end of NetNewsWire and, effectively, the end of this blog. I would have had to give up the two biggest pillars of my career. It’s flat-out not worth it.

PPS I don’t write this to make any of my friends feel guilty! Working at Apple is a wonderful thing. But it’s bittersweet, and I do wish Apple would do more to take out the bitter part.


NetNewsWire Status: Progress Toward Shipping the iOS App

Permalink - Posted on 2019-11-27 21:50

The team — we have a team! which you can join! — is continuing to work on several different things: NetNewsWire 5.0.4 for Mac, NetNewsWire 5.1 for Mac, and NetNewsWire 5.0 for iOS. We’re also figuring out what will go in subsequent releases.

The most attention has been going to the iOS app. We’ll be doing a public TestFlight beta as soon as it’s ready, which I’ll announce here and on the NetNewsWire blog. It’s getting close! A bunch of us have been using it every day for a while now.

In second place for attention is syncing with Feedly, which will appear in the iOS app and in NetNewsWire 5.1 for Mac. (We’re working on adding other services too, but it’s yet to be decided which ones will appear in which versions.)

No ETAs, of course — we’ll announce dates only when we know them for sure.

* * *

The design of the iOS app is what you’d expect, I hope. As NetNewsWire for Mac is so very much a Mac app, the iOS app is very much an iOS app.

Our design goals are the same as with the Mac app: make it stable, fast, clean, modern, and — most importantly — as obvious as possible, which helps make it easy to learn and use.

In other words, we did what we always do, which is to do the best job we can by using classic user interface design principles.

It definitely looks like an iOS 13 app. You can see its bones.

While I think it’s awesome, people who prefer something richer have other really great apps to choose from. We know NetNewsWire is not the only RSS reader, and we’re not trying to please everyone. Which is very freeing — it means we can please the people who like apps like this. :)


A Naming Challenge

Permalink - Posted on 2019-11-14 18:38

In NetNewsWire, we have a concrete Feed type that’s what you expect: it describes an actual web-based feed.

But there are other things that are feed-like in some important ways. Smart feeds, script feeds (in the future), search results, and folders.

They have some things in common: an icon, the ability to fetch articles, the ability to provide an unread count, etc. These common abilities each have a separate protocol: UnreadCountProvider, for instance.

But this is so common that we should have a single protocol that bundles these up into one.

The problem is — what should we call it?

* * *

Maybe the right for that single protocol is Feed. If so, then what should we call the concrete type for web-based feeds?

* * *

In the original design for NetNewsWire, five years ago, Feed was going to be a protocol. Then I started working in Swift, found that I wanted to use Set<Feed> and couldn’t, so I made it a concrete type.

I love Swift, but this limitation keeps coming up for me. I use both protocols and sets a lot, because they’re often the best choice, but in Swift they just don’t play together well.

* * *

Update a couple hours later, at 1 pm: We’re going with a protocol named Feed and the concrete type name WebFeed for, well, web feeds. This means a bunch of renaming in the app, but I think the result will be worth it.

Remember that it’s an open source app. The marketing team is not counting on a specific deadline. Our goals are 1) app quality, and 2) making it easy for people to work on the app (which really supports the first goal).

PS The marketing team is me. :)


Permalink - Posted on 2019-11-07 22:10

For the entire 20 years of inessential.com, I’ve been in the same house, at the same desk, with even the same keyboard.


Happy 20th to This Blog!

Permalink - Posted on 2019-11-07 21:19

Today is my blog’s 20th birthday!

It started like this: at the time I was working at UserLand Software on a blogging app called Manila, and this was my own personal Manila blog. It’s gone through a few other engines since then. (These days it’s rendered — as a static site — by some Ruby scripts.)

* * *

It‘s tempting to think that The Thing of my career has been NetNewsWire. And that’s kinda true. But the thing I’ve done the longest, love the most, and am most proud of is this blog.

* * *

The original tagline was “You don’t need to be here.”

The name inessential sounds like a low self-esteem thing. It’s not. It was named for the idea that literature is inessential. Without it, people would still go on fucking and fighting and grocery shopping.

In other words, the name comes from huge and unwarranted self-esteem, as if my blog would be the first to be literature. Sheesh! Now I laugh at myself. What arrogance!

I hope I’ve matured, at least a little, since then. But I keep the name, because nowadays that’s just its name.

* * *

Old proverb: “The best time to start a blog is 20 years ago. The second-best time is today.” :)


This Feature Should Be Easy

Permalink - Posted on 2019-11-03 20:11

From time to time people note, in feature requests, that a particular feature should be easy, and they’re surprised it hasn’t been done yet. Sometimes they even say that it’s so elementary that they really consider it a bug that it hasn’t been done yet. Especially given how easy it is.

I’ve written about this before. See Bug Guilt Trips from 2003 and Anatomy of a Feature from 2009.

A feature is pretty much never as easy as it seems. The main function of a feature — whether that’s making a https call to a read-it-later service or adding some fairly simple new view — is often the easiest part.

It’s everything around the feature that makes it harder: UI design, localization, refactoring, accessibility, state restoration, getting new artwork (for a toolbar button, for instance), dealing with errors, testing, updating the documentation, etc.

And then you still have to schedule it: as important as a feature request is, there might be others with a higher priority, and resources are always limited. Doesn’t matter who you are.

* * *

When you get developers alone, and you make a joke like “Why don’t you just…” or “I bet you could do this in an afternoon…”, they all laugh, because they’ve all heard this.

I most definitely do not want to discourage people from making feature requests, whether for my app or anybody else’s app. Please make feature requests! And report bugs!

But I would ask that you try not to call something easy. The developer of that app will have a pretty good idea of the requirements and the level of effort, and it’s never as simple as it looks on the surface. And they also have a good idea of what needs to happen, for various reasons, before work starts on that feature.


Amateurs

Permalink - Posted on 2019-10-31 20:20

One thing I’m weirdly proud of is my position as an amateur programmer.

When I point that out, people say, “Well, but…” — and I know where they’re going, that after 25 years of professional experience I’m not what you think of when you think of “amateur.”

And yet, it’s still true. It’s just that I’ve come out the other side, and now I get to work on exactly what I want to, the way I want to, without any thoughts of trying to make money at it.

I can take risks! I can work with anybody who shows up! It’s a pure thrill. It’s like writing single-malt apps.

And I would wish for more people to find themselves in this position — eventually, anyway — because I want to see what they would make.

PS The Dictionary app on my Mac says of the origin of the word “amateur”:

late 18th century: from French, from Italian amatore, from Latin amator ‘lover’, from amare ‘to love’.

Spot-on.


You Choose: Follow-Up

Permalink - Posted on 2019-10-31 00:35

It came to my attention after writing my blog post about how we choose the web we want that the pessimism is about not being able to make a living from blogging.

Here’s my followup: I don’t care. Bite me.


ETAs: Follow-Up

Permalink - Posted on 2019-10-30 20:10

Some people took my post No ETAs as if I were arguing against doing software estimates of any kind, ever.

I didn’t actually mean that. If your boss, project manager, or person you’re contracting with asks for an estimate, do your best to come up with something accurate. If you’re writing enterprise software, you may even be contractually bound to provide estimates for when features will ship.

There are ways to get pretty good at this. Pay attention to history and avoid wishful thinking. Don’t assume perfect productivity. Allow for the unexpected, because there’s always something.

What I’m talking about is the case where you’re writing a consumer-facing app — something that would get published on an app store, for instance — and customers or potential customers ask about an ETA for a given feature. Don’t do it! (For the reasons stated in the article.)


You Choose

Permalink - Posted on 2019-10-29 19:58

On Twitter, Molly Lambert writes:

RIP blogging we all tried real hard to make the internet good and then corporations and rich idiots destroyed everything a generation of writers tried to build

Charlie Warzel re-tweeted her with this comment:

there’s almost no space for writing anymore that’s joyful or an attempt to be creative. hardly anyone is playing around with form or even just trying to entertain. so much of the joy has been sucked out of the internet unless its crowdsourced by platforms from ppl who aren’t paid

They’re both right.

But I’d also note: fuck that shit.

Here’s the thing: there are good blogs to read. Some old ones are gone, but new good ones are created all the time.

And there are good RSS readers which you can use instead of (or in addition) to Twitter and Facebook.

And — most importantly — nothing is stopping you from writing joyfully and creatively for the web! You can entertain, you can have fun, you can push the boundaries of the form, if you want to. Or you can just write about cats as you develop your voice. Whatever you want!

There are plenty of great places for it. (I quite like Micro.blog, personally.)

* * *

You choose the web you want. But you have to do the work.

A lot of people are doing the work. You could keep telling them, discouragingly, that what they’re doing is dead. Or you could join in the fun.

Again: you choose.


No ETAs

Permalink - Posted on 2019-10-28 20:33

People often ask me about ETAs. When will the feature they’re waiting for ship? If you’re a software developer, they probably ask you too.

I totally get it! Though I write an app, I’m mostly a user of apps, and I too want to know when the features I’m waiting for will ship.

The Problem

But here’s the thing: ETAs are very hard to estimate with any amount of accuracy. Even if you plan well.

There are just too many variables. You have some very rough idea of the work to do, and how much time it ought to take, yes. To start with: those ideas are wrong.

You don’t know what you forgot to take into account, or what pieces you underestimated or overestimated. You never know what weird bugs will trip you up.

You don’t know what OS release between now and then will make you spend extra time on something. (For instance: iOS 13.2 just came out today. How is it different? Does it affect the app? Every OS release is a moment of anxiety for developers.)

You don’t know if you’ll need to do some serious, time-consuming refactoring or rearchitecting. You don’t know if the person working on the feature might get pulled away for some reason (vacation, emergency, reassignment, etc.).

You don’t know if the fallout from some other feature in progress will require more time, which ends up pushing back this feature. You don’t know if some other feature or bug fix will suddenly get a higher priority based on any number of good reasons.

You don’t know if your testers will be pulled away to work on something else. You don’t know if your tools will be updated in a way that affects productivity. (Hopefully for the better! Though, if there’s a learning curve, maybe it will hurt productivity at first.)

There’s all that and plenty more — and none of the above are extraordinary conditions. They’re all quite normal. So any ETA will almost surely be quite wrong. Even if you take all of the above into account.

On Not Setting Expectations

The problem with stating an ETA then, is that it sets up expectations. When you don’t meet them — and you won’t, most of the time — people sometimes get upset. Not everybody. But some people take ETA to mean “I promise to ship that day or damn close to it.”

So the better thing to do is plan which features go into which releases, and have a date for internal use for just the next release — and refrain from making public ETAs.

Even if you the software developer think you can make accurate ETAs — and maybe you did, once or twice — you’re not going to be that lucky most of the time.

PS This is all just to say that app-making is nothing like building a house. It’s more like building the first house ever in the history of houses, with a pile of rusty nails and your bare hands, in a non-stop tornado. It’s different every time, and it’s astonishingly complex, non-linear, and unpredictable. We all do our best to mitigate this, to make it more regular, but the industry just hasn’t gotten very far with that yet. The only reason anything ever ships is because people just keep working until it’s ready.

Update 30 Oct. 2019: See the follow-up, which explains that I’m not talking about all ETAs.


NetNewsWire 5.0.3 for Mac Released

Permalink - Posted on 2019-10-22 20:18

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

The main things in this release are 1) enhanced performance and 2) importing subscriptions from NetNewsWire 3 (since it won‘t run on Catalina).

There are also a bunch of bug fixes — including a fix for the space bar behavior on Catalina — and there’s a new feature: you can type the s key to star and unstar an article.

For more details, read the change notes on the NetNewsWire blog.


SwiftUI Is Still the Future

Permalink - Posted on 2019-10-21 20:20

We’ve been using SwiftUI in NetNewsWire for iOS, for its settings screen and related pieces (such as adding an account).

But now we’re redoing that code in classic UIKit. Maurice Parker, NetNewsWire for iOS lead developer, lists the limitations we ran into with SwiftUI:

1) Unable to customize cell selection color for our vibrant cell selection requirement. I was able to hack around it, but it made cells behave strangely. You couldn’t tap and hold the cell. You also couldn’t scroll using the modified cells.

2) No pop back to root for NavigationView. Longer scene flows weren’t possible.

3) ActionSheet flat out just crashes if you use it on an iPad app. https://forums.developer.apple.com/thread/124530

4) TextField will crash the app if it has the cursor and is hidden. We wanted this for the show/hide password functionality.

5) There is no way to display attributed text. You have to bridge to UIKit and use a UITextField that has a modified intrinsicContentSize calculation. We had to take input from GeometryReader and pass it into the UITextField to calculate intrinsicContentSize.

There are more, some of which I have probably forgotten about.

We very much want to use SwiftUI, and we believe it’s the future of Mac and iOS development — but emphasis should be on future, because it’s not quite ready in the present.

Which should surprise nobody, given that it’s so new. But I thought it might be interesting to know exactly what issues we ran into when using it.

We look forward to the day when we can use it everywhere, but we suspect it will be incremental. Hopefully next year we’ll be able to do the Settings screen using SwiftUI. And maybe some parts of the Mac app, too.

PS Once we’re ready for a public beta of NetNewsWire for iOS, we’ll announce it here and on the NetNewsWire blog, and you’ll be able to sign up to get it via TestFlight.


Permalink - Posted on 2019-10-19 17:45

NetNewsWire 5.0.3b2 is faster — and it adds the ability to import NetNewsWire 3 subscriptions.

If you’re a NetNewsWire 3 user who needs to upgrade because you’re on Catalina (where NetNewsWire 3 won’t run), then I recommend either trying this beta or waiting a few days till the final 5.0.3 release.


NetNewsWire OS Compatibility Strategy

Permalink - Posted on 2019-10-15 00:30

We have two goals with the app: 1) get as many people using RSS as possible, and 2) make the best app we can.

To reach #2 — making the best app we can — we need to do a couple things. One is stay modern: use new APIs and tools that make the app better and easier to maintain. A second is to not spend time on things that don’t make the app better. A third is to attract and retain contributors, who are usually more psyched to work with modern stuff than with old stuff.

You can see how that’s in a little bit of conflict with #1 (getting as many people as possible using RSS readers).

Here’s the plan

After a major OS update, we will switch to requiring that update on our next major release — where major is defined as something like 5.0 or 5.1, but not something like 5.0.1. (In other words: the upcoming NetNewsWire 5.0.3 release will run on Mojave, while NetNewsWire 5.1 will require Catalina.)

At the same time, we will make older versions available via the website. For instance, the last version that will run on Mojave will likely be 5.0.4 (which isn’t finished yet) — and we’ll make that version available indefinitely for people who haven’t upgraded to Catalina.

This will mean that people running older OSes will still get a high-quality app — it’s just that it won’t have the latest features.

The key is that this allows us to make NetNewsWire the best app it can be, and making the best app we can is also part of furthering the goal of getting as many people as possible using RSS. (The biggest part, in fact. Bigger than compatibility with older OSes.)

While I know this will disappoint some people, I hope you’ll understand why we decided to do it this way. Decisions like this are never easy — there are always conflicting values to weigh, pros and cons and add up — and we don’t make them impulsively. But making NetNewsWire the best app it can be has to be job #1.


Omni Job: Senior Front-End Web Developer

Permalink - Posted on 2019-10-11 19:30

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

Permalink - Posted on 2019-10-07 21:00

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.


Permalink - Posted on 2019-10-07 19:11

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

Permalink - Posted on 2019-10-07 00:44

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.


Permalink - Posted on 2019-10-06 23:35

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

Permalink - Posted on 2019-10-06 20:12

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

Permalink - Posted on 2019-10-05 00:00

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

Permalink - Posted on 2019-10-01 22:38

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.


Permalink - Posted on 2019-10-01 20:04

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.


Permalink - Posted on 2019-10-01 16:19

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 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.


Permalink - Posted on 2019-09-25 18:49

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


NetNewsWire 5.0.1 Released

Permalink - Posted on 2019-09-13 20:56

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.


Permalink - Posted on 2019-09-10 22:05

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

Permalink - Posted on 2019-09-07 00:44

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!)


Permalink - Posted on 2019-09-06 16:56

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