Bryan on Building Share Extensions

Bryan Irace writes What we learned building the Tumblr iOS share extension.

Sounds like extensions are very much at 1.0. Of course. My congratulations go to the team at Apple that shipped it — it’s huge. Big cool thing.

Josh on “Homeland”

Josh Marshall, “Homeland” And Other Un-American Words and Ideas:

But the ‘homeland defense’ concept was always closely tied to creating a missile shield over the United States. And when I poked around a little further to try to find the earliest uses of the phrase in this context the earliest ones all traced back to Reagan missile defense initiative in the 1980s.

I never heard it used as a word referring to our country until after September 11. And it’s made my stomach hurt ever since.

The word makes me feel as if I’ve fallen through to a parallel world, one where the simplistic things said about America in college freshman dorm rooms by the newly engagé are actually all true.

Nick on Privacy

My co-worker on Glassboard Nick Harris talks about privacy:

Apple’s decision to make it impossible to decrypt data on the device without the users password is the real reason they can say no to warrants. This was another idea we had tossed around. It would have been a paid feature where the board would be encrypted from end to end with only the chairperson having the keys. I had a plan for this and pushed it but didn’t win over the team on getting it built.

Privacy was a huge big deal with us with Glassboard. (And I brought those lessons with me to Vesper.)

With Glassboard we definitely wanted, as Nick pointed out, to do on-device encryption, so that the server would have no way of decrypting text. But we had to do so much so quickly that we couldn’t make the time. (And there were some technical issues — how could we do push notifications if the server can’t push the decrypted text? It’s possible Nick’s plan accounted for that; I don’t recall now.)

It seems as if the realization among regular users that privacy is critical has been glacially slow. But it appears to be picking up speed. (I sure hope that’s true.)

Charlie on Democracy

Charlie Stross, in 2013: Political failure modes and the beige dictatorship:

So the future isn’t a boot stamping on a human face, forever. It’s a person in a beige business outfit advocating beige policies that nobody wants (but nobody can quite articulate a coherent alternative to) with a false mandate obtained by performing rituals of representative democracy that offer as much actual choice as a Stalinist one-party state.

Facts and Thinking

I was reading about Texas and the AP History course — and the thing I was bugged about wasn’t Texas. (The article doesn’t provide enough information to form an opinion.)

Instead, I was bugged by this statement:

The controversy stems from the recent overhaul of the AP test, administered by the New Jersey-based College Board, that was meant to de-emphasize memorization.

Lots of people are nodding their heads. Why memorize things? Of what value is knowing a bunch of dates and the names of dead generals?

The point of school is to teach us how to think, after all.

But that always sounds to me like people arguing that you could learn the rules of English grammar without learning any of the actual words. The facts — and, especially, the stories — of the world are its words. That’s our vocabulary. That’s what we think with and about.

It’s not a matter of memorization to know that World War I came before the Roaring Twenties, and that the Great Depression came next, and that World War II followed. There should be no way a high school graduate could be unsure of the sequence of events, and they should be able to get the decades right, even if they don’t recall, for instance, the exact date of the stock market crash (October 24, 1929).

They ought to know that the Soviet Union was our ally in World War II and our enemy later. And they ought to know that Germany fought a two-front war, and that Germany’s army wasn’t the first to run into trouble in Russia, and why. And they ought to know enough to be able to speculate as to why Germany hadn’t learned from the past.

Knowing the stories isn’t memorization. Once you know the stories you know how one thing causes another, how things are related and reflected, and you can think about the present and the future. And you end up knowing pretty well when things happened — because you know how things fit together — even if you don’t recall every single precise date and the names of every player. (Who assassinated Franz Ferdinand? I had to look it up. Gavrilo Princip.)

To “de-emphasize memorization” sounds like a thing everybody can agree on — except that I suspect it really means “we’ve made it so you don’t have to know what actually happened, which makes it easier for you to do well on the test, which makes us look good.”

* * *

Darmok and Jalad at Tanagra. Temba, his arms wide.

Code-Signing Confusion

Daniel Jalkut documents recent issues regarding code-signing.

While WWDC 2014 was the best Christmas ever, and while the new iPhone models and the Apple Watch look very cool (I’ll be getting a 6+ and a watch), I still can’t help but worry.

What worries me these days is bugs.

Developers know what I’m talking about. To start listing them would seem like Apple-bashing, which isn’t my point.

Bugs make developers reluctant to adopt new things. A developer thinks: I’d love to do x, y, and z — but I think I’ll let everybody else go first.

I’ve said before recently that OS X 10.11 and iOS 9 could be about bug fixes and performance enhancements, and nothing else, and developers would be thrilled.


I’m not using Gmail or similar — I use the mail server my hosting provider gives me.

That mail server has SpamAssassin, so I have that enabled and set to quarantine everything that scores a 1 or above.

