James Savage's Avatar

James Savage

@axiixc.social.axiixc.com.ap.brid.gy

Nature enthusiast, baker, knitter, and photographer. Supposedly knows stuff about computers too. Previously Safari & App Clips. He/him. πŸŒ‰ bridged from ⁂ https://social.axiixc.com/@axiixc, follow @ap.brid.gy to interact

26
Followers
4
Following
664
Posts
29.08.2024
Joined
Posts Following

Latest posts by James Savage @axiixc.social.axiixc.com.ap.brid.gy

Video thumbnail

Huh. Really didn’t expect this to work, but sometimes everyone just gets tunnel vision I guess. #Splatoon3

27.02.2026 02:54 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Original post on mastodon.social

Well, everyone, you can now submit a comment to let the FCC know what you think about SpaceX asking for 1 million satellites for "AI datacenters" whatever the fuck that means.

https://docs.fcc.gov/public/attachments/DA-26-113A1.pdf

Comments due March 6.

I am having a very hard time believing […]

05.02.2026 01:26 πŸ‘ 15 πŸ” 124 πŸ’¬ 9 πŸ“Œ 2
Screenshot of many Swift files in Xcode’s sidebar, such as BinaryFloatingPoint+Extras, CoreGraphics.CGPoint+Extras, and Foundation.URL+Extras.

Screenshot of many Swift files in Xcode’s sidebar, such as BinaryFloatingPoint+Extras, CoreGraphics.CGPoint+Extras, and Foundation.URL+Extras.

I've gone back and forth on this over the years, but I think I've come to like the naming scheme of Module.Type+Extras.swift for general extensions in #Swift.

Since they're not named (like ObjC’s categories) I find there’s no need for a unique +Name per […]

[Original post on social.axiixc.com]

31.12.2025 01:37 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Nature scene with snow covered pine trees and a large hill in the distance. A small lone tree sits in the middle of a clearing. There are ski tracks to the left.

Nature scene with snow covered pine trees and a large hill in the distance. A small lone tree sits in the middle of a clearing. There are ski tracks to the left.

Did some hiking today πŸ₯Ύ
#Nature #Photography

29.12.2025 06:06 πŸ‘ 8 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Implement `SortedSet`, `SortedDictionary` Β· Issue #1 Β· apple/swift-collections OrderedSet and OrderedDictionary work great when we need to keep their elements in the order they were inserted, or if we only need to infrequently reorder/sort them. However, inserting (or removin...

On a related note, I keep checking to see if SortedSet is available in swift-collections so I can avoid a bunch of this too 😬

https://github.com/apple/swift-collections/issues/1

28.12.2025 04:15 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Code change showing switching from updating a property inline to making a copy, updating it, then reassigning it once.

Code change showing switching from updating a property inline to making a copy, updating it, then reassigning it once.

Clever me used a property observer to ensure I couldn't skip updating dependent values, but then I was lazy and updated the property more than I realized. This meant the side effect actually ran 3Γ—, one of which would occur with unsorted data. Since this […]

[Original post on social.axiixc.com]

28.12.2025 04:11 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Original post on social.axiixc.com

I'm gonna condense this a lot, but I spent *days* debugging an assertion failure where it looked like I was getting a value transposed between two days, but nothing was obviously wrong in my logic.

Turns out I kinda just bamboozled myself by adding the assertion while working on feature X, then […]

28.12.2025 04:08 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Original post on social.axiixc.com

Would it be correct to assume that there's no good way to pull off the typical fork/PR workflow across GitHub and Codeberg? Presumably that's something that federation would solve, though I doubt Github would ever implement it. That does seem to imply that (at least for now) if I wanted to […]

26.12.2025 23:32 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Even leaving aside use edits, some feeds are incomplete, with a fixed sliding window of episodes. I'm not sure how feasible it is to then losslessly union those over time. Not to mention how to handle top level metadata that could also change over time πŸ€”

25.12.2025 04:48 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Original post on social.axiixc.com

I also had some goals for this project which I'm starting to think might be in conflict, namely that I wanted to properly archive the original feed XML (to avoid stripping non-standard metadata) and to use XML as the canonical storage for shows. However, if I want to build a GUI to edit shows […]

25.12.2025 04:48 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Original post on social.axiixc.com

So after looking into the various podcasting XML specs, I'm having this issue where there's like five ways to specify some data, which wouldn't necessarily be an issue, except that it appears we need some meta-spec to explain what priority order to sort those in for display if they don't all […]

