John Siracusa
banner
siracusa.mastodon.social.ap.brid.gy
John Siracusa
@siracusa.mastodon.social.ap.brid.gy
Programmer, tech writer, and co-host of Accidental Tech Podcast, Reconcilable Differences, and Robot or Not.

🌉 bridged from ⁂ https://mastodon.social/@siracusa, follow @ap.brid.gy to interact
Do any SwiftUI layout gurus want to help me solve a popover problem? (Note: it works correctly on Tahoe, but I need something that also works on Sequioa.) See the screenshot here for an explanation:

https://github.com/siracusa/PopoverLayout/

The relevant code […]
Original post on mastodon.social
mastodon.social
December 9, 2025 at 5:17 PM
How many more years do you think it will be before we can log into App Store Connect using a passkey with Apple ID that's *different* than the one we're signed into for iCloud, etc. in macOS? /cc @rmondello (even though I know this website is not their responsibility)
December 8, 2025 at 4:20 PM
Reposted by John Siracusa
December 3, 2025 at 2:11 PM
Reposted by John Siracusa
America is a country that will test UBI hundreds of times, get the same radically positive results each time, and still look at it askance, but will also put untested robotaxis on the road because a billionaire threw a shit fit.
An Oregon pilot program giving cash to homeless youths sees a staggering reduction in homelessness. The program gave participants $1,000 cash payments each month for two years, and at the end of the project's first phase, 91% of participants reported being in stable housing.
Oregon pilot program giving cash to homeless youths sees staggering reduction in homelessness
The state program gave participants $1,000 cash payments each month for two years. At the end of the project's first phase, 91% of participants reported being in stable housing.
www.streetroots.org
December 3, 2025 at 6:27 AM
Reposted by John Siracusa
The ships of Star Wars were the initial inspiration behind the macOS app icon for Hyperspace, a powerful utility to help you reclaim disk space by @siracusa. The final icon makes the Kessel Run in less than 12 parsecs!

Need app icon or UI design? Get in […]

[Original post on iconfactory.world]
December 2, 2025 at 4:32 PM
RE: https://mastodon.social/@mellifluousbox/115569669020807811

If you like your Mastodon server and want it to stick around, you should consider donating some money to it, if you can.
We’re still an absolute skeleton crew of 14 people, competing with teams sometimes 100x as large as ours. To get to our humble team size was only possible through the less than 1% community members who donate to Mastodon, a handful larger donations, & EU grants, all of which we are forever […]
Original post on mastodon.social
mastodon.social
December 1, 2025 at 10:03 PM
ARC Raiders update: 138 hours played, level 75, all workshops at max level, max stash size (1.8 million total value), completed all quests and the expedition, 1.58 million coins…and 30 of 74 blueprints found. 🫤
December 1, 2025 at 9:38 PM
November 26, 2025 at 10:42 PM
Reposted by John Siracusa
The holidays are fast approaching! Retro pixel portraits make a great gift for friends, family and even pets.

Orders will close by Black Friday, Nov 28 - order before then so Santa's elves can deliver yours in time!

Learn more - […]

[Original post on iconfactory.world]
November 18, 2025 at 4:57 PM
Reposted by John Siracusa
If you haven't been able to ship your iOS/macOS 26 update yet and have been feeling bad about it, just remember:

Apple still hasn't shipped iWork with Liquid Glass, and Apple also opted all its pro apps out of Liquid Glass.

Final Cut Pro on iPad still doesn't support the background video […]
Original post on mastodon.social
mastodon.social
November 18, 2025 at 3:10 PM
Reposted by John Siracusa
RE: n.social/@mellifluousbox/115569615176946969" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link" target="_blank" rel="noopener" data-link="bsky">https://mastodon.social/@mellifluousbox/115569615176946969

I am passing the torch to @mellifluousbox, who will be the new Executive Director. Felix has been involved with #mastodon since 2020 and has been instrumental in evolving the organization, raising funds, and growing the team to get […]
November 18, 2025 at 9:02 AM
Reposted by John Siracusa
Today I am stepping down from my role as the CEO of #mastodon. Though this has been in the works for a while, I can't say I've fully processed how I feel about it. There is a bittersweet part to it, and I think I will miss it, but it also felt necessary. It feels like a goodbye, but it isn't—I […]
Original post on mastodon.social
mastodon.social
November 18, 2025 at 8:46 AM
Reposted by John Siracusa
Our Founder, @Gargron is stepping down from his position as CEO. He shared a reflection on his time building and growing Mastodon on our blog.

We want to take a moment to express the Mastodon team’s deep gratitude and admiration for Eugen, and for the technology and community he has built here […]
Original post on mastodon.social
mastodon.social
November 18, 2025 at 8:06 AM
I was playing Arc Raiders, and the game crashed when I jumped from a moderate height and landed weird on a piece of geometry. I had a backpack full of good loot at the time. Annoyed, I sent the crash report from the dialog that appeared.

