What it is ain’t exactly clear.


As I did last year, I thought I’d write a bit about the best books I read this year. I didn’t read as much this year. In 2013 I set a goal, and I pushed myself to reach it. I didn’t really enjoy doing that, so this year I was more casual about it.

So, in no particular order, here are the books I rated highest this year.

  • We Are All Completely Beside Ourselves - I read this because it was nominated for a Nebula award, but you really have to stretch to consider this sci-fi. It’s more fiction about scientists. It’s about a young woman and how she comes to terms with her childhood. It explores memory and point-of-view, and I thought the whole thing was very well done.

  • Cibola Burn - This is the fourth book in the Expanse series, and it’s probably my second favorite so far. This is James S.A. Corey’s take on a western1, and it’s a fun and exciting ride. Humanity is moving out into the galaxy and bringing all their old problems with them. One of my favorite parts of this book was slowly realizing we had met some of these characters before. The authors give you plenty of time to figure it out for yourself before pointing it out.

  • The Martian - You won’t mistake this for great literature, it’s just a fun read. It’s about a man stranded on Mars and his struggle to survive. Which doesn’t sound fun, but it is. It’s funny and exciting, and if you grew up watching MacGuyver I think you’re going to like it.

  • The Golem and the Jinni - I resisted this book for a long time because I just didn’t think I’d like the setting. Boy was I wrong. The story of a golem and a jinni meeting in 19th century New York is funny and sweet, and I would feel safe recommending it to anyone.

  • Ancillary Sword - This sequel to last year’s amazing Ancillary Justice does not disappoint. It explores the Radch society in more depth and opens up some new mysteries to explore in future books. The narrator, Breq, becomes even more badass than in the previous book. In her mind she has nothing to lose, so she’s free to do what she believes is right, and she has the skills to make it happen.

  • Red Seas Under Red Skies - I read a lot of good sequels this year. This one follows The Lies of Locke Lamora and the continuing adventures of Locke and Jean. It’s probably the weakest of the series so far, but I’m willing to forgive the ludicrous plot because the interaction between the characters is so much fun and the world is so interesting.

  • The Republic of Thieves - This picks up almost exactly where Red Seas leaves off. There are nits to pick, but it’s another fun Locke & Jean adventure. And the flashbacks tell a beautiful and funny story of first loves.


  1. A western, in space! Who would ever expect that to work? 


I’ve been having a lot of fun with Workflow since its release last week. If you haven’t heard of it, think Automator for iOS. It packages a lot of built-in functions from iOS into blocks that can be chained together to perform tasks. Your workflows can be run from the app, saved to the homescreen, or run from Workflow’s action extension. I thought I’d share a couple that I’ve built so far.

Save & Share GIF

I sometimes find images1 that I want to save and possibly link to. To facilitate this, I have two Dropbox accounts. My main account, and a secondary account that I set up on my web server. The two accounts share a folder. When I save an image to the folder from my main account, it gets shared with my secondary account and pushed to a folder on my web server. A process on the server notices when there’s a new file in the folder and copies it to another folder on the server that’s publically accessible.2

This workflow takes an image (or a link to an image), prompts you for a file name, then saves the file to Dropbox. Then it creates a URL based on a template and saves it to the clipboard. You can download it here.

Now, you might be reading that and thinking to yourself, “Huh, an app that uploads an image and returns a URL sounds awfully familiar.” If so, I’m flattered you know my work. So yes, one of the first things I did was make a very basic version of Shoots & Leaves. It’s really cool in a kinda depressing sort of way. But hey, if that does what you need, great! If not, you know where to find me.

Gas Receipt

My wife handles the bill-paying in our house and tracks expenses. Whenever I buy something I give her the receipt. If you’ve ever paid for gas at the pump, you know your odds of getting a receipt are around 50%. When I don’t get a receipt, I text my wife the information she needs.

I thought this one was pretty clever. This workflow uses my location and looks up gas stations near me. Then it prompts me for the amount, and presents a menu so I can select which card I used. Then it puts all that information in a text message. You can download it here.

So far, it works pretty well. There’s always the possibility that the location search will find the wrong gas station, or fail completely. But I can deal with that the rare times it happens.


  1. Ok, animated gifs. 

  2. I use a similar process to publish this blog. 


