• I am working as a clerk for a voting location in my city today. We are electing a mayor, city councilors, and school committee members.

  • 4D3961B3-493B-45B7-A871-97535CD9B954.jpg

  • Seen while out walking:


  • Christian Selig:

    Amplosion ⚡️ is a simple app with a twist. On iOS 15 as a Safari extension it automagically redirects AMP links to their normal version, with powerful customizability and stats.

    This is brilliant.

  • I just released Unread 2.8 with support for extra large widgets, Quick Notes, and more.

  • There is a mayoral primary in my city today. I am working at the polls. If today is election day for you, please vote.

    This scene from The West Wing always inspires me on election days:


  • Yesterday I launched the Webpage Text API: a cloud service that lets an app or web service request the HTML content of a webpage without the junk (chrome, navigation, ads, and scripts) that clutters modern webpages.

  • I just released Unread 2.7, an update that improves the experience of reading linked list articles such as those from Daring Fireball, MacStories, and Hacker News.

  • I have a house guest. She does not like looking at the camera. 3B011185-391F-4D58-9809-15E21D985CCC.jpg

  • At the New Hampshire Fisher Cats game. D1FE9773-97E5-47FD-A0FD-6D71117CE150.jpg

  • Seen on my morning walk. DDDDC625-A14B-44FB-8003-E38D7772DA66.jpg

  • Google Maps has a low quality photo of me on my walking route. AD7A7293-8528-4C16-810F-2CF83D8DB57C.jpg

  • I filed FB9188387 describing a serious problem with App Store Connect accepting apps compiled by Xcode 13.

    If the app contains Objective-C code with an NSDictionary defined using @{ @"key": @"value" } notation, App Store Connect will reject it.

    This post has more details.

  • I just release Unread 2.6 with:

    • Full-text search capabilities
    • A compact article list option for iPhone
    • More flexible caching settings
    • A variety of additional improvements
  • WWDC Sessions

    These are the WWDC sessions I am most eager to watch:

    • Add intelligence to your widgets
    • Focus on iPad keyboard navigation
    • Get ready for iCloud Private Relay
    • Meet async/await in Swift
    • Ultimate application performance survival guide
    • Meet StoreKit 2
    • Customize and resize sheets in UIKit
    • Demystify SwiftUI
    • Explore WKWebView additions
    • Meet AsyncSequence
    • Meet TextKit 2
    • Move beyond passwords
    • SF Symbols in UIKit and AppKit
    • Secure login with iCloud Keychain verification codes
    • Send communication and Time Sensitive notifications
    • Use async/await with URLSession
    • Build Mail app extensions
    • Support Full Keyboard Access in your iOS app
    • Support customers and handle refunds
    • Accelerate networking with HTTP/3 and QUIC
    • Design for Safari 15
    • Write a DSL in Swift using result builders
  • At the New Hampshire Fisher Cats game. D18A85A5-A8BF-4AB6-8684-6BA6198CF8A5.jpg

  • As of today: fully vaccinated. 💉🎉

  • I spent the day fixing porch steps. In related news my muscles have announced that I am old.

  • I got my second shot today. With mask restrictions being lifted so quickly, I am going to be particularly cautious over the next two weeks.

  • I got my second shot. 💉

  • I got shot #1. 💉

  • A sad end to a 115-day streak. 4B82576A-3F19-419D-9FB7-116F0D7A8755.jpg

  • I bought a ticket to attend this year’s 360|iDev remotely.

  • A 100-day streak. 00A78DEF-E6A1-4E2F-BD4B-F6AA436C6406.jpg

  • Congratulations to @brentsimmons and the @NetNewsWire team on the launch of NetNewsWire 6.0 for Mac!

subscribe via RSS