The Curious Engineer

All blogs / Dev tools / editors / IDEs

Worklog: Articles and Blog Posts by Christian Tietze

christiantietze.de

Christian Tietze builds Mac apps for writers and thinkers (The Archive, TableFlip, Infinite Canvas) and writes about how programmers learn and think: Swift and AppKit, the Zettelkasten method, Emacs, and AI-assisted work.

Dev tools / editors / IDEsMobile / iOS / AndroidSoftware / engineering practice

Posts
935 from 1 Oct 2010 to 7 Oct 2026
Posting
weekly (35 in the last year)
Kind
personal blog
Feed
https://christiantietze.de/feed.atom

2026 28

  1. How Do You Design a Code Retreat in 2026?
  2. Watch My EmacsConf Talk: Zettelkasten for Regular Emacs Hackers
  3. Mastery is a Wicked Problem
  4. Hazel Turns 20
  5. Lettera: A Refined Markdown Document Editor
  6. Retelling Stories with Commit Diffs in My Head
  7. Swift Blog Carnival Roundup: Tiny Languages
  8. CLI for Your Notes in The Archive – Automated Zettelkasten (Usage) for Programmers
  9. Counter Drift and Entropy with Kaizen
  10. Swift Blog Carnival: Tiny Languages
  11. Emacs Mistakes and Misconceptions That Held Me Back in 2019
  12. Peloton for the Mind
  13. Does Bad Code in Your Context Window Misalign LLM Recommendations?
  14. Make the pi Coding Agent Identify the Model in Commits
  15. Identify Codex CLI Git Commits for an Audit Trail
  16. FreeBSDKit: Swift Package to Write Capability-Aware FreeBSD Apps
  17. Zettelkasten Productivity: Books Written per Books Ingested
  18. Media Transfer Protocol Tools
  19. Emacs Complete: Feedback Loops in Emacs, Feedback Loops in Computing
  20. Institutional Knowledge Is a River That Can Dry Up (Don’t Fire All Your Workers)
  21. Introducing quake-frame.el: My Take on a Terminal Visor, But Running Emacs
  22. Xcode 26 LLM Markdown Summaries Are Actually Useful for Humans
  23. Zettelkasten for Programmers: Documenting Confusing with Swift.SendableMetatype
  24. Use clang API notes to Annotate C Header Files for Swifty Module Imports
  25. Auto-Mount Metal Toolchain Using a Launch Service Because Xcode 26 Cannot
  26. Manually Mount the Metal Toolchain When Xcode Cannot
  27. Emacs Carnival 2026-01: “This Year, I’ll ...”
  28. Announcing the German Urban Sketchers Index