25.12.2025 04:43 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Screenshot of a macOS window with playback controls and a time scrubber replacing the traditional toolbar.

Screenshot of a macOS window with playback controls and a time scrubber replacing the traditional toolbar.

Hmm, okay, no I'm kinda back with controls on top now. There's like three hacks involved in making this work though πŸ₯²

24.12.2025 09:30 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

The issue with tea is that it’s something my brain exclusively thinks to make after sunset πŸ₯²

(Yes I know about herbal tea, but when you want tea it’s not the same.)

23.12.2025 07:09 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

@via well we can’t really do Twitter clients anymore πŸ₯²

22.12.2025 19:26 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Original post on social.axiixc.com

And h/t to @natpanferova, for one of the first search results on symbol effects, that helped me figure out why my code wouldn't compile. (Turns out the replace effect is spelled as image.contentTransition(.symbolEffect(.replace)), not just image.symbolEffect(.replace) 😬) […]

22.12.2025 06:35 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Progress!

22.12.2025 06:28 πŸ‘ 0 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0
Screenshot of a source code diff and the same code in Xcode. One using 2-space indent and one using 8-space for tabs.

Screenshot of a source code diff and the same code in Xcode. One using 2-space indent and one using 8-space for tabs.

I've been told tabs are better because people can choose their indent level at display time, which I'm sure is true, but it also makes column alignment effectively impossible. Not just ASCII art, but like any sort of wrapping scheme.

It probably does not […]

[Original post on social.axiixc.com]

22.12.2025 02:09 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Original post on social.axiixc.com

I've been trying out using swift-format and tabs based indentation on a project lately, because I've been told both are good things to embrace, but a month in and they're still both driving me nuts. Tabs are honestly not a big deal *except* for everything that demands displaying them as 8-space […]

22.12.2025 02:04 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Original post on social.axiixc.com

Putting playback controls on the bottom was originally me being too lazy to figure out how to override the title bar, but it's also kinda growing on me. If I do move it to the top I'd also need to relocate all the actual toolbar buttons too, and they'd probably just end up in a bar on the bottom […]

20.12.2025 08:13 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Screenshot of a macOS app window showing a list of episodes from the Playdate Podcast. The episode for Untitled Goose Game is downloading, with a progress indicator shown in the detail pane of the app.

Screenshot of a macOS app window showing a list of episodes from the Playdate Podcast. The episode for Untitled Goose Game is downloading, with a progress indicator shown in the detail pane of the app.

Got downloads working. Playback is still an absolute UI fabrication. I am clearly procrastinating from something, though I remain unsure of precisely what.

20.12.2025 08:12 πŸ‘ 0 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

I know why DRAM prices are going crazy, but whose fault is it that HDD prices seem to be going up too?

20.12.2025 05:30 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

UIStackView is my nemesis πŸ₯²

I can do regular auto layout constraints but somehow stack views never work like I think they should.

18.12.2025 19:30 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Is it just me, or does Xcode 26 randomly make the sidebar super wide when you’re not paying attention. I don’t think im doing this.

17.12.2025 19:10 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

@jwisser a possum wrote these

17.12.2025 07:17 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
A corn dog with uncooked crumbled ramen pieces baked into the breading.

A corn dog with uncooked crumbled ramen pieces baked into the breading.

Corn dog with red Cheetos dust, green onions, and a sauce (I forget what the sauce was).

Corn dog with red Cheetos dust, green onions, and a sauce (I forget what the sauce was).

Some noteworthy corn dogs from this weekend. Ramen with shrimp flavor and hot Cheetos dusted.

17.12.2025 04:15 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Starting to think that no amount of @/preconcurrency is gonna let me write a Combine.Subscriber without some error 😰

16.12.2025 03:43 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

iOS’s global β€œAllow Apps to Request to Track” toggle is great. Next they should add one for β€œAllow Apps to Display Tips and Welcome Screens” though. 1st party apps not excluded 😬

11.12.2025 06:31 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I wasn't going to post this because it's not done yet, but then I realized that it's not some work project that I only get to talk about once a year and I can just do things. Still unlearning I guess.

11.12.2025 06:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Screenshot of a podcast library app with entries for Gastropod, Panic Podcast, and Playdate Podcast; showing various episodes and episode description in a detail view.

Screenshot of a podcast library app with entries for Gastropod, Panic Podcast, and Playdate Podcast; showing various episodes and episode description in a detail view.

What's that one Jurassic Park quote? About how you shouldn’t necessarily do things just because you can? 🀣

11.12.2025 06:01 πŸ‘ 0 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0