OS X Dock Becomes Irrelevant (sort of)

Sep 4, 2015

Screenshot of OS X Dock containing Finder and Trash Bin, cannot be removed

The Dock has been a staple of OS X since Apple acquired NextStep, oh so many years ago. But, for me, it gets pretty cluttered down there, and switching to the app I want can be pretty cumbersome. Despite purposefully arranging the apps on the Dock, grouping apps by desktop, using Launchpad, and Mission Control, I still find myself going to the Dock and sliding the cursor across. I figured it was time to experiment with something different; removing everything I could from the Dock seemed a logical first step.


Appeal to Authority and Marketing

Aug 29, 2015

Appeal to authority means attempting to demonstrate a position is true or valid or reason to trust because an authority on the subject said it; this is a logical fallacy, but does not mean that all appeals to authority are inherently false.


Credit’s Due: Ken Schwaber

Aug 8, 2015

For those of you who don’t know Ken Schwaber is the co-creator of Scrum, an Agile framework. He is also the founder of Scrum.org. My introduction to Agile and Scrum led me to a class taught by Ken, and I never looked back.


The Slow Shift to Swift: Calculated Properties

Aug 1, 2015

One of the biggest hurdles with object oriented programming, specifically when dealing with reference as opposed to value, is mutating state and variability.

Consider the following.

class Eagle {
    var feathers = [Feather]()
    var color: String {
        if feathers.count > 0 {
            return feathers[0].color
        return “nothing”

class Feather {
    var color = “Brown”

let eagle = Eagle()
// eagle.color = “nothing”

let feather = Feather()
eagle.feathers = [feather]
// eagle.color = “Brown”

feather.color = “Yellow”
// eagle.color = “Yellow”

Notice we are able to change the color of the Eagle by changing the color of a single feather, without letting the Eagle know its color got changed?

This is the mutating state problem within object oriented programming.


The Slow Shift to Swift: ...why is it there?

Jul 22, 2015

The full title should really be: If it’s optional, why is it there?

As a productivity coach, and pretty hardcore minimalist, I tend to question the existence of things we call optional. When it comes to continuous improvement and iterative design I’m always looking for ways to reduce things to the essence of what they are. Put another way, if a sentence can communicate the same idea without a word, I remove it. Further, if a piece of code can perform the same function without a variable, I remove it. Having said that, sometimes you can’t see where this distillation can occur because of the noise and distractions. This signal-to-noise problem is particularly true in most programming languages, which depend on syntactic sugar in the form of symbols to help the computer know what we are trying to communicate—Swift eliminates much of this syntactic sugar; however, when it comes to nil and optionals, they are a mixed blessing.

The ability to have nil, and the various methods for creating private variables and syntactic sugar in Objective-C makes distilling code difficult sometimes. This concept became pretty apparent as I refactored the extension for NSManagedObjectContext in Time Journal.


The Slow Shift to Swift: Order of Conversion

Jul 15, 2015

As I’ve said before, switching to Swift has been fraught with danger, false starts, and frustrations. I’ve lost countless hours and source control commits during the process. But I’m gonna keep on going because: (a) I think Swift is that much of a game-changer, (b) a lot of the problems, I think, stemmed from the order in which I was trying to convert the code, and (c) I was trying to avoid the interoperability bit—don’t be that person.


The Slow Shift to Swift: Refactoring Ancient Code

Jul 8, 2015

The oldest, least retouched, bit of code for Time Journal is in the AppDelegate, which is what iOS uses to allow developers to effect the launching and shutting down of their applications. Unfortunately, this was one of the first things I wrote for Time Journal. Probably written pretty quickly. And, without really considering the refactoring piece of things.

So, sticking with the premise of doing things different this time around, it pained me to convert the AppDelegate to Swift.


The Slow Shift to Swift: False Starts and Frustrations

Jul 1, 2015

This has as much to do with the Mastery Curve as anything.

Master curve

It took a very short time to pick up Objective-C to the point that Time Journal could be released to the App Store. The verbosity of the language was a welcomed relief for me as I tend to write code in a self-documenting fashion, which is to say, a developer (namely, future me) can come in with limited prior knowledge and have an understanding of the system.


Credit’s Due: Sean Parent

Jun 20, 2015

When it comes to software development no single person has impacted and influenced me more than Sean Parent; and I’m pretty sure I’m not alone. I was first introduced to his work via a Google Tech Talk that forever changed the way I thought about programming as an effort to create generic standalone solutions. I credit this single talk as being the cause behind my ability to make the CMS I was developing grow by leaps and bounds in terms of flexibility, capability, and minimal installation footprint.


Hello world!

Jun 18, 2015

If all goes according to plan...this should be visible June 18, 2015.

Seriously. This is just a test of the Josh Bruce Communication Network.