Two Ring Software RSS All updates from Two Ring Software. Overusing Xcode Targets Misses the Mark Outlining the differences between Xcode project targets and build configurations, and how to properly use each one. Tue, 08 May 2018 00:00:00 -0600 Automatic Devpod Versioning and Deployment with Vrsnr Describing my process for semantically versioning the Pippin podspec, deploying it to CocoaPods trunk, and committing all the results to git history. Fri, 20 Apr 2018 00:00:00 -0600 Reach Out and Touch Faith Thinking about the future of the Macbook Pro, and the direction in which the TouchBar might indicate it's headed. Mon, 16 Apr 2018 00:00:00 -0600 CocoaPods and Custom Build Configurations My long journey to set a devpod's SWIFT_OPTIMIZATION_LEVEL, from the podspec's pods_target_xcconfig, to Podfile's post_install and finally arriving at the succinct project. Thu, 15 Feb 2018 00:00:00 -0700 Programming: 20 Years In As I near 20 years since first picking up computer programming, I take a quick look back at the languages I've used and the tools available to work with them, with thoughts on the synergies between them and our own brains. Wed, 07 Feb 2018 00:00:00 -0700 Dependency Management Best Practices In light of recent news about dependency manager breakages and vulnerabilities, highlighting some steps you can take to protect your dependencies and the projects for which you need them. Tue, 09 Jan 2018 00:00:00 -0700 Announcing Pippin Version 2 Highlighting some of the new features in the first major update to Pippin. Tue, 02 Jan 2018 00:00:00 -0700 Manage version numbers with this one line command How I'm currently using Rake to automate a few common tasks I carry out to manage my iOS apps' version numbers. Sun, 17 Dec 2017 00:00:00 -0700 Introducing Pippin An update and first official version of my Swift app development framework. Wed, 29 Nov 2017 00:00:00 -0700 Introducing Psst A simple script to perform straigtforward template replacement of credentials in a codebase, to help avoid committing them. Mon, 27 Nov 2017 00:00:00 -0700 Image Galleries with Jekyll Describing my journey to build a photo gallery for my website using Jekyll/Liquid to template all the things. Sun, 05 Nov 2017 00:00:00 -0600 Log Level: Extreme A brief survey of log level concepts in the iOS community and elsewhere. Mon, 30 Oct 2017 00:00:00 -0600 Apple's Tech Evolutions Extrapolating Apple's technological advances from the past onto their current product lines and research, for funsies. Thu, 19 Oct 2017 00:00:00 -0600 Looms and Computers The similarities between computers and looms, distant cousins related through their ancestor, the Jacquard loom. Tue, 29 Aug 2017 00:00:00 -0600 Xcode 9's New Find and Replace Panel A critique of the new source editors tool's UI and UX. Mon, 19 Jun 2017 00:00:00 -0600 Returning Optionals Versus Throwing Errors in Swift Deciding between flow control and data model concepts in your app's business logic. Thu, 18 May 2017 00:00:00 -0600 Source Control Management vs. Dependency Management Which manager has more authority over your project? Wed, 12 Apr 2017 00:00:00 -0600 Differentiating iOS App Builds A simple way to manage all your app build variants to test alongside each other on a device. Sat, 01 Apr 2017 00:00:00 -0600 Validating Crash Reporting in Live iOS Apps There's only one way to guarantee your iOS crash reporter is working: purposefully crash your app in production. Sun, 26 Mar 2017 00:00:00 -0600 Snapping Angles and Fuzzy Binary Search Implementing a variant of the binary search algorithm to find nearest interval angles on the unit circle. Thu, 16 Mar 2017 00:00:00 -0600 Objective-C Block Syntax Some ways to make writing Objective-C blocks in Xcode a little easier. Mon, 27 Feb 2017 00:00:00 -0700 Tracking Xcode Build Setting Changes with xcbs Announcing a small CLI for persisting final Xcode project build settings in lockfiles. Sun, 19 Feb 2017 00:00:00 -0700 Xcode Build Setting Inheritance and Precedence Straightening out the tangled web of relationships in the world of Xcode build configuration. Sat, 28 Jan 2017 00:00:00 -0700 The Art of Source Control, Part 2: Clean Git History Outlining some best practices concerning git history tidiness. Thu, 19 Jan 2017 00:00:00 -0700 The Art of Source Control, Part 1: Organizing Codebases Outlining some best practices for organizing a codebase. Sat, 14 Jan 2017 00:00:00 -0700 Passwords Anecdata regarding antipatterns in the realm of password management for your service's users. Wed, 04 Jan 2017 00:00:00 -0700 Going Back to the Future to test with git-rebase Adventures in Git, using rebase to reorder history and automate some testing, too! Tue, 22 Nov 2016 00:00:00 -0700 Making the site a little more SASSy Why I decided to use SASS to manage the site's CSS. Sun, 24 Jul 2016 00:00:00 -0600