Whenever people talk about adapting Foundation to the big (or small) screen, the popular opinion has been that it’s unfilmable. The book (the whole original trilogy, really) is, for the most part, people sitting around and talking.

But with the popularity of Game of Thrones, and the trend that has started of book series being turned into television series, I started thinking about how Foundation might could be adapted. I think you could do it, if you treat the books as an outline. Lots of interesting things happen “off screen”–tell those stories in a way that serves the larger themes that are in the books.


I received my iPhone 6 (64GB, Space Gray) last Friday, and wanted to write up some thoughts about it.

It’s the right size (for me). The iPhone 6 looks significantly bigger, but it doesn’t feel that much bigger in my hand. I had a chance to play with the iPhone 6 Plus while waiting at the Apple Store. It’s a lovely device, but to me it feels too big to be something I carry constantly.

And I think it’s going to be more comfortable to hold than the iPhone 5. The 5 was small enough that my brain thought I could hold it the same way I held the iPhone 4. But it was big enough to make that uncomfortable. The 6 I definitely can’t hold that way, so I’m gripping it in a way that’s less tiring.

I use the Reachability feature occasionally and it works fine. It’s just hard to remember to use it. I wish it somehow worked with Notification Center. I’m using Notification Center more now that it has widgets, and the only way to get to it is to reach to the top of the phone.

I’m finally getting used to the new position of the off button. I think I would have liked it better just a little higher, though. Where it is now I tend to squeeze the whole phone, and I end up pushing the up volume button at the same time.

A few hours after I got it I thought, “Wait, isn’t the camera lens supposed to stick out?” I had been playing with it that whole time and hadn’t noticed it. I don’t think it’s a problem. Most people will use a case. It feels like it’s designed so that it would be difficult to catch it on something.

Speaking of which, the camera is fantastic. With the iPhone 5, I would have to take four or five photos to get one that wasn’t blurry. I haven’t taken a blurry photo yet with the 6. For somebody with two kids, that’s huge.

On Sunday my iPhone rebooted while I was listening to a podcast. When it finished I unlocked it, the screen flashed red, and it rebooted again. It did this several times Sunday night and Monday morning. I took it to the Apple Store and they swapped it for another one. So far, I haven’t had any problems with the replacement.

I didn’t get an iPhone 5s, so this is my first experience with Touch ID and a motion coprocessor. Both work great. I’m still trying out step tracking apps to find one I really like.

I’ve started noticing NFC terminals everywhere. I can’t wait till October.

Overall, I’m happy with it. I’m one of those people that didn’t really want a bigger phone, but I think Apple hit the sweet spot with the iPhone 6: A larger screen that’s small and light enough to carry all day.


I’m seeing lots of developers dealing with extension issues as they get ready for tomorrow’s iOS 8 launch. I’m still working on an extension for Shoots & Leaves, but I have already dealt with one of the problems mentioned by Tumblr’s Bryan Irace:

For existing apps, the problem is simple; the data already exists somewhere outside of the shared container, and only the container app can migrate it over. Thus, if the user installs an update that adds an extension, and tries to use the extension before launching the application and giving it a chance to perform the migration, they’re going to have a bad time.

Workaround

There’s no great option here. If the user opens our extension first, we just throw up a dialog telling them that they need to launch the application first. Inelegant but necessary.

That’s a pretty bad workaround. I look at is as no different from when a user opens your app the first time: You need to give them some way to do what they want to do.

I don’t know how the Tumblr app is structured, so I won’t try to offer a different solution. But I will describe what I did.

In the Shoots & Leaves extension, if you open it before you launch the app you’ll be able to upload via Imgur (which doesn’t require a login) and send the link to Safari or1 the clipboard. At the bottom of the view is a message:

Full access to all your configured hosts and actions will be available after the next time you launch Shoots & Leaves”

Or something like that. And that message is a link you can tap on to launch the app.1 Once you open the app all your personal hosts and actions1 will be in the extension, and those defaults will be replaced.

It would be nice if the extension could launch the app in the background, and that’s something I could see Apple doing at some point. As we iOS devs say a lot: Maybe next year.


  1. I’ve since learned these things aren’t possible in share or action extensions at this time. I think the larger point stands. 