A fair amount of spam gets through to my mail client — Apple Mail — anyway. And so I have junk mail filtering turned on there too.

But Mail’s junk mail filtering doesn’t do a very good job.

To be fair, it’s dealing with messages that SpamAssassin didn’t catch either. The tough ones. But there are a lot of those.

Tonight I got fed up and went back to SpamSieve. It had been years since I used it — but I’m so happy it’s still around. It always did a great job.

* * *

You know what great technology doesn’t have a spam problem at all? RSS.

Not that RSS is a replacement for email or Twitter or anything else. It brings you what you asked for — blog posts and podcasts, mostly — and nothing else gets through.

(RSS feeds may contain advertising, of course, but so do web pages and we don’t call that spam. It’s a different thing.)

What you don’t get with RSS is blog posts from some entirely other blog than what you asked for. If you subscribe to a podcast, you don’t get episodes from some other scammy podcast.

There was a sort-of spam problem many years ago. Back then there were blog search engines (which have all shut down, as far as I know), and those search engines would index spam blogs, and so if you had a feed that was a search you could end up with posts from spam blogs.

But I’m probably the only person who remembers that. And the problem wasn’t with RSS, it was with the search engines and the providers who allowed spam blogs.

How the Sites Drawer Cost Me Some Publicity

This was years ago, and I haven’t thought about it in years.

NetNewsWire had a feature called the Sites Drawer — it was a big list of categories (Mac, Sports, Weblogs, etc.) and a bunch of feeds in each category. It made it easy to find feeds to subscribe to.

(The feature eventually got removed because it was a lot of work to maintain. Removing it was a mistake, however.)

Though Sheila and I have strong political and social views, we considered it a point of pride that the Sites Drawer had feeds that didn’t express our views. We made sure it had feeds of all kinds.

We avoided pornography and hate, but were happy to put in everything else.

Our thinking was that this was not like the stupidity of “teach the controversy“ and “fair and balanced reporting” — this was a service for our users, so they could find the kinds of things they wanted to find. We didn’t endorse these feeds: we just provided a catalog.

And one day during those years a tech writer (I won’t name him) contacted me with some questions, because he wanted to write a chapter about NetNewsWire for his upcoming book.

This was very cool, I remember thinking, because I had enjoyed some of his writing in the past.

That is, until he found the Sites Drawer. We had some feeds related to homosexuality — I don’t remember which, but they were of a liberal tone — and he objected to those feeds.

And he informed me that he couldn’t write about NetNewsWire due to his conscience.

* * *

People always say it’s important to have a conscience. But what if your conscience is wrong?

It’s the same thing with passion — people say it’s important to be passionate about something. But what if your passion is for something horrible?

Vesper, New iPhones, and Editing Fixes

Vesper 2.004 is on the App Store.

The two big changes are support for iPhone 6 and 6+ screens and editing fixes.

Supporting 6 and 6+ wasn’t much work. I had done most of this work before the iPhone announcements, and it was a matter of fixing the couple spots that assumed a 320-point-wide screen. The remaining thing to do was to add launch images for the 6 and 6+. Simple.

The editing fixes were a bigger deal. The first thing is that Apple fixed some bugs in UITextView in iOS 8. Because of those fixes, I was able right away to remove some of our many work-arounds, some of which were a bit heinous. I ended up removing all of our work-arounds and starting from scratch.

And I was pleased to find that we needed very few work-arounds — and small ones, well-contained and easy-to-understand, not like the previous work-arounds — to make editing of long notes much, much better. I’m very pleased, and I thank Apple for attending to this. It’s much appreciated.

At the same time, I also learned from a person-who-can’t-be-named a couple of things that seem to help with UITextViews.

  • Set allowsNonContiguousLayout to NO on the layout manager. It may be NO by default, but set it to NO anyway.

  • Avoid using contentInset — use textContainerInset instead.

So: not a huge release, but a very welcome one. Dealing with editing bugs has been a giant time-suck for me, and I’m so glad to finally get past that, and I think Vesper users will be pleased.

Eric on Web Architecture

Answers About Web App Architecture For Small Teams:

If you are planning on staying a small team (say, less than 3-5 engineers) for a few years, the friction you feel is going to be coming from some place different than communication and coordination between engineers.

When you’re starting out, and when you’re small, the speed at which you can make changes and improvements makes all the difference in the world. Having a bunch of separate services with interfaces and contracts just means that you have to make the same change in more places and have to do busywork to share code.

Timeline Algorithms

I’ve never stopped thinking like an RSS reader developer. A habit of nine years is difficult to shake.

For many years what I wanted to do was develop an algorithm for the reader that would pay attention to what you pay attention to, so that it could bring to the top things likely to be most important to you.

I never got that far, which I regretted for years.

