Logo 61e73bc61c0e1780102320e879dc3cac0e29303ea8894dd8f10c942f3ba8120f

otters.io

An adorable little blog

Dell UltraSharp

Thursday — April 6th, 2017

I've been enjoying Dell's 25" UltraSharp U2515H display for the past few months. It has excellent color accuracy, a bright backlight, a...

Watching Files Live

Sunday — April 2nd, 2017

If you’re like me, when it’s time to deploy an app or service you’re frantically refreshing log files waiting for something to go horrib...

Getting Started with CoreLocation in Swift

Tuesday — May 24th, 2016

You want to get a user’s location in your app but aren’t sure where to find it. You’ve heard of CoreLocation but aren’t sure where to st...

Universal Self in Swift 3

Saturday — April 30th, 2016

Do you have any static methods on your classes or structs? Normally to call those, you’d have to write: MySuperFancyExampleClass.staticM...

A Successor to successor()

Thursday — April 28th, 2016

Changes are heading towards collection types in Swift 3! Yesterday, the big man himself approved a proposal to rethink how collections a...

Literal Convertibles in Swift

Thursday — April 28th, 2016

Previously, I wrote about how handy the CustomStringConvertible protocol can be. The standard library is full of neat little protocols li...

Writing Swifter Swift

Tuesday — April 26th, 2016

What does good Swift look like? This question lingers with those well-versed in Apple’s development platforms as well as newcomers. Does ...

What Does It Mean to Be Lazy?

Monday — April 25th, 2016

If you’re not a language buff or versed in the dark arts of functional programming then lazy may sound like a strange keyword. How is a f...

Print It How You Like It in Swift

Sunday — April 24th, 2016

Sometimes the normal debug description just doesn't cut it for your custom types. It's handy to have a little more information when you ...

Swift Operators++

Sunday — April 24th, 2016

Swift is removing the increment and decrement operators (++ and -- respectively). If this is news to you, hello from 2016! Bowie has left...

Swift and C Together in Perfect Harmony

Saturday — April 23rd, 2016

If you’ve had to deal with any C-based frameworks or API’s in your Swift, you may have noticed that it is ever so slightly terrible. It'...

No More Magic Selector Strings

Thursday — April 21st, 2016

If you've been fortunate enough to work in a Swift project you may have come across a situation where you need to talk to an Objective-C ...

A Future You Can Compile In

Wednesday — April 20th, 2016

With the dawn of Swift 3 on the horizon, there are a lot of changes coming down the line. There’s going to be a laundry list of breaking ...

Mighty Morphin Mutable Parameters

Monday — April 18th, 2016

I mentioned using var and inout in Swift function parameters and I thought I should give a small example of using them. Heads up, befor...

A Little Less Spice in Swift 3

Sunday — April 17th, 2016

Swift 3 is scheduled to be released in late 2016. Which, by Apple time, means whenever is least convenient after August. If you’ve been r...

Swift Format Tool

Sunday — April 17th, 2016

In case you haven't kept an eye on the inside baseball of Swift language development, John Holdsworth has made a Swift format tool. It re...

OOpting Out

Sunday — January 31st, 2016

In Coder Radio Episode 189, Mike & Chris discussed a video by Brian Will that highlighted the pain points in Object Oriented Programming....

Fighting the System (Design)

Wednesday — January 20th, 2016

I spend what seems like a majority of my time fighting anti-patterns. That work sucks. Writing code when I know exactly what it should do...

Competition Above Usefulness

Tuesday — January 5th, 2016

This week is CES. Whoever is behind @internetofshit has their work cut out for them. I think a good takeaway from the annual cavalcade...

My Lesson Plan

Wednesday — December 30th, 2015

Continuing from my post on Teaching Swift. Here was my impromptu lesson plan for our first day. Computers can do math. Like 1 + 1 and 2...

Teaching Swift

Saturday — December 26th, 2015

I am a terrible teacher. I love talking with other people who love Ruby, Swift, or Objective-C, but I cannot on-board someone else to sav...

Making a Better Rails Blog with MarsEdit

Friday — December 18th, 2015

Writing blog posts in a web browser has always been a clunky compromise with a thin veneer. Native apps have a home field advantage that ...

Open Otters

Friday — December 18th, 2015

Just a quick update. The source code for this blog is now available on GitHub. It’s MIT licensed. I’m not looking to provide support for ...

Project Euler in Ruby

Wednesday — July 29th, 2015

On top of Project Euler in Swift, I'm trying Project Euler in Ruby. Mostly because I'm stuck on problem 20 until I find a standard Big In...

ZSMath

Monday — June 22nd, 2015

To go along with Project Euler in Swift I made a small helper class that fills in the blanks for methods I couldn't find. (generating pri...

Project Euler In Swift

Sunday — June 21st, 2015

I've been tinkering around with Project Euler for a while. Now that I can finally compile the same Swift code for a month without the lan...

XCTest In Command Line Applications

Tuesday — June 16th, 2015

XCTest is a handy dandy way to test your iOS and Mac apps. Xcode even sets up some sample tests and a test target for free when you crea...

Swift-o-nacci

Friday — January 30th, 2015

I couldn't find a method for getting Fibonacci values in Swift for Project Euler. It probably exists somewhere in some standard library b...

Craig Said It Would Be Fast

Friday — June 27th, 2014

Swift has been declassified for long enough to do some playing around and this slide is still etched into my mind from the WWDC 2014 keyn...