This is just a little snippet that is quite useful for reporting when your GUI thread (the main thread / actor) hangs for a significant amount of time. There are numerous heavier-weight tools for analysing this sort of thing, but I’ve found that this simple monitor does what I need most of the time.| wadetregaskis.com
I recently replaced a horrible, dodgy Zoom H4n with a Tascam Portacapture X8, for recording (primarily) theatre and music performances. One of the appeals was 32-bit floating-point recording which was literally promised to eliminate concerns about input levelling, clipping, and noise: The reality is, with 32-bit float recording you can turn on your recorder, hit… Read more| Wade Tregaskis
Apple does provide these instructions, although they were annoyingly hard to find (in no small part because the page title is only incidentally related to the task). In short: My projects are already covered by Time Machine and other backup mechanisms, and I tried to tolerate Final Cut Pros built-in backup system, but the damn… Read more| Wade Tregaskis
Bad horse, bad horse, He rides across the nation, The thoroughbred of sin… Read more| Wade Tregaskis
For nearly a month now, Backblaze has been fixated on a particular file of mine, that happens to be over 1 TB in size. Backblaze seemingly uploads it completely, but then on the next backup it uploads it again, even though it has not changed (in eight years!). Ad infinitum. Using their Explainfile tool to… Read more| Wade Tregaskis
This post is mostly to herald a pretty good Apple bug report response, which as we know is a too-rare event. But it might also help others with this confusing SwiftUI API. What’s the difference between presentedWindowStyle(_:) and windowStyle(_:)? Well, one does something, the other doesn’t, basically. I tried using the former, and observed that… Read more| Wade Tregaskis
This is a public reposting of FB14893699, in case it’s helpful to anyone else or especially in case someone else has seen this too and knows how to work around it. If any view in the [active] window contains a Toggle – even one that’s disabled or hidden – then Continuity Camera (re. ImportFromDevicesCommands and… Read more| Wade Tregaskis
This is a public reposting of FB14885505, in case it’s helpful to anyone else or especially in case someone else has seen this too and knows how to work around it. NSPasteboard mutates itself simultaneously from the main thread and the global concurrent Dispatch pool, w.r.t. to its internal type cache. This is surprisingly trivial… Read more| Wade Tregaskis
Sometimes you just need to shove a round peg into a square hole. Sometimes that genuinely is the best option (or perhaps more accurately: the least bad option). I find my hand is often forced by APIs I don’t control (most often Apple’s APIs). e.g. data source or delegate callbacks that are synchronous and require… Read more| Wade Tregaskis
Famously, Google used to have a practice dubbed “20% time”: about one day a week, engineers were {expected ⊻ encouraged ⊻ permitted ⊻ tolerated ⊻ known} to work on something other than their nominal work; something they themselves chose. Circa 2011, not long after I joined Google, I pitched a 20% project idea to my… Read more| Wade Tregaskis
There’s a couple of bugs in Stellaris, that have been present for year(s), where the AI inexplicably builds absurd numbers of construction and/or science ships, then has them sit idle forever. This AI behaviour would be merely eccentric if it didn’t cause major performance issues with the game. For the case of too many science… Read more| Wade Tregaskis
I’m very glad Apple’s Messages team somehow snuck this one little button past the corporate bureaucracy (Apple infamously likes to pretend their software is infallible and therefore doesn’t need things like useful error messages or rectification tools). It’s of course not great that iMessages don’t reliably sync between Apple devices to begin with, but at… Read more| Wade Tregaskis
Consider these two examples involving Flickr, that occurred within just one day of each other. Nice gal Amanda I submitted the following feedback, not really expecting much of it. In fact, I fully expected some useless, boilerplate response that completely ignored the point and directed me to the upload requirements page (despite it being the… Read more| Wade Tregaskis
NSCopyObject is a very old Foundation function - pre-dating Mac OS X entirely; from the NeXT era - that was originally basically just memcpy, but now it's complicated. A lot more complicated… Read more| Wade Tregaskis
Rob Napier‘s short anecdote intrigued me, and I was curious if anything has changed in the fourteen months since. After all, that’s supposed to be eons in “AI” terms, right? Spoiler: not much has changed. Kagi does a bit better, but Bing is still the best, Google still sucks, and ChatGPT (when considering Bing Copilot… Read more| Wade Tregaskis
Reading SwiftData vs Realm: Performance Comparison reminded me of an anecdote from my days working on Shark, at Apple. I don’t really remember the timing – sometime between 2006 and 2010 – but presumably around 2006 as I recall it was when Core Data was still relatively new. For whatever reason, there was a huge… Read more| Wade Tregaskis
I don’t know why, but it’s apparently impossible to directly import a Lightroom catalog from one computer into the catalog of another. It always fails at the end of the import with the same infuriatingly useless error message. However, I seem to have found a fairly reliable workaround: In my experience you must perform the… Read more| Wade Tregaskis
Five years ago installing Swift on a Raspberry Pi – or really any non-Apple platform – was fairly involved. Compared to getting a Raspberry Pi working to begin with it was easy, but still a far cry from apt install swift. Sadly it’s still not quite that easy (and some Python package is squatting on… Read more| Wade Tregaskis
Swift makes it relatively easy to format numbers as byte counts, with appropriate suffixes to indicate units and generally sensible auto-selection of scale factors. e.g.: 1 kB (in English – results may vary depending on locale) This is just a small subset of Swift’s FormatStyle-based formatting capabilities, with which I have a bit of a… Read more| Wade Tregaskis
I have a bit of a love-hate relationship with Swift’s FormatStyle-based formatting capabilities. 42% (in English – results may vary depending on locale) On the pro side: But the cons are rough: All in all, there’s a reason fuckingformatstyle.com exists (and don’t forget to tip!).| Wade Tregaskis
A few weeks ago, Axel Roest published a simple web server comparison, that turned out to not be doing what it was thought to be doing. Figuring that out was a very interesting discussion that warrants a retrospective, to look at which parts were particularly helpful and which not so much. Tangentially, I want to… Read more| Wade Tregaskis
The following code prints the Fibonacci sequence. You’ve probably seen it before. It’s one of the simplest and most well-known examples of a sliding window operation – where the next value depends on the preceding two (or more) values. While almost all programs do not calculate the Fibonacci sequence, many do contain similar sliding-window algorithms.… Read more| Wade Tregaskis
Contents| wadetregaskis.com
32-bit float audio recording is not a panacea| wadetregaskis.com
Maybe this’ll help your future would-be customers.| wadetregaskis.com
So far the new “Classic” Lightroom looks & feels mostly identical to the prior version(s), which isn’t really a compliment, but could be worse. There’s no apparent performance improvements, that’s for sure, so as expected Adobe’s promises to suddenly learn how to write efficient & performant software, well… at least their marketing department gave it the college try.| wadetregaskis.com
I don’t see why the very slightly different colour scheme, vs the regular iMacs, is such a big deal to some people. Yes, it’s fairly obviously a different colour. No, it doesn’t really look any better (nor worse) than the regular iMac’s colour.| wadetregaskis.com
Contents| wadetregaskis.com
Contents| wadetregaskis.com
Contents| wadetregaskis.com
Contents| wadetregaskis.com
Contents| wadetregaskis.com