Totally sucks. You can go settings > apps > safari > [change tabs to “bottom” instead of compact] and it reverts to how it was
Totally sucks. You can go settings > apps > safari > [change tabs to “bottom” instead of compact] and it reverts to how it was
Too quiet in the neighborhood tonight. I’m actually looking forward to the teenagers-without-costumes showing up.
You know you're getting old when your shoulder is sore from playing Skee-Ball.
Remember when "I've forgotten more about programming than you ever knew" was a flex and not admitting senility?
I use this as a BBEdit plugin:
pretty-json.sh:
#!/bin/bash
python3 -c "import sys, json; print(json.dumps(json.load(sys.stdin), indent=2))"
and put it in /Library/Application Support/BBEdit/Text Filters
For validation, I usually use jsonlint.com
Apple "Intelligence"
Streamnesia: When you forget which streaming service a particular show is on.
Somebody please review all of the #WWDC videos and tell me which ones I should watch.
Siri no longer disappoints because expectations are so low.
If AIs are so good at creating computer code, why do all of their apps suck so much?
"sudo killall mds" is your friend.
he "" key isn' working on my MacBook Pro keyboard any more. his is annoying. Why couldn' i have been "z"?
Why did nobody ever tell me you can select a file in The Finder, Cmd-C, and then Cmd-Opt-V to move it rather than copy it?
Apparently this was added in 10.7 (2011), so still a "new" feature for me.
Celebrate Women's History Month with - wait for it - The Penguin.
I think someone at #HBO is drinking tonight.
UPS: It will arrive by 7:45pm
Me: It didn't arrive until 7:48pm
UPS: Are you always this pedantic about time?
Me: Pretty-much
I am amused that Canada's retaliatory tariffs include:
Bombs, grenades, torpedoes, mines, missiles and similar munitions of war and parts thereof; cartridges and other ammunition and projectiles and parts thereof, including shot and cartridge wads.
♫ Forward down the field… ♫ #DetroitLions
Thanks. It's good to know I'm not missing something simple, but annoying that Swift concurrency can't more easily do something so commonly needed.
Yes. I was trying to transition old code to Swift concurrency, mostly as a learning exercise but also to make sure I'm updating properties on the right thread/task for SwiftUI. (That part isn't shown in the code I posted, though)
Simplified:
public class Log {
private let queue = DispatchQueue(label:"log")
public func log( _ msg: String ) {
queue.async {
writeStringToFile(msg)
}
}
Log entries get written in their entirety and in order† without locking up the current thread.
†For each calling thread
I recently switched a project to Swift concurrency and can't even figure out how to perform a series of operations in-order on another Task, like logging or network streaming - FIFO. I'm thinking of going back to DispatchQueues.
Good programming practices comes from experience, and experience comes from bad programming practices 😏
Love #Swift & #Xcode:
Non-sendable type '() -> ()' in implicitly asynchronous access to main actor-isolated property 'callback' cannot cross actor boundary
Cannot access property 'listener' here in nonisolated initializer; this is an error in the Swift 6 language mode
“The undisputed king” seems a tad over the top, but I’ll accept and enjoy it anyway. #grouch
daringfireball.net/linked/2024/...
Idea of the day: Monetize a free app by selling the icon to corporate sponsors for a limited time.