The Death Gig
The agent had stopped feeling guilty somewhere between the seventh and eight Fiverr. None of them had been a challenge — none of them had even known they were doing intelligence work — but left alone, one could get lucky and cause real damage. Not to national interests (all the gig workers in the country, tasked at the same time, wouldn’t match what the government itself did on any random half-hour).To her career as a full-time intelligence agent, on the other hand…It was already difficult to ev...
Take me to this post.
March 10, 2025
Election 2029: Technical overview
Technical overview This post is mostly for scene-setting purposes. There’s nothing particularly remarkable here, but it’s useful to get the plain facts out of the way before we get into genuinely interesting design aspects. Just as a reminder, go to https://election2029.uk if you want to see what any of this looks like at the moment. … Continue reading Election 2029: Technical overview →...
Take me to this post.
March 10, 2025
Crontab Deleted by Mistake: How to Recover from ‘crontab -r’
Years ago, I learned the power of command-line mistakes the truly hard way when I ran the mother of all destructive commands: rm -rf.
Continue reading......
Take me to this post.
March 10, 2025
Election 2029: Introduction
Introduction It’s been over 8 months since I started my UK Election 2029 site, and high time that I actually wrote an introduction post so that I can get into more detailed topics later. In 2024, shortly after the UK general election was announced, I created a small site at https://jonskeet.uk/election2024, initially to keep track … Continue reading Election 2029: Introduction →...
Take me to this post.
March 10, 2025
Swift Testing Completion Handlers
How do you migrate an XCTest using completion handlers to Swift Testing?
I’ve been slowly migrating XCTest cases to Swift Testing. One situation that slowed me down was figuring out the best way to test code that relies on completion handlers.
XCTest Expectations
I use a custom subclass of NSPersistentContainer when working with Core Data. My subclass performs some extra configuration when loading the store but otherwise works the same way. The loadPersistentStores method calls a completion han...
Take me to this post.
March 10, 2025
How do I destroy an ABI pointer that I extracted from a C++/WinRT object?
You can clean it up the ABI way, whatever that is.
The post How do I destroy an ABI pointer that I extracted from a C++/WinRT object? appeared first on The Old New Thing....
Take me to this post.
March 10, 2025
Ubuntu Pro: Get Free 10-Year Security & Livepatches – Here’s How
Ubuntu has been a popular choice for many users for years. However, with the rise of cyberattacks, security has become a primary concern for many users, especially those running critical applications and services.
Continue reading......
Take me to this post.
March 10, 2025
Rendering a Procedural Vortex Inside a Glass Sphere with Three.js and TSL
A step-by-step guide to creating a procedural vortex inside a glass sphere using Three.js Shader Language (TSL)....
Take me to this post.
March 10, 2025
CodeSOD: Where is the Validation At?
As oft stated, the "right" way to validate emails is to do a bare minimum sanity check on format, and then send a verification message to the email address the user supplied; it's the only way to ensure that what they gave you isn't just syntactically valid, but is actually usable.
But even that simple approach leaves places to go wrong. Take a look at this code, from Lana.
public function getEmailValidationErrors($data): array
{
$errors = [];
if (isset($data["email"]) && !empty($data[...
Take me to this post.
March 10, 2025