Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

Tom Lokhorst

@tomlokhorst@mastodon.social
mastodon 4.8.0-nightly.2026-10-06
  • Open on mastodon.social

Indie developer.
Currently working on iPhone mirroring app https://getbezel.app and Vision Pro app https://splitscreen.vision
Fan of both space and time.

0 Followers
0 Following
15 Posts
Joined October 28, 2022
Work:
https://nonstrict.eu
Personal:
https://tom.lokhorst.eu
Location:
The Netherlands
WWDC Index:
https://wwdcindex.com
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 5mo ago

@siracusa@mastodon.social Re: ATP Dev. I recently wrote a blog post how we make Swift Errors for our Mac app. Focussing on both the end user and the developer experience. https://nonstrict.eu/blog/2026/the-four-audiences-of-swift-errors/

The Four Audiences of Swift Errors | Nonstrict
Nonstrict

The Four Audiences of Swift Errors | Nonstrict

Every Swift error you throw serves four audiences at once: users, your catch blocks, the debugger, and Sentry. We have a pattern to deal with all of them.

18
1
5
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 5mo ago

Transcript of Meet with Apple Q&A on Swift concurrency. https://nonstrict.eu/wwdcindex/meet-with-apple/276/

nonstrict.eu
4
0
1
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 8mo ago
I wrote a blogpost about how we create Error types in Swift for @bezelapp@mastodon.social. We support fully localized error messages and also want to be able to easily debug and log errors. https://nonstrict.eu/blog/2026/the-four-audiences-of-swift-errors/
The Four Audiences of Swift Errors | Nonstrict
Nonstrict

The Four Audiences of Swift Errors | Nonstrict

Every Swift error you throw serves four audiences at once: users, your catch blocks, the debugger, and Sentry. We have a pattern to deal with all of them.

7
1
2
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 7mo ago

People complain about the corner radius of windows on macOS Tahoe. But @bezelapp@mastodon.social shows iPhone hardware as windows, it has always had giant corners.
Now experimenting with the cursor following the curvature of the window exactly.

5
3
0
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 7mo ago

I’m at @appdevcon@mastodon.social to give a talk about Swift Concurrency and actors. Excited!

3
3
0
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 6mo ago
Replying to
@mattiem Not fully. The mutating func is modifying the buffer var in the class simultaneously. But I don't know why this triggers this particular crash, at this location. It also depends on the OS version, on macOS 26 it's the new xzone malloc, but on macOS 15 it sometimes fails with "Fatal error: UnsafeMutablePointer.initialize overlapping range". https://github.com/nonstrict-hq/StructQueueCrash
GitHub

GitHub - nonstrict-hq/StructQueueCrash

Contribute to nonstrict-hq/StructQueueCrash development by creating an account on GitHub.

2
2
0
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 6mo ago

Weird crash in Swift "Object of class _ContiguousArrayStorage deallocated with non-zero retain count 2."
I had some old code which tries to protect its internal state using a DispatchQueue. But it's a struct.
When I access it from multiple threads at the same time via a class, it crashes. In my old Swift 5 code I didn't have the "unchecked Sendable", and I assumed it was correct because of the DispatchQueue.
My actual fix is changing the struct to a final class.

2
4
0
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 6mo ago

It is that time of year again where I point a camera at a wall clock for a long duration recording. To check if the video drift is a bug in the camera driver or my software.

2
4
0
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 6mo ago

Great talk by @dgregor79@sfba.social on Progressive Disclosure in Swift. https://www.youtube.com/watch?v=opqKGgJavkw
I liked the reworking of non-throwing functions to be syntactic sugar for `throws(Never)`

On Progressive Disclosure in Swift - Doug Gregor - Swift Craft 2025

2
0
0
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 6mo ago
Replying to
@mattiem Now it’s public. I think serial queue has same issue. The concurrent queue was just there because that was in my original code.
1
0
0
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 6mo ago
Replying to
Upgraded my audio/video sync timing testing setup. Now it can run autonomously. Although the beeps are getting annoying.
1
2
1
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 7mo ago
Replying to
@hannorein My Mac has a nice extra place to rest finger when opening lid 🙂
1
0
0
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 6mo ago
Replying to
@sjoerd_visscher I was thinking about that. If crappy microphones can pick it up, that would be a good improvement.
0
0
0
0
Open post
Tom Lokhorst @tomlokhorst@mastodon.social
· 6mo ago
Replying to
@axel Thank you!
0
0
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 19:30:21 UTC