Latest Posts (20 found)

Plagiarism ain’t cool bro :(

It’s not every day I read an email subject that makes my heart sink, only to find myself laughing out loud. Today I was told someone plagiarised my website! The snitch lol informant wishes to remain anonymous (they’ve obviously read my blog!) I wasn’t sure how to deal with this situation. At first I was mad. Should I go super saiyan on the culprit with fire and brimstone? That would be mean spirited but the dude did try to steal my vibe. I’ve decided to go easy and just call this guy out. You can be the judge. Update: the copycat has since changed their website (thanks!) so I’ve redacted full names here and removed the direct link. I mistakenly dated this post Friday 4th (it’s still the 3rd). For the sake of RSS feeds I’ll only note the error. Without further ado, here’s the jump scare for the guilty: Okay, so Jordan [REDACTED] hasn’t completely ripped me off, but the influence is obvious. He’s also working with… well let’s just say the constraints of Bear Blog (I’m being kind.) Quick aside: Jordan’s two blog posts are the icing on the cake. I believe so. The colour scheme is almost identical. The oval green logotype. The use of a pink star shape. My star is a custom vector, Jordan is using Unicode “✦” (U+2726) . The sans-serif for body copy and script font for headings. Lobster is not a bad choice if you’re limited to Google Fonts but it’s kinda played out. The combination of all these things is key. I doubt anyone can look at the side-by-side and say the similarities are coincidence. Maybe it was intended to be and I should be flattered. I’m not. It makes me a little sad. Is it not courtesy to ask “is this cool?” — I never got that from Jordan. Not even an attribution. Nothing in design is truly original. I had plenty of influences myself. However, my personal style has evolved over a decade . Jordan saw my website two days ago and decided to copy it (probably found it via Hacker News or Lobst.ers ). Plagiarism is seriously uncool even when done poorly. Am I being fair calling this plagiarism? Should I have sent a “cease and desist” first? Had it been more direct and higher quality, I’d have written this post differently, that’s for sure! Anyway Jordan, this is an open letter to you. Please try to be a little more original. And please get off Omarchy if you haven’t already: Thanks for reading! Follow me on Mastodon and Bluesky . Subscribe to my Blog and Notes or Combined feeds. Normalized Fascism in Open Source: $12 Million Given to DHH 1Password wades into a right-wing mess after funding a Linux project 1Password Supports the Ethnic Cleansing of Europe DHH Is Way Worse Than I Thought The DHH Problem

0 views

I don’t know what to do on a computer anymore.

For as long as I can remember, computers have been a creative hobby for me. As a kid, I “hacked” programs with ResEdit on Macintosh System 9. I wrote programs in C++ on a Palm Pilot and built apps in Chipmunk BASIC on our iMac G3. Through high school, college and my career I’ve always been working on some side project. Something I could get lost in, solving problems while building something I felt proud of. One of my earliest personal websites (I had a geocities but can't find it) That’s gone now. The robots have extinguished the spark. I still grab my laptop in downtime, only to stare at the desktop, unsure what to do with it. The curiosity, creativity and thrill of solving problems is gone. What's the point when you can build anything with a sentence? It’s a weird feeling, a state of mourning almost. Losing a hobby, a part of me, that I’ve had since I was 12. And to be honest, I’m starting to feel the same way in regards to maintaining and writing on this site. Not sure how much longer this blog will stay, I just don’t think the internet and tech is a place for me anymore. It's good I have cycling, a sort of replacement hobby (that comes with social groups), but still, it hurts.

0 views

You Should be Using Rootless Containers

The other day a serious vulnerability was disclosed in one of the newer Linux distributions (the one led by the racist, so it isn't getting a mention here). The issue was interesting because it was caused by a non-standard Docker configuration that their installer applied by default, without alerting users that this configuration was creating a security risk. The end result was that any process running on these systems had the ability to elevate itself to root, without password, or any prompts to the user. While this incident did not affect me, it served as a reminder that it is difficult to set up Docker in a way that is secure. If you are interested in understanding what the issues with Docker are and what can be done to address them, then you are in the right place.

0 views
Unsung Today

“I would be very happy to see all kinds of text editors adopt this.”

Speaking of cut in File Explorer , Will McGugan, creator of the writing editor Ishmael , proposes doing the same thing for text editing – that is, leaving ghost text behind: I call it “Ghost Cut”, and it works like this: pressing Ctrl+X fades the selected text and makes it inert—you can’t click on the cut text and the cursor just kind of leaps over it, but it is still present in the document. Nothing is placed in the clipboard at this point and there is nothing to undo. If you decide you don’t want to paste then hitting Escape will restore the text to its active editable state. I do not think this is a good idea. It seems like McGugan proposes somewhat arbitrary reasons that cut and paste are “broken,” and to me the proposal fails even within his own framework: for example, it still doesn’t avoid the reflow, but moves it to the other side, making paste feel unstable (the included JavaScript playground feels disorienting to use). I think it also is at odds with the editor’s own about page , which talks about distraction and simplicity – and yet, what’s introduced here is a host of complex new things: a new visual state for cut text (that looks like AI autocomplete), some new logic to avoid moving into the cut text (which will also prevent easy selection adjustments), likely new confusion around undo, and a necessary new Esc gesture to get rid of a cut you decided not to pursue. But! There is something interesting in seeing this ghost text, and specific critique aside, it is fun to see experiments like these, with interactive explainers, poking at long-established interactions. Just yesterday, a second one appeared: an interesting new way to extend selection upwards – similar to double and triple clicking on text, but via the keyboard. This is the power of prototyping: sometimes seeing an idea you disagree with is the only thing that can unlock a different solution in your head. Let’s go back to cut and paste, though. You will notice that what’s listed as a precedent is not File Explorer, but Excel. It also doesn’t immediately remove selected cells on cut, but leave them in a temporary “possibly getting moved or removed” state first, only to have them disappear after paste: Why is that? I believe out of a similar principle, but a distinct reason that File Explorer too opts to leave a cut ghost behind. The stakes are higher in a different sense: cells refer to other cells. Were the removed cells to disappear immediately, you might witness the rest of the spreadsheet error out or show zeroes, as its formulas start pointing to emptiness. And it’s a good principle to generally avoid frightening your users. Here’s an example from Numbers, which doesn’t do ghosting, making cut a bad choice to do a simple move, as it doesn’t even recover after paste: #explainer #text editing

0 views

2026-09-03 14:47: Why do so many calendar apps offer Sunday as the first day of the week?...

Why do so many calendar apps offer Sunday as the first day of the week? It's not the first day of the week, it's the last. Why is that even an option FFS? Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️ You can reply to this post by email , or leave a comment .

0 views
Unsung Today

Windows does it better, pt. 3: Cut in File Explorer

Dragging and dropping files with your mouse in the Finder is nice, but there are many moments you wanna reach for the keyboard instead. Finder supports that. You dragged the file to a wrong place by accident? ⌘Z can undo it in a jiffy. You already have the right windows open? ⌘C and ⌘V can start a copy faster than the fastest of mouse gestures. And for cutting, there’s always… = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/1.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/1.1600w.avif" type="image/avif"> …well, no, there isn’t. To the best of my knowledge, the Cut item in the menu never lights up around files or folders; you simply cannot ⌘X or cut in the Finder. I think I understand the reasoning here. Of the Fantastic Four that is ⌘ZXCV, it’s ⌘X that is the truly dangerous one. Putting something in a clipboard is always a balancing act – a moment of inattention, and ⌘X turns into Delete. We generally accept it for text because the stakes are not very high, and text undo is basically too cheap to meter . Even then, occasionally, disaster strikes. For files, the stakes are quite a bit higher. The creators of the File Explorer in Windows knew all that – yet, Cut still works there: The way this is done is that the file isn’t immediately removed and put on the clipboard. No, only the intention of cut is registered – one half of the handshake, if you will – but the file stays put and nothing happens until the deal gets closed via a subsequent paste. Or, almost nothing. There is a signal that ⌘X took effect – the cut files turn slightly transparent to indicate they put on their shoes and they’re ready to go. But if you don’t finish the paste, they become solid again the moment you cut something else, or when you restart the computer. (I wouldn’t be surprised if there’s a timeout, too, although I couldn’t verify that.) I am not sure why macOS doesn’t do it the same way, particularly since they have a half-finished state designed already, for copying larger selections: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/3.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/3.1600w.avif" type="image/avif"> This feels like a strange omission I don’t fully understand, particularly given that it was vintage Mac OS that put the ⌘XCV combination on the map: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/4.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/4.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/5.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/5.1600w.avif" type="image/avif"> What’s even stranger is that the Finder has a command to move files – but an unusual one, buried inside the secret area in one of the menus, as an ⌥ alt to Paste: It works. By putting the action on the other side, it avoids the “file floating in outer space” challenge, too. But it’s so undiscoverable that even though Move Item Here was introduced in 2011, I only learned about it a month ago as I started researching this more – and even though I know about it now, it still feels profoundly alien, being on the wrong side of the cut/paste continental divide. In a reversal of typical state of things, it feels to me is that it was Mac that did a simple/​cheap thing, and Windows that spent extra effort to dress it up into clothes of an existing Cut for reasons of familiarity, consistency, and better experience. Sure, a keyboard way to move files like Move Item Here is somewhat valuable, but nowhere near as valuable as a traditional cut, put under ⌘X ahead of ⌘V, working the same as everywhere else for years, even for decades, as one of the first denizens of motor memories all around the world. #finder #flow #keyboard #sins of our finders #system design #windows #windows does it better

0 views

RSS feeds for individual authors of The Register using The Register's new API

Tech website The Register used to offer author-specific RSS feeds . It has recently changed how it does RSS feeds , to use the new api.theregister.com. Thanks to a kind fedizen for showing how one can still use this new API to get author-specific feeds: One can also use instead of , and this brings back a slightly different set of posts. I don’t know which is “right” or better for my use case. Annoyingly, whichever selector one uses, this results in one single massive block of text, without paragraphs or other formatting. Which is better than nothing, but not ideal. I have yet to find a way to deal with this.

0 views
Justin Duke Yesterday

Soulstone Survivors

M&Ms tend to trigger in me a kind of existential crisis if I have more than a few. A small handful is no problem, but any more than that and I abruptly come face to face with the mechanics of what I'm doing — the sheer artifice of the thing I'm putting into my body. I find myself overcome with a violent repulsion, so strong that I'll end up literally spitting out whatever is in my mouth and, in doing so, briefly swearing off the mere concept of processed food. Playing — and ultimately washing my hands of — Soulstone Survivors felt very much like this. Not because of anything so simple as in-game quality: the game is a competent, polished entry in the survivors-like genre that Vampire Survivors spawned into existence, one of many that focus on polish and technicolor spectacle. But one of the things I think is underrated about Vampire Survivors' success is that it's a weird and charming game, filled with secrets and surprises meant to confuse and delight the player — not merely to accelerate the rate at which dopamine enters the body. Soulstone Survivors is very good at the dopamine. It is also, in a certain sense, very boring. The game offers breadth — skill sets, customization, playable characters galore — and these choices do have meaningful differences. But they all serve exactly one purpose: to explode things and clear fairly simple arenas in a manner that does not vary from run to run. It would feel disingenuous to give Soulstone Survivors a particularly negative review, because it is a fun game for a time, and it accomplishes exactly what it sets out to do. And yet I can't recommend it — because I don't think it is good for you. I am, at heart, a romantic who believes that video games are, at their best, a transformative piece of art. Even the ones focused purely on pleasure can do so nobly, in a way that puts them on the same tier as something like Ocean's Eleven or Jaws : works of entertainment that carry merits outside that simple rubric. Soulstone Survivors is not one of those. It is an M&M.

0 views
Justin Duke Yesterday

Conjury

A difficulty I have when reviewing Slay the Spire -likes is a certain anchoring bias. It can feel unfair to judge an otherwise good game, even partially, by dint of it being so aggressively inspired by a game that I consider, on a mechanical level, literally the best ever made. Conjury exists almost as a perfect distillation of this trickiness, because it is fundamentally a very good iOS game with much to love that — after a while of playing it — I cannot help but find wanting in comparison to its forebear. Structurally, and aesthetically, it is almost like a demake of Slay the Spire. Each run consists of a handful of acts, shorter and with fewer branches than Slay the Spire. Combat is a simplification of the same engine: using energy to play and draw cards, balancing attack and defense, leaning on emergent interactions between cards. And it is particularly well optimized for its format. It looks gorgeous on an iPhone; the pixel art is done just right, as are the audio and the scaffolding around it. Where the game struggles, on the gameplay side, is in the monotony — both at a micro and a macro level. In a micro sense, encounters do very little to differentiate themselves from each other; even bosses feel fairly samey, and whatever variety a given fight offers comes much more from the order in which your cards are dealt than from any need to tailor your tactics or decision-making to the enemy you happen to be facing. At a macro level, the various characters you can play in Conjury do feel fresh and distinct from one another, but repeated runs of a given character do not. This would be much less of a problem if it weren't for the fact that, in order to unlock new characters, you have to grind through a lot of runs. Where Slay the Spire is very generous with handing you new mechanics and play styles and characters as soon as you're ready to appreciate them, Conjury makes the exercise feel daunting and chore-like. In a way — and to its credit — that is not entirely dissimilar from games of the era whose aesthetic it so successfully emulates. So it's not as good as Slay the Spire. Is that so brutal a condemnation? No. And, to end on an earnest and positive note: the more honest comparison would be with other iOS games, where all of my quibbles are rendered moot. I don't think it's unreasonable to say that the average iOS game ranges somewhere from offensive to actively malicious. Obviously, there are many counterexamples. But if you're evaluating this game from the perspective of is this a better choice than anything else on the App Store, given that I've already played Slay the Spire to exhaustion? , the answer is an emphatic yes. Hmm.

0 views
Justin Duke Yesterday

Coffee and Cigarettes

The relative scarcity of anthology films contributes to an unease with their lack of narrative cohesion in much the same way someone reading a collection of short stories for the first time might get to the end and, in desperation and frustration, rapidly flip back through the pages as if to spot the technicolor threads binding each story together. The joy is in spinning the threads yourself, not spotting them! (That's not to suggest the through-lines in Coffee and Cigarettes are particularly subtle. Many are textual: as if the titular motifs and the various displays of vaguely anonymous cafés weren't enough, characters echo other characters' prior lines verbatim, perhaps most obviously and symbolically in the Nikola Tesla line — that the earth is a conductor of acoustical resonance .) Regardless of narrative structure, though, I found the film straightforwardly entertaining by the second or third segment, once I felt like I had really gotten used to its vibe. (The first segment in particular caught me off guard and suggested a much more surreal film than the ten which followed it.) And from then on out, I started to understand this film to be an exploration — both earnest and comedic — of the ways people try to connect with one another, and the ways people try to seek refuge in consumption, and the overlap of those two things. I am surprised to discover that people think of this as a boring film, but perhaps that is my biases showing. Most scenes are, to re-use a parallel, like a well-crafted short story: exactly the right length to land the punches they wish to before departing. And I will remember this film more by its trees than its forest: the sheepish way Iggy Pop, after awkwardly dismissing Tom Waits despite their kindred spirit, reaches for a second cigarette, hoping no one catches him doing so; the shadows falling on Alfred Molina's face as he is finally and explicitly rejected by Steve Coogan, both of whom playing fictionalized versions of themselves to great effect; the angelic notes of Janet Baker summoned as if to suggest a bright and beckoning afterlife awaiting the protagonists of the final segment, who, pretending for sport that their coffee is champagne, takes one last celebratory sip.

0 views
Martin Fowler Yesterday

Bliki: Paracelsus Maxim

The difference between a medicine and a poison is dosage. Often we talk about certain habits, in programming or life, are good or bad. But few things are simple binaries. Some vary with context: reading a book is a good thing sitting in my garden, but not while driving my car. But another variable is dosage: a little pain-killer salves my headache, but too much will kill me. The importance of dosage was noticed by a 16th century Swiss physician called Paracelsus. His quote was originally in German “Alle Dinge sind Gift, und nichts ist ohne Gift; allein die Dosis macht, dass ein Ding kein Gift ist.” which ( according to Wikipedia ) translates as “All things are poison, and nothing is without poison; the dosage alone makes it so a thing is not a poison.” It's also known as “The dose makes the poison” or if you prefer your sayings in Latin “dosis sola facit venenum”. In programming, global data is a good example of the Paracelsus Maxim (as I like to call it). A little global data, especially when immutable, can be a handy way of propagating information that may needed anywhere in a program, but it quickly becomes dangerous if there is a lot of it about. This kind of thing crops up in lots of places. So when thinking about when things are good or bad, we should always ask “in what contexts” and “in what doses”?

0 views
Unsung Yesterday

“A tricky problem I had to be thoughtful about.”

Phones grow big and their top edges inch closer and closer toward the horizon. Over time, iOS and apps moved some of the important surfaces to the bottom (for better or worse – I still struggle with seeing results and completions appearing above inputs), and the well-designed Reachability gesture helps, too. Still, the iOS web browser called Quiche Browser chose to tackle the problem, not the symptoms. It offers “Comfort Mode,” where you can ask it to move down the top edge of a bunch of surfaces closer to your fingers: = 3x)" srcset="https://unsung.aresluna.org/_media/a-tricky-problem-i-had-to-be-thoughtful-about/1-framed.1600w.avif" type="image/avif"> On top of that, true to the spirit of the app which revels in power-user customization, Quiche Browser allows you to decide precisely where the top should go in order to accommodate different people’s hands, and it even offers to do so per surface: These are the affected surfaces with the option off and on: The author, Greg de J., expanded on that on Threads : While designing Comfort Mode in Quiche Browser, a tricky problem I had to be thoughtful about: When you hold your phone in your right hand, favorite icons in the top left are harder to reach than ones on the right. Search suggestions don’t have this problem, since they span the width of the screen. That’s why favorites need to sit slightly lower than search suggestions, and why Comfort Mode lets you position both independently, so they all stay easy to reach one-handed. It’s an interesting idea and I wonder if it’s seeing a lot of use. The only design thought I had was: could the top space be filled or stylized so that this looks more intentional, rather than a potential rendering bug? Reachability does a good job of making it feel physical and adding a little arrow: Then again, given my job, my brain might be perfectly primed to see rendering errors everywhere. #ergonomics #touch

0 views
ava's blog Yesterday

rationalizations about ring, flock, etc.

I have talked to multiple people using Ring cameras and similar surveillance tech at or around their home over the last few years, usually from the US. The reasons are mostly the same: Most of them have only started using these cameras after 2020, which is pretty odd if these are really the true reasons. Cameras and surveillance systems have been around since the 1940s, and have only become more and more affordable and easy to set up, even pre-Ring. Crime rates have existed before, as did the need to prove things to police or an insurance. Yet, the purchase of a private surveillance camera only came up in the recent years for them. Why? It really is the perfect proof that fear-based marketing works. Social media and the 24/7 global news cycle have us all hyper-aware of terrible events everywhere, and have blown things completely out of proportion. The constant recurring reminders that something bad happened just near you that you would have otherwise not known about is skyrocketing your anxiety. You could be next! Ragebait and other recorded rude behavior popping into your feed colors your perception of strangers and humanity as a whole. Everyone is out to get you! People have lost their minds, and now you have to protect yourself! It gets so bad that anyone walking on the street, being near your home, delivering your package is a suspect, a threat, before they are a human. They first have to prove they have nothing to hide, or prove they are doing their job correctly, all pressured by the presence of a camera (and the threat of this being shared with police or uploaded online and going viral), before they are seen as someone with rights. And maybe they even serve as content opportunity - fair game of course, as your camera yelled out that they're being recorded and by not immediately running away (as they have a job to do or wanna visit you), they consent, right? It's no wonder all that intensified during and after the lockdowns for Covid where everyone was extremely online, and that companies have found ways to capitalize on this fear. Because that's what it is: You fell for the marketing that promised to calm your worst fears and anxiety with more tech, and pretends it gives you some sort of control or a magic device that makes it all turn out okay. That's why you suddenly only need it now, after being able to live without it just fine. Overtly or covertly, the marketing tries to tell you: You can prevent all bad things from happening. You will spot bad things happening in time before any damage is done, or we will send a notification. Burglars and package stealers will be deterred. Due to the video footage, police will actually do something, and even catch the perp! You can find missing people and pets. Insurance will stop fighting with you! Your spouse will be too scared from bringing someone home while you're at work, and the kids will not do something forbidden while you're out of the house, and the dogs will not tear anything up because you can just yell at them to stop via a camera. You'll see if someone in the home has a medical emergency. But this is legit insane! You have smoke detectors and gas detectors for this. Criminals are not deterred by cameras. People everywhere are still getting their insurance claims approved and their lost package refunded. Police solved case rates are still embarrassingly low, despite almost all stores, and many streets claimed to be crime spots, being surveilled for a decade or longer now. People living with you or being in your home deserve privacy instead of suffering from your extreme insecurities. They deserve to not being judged all the time, especially children and teens. Knowing you are constantly recorded and watched and that it all can be played back or checked later (and possibly posted online) is completely damaging to any sort of character development and sense of safety, especially around trying new things and making mistakes. The chilling effects this has cannot be overstated, even for your guests! Your desire to see your pets all the time or be prepared for a possible unconscious person at home overrides none of this, and none of the risks like Life is unpredictable, and these things just appeal to a very scared part of us that we need to deal with differently than "arming up". Your trauma about your previous break-in is understandable, yet needs more substantial treatment than this clown show of a bandaid solution. I think any Ring user deep down is actually aware it is all outside of their control, and that this doesn't even make a dent and is just a farce, but it makes them feel better, and that's all that counts. It's a completely accepted delusion that the rest of us are expected to dance around and tolerate, which is ridiculous and I won't do. Realistically, you all know that there are no reliable stats, no actual proof any of this works, or does something to prevent anything, or help someone. You also know that the wholesome feel-good reasons are nothing compared to the risks. The chances are good that crime rates in your area have lowered since before you even had a camera, and it's not due to it existing. It's hard to prove something didn't happen , of course, but we have had store and street surveillance for quite a while now and it has not deterred crime from taking place. It has not even led to a meaningful amount of recorded crime actually being resolved. It's not in the police's interest to solve your petty bike theft because they are here to secure the property of wealthy people, not yours. Crime is best fought with resources like housing, food, money and education, but that costs more than a few thousand cameras and cannot be used for fascism, racial profiling, non-consensual recording and spying and doesn't supply the prison industrial complex, so of course it is unpopular with governments. What every Ring user is saying is basically: " Fuck society, fuck the political environment this is happening in, fuck you; my feelings matter more than the effect this has on society as a whole. I want the normalization of constant surveillance because I crave control and safety! I love the law and order appeal of literally any piece of media depicting fascism ! " It also hinges on this extremely individualist mindset I see emerge more and more where everyone is just fending for themselves, securing their own resources, and going "I got mine, fuck you." or " Doesn't affect me negatively, so why should I care? ". Everyone is seeking to buy their own McMansion, the further away from others and the higher the fence, the better. They're relying as little as possible on others, paying some stranger for things that usually a family member, friend or neighbor would do for free and have them drop it off without contact on the doorstep. They only interact with others online, and build up an impenetrable fortress together with surveillance everywhere, as if a horde of peasants could come and take away everything you have hoarded and worked for. And in the US of course, with a variety of guns in the home, and a ChildKillerTank5000 SUV in front, because the safety and comfort of the driver is top priority and your goal with driving is to win and survive, not to drive defensively and respectfully in a reasonably sized car. It's ridiculous to see from the outside, because you're building this insular allegedly hypersecure prison for yourself in which you are willing to hand over any piece of possible evidence as a loyal neighborhood spy and as proof you're a good behaved citizen, just because media tells you your biggest threat is other people; yet the biggest threat of our lifetime is climate change, and there is nothing that protects you from it in your fortress, and no one you can bootlick enough to be safe from it. Nothing you can do about the rising heat, dying wildlife, ruined crops, water scarcity, the upcoming climate refugee movements, the floodings, tornadoes and earth quakes that intensify, and so on. You think you can separate yourself from society and from your own choices and its effects and secure yourself, and it's not working. It will never work. And you are also capable of having blood on your hands. But in the meantime, you can make unethical companies like Ring and Flock a little richer, and you can help police and ICE and alike organizations do their kidnapping, killing, discrimination and intimidation more effectively, you can help train AI on people just existing in public, and you can help normalize being recorded everywhere to make a Nazi's wet dream come true. And please, spare me the replies about how everyone else using it is just evil and misusing it while you are an angel using it for good, that you totally agree with all of this yet sadly you just have to do this , reiterating the same tired Ring propaganda I listed above, and yapping some more of why they're actually good and justified in your specific situation and how everyone you know also does it and your grandma just doesn't know any better. I do not care. You have to seek absolution from someone else because I will not read it. That's not me ignoring the other side of the argument, it's me not wasting my time on hearing the same garbage I have heard from several people and online content before. There is nothing you could tell me to change my mind, and I don't care if it's worded nicely or rudely or by a friend or a stranger. God herself could come down and hand me a letter saying all this is good and justified and it would not change. This is something I have an ethically-informed fixed stance on, something you would also have if you had a backbone. Published 02 Sep, 2026 We live in an area with a high crime rate. We had a break-in before. We wanna have proof for insurance/police, or when the delivery isn't delivered or my packages get stolen. I wanna see what my pets/kids/spouse are doing. I wanna check for fires, cheating, make sure things get done around the home etc. Police or undisclosed third parties using the video stream without your knowledge or consent ... or with your consent, to harass people of color and other marginalized groups Hackers gaining access to the video stream and watching you, even in private moments you would not want anyone to see An abusive partner or parent exerting more control via the cameras, and forcing cameras to be hung up even in private rooms Partners recording you during sex or other private moments against your will or without your knowledge, and possibly even disseminating it

0 views
Martin Fowler Yesterday

An Accidental Blackboard

Giles Edwards-Alexander reports that during an experiment to see how productive a team could be using fully agentic engineering practices, the team accidentally prompted the agents into creating a blackboard coordination system inside the git repository.

0 views

Claude's new system prompt really doesn't want to reproduce song lyrics

Anthropic publish the system prompts for their Claude consumer applications ( Claude.ai and the Claude mobile apps - sadly not for Claude Cowork or Claude Code). I love that they do this, and that they share not just the current prompts but historic changes to their prompts as well. They used to keep all of the prompts on a single page, but when I checked today I noticed they had re-arranged those prompts into an index page and then a page per model - here's the page for Haiku 4.5 for example, which has the original prompt from October 15th 2025 and an updated prompt from January 18th 2026. A neat thing about Anthropic's platform.claude.com/docs site is that it's designed to be usable by LLMs. You can add to any page to get back the content as Markdown - here's the system prompt index page and the Markdown prompts for Fable 5.1 . TL;DR: this makes it really easy to diff the prompts. Let's start with the most interesting difference between Fable 5 and Fable 5.1 : There's a hefty new section about not reproducing song lyrics: I doubt it's a coincidence that they added this section within days of the news breaking that Sony Music Publishing and Warner Chappell are suing Anthropic for training on databases of song lyrics! The next section goes on to forbid generating images of copyrighted material: I imagine Anthropic hadn't worried about this before since, unlike OpenAI and Gemini, they don't offer a specialist text-to-image model. Maybe Fable is good enough at SVGs now that it's become an issue. That section later includes this charming example: I couldn't resist trying the prompt from the example, and, sure enough : I wonder if Fable 5.1 will be ever so slightly more likely to think about axolotls (on skateboards!) as a result of that example sitting in the system prompt. It's always interesting to see new ways in which Anthropic influence Claude's response style. They've added this: Later they address a common complaint about Claude's style: The way they handle abusive conversations has changed a bit too. The previous Fable 5 system prompt included this: Fable 5.1 replaces that with the following, no longer encouraging Claude to end the conversation: Here's a bit of a twist though: I quizzed Fable 5.1 about that tool, which is no longer mentioned in the system prompt at all, and it said: There are two ways it comes into play. The first is if you ask me to end the chat — I'll confirm you understand it's permanent (no more messages can be sent afterward) and then do it only if you say yes. The second is as a last resort with persistently abusive or harmful behavior: I'd first try to redirect the conversation several times, then give a clear warning that names the problem and says the chat may end, and only if that continues would I actually end it. But that's not in the system prompt, so where did it come from? You can read our conversation here , but the key detail is this: The end_conversation section comes from a different layer. In my actual context, the core prompt is followed by a series of feature- and tool-specific blocks that get added depending on what's enabled for the session: the end_conversation rules, memory system notes, past-chats tools, web search and citation guidelines, artifact and file-creation instructions, and so on. Those blocks aren't part of the published core prompt, which is why you can't find them on that page. So, once again, there are crucial portions of the system prompt that have not been published. Claude's system prompts have always had sections about illegal substances, but this paragraph is new for Fable 5.1: This is the first time a Claude system prompt has included URLs that were not hosted on or or - I know because I ran a script against every other system prompt on record. I wonder if dancesafe.org , tripsit.me , and psychonautwiki.org are about to get a material uptick in visits from Claude users. The Fable 5.1 model documentation lists both the reliable knowledge cutoff and the training data cutoff as June 2026. The system prompt provides this directly to the model: That's the only instance of the macro and it comes just a few lines from the end of the system prompt, which makes sense from a caching perspective. A few months ago I built a Git timeline of changes to their prompts, based on scraping their documentation. Today I had Fable 5.1 build a much better version of that. My collection now lives in the simonw/claude-system-prompts repository on GitHub. It includes copies of the system prompts shared in the Anthropic documentation, but then takes extra steps to make them as easy to compare as possible. Each model family gets a file with the system prompt for the most recent release in that family. Each of those files has a synthesized commit history with commits that have been back-dated to the dates of the previous prompts. Here are those history pages for claude-fable.md , claude-opus.md , claude-sonnet.md , claude-haiku.md . There are similar files for each specific model version, with artificial commits for each time the system prompt for the model was changed without releasing a new version number. Opus 4 for example was updated twice , and the commit history for the claude-opus-4.md file shows each of those changes. Combined, this gives us all sorts of ways to compare prompts directly in the GitHub interface. Here's what changed between Fable 5 and Fable 5.1 , and here are the changes made to Haiku 4.5 on January 18th 2026 . Reading diffs can be a bit tiresome... and LLMs are really good at reading diffs. I hooked up some automation using GPT-5.6 Luna to create bullet-point summaries of each of those changes, which can be previewed in the README or browsed in full in the CHANGELOG.md file - also available as as an Atom feed . Here's how Luna summarized all of the changes between Fable 5 and Fable 5.1: Why use Luna for this? Partly because it's cheap and I have a dedicated GitHub Actions API key (with a spending limit) for it already, but mainly because I don't trust Claude to summarize its own system prompts when there's a risk that material from its system prompt might impact its opinions. Fable 5.1 wrote the prompt used by Luna, which you can see here . It starts like this: The system is operated by a GitHub Actions workflow , which runs once a day or can be triggered manually. Claude Fable 5.1 built the entire system, and wrote every line of automation code and almost all of the documentation. I exported the transcript from building the system using my claude-code-transcripts tool and published it here , if you want a blow-by-blow account of how it all came together. You are only seeing the long-form articles from my blog. Subscribe to /atom/everything/ to get all of my posts, or take a look at my other subscription options . Don't reproduce song lyrics Don't draw copyrighted characters or logos Tweaks to Claude's answering style The missing end_conversation guidelines Recommended substance support sites Reliable cutoff date of June 2026 How I'm tracking these prompts Claude now refuses reproduction of protected visual works and recognizable characters, including code-generated art, while offering genuinely unrelated originals. Copyright restrictions now expressly ban reproducing lyrics, poems, and book passages in any amount, with persistent refusal after an initial decline. Drug guidance is reframed: Claude may provide overdose signs, dangerous interactions, and harm-reduction sources while refusing dosing and production protocols. The prompt drops explicit anti-dependency rules against thanking users for reaching out, inviting continued conversation, or reiterating willingness to talk. Claude need not apologize to unnecessarily rude users or become submissive, replacing the prior warning-and-end-conversation procedure.

0 views
Martin Fowler Yesterday

Maybe We Shouldn't Be Reviewing All This Code

TL;DR Or, perhaps the problem isn't that AI has broken code review, maybe it’s that we've been using code review to solve the wrong problems I was on a panel recently with Brian Houck from DX at Code Remix, hosted by Moderne. It was one of the more interesting panels I’ve done, largely because we disagreed. As my colleague Martin Fowler says, panels are much more interesting when people disagree and both sides have a good argument. Brian and I definitely did. Brian has since written a thoughtful piece called What are code reviews even for? He is clearly passionate about his position, and I am passionate enough about mine that I’m writing this response. To be clear, I think we mostly want the same things. I just don’t think code review is the best way to get them. Brian is lovely, by the way, and encouraged me to write this. But I’d be lying if I said I didn’t want you to think I’m right by the end :) So what were we disagreeing about? AI is producing more code than humans can realistically review. Brian cites some pretty striking numbers: at Meta, significant lines of code per human-landed diff reportedly increased 106% in a year, while DX’s own data shows median pull request size increasing 64%. His concern, which I share, is that simply automating code review away risks losing all the other things we use it for. Code review isn’t just about finding bugs. It’s how teams share knowledge, teach junior engineers, build collective ownership and spread architectural understanding. My question is: why are we waiting until code review to do all of those things? I’ve never particularly liked pull requests as the centre of the software development process. Not because engineers shouldn’t look at each other’s code, but because I’ve always struggled with the idea that we should build something, finish it, package it up, throw it over to somebody else and then have the important conversation about whether we built the right thing in the right way. And don’t even get me started on merge conflicts. I’ve lost too many hours of my life. One of the principles I learned very early at Thoughtworks was to shorten feedback loops. If feedback is valuable, don’t remove it. Move it closer to the decision it is informing. Take the things we say code review gives us. If we want to explore alternative solutions , I’d rather do that before implementing one of them. If we want knowledge transfer , pair. Sitting next to someone, physically or virtually, while they reason through a problem teaches you far more than reading their completed solution afterwards. If we want junior engineers to learn how experienced engineers think , let them work with experienced engineers while they’re thinking. Pairing comes to mind again here, but teams could also do design sessions collectively with a whiteboard before they write (or instruct the agent to write) anything. If we want collective ownership , organise teams so people actually build and operate software collectively rather than relying on a pull request to tell everyone what somebody else has already built. For this again use pairing, mob programming, or team design sessions around whiteboard. If we want architectural alignment , design together (I won’t repeat myself about pairing and team design sessions, oh wait…) and then encode the important constraints as fitness functions. And if we’re reviewing code for formatting, linting, known security problems or things that can be deterministically tested, automate them. We really shouldn’t still be arguing about whitespace in 2026. Pair programming, trunk-based development, automated testing, static analysis, fitness functions and security scanning all move feedback earlier. Increasingly, agents can participate in those loops too, challenging designs, testing assumptions and continuously verifying what is being built, but the real thinking is coming from experienced humans and if we want that experience to benefit the whole team then we have to act like one much earlier than code review. None of this means nobody ever reviews code. There are absolutely changes where I want another experienced human looking. An example would be a fundamental architectural change. Assuming we did a design session as a wider team, we might want to review the code as a team or agree it was implemented right, or discuss if we want to change anything. Other examples could be something crossing a sensitive security boundary, a change with a huge blast radius, an unfamiliar part of a critical system or simply something where the team says, “I’m not confident about this.” Those are exactly the places where human judgment is valuable, but that’s very different from requiring a human to inspect every change because that’s the ceremony we’ve historically used to create confidence. And we know now it’s not viable to continue down this path, hence why code review keeps coming up as an issue or a blocker. If an agent can produce ten times the code but every line eventually queues up waiting for a senior engineer to inspect it, we haven’t created a ten-times engineering organisation, we’ve created a big backlog and a new bottleneck. And I don’t think the answer is an AI agent pretending to be the human reviewer so we can preserve exactly the same process at higher speed. That’s automating the ceremony rather than questioning why the ceremony exists. There is one thing I do worry about in Brian’s argument, though. He talks about teams accumulating cognitive and intent debt: software grows while the humans responsible for it understand less and less about why it works the way it does. I think that’s a very real problem. I just don’t think mandatory pull requests are a particularly strong defence against it. If agents are going to produce substantially more of the implementation, we need to be much more deliberate about maintaining human understanding through collaborative design, pairing, good boundaries, executable architecture, shared operational responsibility and probably some practices we haven’t invented yet. We need engineers to understand systems, not diffs. Perhaps that’s what AI is exposing. We’ve spent years loading an extraordinary number of responsibilities onto the humble code review: quality gate, security check, architecture review, mentoring mechanism, knowledge-sharing system, ownership model. It worked, sort of, while humans could only produce code so quickly. That constraint is disappearing. So perhaps the question isn’t how we get the code reviewed faster. Perhaps it’s why we’re waiting until code review to have all the important conversations in the first place.

0 views
Stratechery Yesterday

Fable 5.1, Enterprise Frontier Safeguards

Fable 5.1 is out, and the hated Fable data retention policy is not just being altered, but entirely removed in the meantime. Plus, why increased caching is a win-win.

0 views
Ginger Bill Yesterday

CTTI is Exponential, RTTI is Linear

AbstractRuntime Type Information (RTTI) has a cost, but it is a tame cost compared to Compile-Time Type Information (CTTI), which is sold as ;zero-cost;, and it is anything but.RTTI;s tables are a linear cost in the number of types (N types -; N entries), single cost.The use of RTTI is a fixed constant cost, one procedure iterating over one table, no matter how many types exist.RTTI is effectively zero additional cost during semantic-checking, because there is nothing to specialize.CTTI does not necessarily need any extra tables, but usual...

0 views
Kev Quirk Yesterday

2026-09-02 09:16: I've recently switched to Gnome's default apps for email etc. So instead of #Thunderbird doing...

I've recently switched to Gnome's default apps for email etc. So instead of #Thunderbird doing all the things, I have Geary, Calendar, and Contacts. Most of the time I only need email, so it's nice having a much simplified UX. I also like how integrated into Gnome they all are. Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️ You can reply to this post by email , or leave a comment .

0 views

curl 8.22.0

Welcome to this new release. Get it as always from https://curl.se . If you rather want a security-patched older release branch, stay tuned for the follow-up Rock-solid curl announcement within a few days. the 276th release 6 changes 70 days (total: 10,887) 302 bugfixes (total: 14,489) 525 commits (total: 39,608) 0 new public libcurl function (total: 100) 4 new curl_easy_setopt() option (total: 312) 4 new curl command line option (total: 278) 85 contributors, 55 new (total: 3,786) 43 authors, 29 new (total: 1,518) 9 security fixes (total: 215) Associated with this release, we publish ten new CVEs. Nine of them are for curl and libcurl, and one is for wcurl. The wcurl one: CVE-2026-80256 : wcurl backslash bypass We plan the next curl release to happen at the end of October unless there are some bad regressions reported against 8.22.0. CVE-2026-13608 : OpenLDAP SASL authentication bypass CVE-2026-18924 : HTTP/2 server push UAF CVE-2026-19931 : Negotiate ambient user conn reuse CVE-2026-80229 : OpenSSL provider use-after-free CVE-2026-80230 : OpenSSL pinning bypass CVE-2026-80231 : native CA store conn reuse CVE-2026-80255 : secure cookie attribute bypass with tab CVE-2026-82208 : wolfSSL CA-cache hit overrides callback CVE-2026-82209 : domain-scoped PSL domain cookie added support for Apple GSS Framework added API guards new RFC 9421 HTTP Message Signatures support (experimental) blocks NTLM fallback in SPNEGO negotiation dropped support for TLS-SRP added option to use Apple fast UDP HTTP/2 Server Push local crypto implementations

0 views