2025 64

  1. The People Who Got Me into Emacs
  2. How a (Wooden) Wood Plane Planes Wood
  3. Join the All-Virtual EmacsConf December 6 and 7 and Check out My Zettelkasten Talk
  4. Rsync File Copying from Dired with Transient Menu
  5. What’s a Zettelkasten Good for in the Age of Affordable LLM’s?
  6. Be Honest When Claude Code Writes Your Software
  7. Learning About Swift Concurrency (from Matt Massicotte’s Blog) with a Zettelkasten
  8. Sharpening the Saw with Emacs
  9. Zettelkasten for Programmers: Pick a Title. It’s Okay to Change Later
  10. Redirect Output to Buffers from Emacs Eshell
  11. Protesilaos Stavrou Asks (Me) About Indie Development, Art, Philosophy, Zettelkasten
  12. Zettelkasten for Programmers: Processing Swift Actor Usage Advice in Depth
  13. You Don’t Need to Remember Anything Meets LLM Fans
  14. Clickable Swift Testing Failure Messages in Emacs compile-mode
  15. Infinite Canvas – iOS and macOS Whiteboarding and Sketching App, Now Available
  16. Emacs Elevator Pitch (August Blog Carnival)
  17. Adapt Unidirectional Flow Virtues to Your Plain SwiftUI App
  18. SwiftUI DocumentGroups Are Terribly Limited
  19. Announcing InfiniteCanvas, a Delightful Whiteboarding App for Mac, iPad, iPhone: TestFlight Is Now Open
  20. TextIndex: a Markdown Pre-Processor and Syntax Extension for End-of-Book Indexes
  21. Can You Really Put on Blinders If You Know There May Be Adverse Effects of Your Actions?
  22. Migrating from asdf to mise (en place)
  23. Emacs on Second Try
  24. Getting Over Frustratingly New Topics (Swift Concurrency) with a Zettelkasten
  25. How Many Zettelkästen Should You Have?
  26. Emacs Carnival 2025-06: Take Two
  27. My Procedure to Create New Zettelkasten Notes Inline
  28. No Open Office Hour On May 27th
  29. Microsoft Recall and Signal: When You Don't Worry About 3rd But 1st Party Spy Software
  30. Insert Cc and Bcc Mail Headers Conditionally in Emacs message-mode
  31. New Era of Small Software Shops
  32. The Inlined Agile Software Craftsmanship Manifesto
  33. Xogot, Godot 4.4 for iPad, Just Dropped
  34. Variadic Types in Swift and How to Count Them
  35. Cloudflare Tunnel via Docker with SWAG Nginx Reverse Proxy using Subdomains in Proxy Network on Unraid
  36. My Current Compilation Window Display Settings in Emacs via display-buffer-alist
  37. Start of a Zettel: Modern UICollectionView
  38. Master Software Crafters Let the Workpiece Be
  39. Introducing Markdown Babel: a Universal Tool to Make Markdown Files Executable
  40. Calling Swift Library Functions from C
  41. Keep .org File Outline Items Sorted Alphabetically
  42. Test, Save, and Execute HTTP Requests with Hurl (or restclient.el)
  43. Community Debt
  44. Each Failed Project Has Failed in Its Own Way – Anna Karenina Principle of Software Failure
  45. The Limits of swift-markdown Customization
  46. Open Office Hours (Daylight Saving Time): Tuesdays, 18:30 CEST (That’s 1 Hour Late)
  47. Working with Process Pipe and Its 64KiB Limit
  48. NSPopover in NSTextView With Links Is Broken: Accessibility Hierarchy Slowdown
  49. NSFileWrapper Sometimes Changes Modification Date to the Past
  50. NSTextView Bypasses performKeyEquivalent Check for Backspace and Option-Backspace
  51. Comparing Use of AI vs Learning to Code Has Nothing to Do With Knowledge
  52. Preview Mass Text Replacements with Emacs 30.1 replace-regexp-as-diff
  53. Ethan Marcotte, the Luxury of Job Choice, and Principles
  54. Important Things Are Never Just Done
  55. Leverage (to Influence Apple)
  56. Atkinson Hyperlegible Font Next and Mono
  57. Guilt-Free for the First Time. Burkeman’s “Meditations for Mortals”
  58. Staring In My Face, But I Ain’t Looking: Simplifying RxSwift Subscriptions
  59. Sins of Carthage: RxSwift Re-Entrancy, Undetected
  60. Using 2 Editors Because Xcode Is Dumb
  61. Responsive, Scalable Hamburger Menu in Accessible CSS
  62. Free SwiftUI University Course fro -Boston College Professor
  63. Open Office Hours: Tuesdays, 17:30 CET
  64. RxOmnibar