But now I wonder if that would have been the right thing to do. These days I hear complaints that you don’t see everything on Facebook from the people you’ve chosen to follow. And Twitter seems to be moving toward an algorithm-based timeline too, which has people (including me) upset.

At the same time, people do like things like muting features and lists. So it’s not that they’re against filters and organization — it’s that they don’t want these imposed from the outside.

These days, were I writing an RSS reader (I’m not), I think I’d skip developing an algorithm based on the user’s attention — instead, I’d focus on making it really easy to filter out the things you don’t care about, and to highlight the things you’re more likely to want to see.

And not try to come up with some algorithm which would have the effect of bugging people and making them feel like they were missing things. Since they would be.

Online Life

Dave Winer, The frenzy of online:

This isn’t communication, or sharing. It’s growing more and more frenetic every day, it seems. And more pointless.

I’ve often had the thought that our social networks are the same thing every day, with just slightly different details. When I skip them for a few days, I find that I have absolutely no feeling of missing anything.

Here are some things that don’t give me that same-thing-every-day feeling: making things, reading books, and talking to people in real life.

(Currently reading The Quiet American.)

On Criticism and Enjoyment

David Gerrold (one of my favorite science fiction writers):

Comic Book Guy isn’t having any fun. He’s bored — and he’s boring. Bart and Milhouse are having fun. They’re excited and interested. They get it — it’s about being a kid again. The whole point of a comic or a book or a movie or a TV show is to be a kid and have fun. It’s about trusting the author/filmmaker to take you on an exciting journey — not a dark ride, but a journey of discovery. You can’t do that if you’re watching the lighting, the editing, the camera angle, the dialog, the acting — you gotta let go and be a kid again.

Full-Text Search

New Yankee Codeshop shows how to do full-text search on iOS and OS X using SQLite and FMDB.

The Indie Developer’s Wilderness

Gus Mueller:

However much time I’ve been doing this for, and no matter how much practice I put into it, there’s one thing that always sneaks up and pulls the rug right from under me. It’s usually between major releases, but not always. It’s a period of time where I’m pretty lost, and I don’t know what to do. I have feature lists, I have open bugs to fix, and I have an outline of where the app is going. But I feel mentally incapacitated, like I’m getting nothing done.

Rock Stars

Fellow Q Dave Wiskus talks about putting on a good show in Rock Stars.

Apps are the showbiz of today.

Manton on Microblogs

For a new project, Manton Reece is defining a microblog post.

Manton and I care about many of the same things. (We’ve known each other since the ’90s when we were both in the Frontier community.) Among the things we both care about are the virtues of decentralization and of owning your own writing.

I don’t have much in the way of details of what he’s working on — but it sounds like a project I’ve had in the back of my mind for quite a while. Since I’m more interested in the thing existing than actually doing it myself, I’m very happy to see Manton working on it.

* * *

Is the web we lost gone forever? Was it a brief golden age before the rise of Facebook and Twitter and The Algorithms of Engagement?

Or is the current period a brief blip in time, where we turned the wrong corner and now we’re getting back on the right road?

I used to think that the very structure of the web meant that it was always inevitable that we’d get back to the great web. I’m no longer that kind of progressive — I realize now that loss is real, and usually permanent, and that good things have to be fought for, not by a handful of heroes but by a bunch of regular people like me and Manton.

[Sponsor] Hot-patch and Control production code with SDK (iOS developers)

In today’s mobile landscape, a lot of resources are directed towards building better quality apps — from beta testing platforms to distribution systems and even app performance monitoring solutions. But none of these solutions help developers while their app is in production.

With, developers can quickly react to their users by remote-controlling their app’s settings and parameters, as well as fix and contain errors and issues in real time — without waiting for a full release cycle.


  • Contain & hot-patch production bugs
  • Create analytics events on the fly
  • Messaging
  • SDK toggling
  • Advanced logging and debugging
  • UI changes (buttons, images, etc)

See how it works:

Radek on Swift Methods

Radosław Pietruszewski makes the case for brevity:

Some people say that “clarity trumps brevity.” And they’re absolutely right. Except for the fact that brevity can be a factor in clarity. Verboseness doesn’t come for free…

The trick in finding the sweet spot is to maximize the things that explain what the code does and remove as much noise as possible — the things that don’t really add information.

Alex on Developing for the Apple Watch

Alex Vollmer, A New Future?:

This is going to sound funny, but I think the tactile pulsing feature of the Apple Watch is one of its most intriguing. It got me thinking about how, paired with the right software, it could be a fantastic way to teach a wearer certain timing-related skills…

As a musician, that pulsing action might make for a great silent metronome. Instead of playing along with a monotonous click, you could simply time your playing with the watch's pulse. Music teachers always talk about “feeling the groove,” this would make it a literal reality.