Loved this post by 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.

We’ve all been there, but it’s nice to see it explained so well.


Great post by Maciej Ceglowski on the fifth anniversary of Pinboard. I particularly liked this part:

I find that the longer I run the site, the more resistant I become to the idea of ever giving it up, even if I need to take the occasional break. It is pleasant to work on something that people draw benefit from. It is especially pleasant to work on something lasting.

I feel the same way about Shoots & Leaves. The feedback I get telling me how people use it is a huge motivator.


I wasn’t expecting much this year.

It had become sort of a tradition: The handful of things that were always on everybody’s WWDC wishlist that never arrived. The disappointment was not so much in not getting those things, but in knowing it would be a full year before you even got another chance.

This year, we got what we asked for. Not everything, certainly. I still don’t have a pony. But Apple announced many of the things we’ve been wanting for years. And not because they “finally caved”, but because those things were finally ready.

So here, in more or less the order they showed up in the Keynote, are the things I’m most excited about:

Yosemite

An OS X release named after a Warner Bros. character! How could I not be excited about that?

The design looks nice. I’m not sure about the transparency, because you never know if something like that will be done well, but we’ll see. I’m glad they went with an evolution of the current design, rather than a complete rework. And I’m excited to try the dark theme.

iCloud Drive is unlikely to replace Dropbox for most people, but it will be great to have that kind of access to our iCloud files.

They had an impressive demo for Continuity, but that’s one of those features that has to work near flawlessly for people to use it. If it only works sometimes, or it’s slow, people will go back to their old habits of sending stuff back and forth manually.

iOS 8

Interactive notifications is a great feature. I hope a lot of apps adopt it quickly (looking at you, Due).

Just the week before, I had been thinking about what we were going to do in a few years when our kids are old enough to have their own iOS devices. Family Sharing is a welcome solution. Only thing I haven’t heard yet is whether iTunes Match will be included.

I love that all my photos can be in iCloud, and the new iCloud price tiers. The $0.99 tier is a no brainer, and I wouldn’t hesitate to jump to the next level if I need the space.

Dev

I’ve heard some people suggest that app bundles will cause the price of apps to drop even lower. I see it being very useful in a variety of situations. If you can bundle iPhone and iPad apps together then it would be a better solution than universal apps. You would be able to sell, say, the iPhone version for $1.99, the iPad version for $2.99, and the bundle for $3.99. Users will get smaller app downloads and not have to pay extra for platforms they don’t own.

I have mixed feelings about TestFlight. Beta testing based on Apple IDs rather than devices, and distribution through the App Store is fantastic. But having to go through a beta app review could be a deal-breaker. We’ll see.

I’m probably most excited about extensions. There are a lot of ways I could use this with Shoots & Leaves. So many, in fact, I’m not sure where to begin. And I can’t wait to see how some of my favorite apps use it.

Similarly, the new camera APIs and PhotoKit should be useful for me as well. CloudKit too, though I haven’t dug in enough to see if I can use it the way I want.

I’m seeing a lot of people playing with Swift already, and it looks like a great new language. It’ll take some getting used to, but the new tools they introduced with it should make it easy to learn.

I don’t think it was mentioned in the keynote, but that fact that embedded webviews will now be as fast as Safari is a significant change. This will affect my day job quite a bit.

And probably the most important change, is the one that makes it possible for us to discuss all the others: the changes to the NDA. It’s exciting to see people publicly discussing all the new stuff. I think this will have a huge affect on adoption of all the new APIs.

This is going to be a busy summer and an exciting year for all iOS and Mac developers. I can’t wait to see what we do.


The Onion, of course:

According to Richman, it was just now hitting him how many hours of his life he’s pissed away listening intently to nonsense about celebrity couples, how good or bad certain pens are, and why a particular sports team might have a chance this year. The husband and father of two said that every time he’s felt at all put out or bored by a bullshit conversation—especially a speculative one about how bad allergy season was going to be—he should have just turned around, walked away, and gone rafting or rappelling or done any of the millions of other things he’s always wanted to do but never thought he had time for.

At various points throughout the day, Richman could be heard muttering to himself that he couldn’t believe he was almost 40 years old.

Yep.