2014–2026
1,357 posts
2026 15
September 2026
August 2026
- After Fixin’ the Bugs
- Tech Choices
- James Dempsey’s Breakpoints Jam in Seattle Aug. 20
- James Dempsey’s Breakpoints Jam in Seattle Aug. 20
July 2026
June 2026
March 2026
February 2026
January 2026
2025 10
November 2025
October 2025
August 2025
- Writing Mac and iOS Apps Shouldn’t Be So Difficult
- Tough Season in the Apple Fields
- Breakpoints Show Thursday in Seattle
June 2025
May 2025
March 2025
2024 6
October 2024
August 2024
February 2024
January 2024
2023 3
December 2023
June 2023
February 2023
2022 2
November 2022
January 2022
2021 29
October 2021
June 2021
May 2021
April 2021
- Running with Colors
- The lack of a price tag seems almost criminal
- I’m Still Living with the Longterm Effects of a Disease that Now Has a Vaccine
- The Perfect To-Do System Is Not Just Around the Corner
March 2021
- NetNewsWire 6.0 for Mac
- NetNewsWire 6.0b4 Is a Final Candidate Release
- Benefits of NetNewsWire’s Threading Model
- How NetNewsWire Handles Threading
- New in NetNewsWire 6: iCloud Syncing
- The Hottest of All Xcode Tips
- New in NetNewsWire 6: Syncing Via BazQux, Inoreader, NewsBlur, The Old Reader, and FreshRSS
- New in NetNewsWire 6: Twitter Search Feeds
- Six Beta
- NetNewsWire 6.0a6 for Mac
- Aunt Jen’s and Uncle Pete’s Live Online Show
February 2021
- Mysterious SwiftUI Crash
- Slow House
- Vampire’s Run
- In case they’re interesting or fun to mess with — here’s…
- Computer Music
January 2021
2020 92
December 2020
- When Are We Back To Normal?
- I remember Rudolph the Red-Nosed Reindeer as my favorite of…
- Apple’s SSL Metrics Is Hanging My App
- The Big Sur Sneeze
November 2020
- My aunt Jen has narrated a book — Mermaid Eclipse by…
- No Jedi
- Normalizing Care
- I’m so happy today — and full of gratitude to everyone…
- NetNewsWire 5.1.2 for Mac
October 2020
September 2020
- From time to time, often around a new release of…
- NetNewsWire 5.1 for Mac: Feedly Syncing, Reader View, More
August 2020
- Worrying Effect
- NetNewsWire 5.1d3 with Feedly Syncing
- Desktop Means Web
- I just posted our current NetNewsWire plans on the NetNewsWire…
- Walking Home from School
July 2020
- The Overdog Lovers
- I Got Teed Off and Went on a Long Rant About This Opinion Piece on the App Store
- Apple’s Thirty Percent Cut
- When I was a kid, I put all of my hopes…
- I keep noticing that people say they “felt okay” about…
- Reminder: it’s a zillion times easier to hack Twitter and…
- On “the blind leading the blind”
- Imagining SwiftData
- Imagining an Open Source SwiftUI
- Apple Privacy Changes
- I Had Been Worried About the Mac
- Reporting in After More Than a Month at Audible
- Accessibility and the Dynamic Nature of Objective-C
June 2020
- Work at Universe
- Somewhat Live-ish and Around the Same Time as WWDC
- WWDC 2020 and NetNewsWire
- The App Store Doesn’t Make Apps Safe
- The iOS App Store Brings Users Only Because It’s the Only Choice
- I can’t reconcile in my mind the tension between Apple…
- One Advantage of the App Store That’s Gone
- Reading, Listening
May 2020
- Why NetNewsWire Is Fast
- Default Feeds Are Okay
- Focusing
- My New Job
- NetNewsWire 5.0.1 for iOS Released
- My Mac App Store Debate
- On Talking with the Duet Folks
- More on the Default Feeds Issue
- Heads-Up to RSS Reader Authors
- The Ideal iPhone App First-Run Experience Is None At All
- What Happened When I Looked at Two Mac Apps Today
- Interview Loops These Days
- Memory Hole
- Some people are starting to act as if this whole…
April 2020
- Me and Newark, NJ
- NetNewsWire Code Layout
- After Two Months of Quarantine
- A Coding Challenge Can’t Show How I Solve A Problem
- Practicing the Coding Challenges
- Proposal: instead of calling these video things we do “happy…
- NetNewsWire and Accessibility: the Podcast Episode
- NetNewsWire Status: April 2020
- Day 36: Radioactive but Uninteresting
- Overwhelmed in a Good Way
March 2020
- Looking for Work
- The iOS and Mac Markets Are the Same Size
- On Building NetNewsWire
- Slack Group for Socializing
- Proxyman
- Two Weeks at Home
- NetNewsWire Download Numbers
- On Alternate App Icons for NetNewsWire for iOS
- NetNewsWire 5.0 for iOS Shipping
- Adam Klobuchar
- More Life in Seattle
- Washington State Primary Next Week
- Life in Seattle
February 2020
January 2020
- More Bug Math
- Bug Math
- Crash Math
- Fair Isle Brewery Opens Today
- Jeff McLeman
- Uniform Type Identifier Bug on iOS — and How It Affects NetNewsWire
- On Replacing OperationQueue
- The hottest team in iOS development keeps on rockin’! We…
- Immutable Swift Structs
- The NetNewsWire team continues to rock — there’s a new TestFlight…
- NetNewsWire for Mac Mystery Scrollwheel Crash
- Estimating NetNewsWire for iOS Demand
- The New Ranchero Software
- My New Year’s Resolution Is to Focus My Anger
2019 182
December 2019
- NetNewsWire won an Upgradie for Best Newcomer Mac App! The…
- There’s a new public TestFlight build of NetNewsWire for iOS.…
- KVO, My Enemy
- Reminder: Select and Choose Are not Synonyms
- How We Run the NetNewsWire Open Source Project
- NetNewsWire 2020: Roadmap Schmoadmap
- NetNewsWire 2019 Year in Review
- NetNewsWire 5 for iOS Public TestFlight
- I can’t help but wonder if — given equivalent knowledge of…
- Why I Listen to Podcasts at 1x Speed
- The Apple Curtain
November 2019
- NetNewsWire Status: Progress Toward Shipping the iOS App
- A Naming Challenge
- For the entire 20 years of inessential.com, I’ve been in…
- Happy 20th to This Blog!
- This Feature Should Be Easy
October 2019
- Amateurs
- You Choose: Follow-Up
- ETAs: Follow-Up
- You Choose
- No ETAs
- NetNewsWire 5.0.3 for Mac Released
- SwiftUI Is Still the Future
- NetNewsWire 5.0.3b2 is faster — and it adds the ability to…
- NetNewsWire OS Compatibility Strategy
- Omni Job: Senior Front-End Web Developer
- Xcoders 15th Anniversary
- NetNewsWire 5 is all good to go with Catalina! New…
- NetNewsWire Status
- Dealing with entitlements, capabilities, provisioning profiles, app groups, and signing…
- You Should Get a Flu Shot
- Unicorns
- On Bullying in Our Community
- NaNoWriMo is next month, and I will continue my streak…
- This leaked audio from Facebook — where Mark Zuckerberg promises…
September 2019
- I had the fun of interviewing old friend Daniel Jalkut…
- NetNewsWire 5.0.1 Released
- Had to get a new key fob at work today…
- On Syncing NetNewsWire Using iCloud
- Markos Charatzas writes about his excitement in joining the Apple…
- On the Many NetNewsWire Feature Requests to Show Full Web Pages
- On My Funny Ideas About What Beta Means
August 2019
- I love this NetNewsWire write-up on WP Tavern.
- NetNewsWire 5 Feature Requests
- Follow-Through
- Daniel Figures Out One of the Two Crashing Bugs
- How Release Day Went
- NetNewsWire 5.0 Now Available
- End of the Line for NetNewsWire 3.3.2
- The NetNewsWire blog has the details on NetNewsWire 5.0b5 — which…
- Immunization
- I think we’re still on track for releasing NetNewsWire 5.0…
- NetNewsWire Public Beta
- Three Podcast Episodes
July 2019
- A Third Text Measurement Caching Trick
- A Couple Handy Tricks for Text Measurement Caching
- On the Next Swift by Sundell Podcast
- To write an iOS app, you have to learn Objective-C,…
- I wish Swift had some kind of syntax that declares…
- NetNewsWire Status: Almost Beta
- No Algorithms Follow-Up
- Old Bloggers and New
- No Algorithms
June 2019
- I can’t help but picture the 15-year-old — or 45-year-old — who’s…
- Direct and Indirect Interfaces
- Brett Terpstra writes about how scripting runtimes are being removed…
- Impostor Syndrome
- Xcoders Podcast
- On Public Betas
- One of my favorite moments of all The Omni Show…
- The fact that DisposeBag is not a name in Apple’s…
- Thing you should know: Mark Boszko — my friend, co-worker, and…
- Seattle Xcoders Tonight: WWDC Topics
- In the Sweet Setup’s review of iOS RSS readers from…
- NetNewsWire CI, New Technote
- NetNewsWire Contributing, Code of Conduct
- NetNewsWire Status
- Catalina compatibility tip: don’t use NSFont as a key in…
- NetNewsWire 5.1 Planning
- Short Stuff
- My Blogging Setup These Days
- NetNewsWire 5.0a2 is up!
- Putting My World Back Together
- The NeXT Era Ends, the Swift Era Begins
- WWDC 2019 First Words, Which I May End Up Eating Later, but Hopefully Not
- Maurice Parker writes Proposed NetNewsWire Branching Strategy. Discussion on the…
May 2019
- The Best Thing About WWDC
- NetNewsWire Alpha One
- NetNewsWire Meetup at WWDC
- NetNewsWire 5.0d17: Feature Complete
- Toolbars Without Button Titles
- Still Fearing the Reaper
- New website: macopenweb.com is a single-page directory of “open and…
- I’m currently testing FeedBin syncing in NetNewsWire, and just filed issue…
- I’m so looking forward to LIVE near WWDC — not just…
- Is it true that UISplitViewController doesn’t support three panes? If…
- Fiery Feeds is looking pretty damn good!
- Slack has a new thing — I think it’s new, anyway…
- ScriptWeb for iOS found: it’s Automation Orchard. :)
- Here’s what’s cool for me: normally I’d be stressing right…
- ScriptWeb for iOS Should Be a Thing
- NewsWave developer writes about his new app, including the principles…
- I finally converted this site to SSL. It’s not the…
- I discovered just today that there’s an independent forum for…
- Becky Hansmeyer writes, wisely, of App Store pricing, that “you’re…
- Dave Mark wonders if Marzipan apps will be available only…
- More to read: Martin Pilkington on Appreciating AppKit, Part 1.…
- Craig Hockenberry’s What to Expect From Marzipan should be required…
- The Feature I Most Want in Web Browsers
- NetNewsWire/Rainier Status
- Elementary Swift: Catching the Actual Error
- Post-WWDC Lightning Talks at Seattle Xcoders: Speakers Wanted
April 2019
- NetNewsWire Syncing Implementation Roadmap
- NetNewsWire Technotes Added
- The Under-Appreciated Awesomeness of Apple Events (the Technology)
- Freedom
- NetNewsWire Now Running on iOS
- Swift Generics Improvements
- More Thoughts at Random on Blog Search Engines
- Wishing for Blog Search Engines
- Jeffrey Zeldman, Nothing Fails Like Success: On an individual and…
- WKWebView Rendering Latency in 10.14.4
- On the latest episode of The Omni Show, Annette Fuller,…
- Efficient Software
March 2019
- Follow-Up on Publishing NetNewsWire on the Mac App Store or Not
- NetNewsWire on Mac App Store or not?
- Seattle Xcoders meeting this week is unofficial — no actual meeting.…
- NetNewsWire Sync Diary #1: It Starts with NSBezierPath
- On Twitter, Pádraig asks a great question, and probably every…
- We don’t take him seriously because he’s crazy. But crazy…
- The Nordic Museum in my neighborhood is now officially the…
- Big story on RSS readers in the iOS App Store…
- Some More RSS-y Things
- Reeder 4 beta for Mac is up! I had been…
- Back in the old days, when I would hear that…
- Feed Discovery with Feed Compass
- Questions about Marzipan Apps on the Mac
- Text-Editing Key Bindings and the Mac
- Implementing Single-Key Shortcuts in NetNewsWire
- Xcoders Speaker Needed
- Cool Stuff from The IconFactory
February 2019
- NetNewsWire Feedback Incoming
- Our community is mourning the loss of Tristan O’Tierney today.…
- Joshua Blankenship misses 2004 and personal websites. (Via Colin Devroe.)
- NetNewsWire 5.0d16: Actually Usable Now
- The ODB Editor Suite: What I Remember
- There’s a measles outbreak in Washington State, where I live.…
- While working on show notes for an upcoming episode of…
- In the latest episode of The Omni Show, I am…
- NetNewsWire Status: February 19, 2019
- Jonathan T explains how to activate Apple ID 2fa when…
- Two-Factor Authentication and Developer Accounts
- Brett Terpstra writes about blogging, ethics, and thin skin. I’ve…
- Daniel Jalkut has bad news for Blogger users — Google…
- There’s still snow everywhere — but the sun just came…
- Cliff Mass, Seattle’s favorite weather blogger, writes that the end…
- Cheri Baker writes about Spotify in Dear Podcasters...: I fear…
- NetNewsWire Roadmap 2019
- National Weather Service Seattle lets us know what’s coming up.…
- Michael Zornek writes (and this is the entirety of his…
- Roadmaps
January 2019
- There should be a Roger Stone emoji.
- Seattle Xcoders special fifth Thursday unofficial meeting is tonight at…
- Craig Hockenberry wrote up a simple WebKit feature request: Add…
- TigerLaunch
- The best book I’ve ever read on programming and making…
- In 2015 I wrote a series of articles on How…
- The latest version of NetNewsWire includes a crash log reporter.…
- NetNewsWire 5.0d8 has been released. Check for updates!
- Passwords and Muscle Memory
- Mark All as Read
- One of the best reasons for getting rid of a…
- Unofficial Seattle Xcoders — where we just eat, drink, and talk…
- Xcoders Blog Renovation Phase Two
- Manton Reece writes, “I think 2019 is going to be…
- Jean MacDonald writes a message to her friends at Facebook…
- Coyotes in my neighborhood have started drinking.
- Colin Devroe writes that RSS is not dead. Subscribing is…
- On Public Bug Trackers
- NetNewsWire Privacy Policy
- I’ll actually be attending the Xcoders meeting tomorrow — not just…
- The web will, eventually, make everyone a crime victim.
2018 127
December 2018
- NetNewsWire Diary #3: The Crash Reporter
- Prison
- New Xcoders Site
- Almost all the cats and dogs alive during 9/11 are…
- On Using Stock User Interface Elements on the Mac
- Cheri Baker, Eight months without Facebook: When we allow sites…
- So Basic It’s Not Even Funny
- I’m on the latest Micro Monday podcast with Jean MacDonald!…
November 2018
- Crash Catcher for NetNewsWire?
- NetNewsWire Status Report: the Last 10%
- Is there an App Store for Saudi Arabia? I don’t…
- Rainier Diary #10: Ballard’s Tokenizer
- One Year of The Omni Show
- After the firing of Attorney General Jeff Sessions today — not…
- Why I’m Writing These Particular Apps
- Vote for Democrats Everywhere
October 2018
- The latest episode of The Omni Show should be of…
- Introduction to Rainier’s Scripting Language
- Why Create a Frontier-Inspired Scripting App?
- NetNewsWire Article Age Limits
- The Design of NetNewsWire’s Timeline
September 2018
- NetNewsWire Diary #2: Switching to OPML
- NetNewsWire 5.0d7 is up! See the blog for change notes.
- Unofficial Seattle Xcoders tonight — at 6:30 pm at the Cyclops…
- I’m 50. I vote every single time, no matter what.…
- The latest episode of The Omni Show is ostensibly about…
- There are just 15 seats left for Swift by Northwest.…
- My friend Geoffrey — the one with the big beard…
- Gus in 2009: Learn to be your best critic, and…
- Tech Diversity
- Oh God Not This Again
- Dana Blankenhorn, No More Mr. Nice Liberal: It only ends…
- I like that Feedbin is private by default.
- NetNewsWire 5.0d6 adds Mojave dark mode support.
- Why NetNewsWire 5 Doesn’t Support Nested Folders
- NetNewsWire History
- Daniel Jalkut, Saying Goodbye to NetNewsWire 3: Since I’m not…
- Decision: Not Publishing NetNewsWire 3.x
- Medium is deprecating custom domains. Owning your own content means…
- NetNewsWire Diary #1: Automatic Hashing and Performance
- How To Add Your Micro.blog Feed to NetNewsWire
- New World NetNewsWire
- NetNewsWire 5.0d1
August 2018
- Historical code: NetNewsWire Lite 4.0
- NetNewsWire Comes Home
- Social Media Mobs
- Free Reeder 3
- Unofficial Seattle Xcoders special fifth Thursday event is this week…
- I’m a Goddamn Social Media Professional
- I’m a little skeptical about Mastodon — but happy to…
- On my latest The Omni Show — the podcast I do…
- I‘ve said it before: my fondest hope is that all…
- Real Life in Seattle
- Dave Winer wants to get Frontier running on Linux. Any…
- Icro, the Micro.blog client for iOS (which I use), is…
- Rainier Diary #9: The Renaming
- There is no scenario where the Twitter we loved in…
- No Ill Effects
- The Public Square
- Nikhil Sonnad, in Everything bad about Facebook is bad for…
July 2018
- The Old Reader blog — Thanks, Google!: It’s now clear…
- Nick Heer on The Bullshit Web: The vast majority of…
- Evergreen Diary #10: Syncing, Feed Data, and Swift 4.2
- I don’t remember the opening day of the App Store…
- Twelve-bar Blues
June 2018
- Uncle Whisky
- Om Malik on blogging: They are incomplete and by nature…
- On Not Doing Prepared Talks Any More
- Fascism These Days
- The Easy Target
- What I Actually Do
May 2018
- Rumor: Running iOS Apps on Macs
- Delta Blues
- The Developers Union
- OmniFocus 3.0 for iOS ships in four weeks. As Marketing…
- Making Apps Is Harder Than It Needs To Be
- Godot.framework
April 2018
- Check out Automation Orchard, a new site by Rosemary Orchard…
- Evergreen/Frontier Status: ODB Work
- You’re Practically a Mac Developer
- The latest episode of The Omni Show is a special…
- There’s an unofficial Seattle Xcoders this Thursday at the Cyclops…
- I was happy to read that Unread 1.9.3 now handles…
- On the Omni blog I wrote up how we do…
- Now I’m in a Pickle with this Web Stuff
- Laura Savino explains the difference between optimal compiling and compiling…
- On the blues harp: A diatonic harmonica is designed to…
- Jason Kottke reminds us that blogging is most certainly not…
- The View-Source Web
- Colin Devroe: History belongs to those willing to hit publish.
- Steven Aquino, in Giving Tweetbot a More Accessible Design, writes…
- Micro.blog now supports podcasting. Wow. Manton is busy.
- I interviewed Aaron Bendickson — Omni sysadmin, pinball wizard, Very Patient…
- Jean MacDonald: A Guide to Micro.blog For People Who Have…
- Pitas.com, an old blogging community, is being relaunched via Kickstarter.…
- I’ll be hosting The Omni Show Live at a conference…
- Evergreen Status
- RSS Readers and Posts Without Titles
- One of the things I love about Omni is how…
- Maybe you haven’t played Maelstrom since the ’90s. Maybe you…
- Why I Use Micro.blog
- Blogging System Rewrite
- I’ve been rewriting my blogging system — more on why…
March 2018
- The Omni Show #10: Dave Lonning, Documentation Wrangler
- Marketing Human
- Greenwood: Unfinished Microblogging System
- Script Debugger 7
February 2018
- The Omni Show #9: Ainsley Bourque Olson, OmniPlan PM
- OmniOutliner 3 for iOS
- The Omni Show #8: Orion, Bug Hunter
- Brenty’s First Pod
- On Missing the Point
- Why Micro.blog is Not Another App.net
January 2018
- The Omni Show #7: Ken Case Talks About the 2018 Roadmap
- Evergreen Diary #9: On IndieWeb
- Evergreen Diary #8: Coding Guidelines
- Evergreen Diary #7: Syncing and Immediate and Deferrable Actions
- Evergreen Diary #6: Proposed Sync Design
- The Omni Show #6 with Liz Marley
- Evergreen Diary #5: Send to MarsEdit
- Evergreen Diary #4: Send to Micro.blog
- Mentions: Proof-of-Concept
- App Idea: Inside Story
- App Idea: Mentions
- Evergreen Diary #3: On Punting
- The Omni Show #5 with Mark Boszko
- 2018: Some Hope
2017 48
December 2017
- Evergreen’s Parser as Separate Open Source Framework
- WKWebView Workarounds
- Evergreen Diary #2: Random Notes
- The Omni Show episode #4 with Andrea McVittie, Omni Slack Group
November 2017
October 2017
August 2017
July 2017
June 2017
May 2017
April 2017
- Frontier Diary #7: Pretty Much Everything Throws
- Frontier Diary #6: Ballard, from the Parallel Universe
- My Microblog
- Frontier Diary #5: Values and Progress on the Language
- Save $300 on CocoaConf Next Door
- Frontier Diary #4: The QuickDraw Problem and Where It Led Me
- Frontier Diary #3: Built-in Verbs Configuration
- Frontier Diary #2: Two Good Ideas that Aren’t Good Anymore
- Two Little-Known and Completely Unrelated Facts
- iOS, JavaScript, and Object Hierarchies
- CocoaConf Near WWDC
- OmniOutliner 5.0 for Mac
- Frontier Diary #1: VM Life
March 2017
February 2017
January 2017
2016 110
December 2016
- Why I Prefer Protocol-Oriented-Programming in Objective-C to Swift
- Two TV Shows
- Elites
- 2016 and 2017
- Vesper Open Source #3: the iOS App
- Vesper Open Source #2: the API Server
- Vesper Open Source #1: the Boring Part
- The Outline
- One Stage
- CocoaConf Yosemite: 20% off sale
November 2016
- The Reverse of the Halo Effect
- This Fascist Shambles and the End of Medicare
- Sal
- OmniOutliner 5 Pro Public Test
- (R)
- Empathy and Anger
- Let the Healing Not Begin
- The Year the Holiday Plans Were Upset
- Notes
- Apps I’ve Made
- The Commandment
- The Calls for Unity
- Responsibility and Hope
- On Leaving Twitter
October 2016
- The Man Party and the Woman Party
- Surface Studio Notes
- Dash and Apple’s Statement
- Apple’s Judicial System
- Open Floor Plans
- [Sound Off] Childcare at AffectConf 2016
September 2016
- Memory Graph Debugger Tips
- Make It Seem Like Nothing
- Super Time on Supertop
- The Cool Kids Psychosis
- Secret Project Diary #4: MUM
- Adding a Notification Observer in Swift Using a Name Defined in Objective-C
August 2016
- The Lonely Person
- Vesper Sync Shutdown Tonight, Open Source Plans
- On Beta Testing
- Why Vesper Didn’t Start as a Web App
- More Notes on Vesper
- Last Vesper Update, Sync Shutting Down
- Radical Infantile Terrorism
- In Ryan’s Shoes
July 2016
June 2016
- My Rules for Mutable Foundation Collection Objects
- Copy vs. Strong NSArray Properties
- So Merlin Says to Me…
- A Meaningful WWDC
- Seeking Clarification
- The Clean Screen Habit
- Oldie Praises the Old Old Ways
May 2016
- Wil, Chris, Waffle, Samuel, Soroush
- A Definition of Dynamic Programming in the Cocoa World
- Oldie Complains About the Old Old Ways
- WA Primary vs. Caucus
- Paul, Daniel, Dave
- Dynamic Swift Comments on Hacker News
- Ash and Marcel
- Updating Local Objects with Server Objects
- Layers Conference
- Gus and Craig
- What I’m Doing With These Articles
- 0.0001% of the Way to Core Data
- Responder Chain Followup
- The Case for Dynamic-Swift Optimism
- A Hypothetical Responder Chain Written in Swift
- The Tension of Swift
- WWDC Guesses
- OmniFocus Encryption
- App Camp Purple Shirts
- [Sound Off] Layers & CODE2040
April 2016
- In Praise of Swift
- Performance These Days
- Quantify.app
- High-Level Events
- The Objective-C Version
- Reactive Followup
- Comparing Reactive and Traditional
- The Non-Reactive Solution
- On UIKit for Macs
March 2016
- Sound Off Round 2 - UIKonf
- How It Went at the Caucus
- OmniOutliner 4.5.1
- CocoaConf Seattle Sale
- Notes from a Conditional Breakpoint
- Nerds in a Room
- Chug on Fixing the App Store
- Indies and the App Store
- Question for Ted Cruz
- Lizcast
- OmniOutliner 4.5
February 2016
- OmniDev
- OmniJobs
- It Will Be Trump
- Origin of Good (and Bad) Hair Day
- River5
- Stop Watch
- On Sanders Governing
- CocoaConf Podcast with Me
- How the Republicans Win
January 2016
2015 128
December 2015
- How to Solve Tabs vs. Spaces Forever
- The Hillary Landslide
- Group Communication App Models
- Suspended Ledes Suck
- More Scenarios
- The Nightmare Scenario
- I’m Harping on This
- Face Value
- On Apps that Get Acquired
- Low-Hanging Fruit
- Blogs by Women: the Twitter List
November 2015
- Blogs by Women: the OPML File
- My App SpotLight
- Blogs by Women
- We Only Sing About it Once in Every 20 Years
October 2015
- The Debate Over Direct Access
- Social Anxiety
- The Opposite of the Art World
- When the Weapon Was Pointed at Me
- In the Room
- OmniPlan 3
- Initiative
- So Upset
September 2015
- Omni Swift Bikeshed Club Week Three
- Matt Remembers Alex
- Alex King
- A Secret Santa Solution
- Help Needed
- Screen Size and Money
- Why We Love Indies
- CocoaConf San Jose Early Bird Thing
- On Today’s Apple Event
- The Real Question
- NetNewsWire 4
- OmniFocus for Mac 2.2.5
- Swift Book Club Book?
August 2015
- Swift Diary #13: The Addiction
- On Scripting
- OmniDev Blog
- Swift Diary #12: The P Word
- Swift Diary Page
- People Were Quite Rightly Outraged at Me
- Swift Diary #11: Objective-Swift
- Swift Diary #10: Changes to Properties
- Swift Diary #9: Where I’m Stuck
- Mapping with Wil
- Swift Diary #8: forwardInvocation
- Swift Diary #7: Protocols, Arrays, and Casting
- Swift Diary #6: Window Controller Initialization
July 2015
- Swift Diary #5: Yet More Uses for KVC
- Swift Diary #4: KVC Again
- Swift Diary #3: Arrays, Protocols, and Pointer Equality
- How to Hang Mail, TextEdit, and Contacts
- Swift Diary #2: KVC
- Manton News
- Swift Diary #1: Class or Struct from String
- Secret Projects Diary #3: Decision to Make
- Solving Problems I Don’t Have, Except that I Do Have Them
- Secret Projects Diary #2: Swift 2.0 Protocols
- The Liscio Approach to Variants in Swift
- Curtis Love
- So Much Love
June 2015
- Love
- Swift question: Enum vs. Struct for Variants
- Varieties of News Readers
- Swift Protocols Question
- More About http Deprecation
- Secret Projects Diary #1: Post-WWDC Notes
- How Not to Crash Series Finished
- How Not to Crash #9: Mindset
- How Not to Crash #8: Infrastructure
- Resigning from Q Branch
May 2015
- How Not to Crash #7: Dealing with Nothing
- How Not to Crash #6: Properties and Accessors
- How Not to Crash #5: Threading, part 2
- How Not to Crash #4: Threading
- How Not to Crash #3: NSNotification
- How Not to Crash #2: Mutation Exceptions
- How Not to Crash #1: KVO and Manual Bindings
- No Forgiveness
- Whenever…
- Conference Scholarships for Women in Design
- The Man Who Deleted All His Tweets
- OmniOutliner for Mac 4.2.1
April 2015
March 2015
- Dave on Silo-Free Software
- Two Apps
- OmniOutliner 4.2 Public Test
- New Blogging App: MyWord Editor
- NSSegmentedControl with Menus
- Three Down, One to Go
- NetNewsWire Status: Everything I Know
- OmniFocus, Vesper
- Swift Blocker
- One Way to Do Surveillance
- Russian Jokes
- Behind the Office Doors
- dispatch_once
- Hard Syncing
- Misinformation part two
- Misinformation
- Beware of _flags
- Xcode’s View Debugger
- Init Question
February 2015
- Ethics
- Reason Number 33,483 to Hate Programming
- Looping Through Objects in an Array
- OmniFocus 2.1 for Mac Ships
- Three Xcode Tips
- Vaccines Again
- Xcode + UXKit
- The Repository of Crashes
- Swift 1.2 Beta
- UXKit Again
- UXKit Skepticism
- A Performance Enhancement for Variable-Height NSTableViews
- Random Swift Things
January 2015
2014 605
December 2014
- Before the Gold Rush
- Ramblin’ Nick
- Meta
- Interface Builder Again
- Favorite Apps
- Bill Talk
- [Sponsor] WinterFest: the 2014 festival of artisanal software
- Safari in Your App
- Designated Initializers
- [Sponsor] Harvest - Plan Your Team’s Time
- OmniFocus on Best of 2014 List
- 20 Years of Script Debugger
- Overflow
- OmniFocus Video Field Guide
- Testing
- What I Don’t Get About Year-End Retrospectives
November 2014
- Print Numbers to the Console Painlessly with this One Weird Trick
- Web Performance
- Tom on Extensions and Sharing Data
- Le Guin
- Tumult Wow
- In Which Omni Is Compared to Taylor Swift
- Allen on WebKit
- WatchKit
- Native and Web Apps
- Bill Van Hecke is Here to Help
- [Sponsor] Tinderbox
- The Case Against } else {
- How to Set the Instruments Inspection Range
- When Split Views and Windows Fight for Your Mouse
- [Sponsor] Mandrill, the Fastest Way to Deliver Email
- First Go at Using IB_DESIGNABLE and IBInspectable
- Vote
- Yosemite Sharing Menu
October 2014
- CocoaConf Seattle
- A Day of Programming
- OmniJobs
- Mac Vibrancy Tips
- The Risk of Products Failing
- On Glassboard
- Unbalanced calls to begin/end appearance transitions
- ~/Projects/Bugs/
- Bugs
- [Sponsor] mParticle solves integration and marketing challenges for app developers in a single SDK
- 693,500 Scams
- Auto Layout minus Strings
- Dave on the Open Web
- Blog Engine Choice
- First Week at Omni
- Need New Blog Engine
September 2014
- Omni
- Skillet Diner User Interface Lessons
- Skillet Diner (Ballard) Considered Harmful
- UISplitViewController Question
- Reeder and Unread
- How To Steal
- David’s Critique of Swift
- Craig on In-App Browsers
- Glen on Swift Performance
- CocoaConf at Yosemite
- [Sponsor] Underdog.io: Apply to NYC Startups in 60 Seconds
- Dave on Software Testing
- Mark on College Board Testing
- Vesper and New iPhones
- Bryan on Building Share Extensions
- Josh on “Homeland”
- Nick on Privacy
- Charlie on Democracy
- Facts and Thinking
- Code-Signing Confusion
- Spam
- How the Sites Drawer Cost Me Some Publicity
- Vesper, New iPhones, and Editing Fixes
- Eric on Web Architecture
- Timeline Algorithms
- Online Life
- On Criticism and Enjoyment
- Full-Text Search
- The Indie Developer’s Wilderness
- Rock Stars
- Manton on Microblogs
- [Sponsor] Hot-patch and Control production code with Rollout.io SDK (iOS developers)
- Radek on Swift Methods
- Alex on Developing for the Apple Watch
- Tim on Size Classes
- iOS Design Kit
- Pablo on the Apple Event
- Gift Tickets to NSScotland
- This Acquisition Makes Total Sense
- WatchKit Speculation
- What I Can’t Get Over
- Swift Policy
- Apple Watch and Username and Password
- Macworld Love
- Xcode 6.1 and Swift
- Tim on NFC
- First Thoughts After the Apple Event
- [Sponsor] NSScotland
- Mustapha on Blogs
- Dave on JavaScript Apps
- Xcode and Swift Headers Idea
- Santiago on Web Apps
- Client-Side Apps
- Blogs Are Cool
- Simon on Web App Architecture
- Web App Architecture Question
- Dave on Markdown
- Rob on Map (and Filter)
- Craig on the Terminal
- NickH and NetNewsWire
- BASIC Was Cool
- Swift, Strings, and Memory Use Question
- The Atlantic on Twitter
- [Sponsor] thoughtbot
August 2014
- Stimulus Program
- Waffle on Open Standards
- 297,897 Social Media Gurus
- Functions Returning Functions
- Gabe on Truncated Feeds
- On Taking Breaks
- Greg on CloudKit
- Tim on CloudKit
- One Indie Developer’s Tale
- A Vesper Performance Enhancement
- Tuples All the Way Down
- Matt On Swift and iOS 8 Evolution
- Sponsorships Available
- Web Services and Dependencies
- Developer Blogs
- Stingray
- A Rant About Stack Traces
- Justin on Auto Layout Debugging
- Waffle on Social Media
- Facebook Alternative for Schools
- Faux Pas for Xcode
- Ian on the Responder Chain
- More Indie Numbers
- Getting Started with Sinatra for Cocoa Programmers
- Swift Literal Convertibles
- Swift Beta 6 Changes
- Michael on Swift and Dynamic Dispatch
- Server-side Config Files
- Guy on Responder Chain and Table View Cells
- [Sponsor] Presence: access your Mac’s files from anywhere
- Gus on Apple and Seattle
- Shiny Snippets
- iOS Responder Chain Hacking
- Mark on Design
- objc.io on Testing
- An Appreciation of The Leftovers
- Chris on Implicit Optional Chaining
- Josh on Vesper
- David on Optional Chaining
- National Moment of Silence - Seattle
- Kyle on Presentation Controllers
- Xcoders Thursday - Code Reuse and UIViewController Containment
- DB5 to Swift
- carlfish
- Alex on the Changing Business Models
- Ita Design Writeup
- Optional Optionals
- Mattt on Swift Operators
- Russ on Swift Function Currying
- [Sponsor] CocoaLove - New iOS/Mac Conference in Philly
- Swift and Properties
- Louie on Tinkering
- Vesper 2.002
- Dave on Video
- Samuel on His New App
- App Camp for Girls in Seattle
- Maybe Let’s Not Make Array Subscript Return an Optional
- Kyle on targetViewController
- Summer Sale on inessential.com Sponsorships
- Dynamic Type and Self-Sizing Table View Cells
- New iPhones and DPI
- Brianna on Women in the Apple Community
- Custom vs. Standard Controls and Accessibility
- Swift Arrays and Optionals
- Jared on Swift Access Control
- David on Functional JSON
- Objective-C vs. Swift Performance
- iOS 8 Size Classes
- More from Clark on the End of Separate iPhone and iPad apps
- Sign All the Things
- Ita 2
- Jeff on Frameworks and Codesigning
- Device Sizes
- Buy All the Things
- Dave on iOS and Embedded Fonts
- Other Favorite Swift Blog Moved
- For Flux’s Sake
- Swift Beta 5 Changes
- Justin’s Advice
- On Vesper and Working Efficiently
- [Sponsor] CocoaConf: The developer conference for those who think different
- Jared’s Lessons
- App Store Numbers
- Sponsorships Available
- Lukas on App Disillusionment
July 2014
- How to Be Wrong on the Internet
- Ben on Building Businesses
- Mark on Prosperity Gospel Business Reporting
- Why I Love Indies and You Do Too
- Jake on CloudKit and Groups
- Just Is a Four-Letter Word
- Mark on Mobile Software
- CocoaConf Seattle Early Bird Pricing
- Nick B on Leaving Indie Life
- On Pricing More
- Faruk on Indies
- Organization
- Shopster 2013
- iOS Indie Game Numbers
- Tyler on Mac Apps
- Lots of Apps
- More on iOS Indies
- [Sponsor] Creating static blogs made easy!
- I Was Wrong — You Totally Can Use CloudKit for Identity
- Unread’s Numbers
- Setting Expectations About CloudKit
- Who at the Table is an Indie iOS Developer?
- Prefixes Considered Passé
- Better Words
- Swift and Internal Access as Default
- Swift Access Control
- Glassboard Changes
- [Sponsor] UI for iOS: Filling Gaps in the UIKit Framework
- Chris Liscio Does the Hard Work
- Vesper, Auto Layout, and Justin’s Book
- auto_closure
- The End of the Gloomy Source List
- New Database
- A Stock Control Won’t Always Do the Job
- Overcast
- Lettersapp.com Auction Finished
- A Perfect Day for a Pinboard Client
- String Constants
- Second-to-last Day for Lettersapp.com Auction
- Swift Reflection
- Swift Structs and valueForKey
- Swift Blog
- On Adding AppleScript Support
- Core Data Testing
- Standard Controls
- Flux Capacity
- Phishing Attack That’s New to Me
- Lettersapp.com Domain Auction for App Camp for Girls
- [Sponsor] Macminicolo.net - Host a Mac mini in a data center
- Vesper Mac Diary #9 - Not Going to Pass Things Around
- Vesper Mac Diary #8 - Figured Out How to Pass Things Around
- Vesper Mac Diary #7 - Making Work for Apple Engineers
- Vesper Mac Diary #6 - prepareForSegue bug, maybe
- Vesper Mac Diary #5 - Storyboards and Passing Things Around
- Swift Strings
- Medium Swift
- Two Butterflies
- Sponsorships Available
- Vesper Sync Diary #19 - Intermediate Objects
- Swift Links
- Vesper Sync Diary #18 - Where the API Logic Lives
- …is People!
- Vesper Sync Diary #17 - The Problem of Relationships
June 2014
- [Sponsor] UI for iOS: Filling Gaps in the UIKit Framework
- Vesper Mac Diary #4 - Reporting Bugs
- Vesper Mac Diary #3 - Hiding Window Title
- Sale on Mac Apps for Writers
- Vesper Mac Diary #2 - Setting Swift Aside for Now
- Happy Friends
- A Few Small Tips
- [Sponsor] Microsoft Azure Mobile Services
- Swift + JSON Again
- App Architecture
- Mike on Swift
- NSViewController Changes
- Dave on Frontier
- Shared Toolbar Items
- Tom on CloudKit
- Mobile Services’s HTTP API
- C# in Sheep’s Clothing
- Mike on Storyboards
- Vesper Update
- Post-WWDC Thoughts on Rebooting Frontier
- [Sponsor] Microsoft Azure Mobile Services
- Vesper Testing
- App Camp For Girls Seattle
- Spilled Some Old Beans
- Safari + RSS
- Question for Core Data Users on Testing
- Core Data Thoughts - June 2014
- Can iOS Developers Skip Learning Objective-C?
- Seattle Xcoders Thursday
- Vesper’s Custom Navbar
- JavaScript Theory
- Temptation
- One Dumb Bug I Wrote
- JavaScript and Interapplication Scripting
- Vesper Mac Diary #1 - the Plan
- Dave’s Design Diary
- Swift Core Data Stack
- [Sponsor] Microsoft Azure Mobile Services
- Notes on CloudKit
- The Core Data Team Is Screwing With My Head
- WWDC and Design
- Developers
- Swift + Twitter
- Early Thoughts on WWDC 2014
- River4 RSS Reader
- [Sponsor] Microsoft Azure Mobile Services
May 2014
- Why Reboot Frontier?
- One Year After the RSS Apocalypse
- The Record special #2 - Me
- Dave on Vesper and Sync Design
- Questions for my AltConf Talk
- Making of a Cool App for Scientists
- Take a Break
- How It Went on Vesper Syncing Day One
- Q Branch on Debug
- Vesper 2.0 with Syncing
- Rich on WWDC
- [Sponsor] Microsoft Azure Mobile Services
- Carmen’s Headline Viewer
- Jesper on WWDC
- WWDC 2014 Attendee Map
- SQLite4
- Why Skepticism About Templated and Scripted Sites?
- What Happened at UserLand
- Vesper Sync Diary Follow-up
- Of2
- WWDC Parties 2014
- Speaking at AltConf
- Collected Vesper Sync Diary Articles
- [Sponsor] Slingshot
- Mark On Debugging
- Why I Don’t Code Late at Night Anymore
- Habit
- Hard and Soft Crashes
- Vesper Sync Diary #16 - Debugging Syncing
- The Dramatic Nature of the Easiest Bugs to Fix
- [Sponsor] Feedbin
- What Happened at NewsGator
- Sponsorship Open for Next Week
- Seattle Xcoders Tonight
- The Old Reader on Good Ol’ RSS
- Cousin Michael’s Thing
- Error Messages
- [Sponsor] CocoaConf: the developer conference for those who think different
- Property Declarations
- More Coding Nits
- Google AdSense and Analytics
- Ids
- Abbreviations
- Ole on Parallax Scrolling
- Animation Tip
- Scroll Views, Lazy Loading, and Accessibility
- Numerous.app
- $15 Minimum Wage Coming to Seattle
April 2014
- Browsers Should Get Off My Lawn
- Manton on Decentralization
- What the Plans Actually Were
- Apps with Words
- Thanks to Omni
- Build Your Own Scroll View
- Debugging Auto Layout
- Cakebrew
- Layout Code and Screen Sizes
- [Sponsor] NSScreencast
- Popping
- The Cost of iOS 7
- Async Tests
- Pop Animation
- Tvvitter
- Frameworks
- Indie Web
- Green Rocks from Space
- Sponsorship for This Week Available
- Autolayout and Table View Header
- Pull-for-Menu
- UIConundrum
- Mike Lee on The Record
- Lesson on Clarity
- Some Mobile Services Tips
- Mark on DHH on TDD
- Surviving UI Programming
- Sponsorship Changes
- Storyboard Advice
- Testing Singletons
- App Store Improvements
- NSNotificationCenter and Threads
- Mobile Services and Blob Storage
- Glassboard Design Review
- Atom XHTML Content Considered Jerky
- Azure SQL Server Command Line
- UIActivityViewController and Things
- App Camp For Girls in Seattle
- CocoaRadio One
- [Sponsor] Microsoft Azure Mobile Services
- Vesper Sync Diary #15 - Server Testing
- Scaling and Performance
- PROCEDURE
- Craig on X 10.10
- IAC on iOS
- Quartz Composer + Snapping Scroll
- Node + MongoDB + iOS
- Web, Money; App Store, No Money
- That’s No Button
- Skala Color
- App Camp For Girls Pitch Sessions
- Glassboard Board for The Record
- Vesper Sync Diary #14 - Keys
- Clangalyzer
- Got @inessential
- Justin Refactors
- Premature Optimization and Servers
- More on UUIDs and Clustered Indexes
- It’s the API?
- Book Idea
- Vesper Sync Diary #13 part 3 - Thinking Too Much
- SettleApp
- Vesper Sync Diary #13 part 2 - Maybe It’ll Be UUIDs After All
- Drew’s Core Data Sync
- [Sponsor] Briefs
- Vesper Sync Diary #13: Unlucky Numbers
- Twitter Feed for This Blog
- NSDictionary Tackled
- Mark on What’s Really Dangerous
- Big Nerd Dependency Injection
- NSEgoItems
- Browser IAC
- Feature Request for Text Editors
- That Pretty Much Wraps it Up for C
- Backend
- “Security”
- JavaScriptCore Tutorial
- Nat Irons on The Record
- Analytics
- Spring Cleaning
- Constants and Reading and Writing
- Xcode + JSON
- Fresh Xcoders Videos
- Cocoa for Web Services
- Xcoders: Nat on Continuous Integration
- Just Don’t Listen
- Cosmopolitanism
- Build 2014
- Justin on Build
- Brian on Data Migration
- RSS and Title-less Items
- Build Video
- The Record Sponsorships Available
- [Sponsor] Learn More iOS with Treehouse
- Vesper Sync Diary #12 - Let’s Make This Change No Matter How Late
March 2014
- Mark All as Optional
- Mark All as Read
- Sponsorships
- [Sponsor] Love iOS? Work with Heyday!
- Cracking Things Open So I Can Write Tests
- Unfrozen Cave Man Searching
- Android and Fragmentation
- The Record Show Notes
- The Record #7: John Chaffee
- waffle on Satya
- Seattle Apps
- What Did I Just Learn?
- BusyContacts
- On Running Your Own Servers, and Why We’re Not
- Fetching Objects with FMDB and SQLite
- The New Full-Stack Developer
- OmniFocus 2 for Mac Beta
- Vesper Sync Diary #11 - Scaling
- Tweaks
- Cloud Competition
- Rename
- Immutable Objects and Calculated Properties
- Welcome Justin
- New Book
- Immutable Model Objects
- OO and Functional, Cats and Dogs
- Nice Bunnies, Good Bunnies
- Curt on Functional Programming
- More on Functional Programming
- Functions Pure and Otherwise
- Egotistical Bastards
- JSON Pattern
- Paulpourri
- Finger is Recordable
- On The Talk Show
- The Bunnies Experiment
- Mark on Subclassing
- Twitter Help Needed
- Smaller, please
- Blogs on Bitbucket
- Subclassing Follow-up: the Solution
- Indieweb and Feeds
- KVO and Constraint Solvers
- A Case for Subclassing?
- RSS Feeds
- The Record #6 - Tim Wood
- Singletons follow-up
- One Way to Avoid Singletons
- Mocks, Progress
- What Drove Me to Finally Write a Map Method
- Holy Shit Xcode
- Objective-Smalltalk
- App Purchasers and iOS Upgraders
- Imagining a Scripting Language
- The Great Web
- Strange Dialect
- Monsters from the id
- ReactiveCocoa
- Async Execution
- Gocurious
- Tim’s New Mac
- API Design, the Main Thread, and Queues
- Async Startup and Locking
- objc.io on Syncing
- Hard Core
- MetaWeblog API Gist
- Imagining a Node Blogging System for Geeks
- Starting Over
- Flipboard Eats Zite
- Future Design
- Song of Myself
- Talk
- Dr. Strangelayout
- $75 off 360|intersect
February 2014
- Core Data, Concurrency, and Vesper Tags - Again
- Back episodes of The Record
- Paul Goracke on The Record
- Core Data Concurrency and Vesper Tags Question
- Mark on Views and The Single Responsibility Principle
- More About Contexts and Syncing
- Contexts and Syncing
- Stumbling Block
- Why Use a Custom Notification for Note Deletion
- More About Deleting Objects in Core Data
- Vesper Sync Diary #10 - Data Migration
- Vesper Sync Diary #9 - Tutorial Notes Edge Case
- Salinger 2015
- Core Data and Deleting Objects
- Core Data Temporary IDs and Threading
- Scaling Servers
- This American Dysentery
- Sartorial
- Vesper Sync Diary #8 part four - Random IDs
- Vesper Sync Diary #8 part three - Unique IDs and Hashing
- Super Super
- Paul on Paul’s Core Data Talk
- Vesper Sync Diary #8 part two - More about Unique IDs
- Vesper Sync Diary #8 - The Problem of Unique IDs
- Fetching Portions of Entities
- Paul’s Talk on Core Data
- Gus Mueller on The Record
- Actual Data
- NSSuperString
- Xcoders Tonight - Paulie G. on Core Data
- home.mcom.com
- On Replacing Objective-C
- Vesper Review
- Thank You for Calling! #1
- Storyboards and Static Table Views
- IBAction vs. void
- Waffle on Microsoft
- Extracting Links
- More About not Supporting Older OS Releases
- Dropping Support for Older OS Releases
- My First Go at Storyboards
- 10 Years
- Azure Takes Over
- Apology
- Seahawks Win!
January 2014
- Transferring Domains - Day 10
- Greg Robbins on The Record
- The Point of View of the Mouse
- Karl
- D
- Transferring Domains - Day 8
- Describing RSS
- Dave and Node
- Transferring Domains - Day 7
- Transferring Domains - Day 6
- Transferring Domains - Day 3
- Transferring Domains - Day 2
- Transferring Domains - Day 1
- Network Solutions - The Resolution
- Lex-Sized Hole
- Network Solutions Auto-Enroll: $1,850
- The Record Interviews John Nack
- Manton’s New App
- Glassboard 3.0 Released
- The Record, the Numbers
- Almost 10 Years of Xcoders
- Tim on Software
- Peter Steinberger on UITextView
- The First Go
- UITextView - The Solution
- The Record - now on iTunes
- UITextView Scroll-to-Typing Bug
- My Letterpress rules
- Xcoders: Ken Case and John Chaffee
- Feedshare.net
- My Feeds
- Introducing The Record - Season One, Episode One
- Vesper Sync Diary #7 - Audibles
- Making Things