Structured Overview
Tag Index
Posts by year: 2019 · 2018 · 2017 · 2016 · 2015 · 2014 · 2013 · 2012 · 2011 · 2010

2019

December 2019
Dec 7 Dash 5 Documentation Browser for Mac is Available
Dec 4 Native macOS Notifications for Emacs Org Tasks and Appointments
Dec 3 FourLayerArchitecture Is Still Under-Appreciated
November 2019
Nov 26 That Weird Obstable of Interface Builder When You Get Started With iOS Development
Nov 26 Black Friday Deals 2019
Nov 23 Working on the Zettelkasten Online Course
Nov 4 WordCounter v1.6 Brings Analytics to Your Productivity!
October 2019
Oct 26 X-Oriented Programming, Using Functions or Classes?
Oct 24 Win32 API Programming With Swift
Oct 24 ExactScan Leaves the Mac App Store
Oct 22 Reducing the Blog Post Email Digest To Once a Week
Oct 22 Model-View-Presenter, Form Validation, and a Unidirectional State Machine
Oct 21 Xcode Bug Turns Out To Be the Hardened Runtime Setting
Oct 19 Fix Missing Font Fallbacks for NSTextView
Oct 17 Building a Rich Domain In Iterations
Oct 14 Prevent Emacs Compilation Window From Displaying Other Content
Oct 14 Quit and Close Emacs Special Windows Like Help and Compilation Results
Oct 14 Emacs Settings for PHP Development
Oct 14 The Archive Update Hiatus Due to a Severe Bug in Xcode 11
Oct 13 Starting PHP Development in 2019: Project Setup and Dependencies
Oct 11 Making os_log public on macOS Catalina
Oct 11 Xcode 11 Displays Crash Logs in Context of Your Projects
Oct 10 Processing David Epstein: Range (S01E04)
Oct 8 Website Page Design Overhauled
Oct 7 “Make Money Outside the Mac App Store” Second Edition Ebook Available
Oct 6 Pros and Cons of the Mac App Store
Oct 6 Macoun 2019 Code Retreat Workshop Postmortem
Oct 3 Comparison of E-Commerce Platform Alternatives to the Mac App Store
Oct 2 Processing David Epstein: Range (S01E03)
September 2019
Sep 30 September App Updates
Sep 29 What to Do When You Want to Affect the Order of Subscription Callbacks in ReSwift
Sep 27 Processing David Epstein: Range (S01E02)
Sep 25 Add an Internet Access Policy to Your App
Sep 25 Calendar Paste v3.3.0 Hits the App Store
Sep 23 Always Ask for MailChimp Newsletter Reconfirmation Outside of MailChimp
Sep 23 Don’t Wait. Show Up. Or It Might Be Too Late Again
Sep 20 Processing a Book to Extract Notes, a Video
Sep 19 Make Money Outside the MAS v2 Book Writing Stage is Done
Sep 17 Newsletter Revival
Sep 17 TextMate v2.0 Was Released
Sep 14 State of the macOS Developer Platform Choices
Sep 14 Please Also Change Your Feed URL’s Inside Your Apps
Sep 13 Redirect Your DevMate Sparkle Update Feeds Now
Sep 11 Fira Code 2 Released
Sep 11 I Am at Macoun 2019
Sep 10 Wireframe for Server-Side License Activation
Sep 9 Become an Acquired Taste
Sep 8 UINavigationController Inside a Popover
Sep 6 With DevMate Closing Shop, Here’s What You Can Do
Sep 6 Prying Open the Vanilla Forum Control Flow to Create Discussions in Embedded Forms
Sep 6 Detect When Your macOS App Has Been Moved During Runtime
Sep 4 Live FastSpring Store Examples
Sep 2 Looking for a Family Altar’s Totem
August 2019
Aug 30 Book Updates Underway
Aug 7 Find Non-64-Bit Apps Using the Free Go64 Tool
Aug 7 The Archive v1.4.0 Released, Introducing Tabs
Aug 2 NiftyMenu – Automatically Recreate a macOS App Menu Bar in HTML
July 2019
Jul 29 Empty NSWindow Title Invisible in Window List
Jul 29 Paid Up Front: Two Perspectives to Make this Business Model Work to Your Advantage
Jul 24 Variable Name Conventions in Tests
Jul 21 Implement NSWindow Tabbing with Multiple NSWindowControllers
Jul 20 The World’s Most Comprehensive Guide to Implementing Programmatic Creation of Tabs in a Single NSWindowController That You Shouldn’t Adhere To
Jul 17 How I Never Forget to Pack Stuff in My Backpack
Jul 8 Convert MS Word DOCX Files to Markdown with Images
Jul 3 Lightweight CrashReporter Library for Mac Released
Jul 3 Move! Work Break Timer v1.4.0 Released
Jul 2 Fixed Code Highlighting on the Blog
Jul 1 Find Out if Xcode/LLDB Debugger Is Attached to Current App
June 2019
Jun 29 Fold Current Level-1 Heading in Emacs Org-Mode Outlines
Jun 29 Combine E-Book for Free
Jun 28 Post Overview Updated
Jun 28 Slides for the “More Money, More Control” Webinar on Selling Outside the Mac App Store
Jun 28 Existing NSWindow Show Notifications Don’t Work
Jun 28 TableFlip Mac App Store Experiment Stats: Sources
Jun 26 WordCounter for macOS Version 1.5.0 Released
Jun 26 Reference Xcode Configuration Variables in Objective-C
Jun 25 React to NSWindow Showing in Your App
Jun 22 Xcode Project Setup to Build, Embed, Codesign, Notarize, and Use the Sparkle XPC Services
Jun 22 How Do You Activate Sparkle’s XPC Services?
Jun 21 How to Migrate to the New Sparkle Updater XPC Branch
Jun 20 Use Shared NSUserDefaults for XPC and Interface Builder Nibs
Jun 13 Imposing Bans and App Store Sanctions
Jun 12 Free Amazon S3 and CloudFront Hosting for Students
Jun 10 From bash to zsh on macOS
Jun 9 Browser-Like Navigation in The Archive
Jun 8 embetty Embeds Tweets and YouTube Videos Without the Tracking Code
May 2019
May 29 Python Context Manager Compared to Ruby DSLs
May 28 How to Add Files to mpd using python-mpd2
May 25 Emacs for Remote SSH Python Development
May 22 Mac App Store Proceeds for TableFlip Without Marketing Campaigns
May 14 Finding the Field Editor in UI Tests
May 11 Being Afraid to Change a Working App
May 10 TableFlip Is Now Available on the Mac App Store
May 9 Using Drag and Drop with NSTableView
April 2019
Apr 15 Hosting Downloads on Amazon S3 with CloudFront
Apr 15 Fixed the Blog Archive
March 2019
Mar 29 Sync Emacs Org Agenda Files via Dropbox Without Conflicts
Mar 25 Add Navigation Buttons to NSTouchBar
Mar 8 Replacing More Reference Objects with Value Types
Mar 7 Do Not Apply Code Heuristics When You Need a Broader Perspective
February 2019
Feb 23 Refactoring The Archive’s ReSwift Underpinnings
Feb 5 Replace RxSwift View Model Types with Free Functions
January 2019
Jan 23 Programmatically Add Tabs to NSWindows without NSDocument
Jan 8 NSAppearance Change Notifications for Dark Mode and RxSwift Subscriptions