2024 74

  1. “Find My” Python and Swift Libraries
  2. Apple Music App: Android APK Direct Download
  3. Gus Continues to Work on Acorn
  4. Org-Mode Emphasis Keymap with Mnemonics
  5. Swift Concurrency Provides Compile-Time Feedback for Runtime Behavior
  6. Global Day of Code Retreat 2024 Retrospective
  7. Iterating Through Realities
  8. Pi-hole on Unraid (as Local DNS to Access NAS Services Without a Roundtrip to Cloudflare)
  9. TableFlip v1.7.0 Releases with Modern Icons
  10. Percent-Encode HTML Form Values so That Spaces Become ‘%20’ Instead of ‘+’
  11. Running Unsigned Applications on macOS Sequoia
  12. Composition Over Inheritance in NSViews
  13. Alex Ozun: Type-Driven Design with Swift (SwiftCraft 2024)
  14. Checklists Appreciated Under Stress
  15. Typed Filters and callAsFunction
  16. Fairphone Fairbuds Are a Great Idea (Only)
  17. Expecting a Child
  18. Pretty-Printing Variables, Objects, and Functions in JavaScriptCore
  19. PSA: SwiftUI Button Click-Through Fixed in macOS 15
  20. It’s Never Just a Something
  21. Logical Ranges and Character Ranges
  22. Embark: Display Buffer in Dedicated Side Window
  23. Create Journal Note For a Previous Day in denote.el
  24. MacMenuBar – Directory of Hundreds of Menu Bar Apps
  25. The Rake and Its Prongs
  26. The Communication Tradeoff
  27. If You Use KOMA-Script, Really Do Use KOMA-Script
  28. Fold Search Results Away in rg.el
  29. Declarative Text Kit: Word Ranges
  30. Hide macOS Menu Bar Icons (Bartender Alternatives)
  31. Declarative Text Kit: Token-Based Adapters
  32. Declarative Text Kit: Reduction in Ugly Code Size
  33. Declarative Text Kit: Expression and Evaluation
  34. Swift Package: FastSpring In-App Purchase
  35. Declarative Text Kit: Inserting Strings and Lines With a Result Builder
  36. It's Easier With Meaning
  37. Declarative Text Kit: Sketch of an API
  38. Use and Then Reduce Open Source Dependencies
  39. Zettelkasten (Not) Needed?
  40. Table View Cells from Nib: How to Change the Blueprint Data to Affect New Cells
  41. Dynamic Actor Isolation Can Help During the Transitional Phase
  42. Niki Tonsky: Hardest Problem in Computer Science: Centering Things
  43. A-B-C: Always Be Changing Existing Code
  44. SwiftUI Kata: Recreating DebugInfo Viewer
  45. Enable SwiftUI Button Click-Through for Inactive Windows on macOS
  46. “Soulslike”
  47. Masterclass of Decoupling: Diablo II Resurrected
  48. Negate KeyPath<T, Bool> Values with not()
  49. Disable XeLaTeX Character Sequence Mappings for Inverted Question Mark and Inverted Exclamation Mark
  50. You Absolutely (Do Not) Need to Comment Your Code
  51. Ship Custom Fonts within a Swift Package
  52. Easing Into a Language and Environment: Week 3 with PHP
  53. Oh, You're Making Apps, So You Are Working for Apple/Google/...?
  54. SwiftUI Challenge: Can You Port this from Auto Layout to SwiftUI?
  55. 3 Types of FastSpring Storefronts
  56. How to Disallow GPTBot Crawling in robots.txt
  57. Developer Voices on Property-Based Testing Made Me Realize PBT’s Value
  58. TableFlip v1.6.0: JSON Support and Font Resizing
  59. Portable Every-Day-Carry Paper Kanban
  60. Splitting Large Tasks is not a Mathematical Process
  61. SwiftUI Field Guide
  62. Looking for Testers: Typers of Japanese, Chinese, and Korean Characters
  63. Example of Object Tag vs Topic Tag in Programming Zettelkasten
  64. When Actions of NSSegmentedControl in Toolbars Do Not Fire In Their Overflow Menu Item State, Do This
  65. Timestamps with Weekdays
  66. Life Hack: Label Your Trash Bins
  67. 32-Bit Cafe: Personal Website Ideas
  68. Low App Prices are Preemptive Excuses
  69. Have You Ever Sent an Email with a File Attachment that is Located on a Server?
  70. Transformative Reading ... 2017 Edition?!
  71. ChatGPT Shell: Confirm Before Closing and Split Compose Buffer
  72. Emacs sqlite-mode to Open .sqlite Files Automatically
  73. Cold-Blooded vs Warm-Blooded Software
  74. You Can Choose When You Live in Surplus

