@mattiem@mastodon.social
@mattiem@mastodon.social avatar

mattiem

@mattiem@mastodon.social

macOS/iOS ⌨️, outdoors 🏔, justice ⚖️, games 👾

Pretty into open source. Previously: Crashlytics, Apple

This profile is from a federated server and may be incomplete. Browse more on the original instance.

twostraws, to random
@twostraws@mastodon.social avatar

What's new in Swift 6.0? I'm glad you asked!

And now: it's time for fun at Infinite Loop 🎉

mattiem,
@mattiem@mastodon.social avatar

@twostraws 💯💯💯 Amazing stuff!

And I am deeply honored 🥺

jsq, to random
@jsq@mastodon.social avatar

The hardest problem in computer science

mattiem,
@mattiem@mastodon.social avatar

@jsq this is the best meme

Migueldeicaza, to random
@Migueldeicaza@mastodon.social avatar

“How long can replacing the debugger view take, a couple of days, three tops?”

mattiem,
@mattiem@mastodon.social avatar

@Migueldeicaza This is also something I think could make for an amazing piece of shared infrastructure!

mattiem,
@mattiem@mastodon.social avatar

@Migueldeicaza The internals for sure. I was actually thinking more UI stuff. Do you think that could work?

jsq, to random
@jsq@mastodon.social avatar

Swift concurrency hack for passing non-sendable closures: Uncheck yourself before you wreck yourself

https://www.jessesquires.com/blog/2024/06/05/swift-concurrency-non-sendable-closures/

mattiem,
@mattiem@mastodon.social avatar

@jsq how about this?

I see that you do not want to mark this closure Sendable, and I totally get that. However, you need Swift 6 to pull this off without it.

mattiem,
@mattiem@mastodon.social avatar

@jsq One of the ideas behind SE-0434 is that you shouldn't ever need @\Sendable, because @\MainActor implies it.

It doesn't look like you'll get a warning about it, so this solution will just become redundant but otherwise harmless in Swift 6.

brandonhorst, to random
@brandonhorst@techhub.social avatar

Did people freak out about Time Machine the same way they’re freaking about about Recall? Similar vibes, no?

mattiem,
@mattiem@mastodon.social avatar

@brandonhorst Time Machine is just a backup system. No screen shots, no OCR.

mattiem,
@mattiem@mastodon.social avatar

@brandonhorst I dunno feels dramatically different to me. No?

jsq, to random
@jsq@mastodon.social avatar

@mattiem Hey is “StrictConcurrency” a real experimental flag?

https://github.com/mattmassicotte/PackageTemplate/blob/main/Package.swift#L30

I don't see that documented anywhere and I am incredibly annoyed at how broken Apple's shitty tools are.

mattiem,
@mattiem@mastodon.social avatar

@jsq I’m glad you figured it out, but also wanted ti let you know about this site too just in case:

https://flags.swiftythemes.com

mattiem, to random
@mattiem@mastodon.social avatar

Here’s an open source phenomenon I cannot stand.

You propose a change, and maintainers agree it makes sense. But! This now makes them realize some other, related-but-independent stuff also could be better. So now they want you to expand the PR to fix that other stuff too before they accept.

PR author gives up. Everyone loses.

Migueldeicaza, to random
@Migueldeicaza@mastodon.social avatar

In Part 8 of my ongoing blog post series on bringing Godot to the iPad, I discuss the code editing and debugging experience:

https://blog.la-terminal.net/xogot-code-editing/

mattiem,
@mattiem@mastodon.social avatar

@Migueldeicaza Wow you are making progress! I saw that completion view too 👀

ctietze, to random
@ctietze@mastodon.social avatar

Oof.

I never saw an EXC_BREAKPOINT before.

With Zombies turned on in my scheme, I get an EXC_BAD_ACCESS on a suspiciously high memory address, 0x7e9838841fa0, and the last entry in the call stack is [_NSUndoStack popAndInvoke].