2018

December 2018
Dec 10 WordCounter v1.4.0 Released with Mojave in Mind
November 2018
Nov 29 Find Swift Classes from Objective-C Tests
Nov 23 Fix NSSegmentedControl Action Forwarding from Your NSToolbar
September 2018
Sep 28 Parse Boolean Search Expressions in Swift
Sep 20 Fixing Ruby ncurses Unicode Character Display on Linux Terminals
Sep 8 How to Fix fileReferenceURL() to Work with NSURL in Swift 3 and Swift 4
August 2018
Aug 25 React to Programmatic Changes to NSControl.state in RxCocoa
Aug 11 Remove Trailing Whitespace in TextMate 2 Code Files
July 2018
Jul 20 ReSwift Custom Diffs and Enqueued State Updates
Jul 17 Synchronize Scrolling of Two (or More) NSScrollViews
June 2018
Jun 23 NSTextField usesSingleLineMode Stops Working When You Implement NSTextViewDelegate Methods
Jun 16 Better Form Model Validation
Jun 14 Use RxSwift Observable Instead of Result for Failure Handling
Jun 9 Format Strings with Templates in Swift
Jun 6 Validate Temporary Form Models
Jun 5 Panic’s New Pricing Model for Transmit on the Mac App Store
Jun 3 Programming Does Not Grow Up
May 2018
May 26 Add Blog Post Text Template Expansion to Emacs with Org Babel
May 25 Bye, Bye, Google Analytics
May 19 Indent Code and Lists by 4 Spaces in Emacs Markdown Mode
May 12 Move! Work Break Timer Update 1.3.0
May 9 Global TODO Capture Hotkey for Emacs Org Mode on macOS
April 2018
Apr 24 RxSwift: Typing/Idle Event Stream for NSTextView
Apr 19 Mac Developer Survey 2018
Apr 19 Broken Help Menu Breaks Rather Unpredictably
Apr 18 Plain Controllers to Ease the Burden of View Controllers
Apr 15 Put Test Files Next to Production Code for Better Discoverability?
Apr 14 High Sierra: Help Main Menu is Broken and Freezes Apps
March 2018
Mar 22 A Visually More Accessible Disabled NSColorWell
Mar 17 The Archive Is Available Now
Mar 7 NSTextView’s Default Insertion Point and Selected Text Colors
Mar 6 Launch of My Next App, The Archive
Mar 4 How I Avoided Over-Architecting a Simple Event Handler with ReSwift, Cheating with Existing Reactive Code
February 2018
Feb 26 Behind the Scenes of Programming ‘The Archive’: How Much Coffee Did I Consume?
Feb 13 From Timing with Love: Valentine’s Day Productivity App Discounts
Feb 6 NSTextView: When Did the Find Bar Disappear?

