{"version":"https://jsonfeed.org/version/1","title":"Micro.blog - Douglas Hill","home_page_url":"https://micro.blog","feed_url":"https://micro.blog/posts/douglas","_microblog":{"about":"https://micro.blog/about/api","id":"4525","username":"douglas","bio":"Software engineer at Nutrient (previously known as PSPDFKit) and a former NSLondon organiser. Mostly near London or Innsbruck. Find me ice skating, wakeboarding, skiing or snowboarding.","pronouns":"he/him","is_following":false,"is_you":false,"following_count":314,"discover_count":0},"author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://avatars.micro.blog/avatars/2025/42/4525.jpg"},"items":[{"id":"88215789","content_html":"<p>TIL about the <a href=\"https://developer.apple.com/documentation/contactprovider\">ContactProvider</a> framework on iOS (not Mac). Sounds like a way to build an end-to-end encrypted replacement for iCloud/CardDAV contacts sync if you can get your head around the difference between <code>ContactItemEnumerating</code> and <code>ContactItemEnumerator</code>.</p>\n\n<p><img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fdouglashill.co%2F2026%2Fcontactprovider-framework%2Fscreenshot.png\" alt=\"protocol ContactItemEnumerating: A protocol to provide enumerators for collections of contact items. protocol ContactItemEnumerator: A protocol to provide enumerations of all contact items and changed contact items.\" loading=\"lazy\"></p>\n","summary":"","url":"https://douglashill.co/2026/contactprovider-framework/","date_published":"2026-04-14T07:18:30+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-04-14 07:18","date_timestamp":1776151110,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3mjgtqj26un2n"]}},{"id":"87520571","content_html":"<p>Interesting evening yesterday at <a href=\"https://www.meetup.com/rust-london-user-group/events/313816694\">Rust London</a> learning all sorts. Dan Groshev spoke about <a href=\"https://dgroshev.com/blog/okmain/\">picking a dominant colour from an image</a>. (I used a similar approach in Jamie Oliver‘s Recipes in 2014.) Jérôme Étévé gave a talk on <a href=\"https://github.com/jeteve/mokapot\">Mokaccino</a> and <a href=\"https://github.com/evadne\">Evadne Wu</a> on sandboxing AI agents.</p>\n","summary":"","url":"https://douglashill.co/2026/rust-london-learning-all-sorts/","date_published":"2026-04-03T09:11:52+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-04-03 09:11","date_timestamp":1775207512,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3milewqruoj2s"]}},{"id":"87414406","content_html":"<p>At NSLondon we’re <a href=\"https://www.meetup.com/nslondon/events/313805476/\">meeting for coffee on Sat 18th</a> followed by a stroll in Hyde Park if the weather is fine. Bring a laptop and show your coding project. I’ll be there with non-iOS projects.</p>\n","summary":"","url":"https://douglashill.co/2026/nslondon-coffee-april/","date_published":"2026-04-01T20:02:49+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-04-01 20:02","date_timestamp":1775073769,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3mihifovuaj2q"]}},{"id":"86037028","content_html":"<p>I hope everyone going has a fantastic time at <a href=\"https://www.meetup.com/nslondon/events/313347937/\">NSLondon at Apple Battersea</a> this evening. Beautiful space, and both talks sound really useful. Bit of a shame I’m away.</p>\n","summary":"","url":"https://douglashill.co/2026/nslondon-apple-this-evening/","date_published":"2026-03-12T10:29:27+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-03-12 10:29","date_timestamp":1773311367,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3mgu6zdaft52z"]}},{"id":"85986699","content_html":"<p>One day I assume there will be a Mac with Internal Headphones to explain the need for this precise copy writing.</p>\n\n<p><img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fdouglashill.co%2F2026%2Fexternal-headphones%2Fscreenshot.png\" alt=\"Screenshot of macOS volume change notification showing the title External Headphones\" loading=\"lazy\"></p>\n","summary":"","url":"https://douglashill.co/2026/external-headphones/","date_published":"2026-03-11T17:14:20+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-03-11 17:14","date_timestamp":1773249260,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3mgsf7p4xlh2q"]}},{"id":"84790791","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/feli@iosdev.space\" class=\"u-url mention\">@feli</a></span> Cool! It’s my favourite conference (after UIKonf back in the day).</p>\n","url":"https://micro.blog/douglas/84790791","date_published":"2026-02-22T14:50:47+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-02-22 14:50","date_timestamp":1771771847,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"84646382","content_html":"<p>Here’s a <a href=\"https://douglashill.co/2026/swift-ios-conferences-in-europe/\">roundup of upcoming Swift/iOS conferences in Europe</a>. UK conference scene is strong!</p>","summary":"","url":"https://douglashill.co/2026/swift-ios-conferences-in-europe/","date_published":"2026-02-20T08:37:45+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-02-20 08:37","date_timestamp":1771576665,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3mfbpgpupp42d"]}},{"id":"84617372","content_html":"<p>Great evening at <a href=\"https://engineeringkiosk.dev/meetup/alps/\">Engineering Kiosk Alps</a> hosted by <a href=\"https://www.cloudflight.io/\">Cloudflight</a>. Similar format to <a href=\"https://nslondon.com/\">NSLondon</a>. Talks:</p>\n\n<ul>\n<li>Anna Larch: <a href=\"https://nextcloud.com/\">Nextcloud</a> is good place to work. Like <a href=\"https://www.nutrient.io/\">Nutrient</a>: ~160 people, remote, high trust, no fixed hours.</li>\n<li>\n<a href=\"https://www.studio-craft.at/\">Beate Öttl</a>: Still good to avoid building the wrong thing fast.</li>\n</ul>\n","summary":"","url":"https://douglashill.co/2026/engineering-kiosk-alps-cloudflight/","date_published":"2026-02-19T21:22:24+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-02-19 21:22","date_timestamp":1771536144,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3mfajprqu2v2q"]}},{"id":"84148556","content_html":"<p>This <a href=\"https://www.cultofmac.com/how-to/stop-ios-update\">trick from Cult of Mac to disable iOS 26 update nags</a> seems to be working well on my iPad running iOS 18: <em>Enable iOS 18 Developer Betas</em>. Suddenly the OS is “up to date”. No more red badges or notifications that can’t otherwise be turned off.</p>\n","summary":"","url":"https://douglashill.co/2026/disable-ios-26-update-nags/","date_published":"2026-02-12T20:56:45+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-02-12 20:56","date_timestamp":1770929805,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3meouza5isc2h"]}},{"id":"83311274","content_html":"<p>In 2025, I read 50% more books than in 2024, all DRM-free, mostly audiobooks. I wrote about <a href=\"https://douglashill.co/2025/books/\">my reading trends and shared some book picks from the year</a>, featuring Min Jin Lee, Marjan Kamali, Sarah Wynn-Williams and more.</p>","summary":"","url":"https://douglashill.co/2025/books/","date_published":"2026-01-31T21:53:49+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-01-31 21:53","date_timestamp":1769896429,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3mdqslmf2y62k"]}},{"id":"83233772","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/lukaskubanek@mastodon.social\" class=\"u-url mention\">@lukaskubanek</a></span> It’s what the status bar of my freshly booted simulator looks like. Turning Display Zoom on and off fixes it.</p>\n","url":"https://micro.blog/douglas/83233772","date_published":"2026-01-30T18:51:52+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-01-30 18:51","date_timestamp":1769799112,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"83228441","content_html":"<p>Removed LinkedIn way to <a href=\"https://douglashill.co/follow/\">follow</a> my posts, since it wasn’t working anyway. The cross posting from <a href=\"https://micro.blog/\">Micro.blog</a> doesn’t seem reliable, and I don’t want to look at LinkedIn to check for replies.</p>\n","summary":"","url":"https://douglashill.co/2026/removed-linkedin/","date_published":"2026-01-30T17:34:13+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-01-30 17:34","date_timestamp":1769794453,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3mdntn57oe32k"]}},{"id":"83225854","content_html":"<p>😳 rdar:45025538</p>\n\n<p><img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fdouglashill.co%2F2026%2Frdar-45025538%2Fscreenshot.jpg\" alt=\"iPhone mini simulator home screen screenshot showing a red status bar showing only the text “😳 rdar:45025538”\" loading=\"lazy\"></p>\n","summary":"","url":"https://douglashill.co/2026/rdar-45025538/","date_published":"2026-01-30T17:02:39+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-01-30 17:02","date_timestamp":1769792559,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3mdnrunx2fr2q"]}},{"id":"83233314","content_html":"<p>😳 rdar:45025538</p>","summary":"","url":"https://pub.douglashill.co/2026/rdar-45025538/","date_published":"2026-01-30T17:02:39+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-01-30 17:02","date_timestamp":1769792559,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"82685939","content_html":"<p>I’ll be away, but London people we have an <a href=\"https://www.meetup.com/nslondon/events/313003731/\">NSLondon pub evening this coming Thursday 29th</a> on Chancery Lane. This is in coordination with the organisers of the <a href=\"https://swiftcraft.uk/\">SwiftCraft conference in Folkestone in May</a>, which had great speakers last year and is in a lovely venue by the sea.</p>\n","summary":"","url":"https://douglashill.co/2026/nslondon-swiftcraft-pub/","date_published":"2026-01-23T12:35:13+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-01-23 12:35","date_timestamp":1769171713,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3md3pnsyfoi2u"]}},{"id":"81379666","content_html":"<p><a href=\"https://vivaldi.com/\">Vivaldi</a> tip: The setting to disable autofilling previously entered text in any form field is mislabeled as “Save and Fill Addresses”. Also note that disabling then enabling this setting will suggest text from before you disabled it.</p>\n\n<p><img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fdouglashill.co%2F2026%2Fvivaldi-autofill%2Fscreenshot.png\" alt=\"Screenshot of Vivaldi browser showing suggestions in Nutrient API documentation search: beta, aiassistantview, scope, aiassistantbutton, changetag, v1/betaGroups/{id}/relations\" loading=\"lazy\"></p>\n","summary":"","url":"https://douglashill.co/2026/vivaldi-autofill/","date_published":"2026-01-05T10:21:36+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-01-05 10:21","date_timestamp":1767608496,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3mbo7rpomcf2k"]}},{"id":"81287851","content_html":"<p>For me, Apple’s dictation (including Voice Control) really, really doesn’t want to recognise the words ergonomic, ergonomics or ergonomically. After dozens of tries, every time except once it instead wrote economic, economics, or economically.</p>\n","summary":"","url":"https://douglashill.co/2026/ergonomic-economic/","date_published":"2026-01-03T21:11:00+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2026-01-03 21:11","date_timestamp":1767474660,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3mbkd5ystbp2c"]}},{"id":"80873253","content_html":"<p>Fantastic to see the <a href=\"https://swiftcraft.uk/news/dates-for-swiftcraft-2026\">Swift Craft conference coming back next year</a> with <a href=\"https://swiftcraft.uk/tickets\">tickets now available</a>. Great talks last year in a nice setting. It’s the closest Swift conference to London after the <a href=\"https://www.serversideswift.info\">Server-Side Swift Conference</a>.</p>\n","summary":"","url":"https://douglashill.co/2025/swift-craft-back-next-year/","date_published":"2025-12-28T09:45:41+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-28 09:45","date_timestamp":1766915141,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3mb222tk4wh2p"]}},{"id":"80063849","content_html":"<p>After <a href=\"https://douglashill.co/2025/use-version-on-disk/\">complaining earlier this month about Xcode’s handling of branch changes</a>, I found an <a href=\"https://douglashill.co/status/793360904368697344/\">older post/tweet about nearly the same thing from 9 years ago</a>, although I don’t know what that was replying to. So many old tweets are gone. Times change, but not so much Xcode.</p>\n","summary":"","url":"https://douglashill.co/2025/times-change-not-xcode/","date_published":"2025-12-15T14:44:28+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-15 14:44","date_timestamp":1765809868,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3m7zuq2ccar27"]}},{"id":"79880450","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/jeffwatkins@mastodon.social\" class=\"u-url mention\">@jeffwatkins</a></span> Personally I don’t like it either. Especially that Cancel and Close (semantically different actions) are literally indistinguishable without accessibility.</p>\n","url":"https://micro.blog/douglas/79880450","date_published":"2025-12-12T15:29:58+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-12 15:29","date_timestamp":1765553398,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"79879902","content_html":"<p>SwiftUI in iOS 26 adds equivalents of <code>UIBarButtonItem.SystemItem.done</code> and <code>UIBarButtonItem.SystemItem.cancel</code> to get standard Done and Cancel buttons. <a href=\"https://douglashill.co/2025/done-cancel-buttons-swiftui/\">Here’s the code we're using to wrap this new API with fallbacks for older versions.</a></p>","summary":"","url":"https://pub.douglashill.co/2025/done-cancel-buttons-swiftui/","date_published":"2025-12-12T11:42:57+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-12 11:42","date_timestamp":1765539777,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"79867717","content_html":"<p>SwiftUI in iOS 26 adds equivalents of <code>UIBarButtonItem.SystemItem.done</code> and <code>UIBarButtonItem.SystemItem.cancel</code> to get standard Done and Cancel buttons. <a href=\"https://douglashill.co/2025/done-cancel-buttons-swiftui/\">Here’s the code we're using to wrap this new API with fallbacks for older versions.</a></p>","summary":"","url":"https://douglashill.co/2025/done-cancel-buttons-swiftui/","date_published":"2025-12-12T11:42:57+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-12 11:42","date_timestamp":1765539777,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3m7rz5hkizs2m"]}},{"id":"79823485","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/pedro@mastodon.pepicrft.me\" class=\"u-url mention\">@pedro</a></span> I think this is a pretty good workaround <a href=\"https://social.lol/users/florianbuerger/statuses/115694540965130824\">social.lol/users/flo…</a></p>\n","url":"https://micro.blog/douglas/79823485","date_published":"2025-12-11T19:54:44+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-11 19:54","date_timestamp":1765482884,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"79785301","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/alexozun@mastodon.social\" class=\"u-url mention\">@alexozun</a></span> You mean the blue ‘synced folders’ in an Xcode project? I don’t know for sure, but I guess those make this less likely to occur because the project file on disk won’t change as often.</p>\n","url":"https://micro.blog/douglas/79785301","date_published":"2025-12-11T09:17:27+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-11 09:17","date_timestamp":1765444647,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"79785163","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/florianbuerger@social.lol\" class=\"u-url mention\">@florianbuerger</a></span> That is amazing! Thank you.</p>\n","url":"https://micro.blog/douglas/79785163","date_published":"2025-12-11T09:15:32+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-11 09:15","date_timestamp":1765444532,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"79506907","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/akshayAshah@mastodon.social\" class=\"u-url mention\">@akshayAshah</a></span> I hope so!</p>\n","url":"https://micro.blog/douglas/79506907","date_published":"2025-12-07T09:39:08+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-07 09:39","date_timestamp":1765100348,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"79506886","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/florianbuerger@social.lol\" class=\"u-url mention\">@florianbuerger</a></span> That’s the consistency over speed approach. I can see the appeal. Sometimes Xcode is fine with the switch though.</p>\n","url":"https://micro.blog/douglas/79506886","date_published":"2025-12-07T09:38:27+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-07 09:38","date_timestamp":1765100307,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"79388833","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/akashivskyy@mastodon.social\" class=\"u-url mention\">@akashivskyy</a></span> Sent it over as FB21266941</p>\n","url":"https://micro.blog/douglas/79388833","date_published":"2025-12-05T13:04:32+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-05 13:04","date_timestamp":1764939872,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"79307243","content_html":"<p>The app icon is green because I happen to often use Xcode and Simulator at the same time. Two apps with icons that are the <em>same shape</em> and <em>same colour</em> and so are terrible at their main purpose of distinguishing the app.</p>\n","summary":"","url":"https://douglashill.co/2025/same-shape-same-colour/","date_published":"2025-12-04T11:30:12+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-04 11:30","date_timestamp":1764847812,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3m75upr2k2k2n"]}},{"id":"79331559","content_html":"<p>The app icon is green because I happen to often use Xcode and Simulator at the same time. Two apps with icons that are the <em>same shape</em> and <em>same colour</em> and so are terrible at their main purpose of distinguishing the app.</p>","summary":"","url":"https://pub.douglashill.co/2025/same-shape-same-colour/","date_published":"2025-12-04T11:30:12+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-04 11:30","date_timestamp":1764847812,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"79785165","content_html":"<p>Is there any way to hack Xcode to skip the “The file “whatever.xcodeproj” has been modified by another application” alerts? Xcode writes project changes to disk immediately, so obviously after changing branch I always want the version on disk.</p>","summary":"","url":"https://pub.douglashill.co/2025/use-version-on-disk/","date_published":"2025-12-04T11:27:34+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-04 11:27","date_timestamp":1764847654,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"79307087","content_html":"<p>Is there any way to hack Xcode to skip the “The file “whatever.xcodeproj” has been modified by another application” alerts? Xcode writes project changes to disk immediately, so obviously after changing branch I always want the version on disk.</p>\n\n<p><img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fdouglashill.co%2F2025%2Fuse-version-on-disk%2Fscreenshot.png\" alt=\"Screenshot of alert from Xcode: The file \" loading=\"lazy\"></p>\n","summary":"","url":"https://douglashill.co/2025/use-version-on-disk/","date_published":"2025-12-04T11:27:34+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-04 11:27","date_timestamp":1764847654,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3m75ukpuafb25"]}},{"id":"79346900","content_html":"<p>We’re seeing a UIKit crash introduced in iOS 26.1: <code>NSInternalInconsistencyException -[UIPencilInteraction _handleHoverGestureRecognizer:]: Received updates from an unknown hover gesture recognizer</code> <a href=\"https://douglashill.co/2025/received-updates-from-an-unknown-hover-gesture-recognizer/\">Full post</a></p>","summary":"","url":"https://pub.douglashill.co/2025/received-updates-from-an-unknown-hover-gesture-recognizer/","date_published":"2025-12-04T10:27:31+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-04 10:27","date_timestamp":1764844051,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"79304505","content_html":"<p>We’re seeing a UIKit crash introduced in iOS 26.1: <code>NSInternalInconsistencyException -[UIPencilInteraction _handleHoverGestureRecognizer:]: Received updates from an unknown hover gesture recognizer</code> <a href=\"https://douglashill.co/2025/received-updates-from-an-unknown-hover-gesture-recognizer/\">Full post</a></p>","summary":"","url":"https://douglashill.co/2025/received-updates-from-an-unknown-hover-gesture-recognizer/","date_published":"2025-12-04T10:27:31+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-12-04 10:27","date_timestamp":1764844051,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://bsky.app/profile/did:plc:yd22bcpy36vw6ez7phpueyt5/post/3m75r73qche2b"]}},{"id":"67861234","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/simme@hachyderm.io\" class=\"u-url mention\">@simme</a></span> Yeah there is a chance I might stop by on my way back! Probably going to be right at the end of July. I’ll let you know.</p>\n","url":"https://micro.blog/douglas/67861234","date_published":"2025-06-29T19:21:15+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-06-29 19:21","date_timestamp":1751224875,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"67838558","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/simme@hachyderm.io\" class=\"u-url mention\">@simme</a></span> Thank you. I’m very excited for this trip.</p>\n","url":"https://micro.blog/douglas/67838558","date_published":"2025-06-29T09:02:51+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-06-29 09:02","date_timestamp":1751187771,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"67838549","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/tobiasdm@mastodon.social\" class=\"u-url mention\">@tobiasdm</a></span> Thanks! I’ll be in Copenhagen next weekend. Let me know if you’re around, but no worries if not as it looks like there‘s a lot to see.</p>\n","url":"https://micro.blog/douglas/67838549","date_published":"2025-06-29T09:02:25+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-06-29 09:02","date_timestamp":1751187745,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"66805608","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/rileytestut@mastodon.social\" class=\"u-url mention\">@rileytestut</a></span> This gives me hope! Fingers crossed they refactored everything nicely and fixed some of the bugginess of Stage Manager while doing the new windowing overhaul.</p>\n","url":"https://micro.blog/douglas/66805608","date_published":"2025-06-15T07:49:34+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-06-15 07:49","date_timestamp":1749973774,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"66805432","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/joshdholtz@mastodon.social\" class=\"u-url mention\">@joshdholtz</a></span> Thanks for sharing the photos. They look amazing but yeah definitely something better done voluntarily.</p>\n","url":"https://micro.blog/douglas/66805432","date_published":"2025-06-15T07:45:56+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-06-15 07:45","date_timestamp":1749973556,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"66492056","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/cocoafrog@hachyderm.io\" class=\"u-url mention\">@cocoafrog</a></span> It makes sense some time to assign is needed. Yeah, the issue is knowing what the cutoff time is rather what it actually is. The submissions for today seemed to close at 2PM Cupertino time yesterday.</p>\n","url":"https://micro.blog/douglas/66492056","date_published":"2025-06-11T07:32:36+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-06-11 07:32","date_timestamp":1749627156,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"66417304","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/rhysmorgan@mastodon.social\" class=\"u-url mention\">@rhysmorgan</a></span> yeah I think polish and bug fixing might have been more useful than a new windowing management UI. But check out Settings &gt; General &gt; Keyboard &gt; Hardware Keyboard &gt; Auto-Capitalisation (it‘s always been there).</p>\n","url":"https://micro.blog/douglas/66417304","date_published":"2025-06-10T11:01:39+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-06-10 11:01","date_timestamp":1749553299,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"66384362","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/beccaowen@mastodon.social\" class=\"u-url mention\">@beccaowen</a></span> Good to know it’s not just me so hopefully there’s a higher chance of this being fixed.</p>\n","url":"https://micro.blog/douglas/66384362","date_published":"2025-06-09T23:35:12+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-06-09 23:35","date_timestamp":1749512112,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"66163693","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/michaelrowe01@mstdn.social\" class=\"u-url mention\">@michaelrowe01</a></span> We also never heard back after applying to the small business program. When I asked Apple developer support, they said we are in the program, but I can’t see any evidence of this looking at our sales and proceeds data before and after,</p>\n","url":"https://micro.blog/douglas/66163693","date_published":"2025-06-06T22:41:22+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-06-06 22:41","date_timestamp":1749249682,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"66143432","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/aleck@mastodon.social\" class=\"u-url mention\">@aleck</a></span> Ha, I think I’m just really fussy. Turned off auto-brightness because it seems to overreact to slight changes.</p>\n","url":"https://micro.blog/douglas/66143432","date_published":"2025-06-06T17:36:51+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-06-06 17:36","date_timestamp":1749231411,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"66143362","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/jeffwatkins@mastodon.social\" class=\"u-url mention\">@jeffwatkins</a></span> Thank you. Good to see you too but unfortunately only briefly!</p>\n","url":"https://micro.blog/douglas/66143362","date_published":"2025-06-06T17:35:37+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-06-06 17:35","date_timestamp":1749231337,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"65835770","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/daringfireball@mastodon.social\" class=\"u-url mention\">@daringfireball</a></span> Using WhatsApp on iPhone as a linked device is possible more recently. I have it on a second iPhone. I can’t explain why they went out of their way before to block the iPhone-only app from being downloaded on iPad (possible automatically for any normal app).</p>\n","url":"https://micro.blog/douglas/65835770","date_published":"2025-06-02T21:59:23+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-06-02 21:59","date_timestamp":1748901563,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"64571233","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/Daojoan@mastodon.social\" class=\"u-url mention\">@Daojoan</a></span> As an iOS developer, my skill set now feels limiting and doesn’t match how I think software should be built. Time to diversify.</p>\n<p>As an Apple user, I’m trying to switch to services that don’t lock me in, but this is a huge undertaking, and so far the alternatives just aren’t as good. Looking at getting a Fairphone while still using iPad and Mac.</p>\n","url":"https://micro.blog/douglas/64571233","date_published":"2025-05-16T18:36:28+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-05-16 18:36","date_timestamp":1747420588,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"63173735","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/ebariaux@mastodon.social\" class=\"u-url mention\">@ebariaux</a></span> Thank you! Updated the post with that link. Didn’t find that on their website.</p>\n","url":"https://micro.blog/douglas/63173735","date_published":"2025-04-28T13:58:40+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-04-28 13:58","date_timestamp":1745848720,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"63092097","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/alanb@mastodon.social\" class=\"u-url mention\">@alanb</a></span> For me too. E.g. ask it to proofread something and it tells me how what I wrote is already “well-written, clear, and very close to polished” and just needs “a few small grammar, punctuation, and style tweaks”.</p>\n","url":"https://micro.blog/douglas/63092097","date_published":"2025-04-27T08:13:11+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-04-27 08:13","date_timestamp":1745741591,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"61589005","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/giladronat@mastodon.social\" class=\"u-url mention\">@giladronat</a></span> Date ranges like this used to work in Siri for me. Maybe it will work if I try again another day.</p>\n","url":"https://micro.blog/douglas/61589005","date_published":"2025-04-06T08:21:52+00:00","author":{"name":"Douglas Hill","url":"https://douglashill.co/","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2025%2F42%2F4525.jpg","_microblog":{"username":"douglas"}},"_microblog":{"date_relative":"2025-04-06 08:21","date_timestamp":1743927712,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}}]}