Then I relaunched the game…and it put me back exactly […]
Original post on mastodon.social
mastodon.social
November 14, 2025 at 12:04 AM
Reposted by John Siracusa
November 13, 2025 at 10:59 AM
Reposted by John Siracusa
Parsing integers in C
In the standard libc API set there are multiple functions provided that do ASCII numbers to integer conversions. They are handy and easy to use, but also error-prone and quite lenient in what they accept and silently just swallow. ## atoi **atoi()** is perhaps the most common and basic one. It converts from a string to signed integer. There is also the companion **atol()** which instead converts to a long. Some problems these have include that they return 0 instead of an error, that they have no checks for under or overflow and in the atol() case there’s this challenge that _long_ has different sizes on different platforms. So neither of them can reliably be used for 64-bit numbers. They also don’t say where the number ended. Using these functions opens up your parser to not detect and handle errors or weird input. We write better and stricter parser when we avoid these functions. ## strtol This function, along with its siblings **strtoul()** and **strtoll()** etc, is more capable. They have overflow detection and they can detect errors – like if there is no digit at all to parse. However, these functions as well too happily swallow leading whitespace and they allow a + or – in front of the number. The long versions of these functions have the problem that _long_ is not universally 64-bit and the _long long_ version has the problem that it is not universally available. The overflow and underflow detection with these function is quite quirky, involves _errno_ and forces us to spend multiple extra lines of conditions on every invoke just to be sure we catch those. ## curl code I think we in the curl project as well as more or less the entire world has learned through the years that it is usually better to be strict when parsing protocols and data, rather than be lenient and try to accept many things and guess what it otherwise _maybe_ meant. As a direct result of this we make sure that curl parses and interprets data _exactly_ as that data is meant to look and we error out as soon as we detect the data to be wrong. For security and for solid functionality, providing syntactically incorrect data is not accepted. This also implies that all number parsing has to be exact, handle overflows and maximum allowed values correctly and conveniently and errors must be detected. It always supports up to 64-bit numbers. ## strparse I have previously blogged about how we have implemented our own set of parsing function in curl, and these also include number parsing. **curlx_str_number()** is the most commonly used of the ones we have created. It parses a string and stores the value in a 64-bit variable (which in curl code is always present and always 64-bit). It also has a max value argument so that it returns error if too large. And it of course also errors out on overflows etc. This function of ours does not allow any leading whitespace and certainly no prefixing pluses or minuses. If they should be allowed, the surrounding parsing code needs to explicitly allow them. The curlx_str_number function is most probably a little slower that the functions it replaces, but I don’t think the difference is huge and the convenience and the added strictness is much welcomed. We write better code and parsers this way. More secure. (curlx_str number source code) ## History As of yesterday, November 12 2025 all of those weak functions calls have been wiped out from the curl source code. The drop seen in early 2025 was when we got rid of all strtrol() variations. Yesterday we finally got rid of the last atoi() calls. libc number function call density in curl production code (Daily updated version of the graph.) ## curlx The function mentioned above uses a ‘curlx’ prefix. We use this prefix in curl code for functions that exist in libcurl source code but that be used by the curl tool as well – sharing the same code without them being offered by the libcurl API. A thing we do to reduce code duplication and share code between the library and the command line tool.
daniel.haxx.se
November 13, 2025 at 7:37 AM
Reposted by John Siracusa
Encountered a new record today, had a customer whose PowerPhotos merge was taking forever, and it turned out their library has over 200,000 albums. Not photos, albums. (they *only* have like 110,000 photos)

🤯🤯🤯
November 12, 2025 at 12:33 AM
The @atpfm holiday sale ends in ELEVEN HOURS!

See this thread for selected product details https://mastodon.social/@siracusa/115446953489762114 or go directly to the store page:

https://atp.fm/store
John Siracusa (@[email protected])
The @atpfm holiday store here! https://atp.fm/store In this thread, I’ll hit the highlights of this year’s product line.
mastodon.social
November 9, 2025 at 5:01 PM
Tonight I took out a Bombardier all by myself with nothing but three Light Impact Grenades, a Ferro, a Rattler, and a ton of ammo. I salvaged six (6) Bombardier Cells and got out with about a minute to spare. 💅
November 8, 2025 at 3:08 AM
The @atpfm holiday sale ends in TWO DAYS on Sunday, November 9th. See this thread for selected product details https://mastodon.social/@siracusa/115446953489762114 or go directly to the store page:

https://atp.fm/store
John Siracusa (@[email protected])
The @atpfm holiday store here! https://atp.fm/store In this thread, I’ll hit the highlights of this year’s product line.
mastodon.social
November 7, 2025 at 5:52 PM
Xcode 26.1 no longer supports this technique for building a Mac app that shows a Tahoe-style icon in macOS 26 and a non-Tahoe-style icon in earlier versions of macOS. https://mastodon.social/@siracusa/115180133079383354

Don't update to Xcode 26.1 if you rely on this!

(I filed FB19437407 back […]
Original post on mastodon.social
mastodon.social
November 4, 2025 at 2:15 PM
This Kickstarter includes a nice FU to Apple’s 16-year-old mouse design. https://www.kickstarter.com/projects/melt-interface/melt-mouse-0
October 28, 2025 at 1:21 PM
Reposted by John Siracusa
If you're missing the WWDC days of yore (and I mean pre-iPhone era), go take a look at how Apple's developer days content is going. Even has (pre-canned) Q&A with presenters, and @settern is a great host. It's the most human I've seen Apple in years

https://www.youtube.com/watch?v=leGqoF8HJxU
October 27, 2025 at 2:21 PM
Wow. Talk about wearing your influences on your sleeve! https://youtu.be/8W6OqHhIQOg
October 27, 2025 at 5:08 PM