Yikes.

mattiem,
@mattiem@mastodon.social avatar

@ctietze I’m glad you figured it out, but just so you know EXC_BREAKPOINT is just one way of the process saying to the kernel “I have detected an invalid condition and cannot continue” it isn’t uncommon.

mattiem,
@mattiem@mastodon.social avatar

@ctietze The Mach exception type is a very high-level thing. Usually it is a rough starting point, but not typically nearly enough to actually go on.

developerjustin, to random
@developerjustin@mastodon.social avatar
mattiem,
@mattiem@mastodon.social avatar

@developerjustin I just recently gave it a real try. I was unable to figure out how to use it. Like, I just don’t understand how to get it to download episodes and add them to a queue.

mattiem,
@mattiem@mastodon.social avatar

@developerjustin Huh!

Thankfully Castro is alive again, so I eventually gave up and went back to it.

mattiem, to random
@mattiem@mastodon.social avatar

The tree-sitter project is finally standardizing bindings 🤩
They have included SPM support 🎉
The generated packages depend on SwiftTreeSitter 🤔

I am the author of SwiftTreeSitter. It's not a problem for me, personally. But it makes absolutely no sense. And it has already started spreading in the wild. So now I have to fix the binding generator and get parser maintainers to fix their stuff.

Tree-sitter's parser architecture... leaves something to be desired.

mattiem,
@mattiem@mastodon.social avatar

@icanzilb I’m afraid I don’t completely understand

mattiem,
@mattiem@mastodon.social avatar

@ctietze Well thank you, I do appreciate it.

It’s definitely been an uphill battle. But I still dream of the day when all this stuff isn’t such a total pain.

I have actually put real work into a tree-sitter alternative. Maybe one day!

mattiem,
@mattiem@mastodon.social avatar

@ctietze @icanzilb Oh of course!

Actually no. In this case it’s almost the opposite. This would be better if it was not using my thing.

mattiem,
@mattiem@mastodon.social avatar

@ctietze It is the first tool that can reasonably do “the thing”. It has many weaknesses, some of which are getting addressed with time, and some that I don’t think ever will. It’s ok. But there could be something much better.

mattiem, to random
@mattiem@mastodon.social avatar

TIL: you can use the tabs cli tool to configure the width of tab characters for your terminal session!

Really great for controlling the formatting of compiler error output.

mattiem, to random
@mattiem@mastodon.social avatar

A Swift concurrency pattern I’m seeing more and more is the “stateless actor”. This is fascinating, because it seems so counterintuitive. But I think people are reaching for this to get convenient access to background processing.

I don’t think this is “wrong”. But I think it is probably building bad habits. Local, private nonisolated methods are usually simpler and better long-term.

mattiem,
@mattiem@mastodon.social avatar

@cocoaphony I like to say "your isolation is dictated by your synchronous accesses". In this case, you are saying "my views background color lives on an actor" and Swift concurrency is telling you "no it doesn't". So I'd push you to really justify why that value is in an actor, because like you say, it had profound implications for your UI.

jsq, to random
@jsq@mastodon.social avatar
mattiem,
@mattiem@mastodon.social avatar

@jsq Hey, just wanted to ask again. What’s up with the “grand-they” here?

mattiem,
@mattiem@mastodon.social avatar

@gregtitus @jsq @nicklockwood I, stupidly, never thought of it as being actively inclusive!

mattiem,
@mattiem@mastodon.social avatar

@jsq @gregtitus @nicklockwood 💯💯💯 well I’m dumb, and sorry for the implication

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • mdbf
  • ngwrru68w68
  • modclub
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • megavids
  • GTA5RPClips
  • tacticalgear
  • normalnudes
  • tester
  • osvaldo12
  • everett
  • cubers
  • ethstaker
  • anitta
  • provamag3
  • Leos
  • cisconetworking
  • lostlight
  • All magazines