41554 blogs · [ { "id": "01a08790-bcf3-71cb-86b4-9fd6e306a6fa", "title": "Self-hosting macOS GitHub Runners", "url": "https://josephduffy.co.uk/posts/self-hosting-macos-github-runners", "published_at": "2025-07-03T02:12:58+00:00" }, { "id": "01a08790-bcf3-71cb-86b4-9fd6e35b37de", "title": "Smuggling Values Across Actors", "url": "https://josephduffy.co.uk/posts/smuggling-values-across-actors", "published_at": "2024-06-18T01:12:34+00:00" }, { "id": "01a08790-bcf3-71cb-86b4-9fd6e38f2c4c", "title": "The Bug That Bit Me Twice", "url": "https://josephduffy.co.uk/posts/the-bug-that-bit-me-twice", "published_at": "2022-12-01T19:45:37+00:00" }, { "id": "01a08790-bcf3-71cb-86b4-9fd6e4cb1b5d", "title": "Don't Use Scope Modifiers with Extensions", "url": "https://josephduffy.co.uk/posts/dont-use-scope-modifiers-with-extensions", "published_at": "2022-03-21T21:13:34+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7f90dad5e", "title": "Overamped 1.1.0 and the Year of Small", "url": "https://josephduffy.co.uk/posts/overamped-1-1-0-year-of-small", "published_at": "2022-01-29T08:08:16+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7f98e378e", "title": "pastelghouls Available Again", "url": "https://josephduffy.co.uk/posts/pastelghouls-available-again", "published_at": "2022-01-16T20:26:14+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7f9d61a5b", "title": "The Year of Small", "url": "https://josephduffy.co.uk/posts/year-of-small", "published_at": "2022-01-16T19:54:12+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7fa9d91de", "title": "Swift Package Collection Signing Using the Terminal", "url": "https://josephduffy.co.uk/posts/swift-package-collection-signing-using-the-terminal", "published_at": "2022-01-11T05:49:14+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7fb1cd9fb", "title": "Hosting DocC Archives", "url": "https://josephduffy.co.uk/posts/hosting-docc-archives", "published_at": "2021-06-12T21:49:13+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7fb6614a0", "title": "Handling iCal Files in iOS", "url": "https://josephduffy.co.uk/posts/handling-ical-files-in-ios", "published_at": "2021-06-06T19:50:47+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7fbe322db", "title": "The iPod touch Is My Favourite Device for iOS Development", "url": "https://josephduffy.co.uk/posts/the-ipod-touch-is-my-favourite-device-for-ios-development", "published_at": "2021-05-12T23:37:34+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7fc697ad0", "title": "My WWDC 2021 Wishlist", "url": "https://josephduffy.co.uk/posts/wwdc-2021-wishlist", "published_at": "2021-03-04T12:52:34+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7fd014019", "title": "Mapping Optional Binding to Bool", "url": "https://josephduffy.co.uk/posts/mapping-optional-binding-to-bool", "published_at": "2020-12-27T13:03:42+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7fd6fab54", "title": "Supporting Multiple Swift Package Versions Without Breaking Compatibility", "url": "https://josephduffy.co.uk/posts/supporting-multiple-swift-package-versions-without-breaking-compatibility", "published_at": "2020-08-11T19:08:20+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7fe22ab27", "title": "Running UI Tests on Mac Catalyst", "url": "https://josephduffy.co.uk/posts/running-ui-tests-on-mac-catalyst", "published_at": "2020-07-11T17:51:00+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7fe928098", "title": "My Swift Package Manager Release Workflow", "url": "https://josephduffy.co.uk/posts/my-swiftpm-release-workflow", "published_at": "2020-06-18T21:53:03+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7fef38e38", "title": "Capturing More Than `self`", "url": "https://josephduffy.co.uk/posts/capturing-more-than-self", "published_at": "2020-05-14T17:58:13+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7ffd31429", "title": "HashableByKeyPath framework release 1.0.0", "url": "https://josephduffy.co.uk/posts/HashableByKeyPath-framework-release-1-0-0", "published_at": "2020-04-30T17:22:47+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f7fff5e9c0", "title": "Partial framework release 1.0.0", "url": "https://josephduffy.co.uk/posts/partial-framework-release-1-0-0", "published_at": "2019-07-10T21:58:41+00:00" }, { "id": "01a08790-bcf3-71cb-86b4-9fd6e474fbff", "title": "Partial in Swift", "url": "https://josephduffy.co.uk/posts/partial-in-swift", "published_at": "2018-07-10T21:08:12+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f800c65a6a", "title": "Gathered 1.3 Release Notes", "url": "https://josephduffy.co.uk/posts/gathered-1-3-release-notes", "published_at": "2018-03-11T19:57:27+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f801937868", "title": "iOS Share Sheets the Proper Way - Locations", "url": "https://josephduffy.co.uk/posts/ios-share-sheets-the-proper-way-locations", "published_at": "2016-03-07T16:39:46+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f8020ec010", "title": "Exploiting University Security for My Own Convenience", "url": "https://josephduffy.co.uk/posts/exploiting-university-security-for-my-own-convenience", "published_at": "2015-12-20T21:09:53+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f802f7075f", "title": "Gathered 1.0.1 and the Disable Device Sleep Setting", "url": "https://josephduffy.co.uk/posts/gathered-1-0-1", "published_at": "2015-12-06T18:48:34+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f8032a1131", "title": "It's a Duffy Thing", "url": "https://josephduffy.co.uk/posts/its-a-duffy-thing", "published_at": "2015-12-03T15:41:57+00:00" }, { "id": "01a08790-bcf4-7118-bf71-06f803d33a7d", "title": "Touch ID on the Lock Screen", "url": "https://josephduffy.co.uk/posts/touch-id-on-the-lock-screen", "published_at": "2015-10-03T11:34:24+00:00" } ] posts Claim your blog
Back to josephduffy.co.uk
Blog · corpus.blog/blogs/josephduffy.co.uk/posts

josephduffy.co.uk

josephduffy.co.uk

2025

2024

2022

2021

2020

2019

2018

2016

2015