2017

December 2017
Dec 27 Exposing the MultiMarkdown 6 Library to Swift, Part 1: Swifty Enums
Dec 1 Month 13 Is Out Of Bounds
November 2017
Nov 29 Why the Selection Changes When You Do Syntax Highlighting in a NSTextView and What You Can Do About It
Nov 27 Blogs Merged Back Into One
October 2017
Oct 30 Dependency Injection via the Recent “Cake Pattern in Swift” Pattern is Useless in Practice
September 2017
Sep 30 Is the Mac mini (Mid 2011) a good developer device in 2017?
Sep 28 Inject ReSwift Middlewares from Different Project Targets During Runtime
August 2017
Aug 17 To Subscribe or not to Subscribe? Not!
Aug 9 Show a fat iOS-Style Insertion Point in NSTextView
Aug 4 How to Use NSGlyph in Swift
July 2017
Jul 15 Setting the NSTextView Line Height in a Beautiful Way
Jul 11 Typewriter Mode: Adding Overscrolling to the Text View
Jul 8 Scroll NSScrollView Programmatically Without Showing the Scroller Knobs
June 2017
Jun 28 macOS Storyboard Outlet-Like Connections Between View Controllers
Jun 18 NSSplitViewItem Vibrancy Is Not Added with Every Initializer
Jun 17 Fixing NSTableView Cell Backgrounds by Deactivating NSSplitViewItem’s Visual Effects
Jun 10 ReSwift Niceties: The Current State Getter
Jun 10 Adding last(where:) in Swift
Jun 2 The 3 RxSwift Building Blocks of UI Components
May 2017
May 19 WebcamSnap Open Source Library Released
May 17 Do You Need to Use Action Creators in ReSwift to Conditional Action Dispatching? (No)
May 16 Adding RxSwift Ports to Resolve UI Inconsistencies
May 8 Sorting Markdown Tables by Column from the Shell
May 5 Week #18 of 2017 in Review
May 2 ReSwift v4 Released
May 2 Drawing Custom Alternating Row Backgrounds in NSTableViews with Swift
April 2017
Apr 30 Accessibility-Awareness Raising with a Super Mario Video
Apr 28 Week #17 of 2017 in Review
Apr 28 One Way to Solve Inexplicable Race Conditions in Tests
Apr 25 SwiftyBeaver: Record to Array
Apr 24 The Archive – Mac App Beta
Apr 24 Swift Protocols with Default Implementations as UI Mixins
Apr 20 Website Changes Imminent
Apr 10 Clean Cocoa Blog Redesign
Apr 9 FatSidebar View Component for macOS Released
March 2017
Mar 26 Non-Obvious Swift: Defer
Mar 3 Setting the Line Height of a NSTextView
Mar 1 How to Make ReSwift Actions Undoable with NSUndoManager
February 2017
Feb 23 Handle Pending File Changes with ReSwift as Your Backbone
Feb 17 Recording of Wednesday’s Webinar
Feb 14 Make Money Outside the Mac App Store – Swift 3 Update
Feb 12 Register for My Webinar About Ditching the Mac App Store
Feb 11 Express Either–Or-Relationships as Enums
Feb 7 How to Unit Test Dispatching ReSwift Actions from RxSwift Observables
Feb 6 Core Data is Invasive. You Can Hide It, Or You Can Embrace It
January 2017
Jan 31 “Bugs are the edges of what works”
Jan 28 Better Swift FileManager File Existence Checks
Jan 27 Shopify’s Ruby on Rails app statistics
Jan 26 Refactoring – Extract Objects Horizontally or Vertically
Jan 25 Framework Oriented Programming and It’s Relation to OOP
Jan 19 A Look at the ReSwift Event Log During Launch of My Latest Project
Jan 17 How to Save File Changes Using ReSwift Actions
Jan 15 InfiniteCanvas – Vector Drawing App Concept
Jan 11 Swipe Transitions and ReSwift

