This doesn’t sound like the origin story of a computer hardware company. So why is it that Cherry is a name so closely associated with keyboards these days

I’m a longtime admirer of the mechanical keyboard in general, but Cherry’s switches in particular have a certain precedence among the brands in the keyboard game. There are plenty of keycaps around, but there aren’t any companies that come in a close 2nd place when it comes to switches.

One of the things about the demo that was distasteful is that it felt like a high-tech prank call, a Google-powered “Crank Yankers”: We were, at some level, meant to laugh at the people on the other end of the line for being fooled into thinking they were talking to a real human being, thanks to the inserted “ums” and sentences ending in uptalk. They were the butt of a joke, made by one of the most powerful companies in the world.

Samsung VR is now available for iOS. There’s a huge amount of immersive video content available online and the barrier to creating has never been lower for both professionals and hobbyists. Samsung VR is the best way to present and discover immersive video, I hope you’ll enjoy using the app as much as I’ve enjoyed creating it!

Today we’re looking at [the very cool] GraphQL and a popular iOS client library for interfacing with GraphQL servers. Being that the rest of the application in question is already chock-full of promises, it made sense to want an option for using promises rather than Apollo’s GraphQLQueryWatcher + callbacks. The good news is that Apollo has support for promises, the bad news is that they wrote it themselves.

Love it when a framework recreates another popular library and we spend time writing plumbing like this. The simplicity of this little bit of code obscures how annoying this really is. Now with multiple declarations of the same class in this project, we have lots of compiler hinting and needless explicit module qualifications that could be avoided by not reinventing the wheel. If you’re creating a library for iOS and want to include Promise functionality, please use PromiseKit.

Of course, the real answer is a set of concurrency primitives in Swift. Soon.