Archive for November 14, 2023

Tuesday, November 14, 2023

Cursorless Is Alien Magic From the Future

Xe Iaso (via Hacker News):

Cursorless is a plugin that integrates with voice control software to let you do AST level code editing with your voice. This is crazy alien magic from the future.


The most magic parts about this are the ideas of destinations and targets when it comes to cursorless inputs. Targets are individual anchors in a document and destinations are places relative to individual targets. Every single token in a document is given a hat over a letter with a color. These hats act as anchors that let you give commands based off of locations, destinations, and paths between them.


The real power of cursorless comes in from not only the idea of paths (such as green urge past green bat to select the function fetchBlog in that screenshot), but the fact that cursorless knows what the AST of the language is doing. This means that you can do things across the entire function, like deleting it or moving it somewhere else.


On-Crash Backtraces in Swift

Alastair Houghton:

Prior to Swift 5.9, all you would get when your program fails is a message from the parent process (often the shell) telling you that the child process crashed[…]


Now, instead of the opaque message above, the result looks something like this[…]


This new feature greatly improves the on-crash debugging experience on Linux, where it is on by default. It is useful on macOS as well, but must be manually enabled.

There are also interactive backtraces:

The idea behind this feature is that it leaves the program suspended (by default for 30 seconds, but this is configurable) and provides you with the opportunity to either attach a debugger, or perform some additional inspection of the crashed process.

If you tap the spacebar when this prompt appears, you will be presented with a simple command prompt that allows you to change the backtracer settings, generate a new backtrace, list loaded images, display register and memory contents, and get a listing of all of the threads in the process.


Computers Are Magical; Computers Are Awful

Nick Heer:

I was reminded of Nikita Prokopov’s classic post today — “People Expect Technology to Suck Because It Actually Sucks” — in much the same way I think of it many days but, and especially, today. These are all things which happened today from when I woke up[…]


None of the problems above are life-changing, but this list is representative of the kinds of hiccups I experience more-or-less daily. It could be a different mix of things with less or more impact than those above, but these problems often require I spend time trying to diagnose and fix them. Sometimes I can; sometimes, as with the Adobe Audition problem, the tools just suck and I have no recourse.


It is amazing what I do every day with the computer on my desk, the one on my lap, and the one in my pocket. But I wish they did everything more reliably, predictably, and consistently. I am prepared to fix things sometimes. I do not understand why I am tending to these things daily like they are made in a shed instead of by some of the world’s most valuable corporations. We, the users, deserve better than this.

I used to run into no recurring daily issues with my Macs, but the last several releases it’s been the same bugs almost every day, with Finder and external storage particularly bad.

On the day I read this post, I temporarily missed an iMessage that my mother sent from the hospital. For some reason, it was only received by my iPhone, which was in a dock with the screen off. Days later, it never arrived on any of my Macs or my iPad, even though I have Messages in iCloud enabled, and even though I toggled that as well as iMessage on my various devices to try to force a sync.

Later that day, I tried to update one of my Macs to macOS 14.1.1. The partition had 80 GB reported as free before the update, but the update failed due to lack of free space. I thought that meant that it just failed to prepare (as it often does) but hadn’t actually made any changes. Instead, when I restarted the Mac, it looked as though it was starting to apply the update, then failed and left the Mac in an unbootable state. I rebooted in Recovery but then remembered that Apple had removed the feature to roll back to a snapshot from before a system update. I ended up booting from another partition, making a Super Duper clone, erasing the container, reinstalling macOS, migrating from the clone, reauthorizing everything, and then installing the update again (which again failed several times to prepare).

Juli Clover:

Apple briefly paused work on upcoming iOS 18, macOS 15, watchOS 11, and tvOS 18 updates last week in order to make a serious effort to address bugs in the future iPhone, iPad, Apple Watch, Apple TV and Mac releases, according to Bloomberg’s Mark Gurman.


Apple’s software chief Craig Federighi has been making an effort in recent years to ensure that software bugs are addressed, sometimes resulting in features that need to be delayed. Sources that spoke to Gurman said that with the upcoming software updates, the software engineering management team working under Federighi found too many bugs that were missed in internal testing, leading to a week-long sprint to address the issues.

I can’t say that I’ve noticed this effort, except perhaps that there are fewer new bugs. The overall count of issues that I run into seems to be increasing, not decreasing. I think they need a couple of years, not a week.


Google AdSense Changes From CPC to CPM

Dan Taylor (via Hacker News):

Today, website owners use a combination of direct sales, ad networks and sell-side platforms to sell their ad space, often using multiple technologies simultaneously.

This is why we are making two changes: updating AdSense’s revenue-share structure and moving to paying publishers by impression. These changes will provide a consistent way for publishers to compare the differing fees across the various technologies they use to monetize and will provide even greater transparency into the media-buying process.

Based on our tests, we don’t expect publishers to see a change in their earnings as a result of these updates.