Some TODOs for the new site As I prepare to make this new version of dzombak.com live, I wanted to make a note of some things that are left for me to do.
Know Your Birds: Red-Headed Woodpecker The Red-Headed Woodpecker is, at least here in Michigan, a commonly misidentified bird.
A migration to Ghost from Jekyll I just want somewhere I can quickly & easily share things. So, I'm testing out what a new iteration of dzombak.com may look like, running a self-hosted instance of the Ghost CMS.
Quotes Paul Graham, 2005 (commenting on Lemonodor): I actually worry a lot that as I get "popular" I'll be able to get away with saying stupider stuff than I would have dared say before. This sort of thing happens to a lot of people, and I would …
‘Obviously super complex’: evaluating software architecture as simple vs. easy I have a problem with the characterization of VIPER, right out of the gate, as across-the-board “obviously super complex”, for a few reasons.
String is not a sufficient type: how using your type system can help you make better software We deal with types, explicitly or implicitly—depending on our language of choice—every day. We often use them without even thinking about them, or we consider them an annoyance when we’re just trying to get something done. This brief talk presents an accessible metaphor to help explain that type sy…
Writing good commit messages Guidelines and links to reference material on writing good git commit messages.
Working with custom UIView designated initializers I have a UIView subclass, with a custom designated initializer. How should I handle the requirement to override initWithCoder:?
Nobody is using App Transport Security; what’s next? I did an informal survey of some widely-used iOS apps. I wanted to see which had opted out of the new App Transport Security checks in iOS 9. The results aren’t very promising.
Ad blockers aren’t killing the web; ad networks are killing the web A bunch of people this morning are sharing The Verge’s article about ad blocking. But ad blockers aren’t the problem here. Ad networks are the ones killing the web and if they want to stay in business they have some shit to fix.
Multiple Inheritance vs. Traits or Protocol Extensions A friend asked me at WWDC how Swift protocol extensions (or Scala traits, or Ruby mixins) are substantially better than multiple inheritance. Here are a few links and thoughts.
Cocoa’s mutable-subclass pattern is an antipattern We know we can’t mutate a mutable array while enumerating, and yes, we have to take care to avoid that. But wait a second—why is that *our* problem, as users of Apple’s Foundation framework?
Be Proactive: Use Reactive A high-level, easy-to-grasp intro to the core concepts behind reactive programming.
Casting in Swift 1.2: a brief summary Swift 1.2, in beta with Xcode 6.3, makes some changes to casting. Here’s how as, as?, and as! work: * as is for guaranteed conversions. That is, use as when the compiler can type-check that the conversion is valid; and Swift won’t compile a as cast it …
IBOutlet declarations in Swift Xcode’s default IBOutlet declarations are weak references to implicitly unwrapped optionals. This is wrong.
Subjective-C: I use property (dot) syntax liberally I have long argued that methods which look, walk, and talk like getter methods should be called with dot syntax.