Hi! 👋 I'm Joseph Duffy. I enjoy building software. This website contains information about my commercial software, open-source projects, and blog posts. Welcome to my corner of the internet!
★ My Favourites
Overamped is a Safari Extension that redirects AMP and Yandex Turbo pages to their canonical versions, no matter how the page was opened.
Four Squares is a game of memory, skill, and concentration available for iOS, iPadOS, and macOS. Watch what happens each turn and replay what you see.
At WWDC21 Apple introduced DocC, a tool for creating archives of Swift documentation that includes the static files required to host a version of the documentation on a website.
In this post I will summarise various methods of serving a DocC archive:
- Vapor middleware
All the examples provided here are hosting the DocC archive for VaporDocC, the Vapor middleware I wrote for hosting DocC archives.
pastelghouls is once again available for download on the App Store. It's a free sticker pack containing 6 ghoulish sticker. Originally released 19th October 2016, just in time for halloween, it was removed from the App Store December 7th 2019 due to not having an update for a substantial period of time.
As part of my year of small I wanted to make this available again, and at the same time setup fastlane to automate the screenshots and store the app metadata to make future updates easier.
pastelghouls was created by my friend Joshua Robins and published by my company Yetii Ltd.
I've become accustomed to using yearly themes – rather than New Years resolution – thanks to CGP Grey, who has a very good summary of yearly themes.
It took me a while to home in on it but this year the title of my theme will be "Year of Small."
I'll be focusing on all things small:
- Small people: spending time with and giving the best life to my now 9-month-old son.
- Small home improvements: finally doing those small tasks and improvements, such as buying a bedside table and getting rid of things I no longer use.
- Small work: I want to focus on releasing smaller updates for existing project, alongside a higher quantity of smaller projects that serve as proof of concepts and methods of learning new technology.
- Small activities: small hobbies I can with my wife, such as new board games and outside activities.
At the end of the year I'll post a "year in review," although I hope to revisit this every 3 months to make sure I'm still focusing on the right things.
Anything related to this theme will be posted under the year-of-small tag.
Support for the latest versions of iOS, better accessibility for the Vampire sticker.
Thread-safety has been improved, including:
- Adding and removing update listeners
- Creating default values
- Setting values on
Here's a small PR for a bug that I think has just gone unnoticed because we've never used the
sectionInset property of the
UICollectionViewFlowLayout, and we've never used the
contentInset property of
The issues looks to be that the layout's
sectionInset property is applied on a per-section basis, but the collection view's
contentInset was not being honoured.
It was also calculated using
insetBy(dx:dy:), which will modify the width by
-dx * 2, which would double the expected insets.
- Fix showing “Overamped” in place of “Safari” in installation instructions
- Prevent infinite redirections to student.si and thehustle.co
Hotfix for changes to Google image searches. Clicking links will no longer open the AMP popover and the AMP popover should be removed from the bottom of the screen