I've been meaning to write this post but Daniel Compton beat me to it. "It takes a village to raise a library" and "free as in 'baby'" are too perfect not to repeat.
The Main Thread is a static site generated with Jekyll. I love a lot of things about this setup but there's too much friction when adding new posts.
OnePad 1.4 is mostly me playing catch-up. The UI has been iOS 7-ified, it has 50% less capitol letters in the name and 100% less skeuomorphism in the icon. I did have a chance to add a few new features though.
I want to share a couple of exceptional software programming talks that I've watched recently. They are both engaging, and if you're anything like me, will likely challenge many of your assumptions while enforcing other suspicions about the "right" way to write software.
You'd think something as simple as an automatically incrementing build number would be a solved problem by now. Instead it seems to be one of those areas where everyone has their own workaround. At least for those of us not blessed, or cursed, with a monolithic shared build system. For Cocoa apps the build number is also known as a `CFBundleVersion` and it's a very useful thing for lining up bug reports with exact points in your code history.
Functions are first-class citizens in Swift. They can be stored in a variable or constant, passed to another function as a parameter, or returned as the result of another function. This concept of "functions as data" enables the development of complex systems composed of small bits of reusable logic in an elegant and concise way.
If you're trying to use the Google Place Search API with an iOS public API key and you get the error message, "This IP, site or mobile application is not authorized to use this API key.", this might help.
Swift properties aren't sacred.
Swift beta 5 introduces some new rules that effect view controller subclasses and initializers.
Posting to Notification Center center from a shell script is a great way to let yourself know that a potentially long process has completed. Luckily, it takes just one line.