QBlocker

QBlocker

A few months ago I switched from Chrome to Safari as my main browser. I enjoy using Safari to Chrome in almost every way but there was one feature of Chrome that I missed. There's an option you can enable in Chrome that will force you to hold CMD + Q to quite the app. As some who uses CMD + W to quit windows or tabs frequently, I often found myself accidentally quitting Safari. Solutions There are of course a number of solutions to the problem. Stop being such a sausage-fingered idiot and learn the difference between the Q and W…

Decoding Dreamweaver STE files with Swift

Decoding Dreamweaver STE files with Swift

We have a few clients that use Dreamweaver as their editor/FTP client of choice. This unfortunately doesn't fit in with our toolchain and as we often receive STE files it's a manual process to extract the data from the file. Since we use the amazing Transmit from Panic I wondered if there was a way we could parse the file from Dreamweaver and open a new connection in Transmit. Decoding The Password First of all I wanted to see if it was actually possible to decode the password before I bothered building anything. Thankfully, the heavy lifting of figuring…

Peach.cool — API, PeachKit & Peach for Mac

Peach.cool — API, PeachKit & Peach for Mac

So Peach stumbled onto the scene Friday. If you haven't heard of it, it's this cool new social network that lets you post cool stuff using "magic" words. Currently it's only available on iOS which, while great means that I can't really check it while I'm in work. I did some sniffing by routing my iPhone through Charles to see if I could find out how the thing interacts and if there's an API I could latch onto to build a Mac app. It turns out there totally is. Peach's API The API is completely there and totally,…

Poolside FM

Poolside FM

I fucking love Poolside FM. It's like the perfect playlist for summer. The only problem is I always had to keep it open in a tab on my browser. I was constantly accidentally closing the thing and because it's a website, it's not controllable through the media keys on your keyboard. I had a sift through their source and stumbled across their API. I tweeted that I'd love to build a little menubar app for Poolside. It would be a nice to have thing and I wanted to build my first Mac app. The Poolside guys Marty & Grant seemed…

Swift "AnyClass" Type

TL;DR you're looking for MyClass.self When working with ConnectSDK, I came across something I hadn't before in Swift: the AnyClass type. ConnectSDK is an Objective-C based library so I'd imagine this is a rarity when working with native Swift code. Here's what it looks like: discoveryManager?.registerDeviceService(deviceClass: AnyClass!, withDiscovery: AnyClass!) I mistakenly though it was looking for an instance (i.e. MyClass()) but that threw an error. It turns out that in Objective-C each class has the static class property. In the case of ConnectSDK it's looking for the following: [AirPlayService class] [DIALService class] [CastService class] This…