This Is All I Wrote (So Far)
Structured Overview: Commented table of contents of what I think are my most important articles.
A couple of curated overviews for reference:
- TextKit: I deal with text, and here’s a collection of everything I figured out so far.
- Ultimate FastSpring Guide for Selling macOS Apps: I sell my macOS apps in my own store. Resources and tips to get you started.
- Tag Index
Posts by year: 2023 · 2022 · 2021 · 2020 · 2019 · 2018 · 2017 · 2016 · 2015 · 2014 · 2013 · 2012 · 2011 · 2010
2023
May 2023 | |
---|---|
May 26 |
11 or so Android Ebook Reader Apps for Academic Writing Workflows: Annotations are Hard I tested a bunch of Android EPUB reader apps to see if annotations would work with my Zettelkasten workflow. The result: it’s not easy to improve the workflow. |
May 25 |
BOOX Vector PDFs Are Already Colored Ok, no need to investigate further: PDFs are colored if you use color pens, so I'm now just using that instead of replacing colors in the PDF source. |
May 23 |
Colorize Onyx BOOX Notes Vector PDFs (Really Rough Edition) I wanted to colorize greyscale vector notes. This led me down a rabbit hole of replacing color definitions in the PDF’s source code. |
May 22 |
Boox NeoReader Annotation Export Is Meh The Onyx Boox e-reader is equipped with a good e-book reader app, but its export is almost useless to parse and use in an academic context. |
May 8 | |
May 6 | |
May 2 |
Wrap HTML Tables in Figures using Nanco and Kramdown
On mobile phones, wide tables didn’t scroll horizontally – instead, they broke out of the content container and everything looked a bit wonky. So I wrap them in |
April 2023 | |
---|---|
Apr 20 | |
Apr 18 |
Fetch Personalized Command Explanations with 'um' from Your Terminal |
Apr 18 | |
Apr 17 | |
Apr 12 |
March 2023 | |
---|---|
Mar 2 |
February 2023 | |
---|---|
Feb 15 |
January 2023 | |
---|---|
Jan 24 | |
Jan 20 | |
Jan 18 | |
Jan 18 | |
Jan 9 | |
Jan 8 | |
Jan 3 |
Display a Random Inspiring Quote for Journaling or Shell Prompts |
Jan 3 |
2022
December 2022 | |
---|---|
Dec 29 |
How to Use SF Symbols in Emacs (for Tab Numbers) Early 2022, I shared how I used circled digit unicode in tabs; here's how to use SF Symbols on macOS to get even better-looking results. |
Dec 27 | |
Dec 13 |
Making Your App Extensible with JavaScriptCore (CocoaHeads Presentation) |
Dec 7 | |
Dec 4 |
ChatGPT: Publish NSTextView Changes to ReSwift, but Also Use a Lamport Clock Conversation log with ChatGPT. |
Dec 3 | |
Dec 1 |
Use System File Open Dialog for File Actions in Emacs (Just Once!) |
October 2022 | |
---|---|
Oct 28 | |
Oct 17 | |
Oct 11 |
Sketch Layoff of 80 Employees — Does It Really Send an Alarming Signal? |
September 2022 | |
---|---|
Sep 23 |
NSTextView (Plain Text) and the Pasteboard: PasteboardType.string Is Not Handled |
Sep 21 | |
Sep 15 | |
Sep 15 |
Example of High Cohesion and Low Coupling with Presenter, View, and View Model |
Sep 13 |
How to Fix When Some Text Changes Don't Come with Automatic Undo? |
Sep 9 | |
Sep 9 | |
Sep 7 | |
Sep 7 |
Replacing zoom-window with winner-mode to Temporarily Change Window Splits in Emacs |
August 2022 | |
---|---|
Aug 28 | |
Aug 27 | |
Aug 27 |
SwiftUI Isn't Easy to Get Into: My Road From Headache Towards Mastery |
Aug 16 | |
Aug 10 |
Rely on @Published Property Wrapper Events, Not the Observed Object |
Aug 9 | |
Aug 8 |
Output Port Adapter for Single Point of Configuration in Complex UI |
July 2022 | |
---|---|
Jul 27 | |
Jul 27 | |
Jul 26 | |
Jul 26 | |
Jul 26 | |
Jul 20 | |
Jul 14 | |
Jul 12 | |
Jul 9 |
Shift-Click in Emacs to Select – A Simple Change With a Complex History |
June 2022 | |
---|---|
Jun 8 |
May 2022 | |
---|---|
May 19 |
Magit's Killer Feature #1: Commit Text Completion Based on the Diff |
May 14 | |
May 13 | |
May 10 | |
May 9 | |
May 9 | |
May 9 | |
May 4 | |
May 3 | |
May 2 |
April 2022 | |
---|---|
Apr 26 |
How to Upgrade Sendy from Version 5 to 6 from the Shell via SSH |
Apr 22 | |
Apr 21 | |
Apr 13 | |
Apr 9 | |
Apr 8 |
Aergrind by Knock Coffee Grinder, and Their Amazing Customs Duty Service |
March 2022 | |
---|---|
Mar 29 | |
Mar 28 | |
Mar 17 | |
Mar 9 | |
Mar 8 | |
Mar 6 |
The Playdate's Docs Are Made with More Love Than Most End Products |
Mar 4 |
February 2022 | |
---|---|
Feb 18 |
Split Window in Emacs and Resize and Recenter Frame to Make Room |
Feb 12 |
Add Numbers to Emacs tab-bar-mode Tab Titles for Quick Access I'm adding CIRCLED DIGIT unicode characters to my tabs in Emacs to select them by number. |
2021
December 2021 | |
---|---|
Dec 29 |
October 2021 | |
---|---|
Oct 26 |
Swift Pattern Matching Operator: Compiler Error when Specifying Enum Type and Case Name? |
Oct 7 |
September 2021 | |
---|---|
Sep 21 |
NSTextView Performance May Degrade for Large Plain Text Documents When usesFontPanel Is Active |
August 2021 | |
---|---|
Aug 26 | |
Aug 19 |
July 2021 | |
---|---|
Jul 18 |
How to Fix Mach-O Header Code 0x72613c21 When You Try to Export Your App in Xcode |
Jul 17 | |
Jul 12 |
Two Improvements to Open macOS Finder Window in Emacs Dired + Automator Quick Action Downloads |
Jul 10 | |
Jul 10 |
June 2021 | |
---|---|
Jun 23 | |
Jun 21 | |
Jun 18 | |
Jun 15 |
How to Print on macOS With An NSTableView and Customize the Result |
Jun 11 | |
Jun 9 |
Multi-Monitor Compatible Code to Center Emacs Frames on Screen |
Jun 4 |
Automatically Center New Emacs Windows (Aka Frames) on Screen |
Jun 4 |
May 2021 | |
---|---|
May 23 | |
May 19 | |
May 16 | |
May 11 | |
May 4 |
April 2021 | |
---|---|
Apr 28 | |
Apr 10 |
March 2021 | |
---|---|
Mar 17 | |
Mar 12 |
The Beauty of Hacking Swift: Make Union of Set Algebra Types More Obvious |
Mar 11 | |
Mar 9 | |
Mar 6 |
Change Case of Word at Point in Emacs, But for Real This Time |
Mar 3 |
February 2021 | |
---|---|
Feb 24 | |
Feb 24 | |
Feb 18 |
Emacs Org-Mode: Automatic Item TODO/DOING/DONE State Transitions for Checkbox Changes |
Feb 16 |
IPv6NAT in Unraid's Docker Containers Behind a Reverse Proxy to Make Outgoing IPv6 Requests Work |
Feb 16 |
When Code Signing of Frameworks Fails During macOS App Distribution, Make Sure ENABLE_BITCODE=NO |
Feb 15 |
SOLVED! Looking for Docker Reverse Proxy & IPv6 Setup Help (Paid) |
Feb 10 |
Disable NSTextAttachment Action and Sharing Services Menu Drop-Down |
Feb 10 |
Create Custom Org-Mode Links to Open My External Zettelkasten App |
Feb 5 |
A Short Note on Voice Assistants and Very Old People Who Don't Hear Well Looks like you cannot train a 91-y.o. woman to pick up voice assistants that rely on the recipient to understand the assistant's audio output. |
Feb 2 |
Atkinson Hyperlegible Font May Be Pretty Good If Your Granny Can't See Well My grandmother approves of Atkinson Hyperlegible free font for her phone book printout |
2020
December 2020 | |
---|---|
Dec 29 | |
Dec 27 |
Indie Support Weeks: Working Copy - Fully Featured iOS git Client |
Dec 23 |
How to Profile Slow Scrolling (And Other Performance Bottlenecks) in Emacs |
Dec 22 | |
Dec 20 | |
Dec 20 | |
Dec 16 |
Apple's App Store Small Business Program Enrollment Is Super Simple |
November 2020 | |
---|---|
Nov 27 | |
Nov 18 | |
Nov 17 | |
Nov 16 |
Upgrading to Sparkle 2.x Branch The Sparkle 2.x release branch is working fine for production when you switch from the ui-separation-and-xpc branch and enable DSA signing of updates. |
October 2020 | |
---|---|
Oct 30 | |
Oct 29 | |
Oct 28 | |
Oct 21 |
Hide Traffic Light Buttons in NSWindow Without Removing Resize Functionality |
Oct 21 | |
Oct 19 | |
Oct 17 | |
Oct 16 |
Export Day One (macOS) Journals to Emacs org-mode Diary Entries |
Oct 9 |
Fix Your Damaged Mac App Store App by Parsing the App Store Receipt Dates Correctly |
September 2020 | |
---|---|
Sep 21 |
NSRemindersUsageDescription Info.plist Key is Misspelled in the Documentation |
August 2020 | |
---|---|
Aug 25 |
Indie Support Weeks: Use DropDMG to Create Your App Downloads |
Aug 5 | |
Aug 3 |
Get FastComments for a $79 One-Time Payment Instead of $50 Annual Subscription |
July 2020 | |
---|---|
Jul 30 | |
Jul 30 | |
Jul 22 |
Demonstrate Swift's Lazy Initialization of Static Attributes Even when Using a Property Wrapper |
Jul 3 |
Adopting the Linktree Convention to Redirect People to My Projects |
June 2020 | |
---|---|
Jun 24 |
Implement Pixel-by-Tile Movement in Godot Move a character on a tile-based grid and animate the steps in between in Godot, limiting its engine to distinct steps. |
Jun 21 |
Comparing 2D Collision Detection and Hit-Testing Approaches in Godot 3 |
Jun 11 |
How to Decode Human-Readable JSON Strings to Integer-Based Swift.OptionSet |
Jun 6 | |
Jun 6 | |
Jun 5 | |
Jun 4 | |
Jun 4 |
FSCheckoutSheet: In-App Purchase Sheet for Your FastSpring Store |
Jun 4 |
Structure and Interpretation of Classic Mechanics – A Physics Book with Code |
April 2020 | |
---|---|
Apr 9 | |
Apr 3 |
February 2020 | |
---|---|
Feb 29 |
Getting Rid of kCGImageSourceTypeIdentifierHint Error when Loading NSImage from a File |
Feb 24 | |
Feb 16 | |
Feb 6 | |
Feb 5 | |
Feb 1 |
January 2020 | |
---|---|
Jan 27 | |
Jan 24 |
Thread Safe Property and Resource Access with the Transaction Wrapper |
Jan 23 |
Swift API Docs for String.index(_:offsetBy:limitedBy:) Is Still Misleading |
Jan 22 | |
Jan 21 |
Lock App Features Behind a Paywall and Enforce the Lock in Code |
Jan 18 | |
Jan 17 | |
Jan 5 |
Maybe Call Your UI Configurion Objects ViewData Instead of ViewModel Getting out of the MVVM mindset helps see the connection between UI and UI-specific state that you derive from your model. |
Jan 3 |
AppMover Swift Library to Move Your macOS App to the Applications Folder |
Jan 2 |
2019
December 2019 | |
---|---|
Dec 29 | |
Dec 29 | |
Dec 16 | |
Dec 14 | |
Dec 13 |
UserDefaults Access via Property Wrappers Is Worse Than You Might Think |
Dec 11 | |
Dec 10 |
Guilherme Rambo Was Temporarily Locked Out of His Apple Developer Account |
Dec 10 | |
Dec 7 | |
Dec 4 |
Native macOS Notifications for Emacs Org Tasks and Appointments |
Dec 3 |
November 2019 | |
---|---|
Nov 26 |
That Weird Obstable of Interface Builder When You Get Started With iOS Development |
Nov 26 | |
Nov 23 | |
Nov 4 |
October 2019 | |
---|---|
Oct 26 | |
Oct 24 | |
Oct 24 | |
Oct 22 | |
Oct 22 |
Model-View-Presenter, Form Validation, and a Unidirectional State Machine |
Oct 21 | |
Oct 19 | |
Oct 17 | |
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 | |
Oct 14 | |
Oct 13 |
Starting PHP Development in 2019: Project Setup and Dependencies |
Oct 11 | |
Oct 11 | |
Oct 10 | |
Oct 8 | |
Oct 7 |
"Make Money Outside the Mac App Store" Second Edition Ebook Available |
Oct 6 | |
Oct 6 | |
Oct 3 |
Comparison of E-Commerce Platform Alternatives to the Mac App Store |
Oct 2 |
September 2019 | |
---|---|
Sep 30 | |
Sep 29 |
What to Do When You Want to Affect the Order of Subscription Callbacks in ReSwift |
Sep 27 | |
Sep 25 | |
Sep 25 | |
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 When someone close to the family dies, a lot of dust is stirred up, offering an opportunity for reflection. |
Sep 20 | |
Sep 19 | |
Sep 17 | |
Sep 17 | |
Sep 14 | |
Sep 14 | |
Sep 13 | |
Sep 11 | |
Sep 11 | |
Sep 10 | |
Sep 9 | |
Sep 8 | |
Sep 6 |
With DevMate Closing Shop, Here's What You Can Do Don't panic. DevMate's components can be replaced, one by one. Here's a breakdown of it all. |
Sep 6 |
Prying Open the Vanilla Forum Control Flow to Create Discussions in Embedded Forms |
Sep 6 | |
Sep 4 | |
Sep 2 |
August 2019 | |
---|---|
Aug 30 | |
Aug 7 | |
Aug 7 | |
Aug 2 |
NiftyMenu -- Automatically Recreate a macOS App Menu Bar in HTML |
July 2019 | |
---|---|
Jul 29 | |
Jul 29 |
Paid Up Front: Two Perspectives to Make this Business Model Work to Your Advantage |
Jul 24 | |
Jul 21 |
Implement NSWindow Tabbing with Multiple NSWindowControllers |
Jul 20 | |
Jul 17 | |
Jul 8 | |
Jul 3 | |
Jul 3 | |
Jul 2 | |
Jul 1 |
June 2019 | |
---|---|
Jun 29 | |
Jun 29 | |
Jun 28 | |
Jun 28 |
Slides for the "More Money, More Control" Webinar on Selling Outside the Mac App Store |
Jun 28 | |
Jun 28 | |
Jun 26 | |
Jun 26 | |
Jun 25 | |
Jun 22 |
Xcode Project Setup to Build, Embed, Codesign, Notarize, and Use the Sparkle XPC Services |
Jun 22 | |
Jun 21 | |
Jun 20 |
Use Shared NSUserDefaults for XPC and Interface Builder Nibs |
Jun 13 | |
Jun 12 | |
Jun 10 | |
Jun 9 | |
Jun 8 |
embetty Embeds Tweets and YouTube Videos Without the Tracking Code |
May 2019 | |
---|---|
May 29 | |
May 28 | |
May 25 | |
May 22 |
Mac App Store Proceeds for TableFlip Without Marketing Campaigns |
May 14 | |
May 11 | |
May 10 | |
May 9 |
April 2019 | |
---|---|
Apr 15 | |
Apr 15 |
March 2019 | |
---|---|
Mar 29 | |
Mar 25 | |
Mar 8 | |
Mar 7 |
Do Not Apply Code Heuristics When You Need a Broader Perspective |
February 2019 | |
---|---|
Feb 23 | |
Feb 5 |
2018
December 2018 | |
---|---|
Dec 10 |
November 2018 | |
---|---|
Nov 29 | |
Nov 23 |
Fix NSSegmentedControl Action Forwarding from Your NSToolbar |
September 2018 | |
---|---|
Sep 28 | |
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 | |
Aug 11 |
July 2018 | |
---|---|
Jul 20 | |
Jul 17 |
June 2018 | |
---|---|
Jun 23 |
NSTextField usesSingleLineMode Stops Working When You Implement NSTextViewDelegate Methods |
Jun 16 | |
Jun 14 |
Use RxSwift Observable Instead of Result for Failure Handling |
Jun 9 | |
Jun 6 | |
Jun 5 | |
Jun 3 |
May 2018 | |
---|---|
May 26 |
Add Blog Post Text Template Expansion to Emacs with Org Babel |
May 25 | |
May 19 | |
May 12 | |
May 9 |
April 2018 | |
---|---|
Apr 24 | |
Apr 19 | |
Apr 19 | |
Apr 18 | |
Apr 15 |
Put Test Files Next to Production Code for Better Discoverability? |
Apr 14 |
March 2018 | |
---|---|
Mar 22 | |
Mar 17 | |
Mar 7 |
NSTextView's Default Insertion Point and Selected Text Colors |
Mar 6 | |
Mar 4 |
2017
December 2017 | |
---|---|
Dec 27 |
Exposing the MultiMarkdown 6 Library to Swift, Part 1: Swifty Enums |
Dec 1 |
November 2017 | |
---|---|
Nov 29 | |
Nov 27 |
October 2017 | |
---|---|
Oct 30 |
Dependency Injection via the Recent "Cake Pattern in Swift" Pattern is Useless in Practice |
September 2017 | |
---|---|
Sep 30 | |
Sep 28 |
Inject ReSwift Middlewares from Different Project Targets During Runtime |
August 2017 | |
---|---|
Aug 17 | |
Aug 9 | |
Aug 4 |
July 2017 | |
---|---|
Jul 15 | |
Jul 11 | |
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 | |
Jun 10 | |
Jun 2 |
May 2017 | |
---|---|
May 19 | |
May 17 |
Do You Need to Use Action Creators in ReSwift to Conditional Action Dispatching? (No) |
May 16 | |
May 8 | |
May 5 | |
May 2 | |
May 2 |
Drawing Custom Alternating Row Backgrounds in NSTableViews with Swift |
April 2017 | |
---|---|
Apr 30 | |
Apr 28 | |
Apr 28 | |
Apr 25 | |
Apr 24 | |
Apr 24 | |
Apr 20 | |
Apr 10 | |
Apr 9 |
March 2017 | |
---|---|
Mar 26 | |
Mar 3 | |
Mar 1 |
February 2017 | |
---|---|
Feb 23 | |
Feb 17 | |
Feb 14 | |
Feb 12 | |
Feb 11 | |
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 | |
Jan 28 | |
Jan 27 | |
Jan 26 | |
Jan 25 | |
Jan 19 |
A Look at the ReSwift Event Log During Launch of My Latest Project |
Jan 17 | |
Jan 15 | |
Jan 11 |
2016
December 2016 | |
---|---|
Dec 19 | |
Dec 12 | |
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 | |
Nov 18 | |
Nov 13 | |
Nov 12 | |
Nov 8 | |
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 | |
Oct 15 | |
Oct 12 |
My Declarative Breakthrough: Wherein I Stop Thinking in Terms of Object Collaboration |
Oct 11 | |
Oct 8 | |
Oct 6 |
Developer Documentation App Dash Removed from App Store – and No-One Can Do a Thing |
Oct 5 | |
Oct 4 |
September 2016 | |
---|---|
Sep 27 | |
Sep 25 | |
Sep 19 |
Swift 2.3 NSLocale UIKit API Changes Break iOS 8 Compatibility |
Sep 19 | |
Sep 17 | |
Sep 10 | |
Sep 9 | |
Sep 3 | |
Sep 2 |
August 2016 | |
---|---|
Aug 28 | |
Aug 22 | |
Aug 18 | |
Aug 17 | |
Aug 12 |
When You Code, You Design Both Structure and Information Flow |
Aug 9 | |
Aug 5 | |
Aug 3 | |
Aug 1 |
June 2016 | |
---|---|
Jun 27 | |
Jun 25 | |
Jun 23 | |
Jun 17 | |
Jun 16 | |
Jun 14 | |
Jun 12 | |
Jun 9 | |
Jun 6 |
May 2016 | |
---|---|
May 31 | |
May 26 | |
May 25 | |
May 23 | |
May 18 | |
May 15 | |
May 12 | |
May 11 | |
May 10 | |
May 9 | |
May 8 | |
May 6 | |
May 3 |
What I Did When I Found Emojis in Strings Always Lost the Last Byte |
April 2016 | |
---|---|
Apr 28 | |
Apr 25 | |
Apr 14 | |
Apr 12 | |
Apr 11 | |
Apr 9 | |
Apr 1 |
March 2016 | |
---|---|
Mar 31 | |
Mar 29 | |
Mar 25 |
5 Heuristics for "I have a complicated nested view controller setup. How do I handle passing data?" |
Mar 24 | |
Mar 22 | |
Mar 21 | |
Mar 19 | |
Mar 18 | |
Mar 16 | |
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 | |
Mar 10 | |
Mar 8 |
Creating a Lens for an Object to Provide a New Public Interface |
February 2016 | |
---|---|
Feb 28 | |
Feb 28 | |
Feb 27 | |
Feb 27 | |
Feb 26 | |
Feb 25 | |
Feb 24 | |
Feb 22 | |
Feb 19 | |
Feb 18 |
How do You Really Mock Objects You Don't Own? You Replace Them with Adapters |
Feb 16 | |
Feb 15 | |
Feb 15 | |
Feb 15 | |
Feb 11 |
Publish and Subscribe — Decoupling Deep View Hierarchies from Event Handlers |
Feb 8 | |
Feb 5 | |
Feb 4 | |
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 | |
Jan 29 | |
Jan 27 |
Make Money Outside the Mac App Store now Available on Amazon |
Jan 26 | |
Jan 26 | |
Jan 23 | |
Jan 22 | |
Jan 21 | |
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 | |
Jan 15 | |
Jan 11 |
How Closures are a Better Event Handler Protocol Alternative |
Jan 7 | |
Jan 4 |
2015
December 2015 | |
---|---|
Dec 29 | |
Dec 23 |
Encapsulate a Process in a Single Line Using Bind and Good OO Design |
Dec 21 | |
Dec 19 |
Separate Read Model from Write Model to Support Complex Forms |
Dec 14 | |
Dec 11 | |
Dec 10 | |
Dec 4 |
November 2015 | |
---|---|
Nov 28 |
Configuration Objects: Delegate Initialization to a Parameter |
Nov 26 | |
Nov 25 | |
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 | |
Nov 13 | |
Nov 13 | |
Nov 11 |
Modeling: From Structured Data Representation to Problem Domain |
Nov 4 | |
Nov 3 | |
Nov 3 |
Ideas to Solve Background Fetching and Saving Race Conditions with Core Data |
Nov 2 |
October 2015 | |
---|---|
Oct 31 | |
Oct 29 | |
Oct 28 |
Don't Build on El Capitan Without Checking App Transport Security |
Oct 26 | |
Oct 24 | |
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 | |
Oct 14 | |
Oct 13 | |
Oct 12 |
Transactions and Rolling Back Changes in Core Data with UnitOfWork |
Oct 10 | |
Oct 9 |
Put Usage of a CoreDataFetchRequest out of Your Code and Into ... Where Exactly? |
Oct 8 | |
Oct 6 | |
Oct 3 | |
Oct 2 |
How I Now Deal with Collapsible Split View Controllers on the iPhone 6 |
August 2015 | |
---|---|
Aug 29 | |
Aug 24 | |
Aug 8 | |
Aug 4 |
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 | |
Jun 19 | |
Jun 13 | |
Jun 11 | |
Jun 10 | |
Jun 5 |
Test doubles for Core Data managed objects might not work as expected |
Jun 3 |
May 2015 | |
---|---|
May 28 | |
May 13 | |
May 7 |
Combining Collection-Like Repositories and East-Oriented Code |
May 3 |
April 2015 | |
---|---|
Apr 25 | |
Apr 17 | |
Apr 16 | |
Apr 14 | |
Apr 11 | |
Apr 10 |
March 2015 | |
---|---|
Mar 31 |
Painless Event Delivery With a Custom Publish-Subscribe Infrastructure |
Mar 25 | |
Mar 16 | |
Mar 13 | |
Mar 11 | |
Mar 6 |
Split Commands and Informational Return Values Apart Using Events |
Mar 1 |
February 2015 | |
---|---|
Feb 22 | |
Feb 13 | |
Feb 9 |
Use Double-Dispatch and Polymorphism to Get Rid of Conditionals |
Feb 5 | |
Feb 4 |
Thinking in Terms of Functional Programming Encourages Clean Factoring of Code |
January 2015 | |
---|---|
Jan 29 | |
Jan 24 | |
Jan 23 | |
Jan 17 | |
Jan 6 | |
Jan 2 |
2014
December 2014 | |
---|---|
Dec 19 | |
Dec 18 |
Making Good Use of Singletons in Refactoring the iOS App Calendar Paste |
Dec 13 | |
Dec 9 | |
Dec 8 | |
Dec 2 |
I'm About to Release a Little E-book on Domain-Driven Design and Mac Application Development |
November 2014 | |
---|---|
Nov 23 | |
Nov 13 | |
Nov 5 |
October 2014 | |
---|---|
Oct 31 |
How I Edited my Last Zettelkasten Post and Came up With Something Even Shorter Than the Post Itself |
Oct 24 | |
Oct 17 | |
Oct 2 |
September 2014 | |
---|---|
Sep 30 | |
Sep 22 | |
Sep 19 | |
Sep 11 |
August 2014 | |
---|---|
Aug 27 | |
Aug 14 |
July 2014 | |
---|---|
Jul 31 |
Challenge: Apply the Knowledge Cycle to Reading a Single Book |
Jul 27 | |
Jul 25 | |
Jul 17 | |
Jul 12 | |
Jul 7 | |
Jul 3 |
June 2014 | |
---|---|
Jun 25 | |
Jun 18 |
Include Images in nvALT for a Multi-Media Zettelkasten Experience |
Jun 16 | |
Jun 7 | |
Jun 5 |
May 2014 | |
---|---|
May 24 | |
May 16 | |
May 3 |
April 2014 | |
---|---|
Apr 22 | |
Apr 11 | |
Apr 4 |
March 2014 | |
---|---|
Mar 29 | |
Mar 20 | |
Mar 14 | |
Mar 9 |
February 2014 | |
---|---|
Feb 27 | |
Feb 21 | |
Feb 15 | |
Feb 14 | |
Feb 6 |
January 2014 | |
---|---|
Jan 23 | |
Jan 20 |
2013
December 2013 | |
---|---|
Dec 11 |
November 2013 | |
---|---|
Nov 27 | |
Nov 26 | |
Nov 8 |
October 2013 | |
---|---|
Oct 18 | |
Oct 7 |
September 2013 | |
---|---|
Sep 22 |
Solve database mapping problems and the impedance problem of ActiveRecord |
Sep 15 | |
Sep 3 | |
Sep 2 |
August 2013 | |
---|---|
Aug 10 |
June 2013 | |
---|---|
Jun 20 |
Create a Zettelkasten for your Notes to Improve Thinking and Writing |
Jun 13 | |
Jun 6 |
May 2013 | |
---|---|
May 1 |
April 2013 | |
---|---|
Apr 24 | |
Apr 24 | |
Apr 21 |
March 2013 | |
---|---|
Mar 29 | |
Mar 28 | |
Mar 20 |
February 2013 | |
---|---|
Feb 23 |
January 2013 | |
---|---|
Jan 12 |
2012
December 2012 | |
---|---|
Dec 30 | |
Dec 30 | |
Dec 22 | |
Dec 18 | |
Dec 14 | |
Dec 13 |
November 2012 | |
---|---|
Nov 19 |
Remove Objective-C method declaration fluff with Keyboard Maestro |
September 2012 | |
---|---|
Sep 19 |
2011
April 2011 | |
---|---|
Apr 18 |
February 2011 | |
---|---|
Feb 4 |
2010
December 2010 | |
---|---|
Dec 12 |
November 2010 | |
---|---|
Nov 4 |
Bringing Notational Velocity to a new level of massive text editing |
October 2010 | |
---|---|
Oct 24 | |
Oct 15 | |
Oct 13 | |
Oct 12 |
Notational Velocity fork with fullscreen mode, menubar app, and more |
Oct 10 | |
Oct 6 | |
Oct 5 |