2016

December 2016
Dec 19 Innocent Arrow Diagrams
Dec 12 Always Pay Attention to Implications of Technical Advice
Dec 3 Lifting Into a New Type: My first “Idiomatic” RxSwift Unit Test
Dec 1 It’s the Worst Time to Go Open Source Because So Many Stupid People Will See It
November 2016
Nov 22 Open Source and the Open, Distributed Mindset
Nov 18 Dan Counsell’s Mac App Store Wish List
Nov 13 RocketData is a Uni-Directional UI Component Data Source
Nov 12 Debugging NSBeep Error Sound in NSResponder Method Calls
Nov 8 BundleHunt Experiment
Nov 3 “Exploring Mac App Development Strategies” 4th Extended Edition Now Available
October 2016
Oct 27 Resolving NSTreeController’s “Ambiguous use of ‘children’” in Swift 3
Oct 16 Let Them Perish
Oct 15 Clean Swift aka VIP Architectural Approach
Oct 12 My Declarative Breakthrough: Wherein I Stop Thinking in Terms of Object Collaboration
Oct 11 How to Refactor Messy Apps for a New Architecture?
Oct 8 MVVM’s Place in Your App
Oct 6 Developer Documentation App Dash Removed from App Store – and No-One Can Do a Thing
Oct 5 TableFlip Launches
Oct 4 Apple Introduces Search Ads
September 2016
Sep 27 Breaking NSLocale API Changes Revisited
Sep 25 Magic Numbers Represent Concepts
Sep 19 Swift 2.3 NSLocale UIKit API Changes Break iOS 8 Compatibility
Sep 19 On Proprietarity of File Formats
Sep 17 Comment On “Real World Flux Architecture on iOS
Sep 10 TableFlip Will Be Released in October!
Sep 9 Tests Are Just Code, Too
Sep 3 Global State Was Preferred Because Typing Sucks
Sep 2 Programmer, Interrupted
August 2016
Aug 28 On Software Feedback
Aug 22 Assertions in Swift Kill Your Code
Aug 18 Switch VS Checkbox in User Interface Design
Aug 17 Putting ReSwift Actions on the Undo Stack Using Middleware
Aug 12 When You Code, You Design Both Structure and Information Flow
Aug 9 MVVM Is Quite Okay at What It Is Supposed to Do
Aug 5 Racing To the Top
Aug 3 Transparent NSTableView Headers
Aug 1 NSDocument Weirdness: Sheet Contents Appear Disabled
July 2016
Jul 31 Ownership of the Apps You Use: Ulysses App Pricing, Subscription Models, and the Death of Licenses?
Jul 29 On Reaching Mastery
Jul 28 What Projects Do You Identify With? Maybe They Drag You Down
Jul 26 Implementing CollectionType in Swift 2.x
Jul 22 Revamped Blog Archive
Jul 21 Splitting the View Models of TableFlip, a Short Aftermath
Jul 18 I’ll Split Up the Monolithic View Model in TableFlip. Here’s What I Expect to Happen
Jul 17 How PlanGrid uses a Flux-Inspired Architecture to Simplify State Management
Jul 15 TIL: How to Make NSTextView Reject Newlines
Jul 14 Iteratively Improving Your App: Decoupling Components at Module Seams and Adding Facades
Jul 13 First Contact with AppKit for iOS Developers (Under the Radar #26)
Jul 7 I love Swift’s Expressiveness
Jul 3 UIStackView For Showing And Hiding User Interface Controls
Jul 2 Conflicting Mental Models in TableFlip’s Interface Design
Jul 1 Separating ReSwift Actions from UI Events
June 2016
Jun 27 TableFlip Closed Beta Invitations
Jun 25 Check Boxes in AppKit
Jun 23 Location Matters
Jun 17 objc.io Books 30% Off
Jun 16 Disabling Segments in a NSSegmentedControl in a Toolbar
Jun 14 How to Create a Segmented NSToolbarItem like Apple Mail.app
Jun 12 Coding TableFlip: the Bigger Picture
Jun 9 Configuration Objects and the Then Microframework
Jun 6 Principles of Object-Oriented Design in Swift 2.2
May 2016
May 31 TIL You Can Cancel Enqueued GCD Blocks
May 26 Hustling
May 25 The Surprising Intricacies of Editing Parts of NSTableView
May 23 Custom Enumerated Sequences in Just 1 Line of Code
May 18 Evaluate and Launch Your Idea With Small Steps
May 15 Swift Depends on Objective-C
May 12 Outperforming the Competition
May 11 Better Sliding Menus
May 10 Calendar Paste 3 FREE this Week
May 9 How to Abort a Chain of Rake Tasks on Error
May 8 How to Get Started with Swift: Write New Tests in Swift
May 6 App Pricing and How to Make More Money
May 3 What I Did When I Found Emojis in Strings Always Lost the Last Byte
April 2016
Apr 28 Replacing Loops with Mapped Ranges
Apr 25 Type-Safe Storyboard Segues
Apr 14 Productivity Tips for Programmer Solopreneurs
Apr 12 The Power of Guard
Apr 11 How to Edit NSTableView Headers with a Double-Click
Apr 9 Refactoring to Clean Value Transformations in Swift
Apr 1 Use Xcode Deprecation Warnings to Refactor
March 2016
Mar 31 Currying and Treating Instance Methods as Curried Functions
Mar 29 The Swift Developer’s Cookbook Review
Mar 25 5 Heuristics for “I have a complicated nested view controller setup. How do I handle passing data?”
Mar 24 Swift Selector Syntax Sugar
Mar 22 Book Updates for Swift 2.2
Mar 21 Translate Optional Delegate Protocol Methods to Swift Block-based Event Handlers Using Nested Objects
Mar 19 Blocks: Useful to Perform Actions In Context
Mar 18 VIPER by Experience: How to Set Up an iOS Project
Mar 16 How I Toggle or Switch 2 NSMenuItems from the Main Menu
Mar 14 Extend View Controllers with Behavior Objects Right from Within Interface Builder
Mar 12 Creating a Cheap Protocol-Oriented Copy of SequenceType (with a Twist!)
Mar 11 Announcing TableFlip
Mar 10 How to Create Fixture Files for Unit Tests
Mar 8 Creating a Lens for an Object to Provide a New Public Interface
February 2016
Feb 28 A Vacation Week – 20% Discount While I’m Away!
Feb 28 Reusable View Components from Nibs
Feb 27 Featherweight Router
Feb 27 Now
Feb 26 Import Parts of a Module
Feb 25 Ignoring UILocalNotifications When the App is Running
Feb 24 rethrows in Swift
Feb 22 MVC on iOS Done Right
Feb 19 My Desk 2016
Feb 18 How do You Really Mock Objects You Don’t Own? You Replace Them with Adapters
Feb 16 DevMate is Completely Free Now
Feb 15 Piezo Exits the Mac App Store
Feb 15 Information Flow and Stateful Buttons
Feb 15 Uni-Directional Flow of Information with Realm
Feb 11 Publish and Subscribe — Decoupling Deep View Hierarchies from Event Handlers
Feb 8 Inline Blocks as Result-Producing Helpers
Feb 5 Extract Private Functions as Collaborators
Feb 4 Symmetry
Feb 3 1 Criterion to Determine if You Should Write Unit or UI Automation Tests
Feb 1 Always Write Functions to Cope with all Possible Parameter Values
January 2016
Jan 30 Use and Misuse of Helper Functions
Jan 29 Block-Based API vs. Delegates – a Comparison
Jan 27 Make Money Outside the Mac App Store now Available on Amazon
Jan 26 Move! Review at Softpedia
Jan 26 Mind Node adds Tasks
Jan 23 Flow Controllers to Replace Segue-based View Transitions
Jan 22 ReSwift, Law of Demeter, and Another Level of Indirection
Jan 21 Events as Declarative State
Jan 21 Extending Types with a Conversion Factory: Where Should You Put It?
Jan 18 I’ll be writing a Word Counter Swift module fully East-Oriented
Jan 16 How to Couple UITableView Cell Identifiers and View Models
Jan 15 Separating State from State Changes
Jan 11 How Closures are a Better Event Handler Protocol Alternative
Jan 7 iRamDisk May Speed Up Your Xcode Compilation Times
Jan 4 Get Your App Indexed by Google

2015

December 2015
Dec 29 Making Cocoa the Outermost Layer
Dec 23 Encapsulate a Process in a Single Line Using Bind and Good OO Design
Dec 21 Segues: How to Use Them While Saving Lines of Code
Dec 19 Separate Read Model from Write Model to Support Complex Forms
Dec 14 iOS View Architectures and VIPER Explained
Dec 11 Make Money Outside the Mac App Store
Dec 10 Yelp’s Modular UITableViews
Dec 4 Extract UITableView Contents and Configuration Into Helpers
November 2015
Nov 28 Configuration Objects: Delegate Initialization to a Parameter
Nov 26 Parameter Objects Simplify Your API Versions
Nov 25 Presenter and MVVM for UITableViews?
Nov 23 How to Handle Errors When You’re Not Interested in the Details
Nov 20 Switching iOS App Login Methods by Creating Your Own Simple Login Module
Nov 17 Tips to Conquer Massive View Controllers
Nov 13 Ruby 2.3 Will Have Optional Chaining
Nov 13 Jiggle GCD Queues to Find Problems
Nov 11 Modeling: From Structured Data Representation to Problem Domain
Nov 4 Swift OS X Programming for Absolute Beginners Review
Nov 3 Core Data Calls Them Contexts for a Reason
Nov 3 Ideas to Solve Background Fetching and Saving Race Conditions with Core Data
Nov 2 Productive Writer’s Bundle Sale
October 2015
Oct 31 What It Means to Domain-Drive Your Design
Oct 29 Word Counter Now with File Monitoring
Oct 28 Don’t Build on El Capitan Without Checking App Transport Security
Oct 26 NSOpenPanel’s and NSSavePanel’s Block-Based API is Superior
Oct 24 Small Helper Objects Take You Far
Oct 23 How I Solve the Unexpected Error Handling User Experience Problem
Oct 20 Make Custom Debug Build Configurations Play Nicely With CocoaPods
Oct 17 Optional Protocol Methods in Swift using Closures and No Protocol, Actually
Oct 16 Achieve More with a Variety of Value Objects in Swift
Oct 14 Decouple UI from Model with View Models and Controls
Oct 13 How to Move Bootstrapping Code Out of AppDelegate
Oct 12 Transactions and Rolling Back Changes in Core Data with UnitOfWork
Oct 10 Leave a Rating for Move! app on MacUpdate
Oct 9 Put Usage of a CoreDataFetchRequest out of Your Code and Into … Where Exactly?
Oct 8 Revisiting the Core Data + Domain Model Architecture
Oct 6 Expressive Domain Model, Core Data, and You
Oct 3 Chaining Events, Take One
Oct 2 How I Now Deal with Collapsible Split View Controllers on the iPhone 6
September 2015
Sep 29 Universal Deep Linking on iOS: Design Each Scene to Be Remarkable
Sep 28 Move! – Work Break Timer Now Ready for El Capitan
Sep 26 Swift Protocol Extensions as Mixins – And How Do You Test That?
Sep 24 Testing Shorthand: Use a Subclass of the Real Object Under Test
Sep 24 Make Money with Mac Apps Outside the MAS: E-Book Prerelease, Need Feedback
Sep 22 Using Guard in Unit Tests
Sep 19 Save Yourself Casting Headaches with a Generic Fetch Request Object
Sep 16 How to Change the Detail of a UISplitViewController in the Background
Sep 14 Dismissing a Modally Presented Scene on Both iPad and iPhones Using Unwind Segues
Sep 10 Weird EXC_BAD_ACCESS in Swift 1.2 Was Due to A Compiler Bug
Sep 7 How to Create Flexible Components with Two Levels of Service Objects
Sep 5 What is CLEAN Code?
Sep 4 Move! – Work Break Timer Release
Sep 2 Where Instead of Using Functional Bind, I Create an Expressive Model
August 2015
Aug 29 Create UML Diagrams Quickly with Draw.io
Aug 24 Cut-Out Animation of a Table View Cell Into the Next Scene
Aug 8 From East-Oriented Programming to Functional Bind
Aug 4 How to Write Pragmatic, Testable Singletons in Swift
July 2015
Jul 29 Refactoring Legacy Code: Replace Free Function in Tests, Even Swift’s Own Functions
Jul 28 Support the Word Counter With a Review
Jul 28 Library for Providing Static UITableView Contents in Swift
Jul 20 “Exploring Mac App Development” Updated for Swift 2.0 + Coupon to Save 50%
Jul 18 How Coursera Uses VIPER to Architect Transitions Between App Features
Jul 18 Refactoring a View Controller for Clean Information Flow
Jul 10 Using Blocks to Realize the Strategy Pattern
Jul 8 Clean Coding is a Programming Misnomer for a Software Engineering Principle
Jul 8 How I prepare Calendar Paste E-Mail Pitches
June 2015
Jun 24 Protocol Madness: Comparing Apples to Oranges from the Vantage Point of Fruit
Jun 23 How to Write Unit Tests for Storyboard-based Buttons in Swift
Jun 22 Using Swift Enums to deal with Storyboard Segues
Jun 19 So I’ve finished my model, now what?
Jun 13 Freemium won’t solve your problems magically
Jun 11 Generics in Objective-C
Jun 10 Be Cautious with Try-Catch for error handling in Swift 2.0
Jun 5 Test doubles for Core Data managed objects might not work as expected
Jun 3 State of Mocking in Swift Tests
May 2015
May 28 This is probably the nicest Swift Result enum ever
May 13 Observing Enums in Swift 1.2 with KVO
May 7 Combining Collection-Like Repositories and East-Oriented Code
May 3 Calendar Paste 2.2.0 Release Is Out
April 2015
Apr 25 Swift Extensions and Information Hiding
Apr 17 Success and Error Callbacks in Objective-C: a Refactoring
Apr 16 Return Types can Capture Async Processes and Failures
Apr 14 Book Updates for Swift 1.2
Apr 11 Functional Programming in Swift (YouTube Videos)
Apr 10 Event Publisher Revision 1
March 2015
Mar 31 Painless Event Delivery With a Custom Publish-Subscribe Infrastructure
Mar 25 Save Your Butt in Unit Tests With Shallow Reaching
Mar 16 Zettelkasten Posts Moved
Mar 13 VIPER iOS App Architecture Approach
Mar 11 3 Ways to Model Relationships in a Domain
Mar 6 Split Commands and Informational Return Values Apart Using Events
Mar 1 Going Beyond Guard Clauses in Swift
February 2015
Feb 22 Plug-in a UITextView Placeholder Label Extension
Feb 13 Functional Error Handling in Swift Without Exceptions
Feb 9 Use Double-Dispatch and Polymorphism to Get Rid of Conditionals
Feb 5 Crafting Wicked Domain Models by Jimmy Bogard
Feb 4 Thinking in Terms of Functional Programming Encourages Clean Factoring of Code
January 2015
Jan 29 How John Sonmez Helped Me Streamline This Blog
Jan 24 How to Resolve Word Counter Update Issues
Jan 23 Model–View–View Model (MVVM) Primer
Jan 17 Getting XPC to a Helper App Working with Sandboxing Enabled
Jan 6 Subscribe to My New Mailing List
Jan 2 Storyboard Segues VS Tell Don’t Ask Principle

2014

December 2014
Dec 19 Model-View-View Model in Swift
Dec 18 Making Good Use of Singletons in Refactoring the iOS App Calendar Paste
Dec 13 Calendar Paste 2 is now Open Source
Dec 9 DEVONthink and Zettelkasten
Dec 8 “Exploring Mac App Development Strategies” Released!
Dec 2 I’m About to Release a Little E-book on Domain-Driven Design and Mac Application Development
November 2014
Nov 23 Idea Indexes of Books Flickr Group
Nov 13 Core Data Violates DDD Principles by Default
Nov 5 The Word Counter, NaNoWriMo, and You
October 2014
Oct 31 How I Edited my Last Zettelkasten Post and Came up With Something Even Shorter Than the Post Itself
Oct 24 Making the Word Counter More Useful
Oct 17 gitlogger updated to deal with UTF-8
Oct 2 Summer Knowledge Challenge 2014
September 2014
Sep 30 How I Prepare to Work on a Research and Writing Project
Sep 22 Introducing Myself on Zettelkasten.de
Sep 19 New Zettelkasten Blog Is Now Open
Sep 11 Self-Fulfillment and Growing Up
August 2014
Aug 27 Composing and Revising – The Two Modes of Writing
Aug 14 Word Counter v1.1.0 – Now With Daily Usage Statistics
July 2014
Jul 31 Challenge: Apply the Knowledge Cycle to Reading a Single Book
Jul 27 Feed for All Zettelkasten Posts
Jul 25 New Article Overview
Jul 17 Use a Short Knowledge Cycle to Keep Your Cool
Jul 12 Edit HTML with TextEdit for Mac
Jul 7 Word Counter (Mac) is Available Right Now!
Jul 3 Make Writing a Part of Your Identity
June 2014
Jun 25 How to Track Your Writing Progress
Jun 18 Include Images in nvALT for a Multi-Media Zettelkasten Experience
Jun 16 Developing a Word Counter for Mac – Apply as a Tester
Jun 7 Tapping Test app released
Jun 5 Calendar Paste v2.1.0 released
May 2014
May 24 How I use Outlines to Write Any Text
May 16 Building Blocks of a Zettelkasten
May 3 The Zettelkasten Platform – 2 Ways You Can Contribute
April 2014
Apr 22 SlipBox (Mac) Note Archive Review
Apr 11 Lessons Learned from Losing All Routine
Apr 4 Using nvALT as a Zettel Note Archive
March 2014
Mar 29 Baseline for Zettelkasten Software Reviews
Mar 20 The Need to Craft
Mar 14 Calendar Paste 2.0 – the iOS 7 Update
Mar 9 Reading Habits: Putting It All Together
February 2014
Feb 27 You Only Find What You Have Identified
Feb 21 Learn Faster by Writing Zettel Notes
Feb 15 Editorially is Shutting Down. What About Alternatives?
Feb 14 Note-Taking when Reading the Web and RSS
Feb 6 Count Your Words to Increase Your Productivity
January 2014
Jan 23 Looking for Alpha Testers
Jan 20 The Collector’s Fallacy

2013

December 2013
Dec 11 How to Make Daily Writing Practice Useful
November 2013
Nov 27 I Enabled Comments for Some Posts
Nov 26 Preparing Fragments Helps You to Ease Into Writing
Nov 8 Extend Your Mind and Memory With a Zettelkasten
October 2013
Oct 18 Announcing a Zettelkasten Info Product
Oct 7 Manage Citations for a Zettelkasten
September 2013
Sep 22 Solve database mapping problems and the impedance problem of ActiveRecord
Sep 15 Ruby RSpec/Guard/Spork Project Boilerplate
Sep 3 Create Zettel from Reading Notes
Sep 2 Unlock 802.1X wired internet via OpenWRT on TP-Link WA901ND
August 2013
Aug 10 Making Proper Marks in Books
June 2013
Jun 20 Create a Zettelkasten for your Notes to Improve Thinking and Writing
Jun 13 gitlogger Improved
Jun 6 Generate interactive documentation with Code Guide
May 2013
May 1 My Workspace
April 2013
Apr 24 Prototypes for Calendar Paste
Apr 24 Calendar Paste.app development notes (Series)
Apr 21 Outlining and Plain Text
March 2013
Mar 29 Rails.js XHR form callbacks fixed for invalid submissions
Mar 28 Sales and AppLaunch.us experience for Calendar Paste
Mar 20 Birthday of my deceased baby brother
February 2013
Feb 23 CriticMarkup and a TextMate Bundle
January 2013
Jan 12 Interlude: first month of app sales

2012

December 2012
Dec 30 App Sales and Hourly Earnings Calculated
Dec 30 Parsing YAML Frontmatter in Ruby
Dec 22 Nanoc3 Boilerplate
Dec 18 Interactive Guide to Blog Typography
Dec 14 Link Love: practicallyefficient.com
Dec 13 Calendar Paste release
November 2012
Nov 19 Remove Objective-C method declaration fluff with Keyboard Maestro
September 2012
Sep 19 iOS Project coming soon

2011

April 2011
Apr 18 nvALT review
February 2011
Feb 4 MultiMarkdown 3.0b1

2010

December 2010
Dec 12 Awesome new Notational Velocity
November 2010
Nov 4 Bringing Notational Velocity to a new level of massive text editing
October 2010
Oct 24 Multi-Markup Notational Velocity
Oct 15 How did Steve add Markdown to Notational Velocity?
Oct 13 Too many Notational Velocity forks?
Oct 12 Notational Velocity fork with fullscreen mode, menubar app, and more
Oct 10 Markdown HUD for Notational Velocity
Oct 6 Markdown Preview for Notational Velocity
Oct 5 Introducing MultiMarkdown Notational Velocity