2023 54

  1. Show Organic Traffic in TelemetryDeck the Simple Way with a Values Breakdown Insight
  2. Using Type Markers for 'is' Type Predicates to Cover Generic Types
  3. Dependency Injection via Protocol Composition
  4. Update for modus-themes v4 and mlscroll.el Colors
  5. Ignore Generated Xcode .xcworkspace Files in Git Except Package.resolved
  6. Show Referrers in TelemetryDeck for Web with a TopN TQL Query
  7. TableFlip v1.5.1
  8. Transforming JSON to Tables: the Impedance Problem
  9. How Long Does a Disk Preclear in Unraid Take for 12TB of Data?
  10. Embracing the AppKit Ways
  11. Not Quite 100% SwiftUI – Time Makes Perfect
  12. TableFlip v1.5.0 Released
  13. Sparkle v2.5 Adds Relevant Version Highlighting to Release Notes
  14. Portable Painter Micro Palette
  15. UserDefaults.register(defaults:) Is a Bit Like Nil-Coalescing
  16. Year 36, a 🎂 Retrospective
  17. Kill Unsaved Emacs Buffers UX: Replacing Yes/No/Save with Meaningful Options
  18. The Missing Array.appending(contentsOf:)
  19. Making Your App Extensible with JavaScriptCore: Annotated Presentation with Full Transcript
  20. SwiftData: Store Image Data, but Actually Outside the Database
  21. Async XCTest Assertion Helpers
  22. Cocoa AppKit Responder Chain
  23. SwiftUI.View Is Your ViewModel
  24. Decoupling SwiftUI.View Configuration from Layout and Action Handling
  25. Inverted E-Mail Blockquotes
  26. Super Saturday Sharefest: Matt Massicotte's XPC Work
  27. WordCounter v1.6.6 Released
  28. macOS Sonoma Menu Section Headers Look a Bit Off
  29. Swift Package Import in Objective-C Might Just Work
  30. SwiftUI.List with Menu with Plain Button Style Breaks Event Loop
  31. How to Inspect SwiftUI.TextField.onSubmit and Figure Out You Can't Programmatically Use It
  32. Swift Pattern Matching with Extra Conditions, and the Value of Syntax Summaries
  33. 11 or so Android Ebook Reader Apps for Academic Writing Workflows: Annotations are Hard
  34. BOOX Vector PDFs Are Already Colored
  35. Colorize Onyx BOOX Notes Vector PDFs (Really Rough Edition)
  36. Boox NeoReader Annotation Export Is Meh
  37. Safari URL Scheme for macOS and iOS
  38. Detach Xcode Console -- via Terminal
  39. Wrap HTML Tables in Figures using Nanoc and Kramdown
  40. Website Rank in Common Crawl's C4 AI Dataset
  41. Fetch Personalized Command Explanations with 'um' from Your Terminal
  42. Create FastMail Masked Email Addresses with maskedemail-cli
  43. VIPER Added to the Wiki
  44. Copilot for Xcode Works Okay
  45. TableFlip v1.4.1 Released
  46. PSA: FileManager.trashItem (Maybe) Uses NSFileCoordinator Under the Hood Automatically, So You Shouldn't to Prevent Deadlocks
  47. Xcode Requires A Lot of Data for Swift Package Resolution
  48. Getting to Know Jetpack Compose by Comparing Concepts with SwiftUI (Markus Müller's CocoaHeads Leipzig Presentation)
  49. Dictionary.init to Make Use of Swift.Identifiable
  50. The Difference between Entity and Value Object, and How They Relate to Swift's Identifiable and Equatable Protocols
  51. woolsweater's SF Symbols Modeline
  52. Use San Francisco Font for SF Symbols Everywhere in Emacs
  53. Display a Random Inspiring Quote for Journaling or Shell Prompts
  54. Migrating to modus-themes v4 and Going Through the Changes

2022 72

  1. How to Use SF Symbols in Emacs (for Tab Numbers)
  2. Better org-mode Agenda display-buffer-alist Settings
  3. Making Your App Extensible with JavaScriptCore (CocoaHeads Presentation)
  4. Manage Org Agenda-Related Buffers via display-buffer-alist
  5. ChatGPT: Publish NSTextView Changes to ReSwift, but Also Use a Lamport Clock
  6. Dec 3 and Dec 4: EmacsConf 2022 Live
  7. Use System File Open Dialog for File Actions in Emacs (Just Once!)
  8. CocoaHeads Talk about JavaScriptCore Plugins on Thursday 2022-11-24, 7 p.m.
  9. Mutating Struct and State Observers: How the Latter Will Be Notified Even for 'No-Ops'
  10. Wiki Updates for Nov 29th
  11. Org-Mode Outline Levels 9+
  12. Gitea Ltd. Takes Over Gitea Open Source Project, Community Pushes Back
  13. Smooth Scrolling in a Table View for Custom Shortcuts
  14. There Could Be No “Later”
  15. NSTableView Variable Row Heights Broken on macOS Ventura 13.0
  16. macOS Ventura App Compatibility
  17. Sketch Employees for Hire
  18. Sketch Layoff of 80 Employees — Does It Really Send an Alarming Signal?
  19. 10 Year Indieversary AMA Postmortem
  20. NSTextView (Plain Text) and the Pasteboard: PasteboardType.string Is Not Handled
  21. Overview of Attribute Fixing in NSTextStorage
  22. 'Black Box' Unifies Software Modeling in Modules
  23. Example of High Cohesion and Low Coupling with Presenter, View, and View Model
  24. How to Fix When Some Text Changes Don't Come with Automatic Undo?
  25. Reactive Code is Sequentially Cohesive
  26. Delete to Beginning of Line in Emacs to Rewrite Code
  27. Replacing zoom-window with winner-mode to Temporarily Change Window Splits in Emacs
  28. 10 Year Indieversary: AMA On Sep 6th
  29. Wiki and Website Updates
  30. SwiftUI Isn't Easy to Get Into: My Road From Headache Towards Mastery
  31. Drawing Studies: Tonal Values
  32. Rely on @Published Property Wrapper Events, Not the Observed Object
  33. Schedule End of the Work Day Using Org
  34. Output Port Adapter for Single Point of Configuration in Complex UI
  35. Emacs Blogging: Insert Tag from YAML Frontmatter Posts
  36. Disambiguate Code Signing Identities
  37. New Library Pages
  38. TDD Is About Writing Counter-Factual Statements
  39. Key Binding to Select Paragraph or Org Element
  40. TableFlip v1.4.0 Released
  41. DevCleaner for Xcode
  42. Mac App Notarization Workflow in 2022
  43. Shift-Click in Emacs to Select – A Simple Change With a Complex History
  44. Free Cmd-W in Magit to Close the Buffer
  45. Magit's Killer Feature #1: Commit Text Completion Based on the Diff
  46. @EnvironmentObject Is a Branched Global Variable
  47. Happy People = Mac Users
  48. Link Your Website to Mastodon via Metadata
  49. Dependency Injection and the Tree of Knowledge
  50. PSA: TextKit 2 Has Bugs
  51. STTextView: A TextKit 2 Text Editor without NSTextView
  52. Clean Downloads Folder on Mac with Hazel
  53. Weak Self -- Closure Rules of Thumb
  54. TextKit 2 Example App from the Apple Docs
  55. How to Upgrade Sendy from Version 5 to 6 from the Shell via SSH
  56. Center Window on the Current Monitor in Emacs, Simplified
  57. Transient Menus Galore
  58. Fixing Our Recent Xcode 13.3.x Dependency Cycle Errors
  59. How to Assemble Menu Bar App Screenshots for Mac App Store
  60. Aergrind by Knock Coffee Grinder, and Their Amazing Customs Duty Service
  61. Add Any Directory to project.el's List of Projects
  62. Get Your xcode.tips Card Printouts!
  63. Prioritize hl-line Highlight Over Neotree Faces
  64. More Swifty NSAttributedString Attribute Query Methods
  65. Context Menu in Magit Status Buffers
  66. The Playdate's Docs Are Made with More Love Than Most End Products
  67. What's the Problem With Old But Excellent Mac Apps?
  68. Split Window in Emacs and Resize and Recenter Frame to Make Room
  69. Add Numbers to Emacs tab-bar-mode Tab Titles for Quick Access
  70. Copy Dropbox Link to File Using Maestral
  71. I Uninstalled the Dropbox App in Favor of Maestral
  72. Closing Circe IRC Buffers in Emacs Without Leaving the Room

2021 51

  1. Remote Bulk Editing Using Regexp with Emacs
  2. SwiftUI Requires Platform Knowledge On Top. Case Study: Fonts
  3. What Do You Get When You Drag and Drop a PNG File From Finder Into an NSTextView?
  4. Don't Use Sparkle 2.x With Carthage
  5. Use macOS System Selection Colors in LIN for Emacs Line-Selection UIs
  6. Swift Pattern Matching Operator: Compiler Error when Specifying Enum Type and Case Name?
  7. Replacement for NSAppearance.performAs­Current­Drawing­Appearance on macOS 10.14 and 10.15 to Fetch the Correct NSColor.cgColor
  8. NSTextView Performance May Degrade for Large Plain Text Documents When usesFontPanel Is Active
  9. Retry Imperative Conditions with RxSwift Using a Delay
  10. FastSpring Introduces Multi-Discount Coupon Codes
  11. How to Fix Mach-O Header Code 0x72613c21 When You Try to Export Your App in Xcode
  12. Open Magit for Current Repository from the Terminal
  13. Two Improvements to Open macOS Finder Window in Emacs Dired + Automator Quick Action Downloads
  14. Open macOS Finder Window in Emacs Dired
  15. NSTextView Bug: Automatically Scroll Insertion Point Into View Broken When Setting NSTextContainer's lineFragmentPadding to Zero
  16. TextKit 2 Introduces Block-Based Layout
  17. Trash File from Emacs with Put-Back Enabled on macOS
  18. I'm Thinking About the Gemini Protocol a Lot
  19. How to Print on macOS With An NSTableView and Customize the Result
  20. Single Function to Center Emacs Window on Screen
  21. Multi-Monitor Compatible Code to Center Emacs Frames on Screen
  22. Automatically Center New Emacs Windows (Aka Frames) on Screen
  23. Does 'Open Source' Lack Proper Gate-Keeping?
  24. Use macOS Native Highlight Colors for Emacs hl-line
  25. Notmuch Mail and Compatible Emacs Theme Updates
  26. Indie Support Weeks: Monodraw
  27. Using XCTUnwrap Instead of Guard in Unit Tests
  28. FloatingFilter Gets Rounded Corners
  29. Adding a Wiki to the Site
  30. Funding Open Source Software as a Third Party?
  31. a rare email
  32. The Archive 3rd Anniversary Giveaway
  33. The Beauty of Hacking Swift: Make Union of Set Algebra Types More Obvious
  34. MacSymbolicator: Tool to Symbolicate Your Crash Reports
  35. Refactoring Case Change Code to Idiomatic Emacs Lisp
  36. Change Case of Word at Point in Emacs, But for Real This Time
  37. #CamelCaseHashtags Could Improve Accessibility
  38. How to Add Backlinks in Nanoc Static Site Generator
  39. Backlinks Added to the Blog
  40. Emacs Org-Mode: Automatic Item TODO/DOING/DONE State Transitions for Checkbox Changes
  41. IPv6NAT in Unraid's Docker Containers Behind a Reverse Proxy to Make Outgoing IPv6 Requests Work
  42. When Code Signing of Frameworks Fails During macOS App Distribution, Make Sure ENABLE_BITCODE=NO
  43. SOLVED! Looking for Docker Reverse Proxy & IPv6 Setup Help (Paid)
  44. Disable NSTextAttachment Action and Sharing Services Menu Drop-Down
  45. Create Custom Org-Mode Links to Open My External Zettelkasten App
  46. A Short Note on Voice Assistants and Very Old People Who Don't Hear Well
  47. Atkinson Hyperlegible Font May Be Pretty Good If Your Granny Can't See Well
  48. XCTestExpectation via NSPredicate Is On a Slow Interval, Use This Instead
  49. WordCounter v1.6.4 Released
  50. NSSavePanel Crashes on Big Sur for public.csv UTI When You Don't Have a CSV Editor
  51. DuckDuckGo Site Search in Vanilla Forums Templates

2020 65

  1. Protesilaos Stavrou: Commend on Unix versus Emacs
  2. Indie Support Weeks: Working Copy - Fully Featured iOS git Client
  3. How to Profile Slow Scrolling (And Other Performance Bottlenecks) in Emacs
  4. Uberabout Makes Your App's About Window More Sexy
  5. Pulse to Highlight Yanked Text in Vanilla Emacs
  6. Markdown Mode Fixes Imenu Tag Generator
  7. Apple's App Store Small Business Program Enrollment Is Super Simple
  8. OpenMoji Support in emacs-emojify
  9. Decorate NSGlyphStorage to Replace Glyphs On-the-Fly
  10. TableFlip v1.3.0 Released
  11. Upgrading to Sparkle 2.x Branch
  12. Convert org-babel Markdown Blocks to HTML
  13. Making Emacs Autosaving of Files Ignore Email Drafts
  14. Zettelkasten Method Introduction
  15. Hide Traffic Light Buttons in NSWindow Without Removing Resize Functionality
  16. Shorten Emacs Yes-or-No Confirmation Dialogs
  17. Follow Link at Insertion Point in NSTextView
  18. Now Hiring: PHP/Laravel Web Developer
  19. Export Day One (macOS) Journals to Emacs org-mode Diary Entries
  20. Fix Your Damaged Mac App Store App by Parsing the App Store Receipt Dates Correctly
  21. NSRemindersUsageDescription Info.plist Key is Misspelled in the Documentation
  22. Indie Support Weeks: Use DropDMG to Create Your App Downloads
  23. Make RVM's Ruby Available to Emacs Shell Commands
  24. Add HTML Entity Picker to Emacs
  25. Experimenting with a Switch from Disqus to FastComments
  26. Demonstrate Swift's Lazy Initialization of Static Attributes Even when Using a Property Wrapper
  27. Adopting the Linktree Convention to Redirect People to My Projects
  28. Implement Pixel-by-Tile Movement in Godot
  29. Comparing 2D Collision Detection and Hit-Testing Approaches in Godot 3
  30. How to Decode Human-Readable JSON Strings to Integer-Based Swift.OptionSet
  31. Patching console.log into Swift's JavaScriptCore JSContext
  32. Add Subscripts to JavaScriptCore Types in Swift
  33. TableFlip v1.2.3 Ships with CSV Fixes
  34. h-now Aggregator Live Demo on Heroku
  35. FSCheckoutSheet: In-App Purchase Sheet for Your FastSpring Store
  36. Structure and Interpretation of Classic Mechanics – A Physics Book with Code
  37. Blog Series: TableFlip's NSDocument File Type Issues and Fixes
  38. Proposing the h-now Microformat to Mark-Up All Our /now Pages
  39. Digital Gardening: A Renaissance of Open Thinking and Curated Writing on the Web
  40. Define and then Hide a New Document Type
  41. How to Create a NSSavePanel accessoryView in Swift to Pick File Formats
  42. Programmatically Select a NSSavePanel File Format to Fix Empty Selections
  43. Sorting Out Overlapping File Types
  44. Sandboxing and Declaring Related File Types
  45. Observations of the Curious Problem of NSDocument-Based App Changing the File Extension
  46. Delete the Next Word or the Current Selection in Emacs with the Same Shortcut
  47. Indie Support Weeks: beorg
  48. Indie Support Weeks: Soulver
  49. Getting Rid of kCGImageSourceTypeIdentifierHint Error when Loading NSImage from a File
  50. Now Hiring: Freelance Mac Dev
  51. Auto-Growing NSTextField
  52. Boilerplate to Add AppleScript to Your macOS App in 2020
  53. NSProgress with KVO-based Finish Callbacks
  54. WhatsNewKit v1.2.0 Supports Multiple Update Notices at Once
  55. Natural Language Toolkit Word Counter
  56. Newsletter Form Fixed
  57. Thread Safe Property and Resource Access with the Transaction Wrapper
  58. Swift API Docs for String.index(_:offsetBy:limitedBy:) Is Still Misleading
  59. MultiMarkdown Filter for nanoc
  60. Lock App Features Behind a Paywall and Enforce the Lock in Code
  61. Show Light Text on Dark Recessed NSButton with an Image
  62. Whole Value Pattern
  63. Maybe Call Your UI Configurion Objects ViewData Instead of ViewModel
  64. AppMover Swift Library to Move Your macOS App to the Applications Folder
  65. Community Trumps All

2019 112

  1. SwiftRex - Redux for Swift with Reactive Capabilities
  2. Facilitate Non-Artists to Sketch
  3. microsoft/PLCrashReporter v1.4.0 Released
  4. Center Odd Shapes in Keynote Spin Animations
  5. UserDefaults Access via Property Wrappers Is Worse Than You Might Think
  6. Print Current Date and Time in Emacs Minibuffer
  7. Guilherme Rambo Was Temporarily Locked Out of His Apple Developer Account
  8. Split a Markdown File by Its Headings
  9. Dash 5 Documentation Browser for Mac is Available
  10. Native macOS Notifications for Emacs Org Tasks and Appointments
  11. FourLayerArchitecture Is Still Under-Appreciated
  12. That Weird Obstable of Interface Builder When You Get Started With iOS Development
  13. Black Friday Deals 2019
  14. Working on the Zettelkasten Online Course
  15. WordCounter v1.6 Brings Analytics to Your Productivity!
  16. X-Oriented Programming, Using Functions or Classes?
  17. Win32 API Programming With Swift
  18. ExactScan Leaves the Mac App Store
  19. Reducing the Blog Post Email Digest To Once a Week
  20. Model-View-Presenter, Form Validation, and a Unidirectional State Machine
  21. Xcode Bug Turns Out To Be the Hardened Runtime Setting
  22. Fix Missing Font Fallbacks for NSTextView
  23. Building a Rich Domain In Iterations
  24. Prevent Emacs Compilation Window From Displaying Other Content
  25. Quit and Close Emacs Special Windows Like Help and Compilation Results
  26. Emacs Settings for PHP Development
  27. The Archive Update Hiatus Due to a Severe Bug in Xcode 11
  28. Starting PHP Development in 2019: Project Setup and Dependencies
  29. Making os_log public on macOS Catalina
  30. Xcode 11 Displays Crash Logs in Context of Your Projects
  31. Processing David Epstein: Range (S01E04)
  32. Website Page Design Overhauled
  33. "Make Money Outside the Mac App Store" Second Edition Ebook Available
  34. Pros and Cons of the Mac App Store
  35. Macoun 2019 Code Retreat Workshop Postmortem
  36. Comparison of E-Commerce Platform Alternatives to the Mac App Store
  37. Processing David Epstein: Range (S01E03)
  38. September App Updates
  39. What to Do When You Want to Affect the Order of Subscription Callbacks in ReSwift
  40. Processing David Epstein: Range (S01E02)
  41. Add an Internet Access Policy to Your App
  42. Calendar Paste v3.3.0 Hits the App Store
  43. Always Ask for MailChimp Newsletter Reconfirmation Outside of MailChimp
  44. Don't Wait. Show Up. Or It Might Be Too Late Again
  45. Processing a Book to Extract Notes, a Video
  46. Make Money Outside the MAS v2 Book Writing Stage is Done
  47. Newsletter Revival
  48. TextMate v2.0 Was Released
  49. State of the macOS Developer Platform Choices
  50. Please Also Change Your Feed URL's Inside Your Apps
  51. Redirect Your DevMate Sparkle Update Feeds Now
  52. Fira Code 2 Released
  53. I Am at Macoun 2019
  54. Wireframe for Server-Side License Activation
  55. Become an Acquired Taste
  56. UINavigationController Inside a Popover
  57. With DevMate Closing Shop, Here's What You Can Do
  58. Prying Open the Vanilla Forum Control Flow to Create Discussions in Embedded Forms
  59. Detect When Your macOS App Has Been Moved During Runtime
  60. Live FastSpring Store Examples
  61. Looking for a Family Altar's Totem
  62. Book Updates Underway
  63. Find Non-64-Bit Apps Using the Free Go64 Tool
  64. The Archive v1.4.0 Released, Introducing Tabs
  65. NiftyMenu -- Automatically Recreate a macOS App Menu Bar in HTML
  66. Empty NSWindow Title Invisible in Window List
  67. Paid Up Front: Two Perspectives to Make this Business Model Work to Your Advantage
  68. Variable Name Conventions in Tests
  69. Implement NSWindow Tabbing with Multiple NSWindowControllers
  70. The World's Most Comprehensive Guide to Implementing Programmatic Creation of Tabs in a Single NSWindowController That You Shouldn't Adhere To
  71. How I Never Forget to Pack Stuff in My Backpack
  72. Convert MS Word DOCX Files to Markdown with Images
  73. Lightweight CrashReporter Library for Mac Released
  74. Move! Work Break Timer v1.4.0 Released
  75. Fixed Code Highlighting on the Blog
  76. Find Out if Xcode/LLDB Debugger Is Attached to Current App
  77. Fold Current Level-1 Heading in Emacs Org-Mode Outlines
  78. Combine E-Book for Free
  79. Post Overview Updated
  80. Slides for the "More Money, More Control" Webinar on Selling Outside the Mac App Store
  81. Existing NSWindow Show Notifications Don't Work
  82. TableFlip Mac App Store Experiment Stats: Sources
  83. WordCounter for macOS Version 1.5.0 Released
  84. Reference Xcode Configuration Variables in Objective-C
  85. React to NSWindow Showing in Your App
  86. Xcode Project Setup to Build, Embed, Codesign, Notarize, and Use the Sparkle XPC Services
  87. How Do You Activate Sparkle's XPC Services?
  88. How to Migrate to the New Sparkle Updater XPC Branch
  89. Use Shared NSUserDefaults for XPC and Interface Builder Nibs
  90. Imposing Bans and App Store Sanctions
  91. Free Amazon S3 and CloudFront Hosting for Students
  92. From bash to zsh on macOS
  93. Browser-Like Navigation in The Archive
  94. embetty Embeds Tweets and YouTube Videos Without the Tracking Code
  95. Python Context Manager Compared to Ruby DSLs
  96. How to Add Files to mpd using python-mpd2
  97. Emacs for Remote SSH Python Development
  98. Mac App Store Proceeds for TableFlip Without Marketing Campaigns
  99. Finding the Field Editor in UI Tests
  100. Being Afraid to Change a Working App
  101. TableFlip Is Now Available on the Mac App Store
  102. Using Drag and Drop with NSTableView
  103. Hosting Downloads on Amazon S3 with CloudFront
  104. Fixed the Blog Archive
  105. Sync Emacs Org Agenda Files via Dropbox Without Conflicts
  106. Add Navigation Buttons to NSTouchBar
  107. Replacing More Reference Objects with Value Types
  108. Do Not Apply Code Heuristics When You Need a Broader Perspective
  109. Refactoring The Archive's ReSwift Underpinnings
  110. Replace RxSwift View Model Types with Free Functions
  111. Programmatically Add Tabs to NSWindows without NSDocument
  112. NSAppearance Change Notifications for Dark Mode and RxSwift Subscriptions

2018 36

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

2017 54

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

2016 131

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

2015 103

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

2014 48

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

2013 23

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

2012 8

  1. App Sales and Hourly Earnings Calculated
  2. Parsing YAML Frontmatter in Ruby
  3. Nanoc3 Boilerplate
  4. Interactive Guide to Blog Typography
  5. Link Love: practicallyefficient.com
  6. Calendar Paste release
  7. Remove Objective-C method declaration fluff with Keyboard Maestro
  8. iOS Project coming soon

2011 2

  1. nvALT review
  2. MultiMarkdown 3.0b1

2010 9

  1. Awesome new Notational Velocity
  2. Bringing Notational Velocity to a new level of massive text editing
  3. Multi-Markup Notational Velocity
  4. How did Steve add Markdown to Notational Velocity?
  5. Too many Notational Velocity forks?
  6. Notational Velocity fork with fullscreen mode, menubar app, and more
  7. Markdown HUD for Notational Velocity
  8. Markdown Preview for Notational Velocity
  9. Introducing MultiMarkdown Notational Velocity

Undated 1

  1. Structured Overview