I really like this philosophy. I've been using it for a couple of years now - everything goes on my personal site, then I post links on Mastodon, Bluesky and Twitter and sometimes (if I remember to do so) LinkedIn, plus copy and paste it all into a Substack email every week or so.
I really need to automate it though - hard on Twitter and LinkedIn but still pretty easy for Bluesky and Mastodon.
Have you looked at https://posseparty.com/ as a possible option? Supports integrations with those platforms and more, and "all" it needs is an Atom feed!
Ooh I hadn't seen that. I'm still hung up on character limits - I want to make sure the summary I include isn't truncated with ... and is instead the right length for that particular platform.
I know it’s gotten some push back but to be honest I’m fond of the more manual approach that you take on HN.
While I don’t follow nor am I necessarily interested in everything that you cover, I do appreciate the presence of having something like a local “correspondent” around when you do appear to provide trails of supplementary commentary. The lengths that I see you go through to do all of this tastefully and transparently are not unnoticed.
I definitely won't be automating submission to places like HN.
I figure if you chose to follow me on Bluesky/Twitter/Mastodon/LinkedIn there's no ethical issue at all with me automating the process of having my new blog entries show up in my feeds there, as opposed to copying-and-pasting the links by hand.
No, no, perhaps you misunderstood me. I like how you link to your own writing in the discussions here. I don't suspect you to start automating that.
To tell you the truth I came to this actual submission to express my apathy toward the ‘POSSE’ concept but I saw you here and figured that I could somehow voice that feeling while simultaneously making mention of a sharing method that I do find worthwhile and more personable. And not an easy thing to pull off.
How much of your traffic comes from HN as opposed to the other platforms?
If we had stuck with standard semantic web microformats, RSS/Atom syndication, FOAF-ish graphs, URIs for identity but also anonymous pubkey identities with reputation graphs - we could have built an entirely distributed social media graph that worked like email.
But alas, Facebook pushed forward too fast to counter.
There's still a chance, but the software needs to focus on simplicity and ease of use. Publishing blobs of signed content that can be added to anything - HTML pages, P2P protocols, embedded into emails and tweets - maybe we can hijack the current systems and have distributed identity and publishing take over.
I had Claude write me a SQL query for showing the relative rankings of different domains over time, here's that query running in Datasette Lite directly against the CORS CSV file:
This is good stuff. I had missed Will's earlier article about AI strategy at his current company which is worth a read too: https://lethain.com/company-ai-adoption/
For covering the risk of mistakes I suggest considering ways of "visually quoting" the documents.
If the summary says "closing timeline: X" but there's an icon I can click that pops open an overlay with a visual cropped screenshot of that part of the original PDF - maybe even with a red circle around that detail - I can trust those summaries a whole lot more.
Gemini 2.5 has image bounding box and masking features that can help with this (sadly missing from Gemini 3.)
Because it’s just using structured response so it should be doable with Gemini 3 ? (We are using Gemini 3 for some docs processing and its visual understanding is just incredible)
> Image segmentation: Image segmentation capabilities (returning pixel-level masks for objects) are not supported in Gemini 3 Pro or Gemini 3 Flash. For workloads requiring native image segmentation, we recommend continuing to utilize Gemini 2.5 Flash with thinking turned off or Gemini Robotics-ER 1.5.
There's an older pure Python version but it's no longer maintained - the author of that recently replaced it with a Python library wrapping the C# code.
This looks to me like the perfect opportunity for a language-independent conformance suite - a set of tests defined as data files that can be shared across multiple implementations.
This would not only guarantee that the existing C# and TypeScript implementations behaved exactly the same way, but would also make it much easier to build and then maintain more implementations across other languages.
That new Python library is https://pypi.org/project/fractured-json/ but it's a wrapper around the C# library and says "You must install a valid .NET runtime" - that makes it mostly a non-starter as a dependency for other Python projects because it breaks the ability to "pip install" them without a significant extra step.
And OK it's not equivalent to a formal proof, but passing 1,000+ tests that cover every aspect of the specification is pretty close from a practical perspective, especially for a visual formatting tool.
UC Berkeley: “Top-level functional equivalence requires that, for any possible set of inputs x, the two pieces of code produce the same output. … testing, or input-output (I/O) equivalence, is the default correctness metric used by the community. … It is infeasible to guarantee full top-level functional equivalence (i.e., equivalence for any value of x) with testing since this would require testing on a number of inputs so large as to be
practically infinite.”
In practice mutation fuzz testers are able to whitebox see where branches are in the underlying code, with a differential fuzz test under that approach its generally able to fuzz over test cases that go over all branches.
So I think under some computer science theory case for arbitrary functions its not possible, but for the actual shape of behavior in question from this library I think its realistic that a decent corpus of 'real' examples and then differential fuzzing would give you more confidence that anyone has in nearly any program's correctness here on real Earth.
Yes, there are different levels of sureness being described.
When I hear guarantee, it makes me think of correctness proofs.
Confidence is more of a practical notion for how much you trust the system for a given use case. Testing can definitely provide confidence in this scenario.
You can guarantee that all the cases in the code are tested. That doesn't necessarily mean that all the behaviour is tested. If two implementations use very different approaches, which happen to have different behaviour on the Mersenne primes (for deep mathematical reasons), but one of them special-cases byte values using a lookup table generated from the other, you wouldn't expect mutation testing to catch the discrepancy. Each implementation is still the local optimum as far as passing tests is concerned, and the mutation test harness wouldn't know that "disable the small integer cache" is the kind of mutation that shouldn't affect whether tests pass.
There are only 8 32-bit Mersenne primes, 4 of which are byte-valued. Fuzzing might catch the bug, if it happened to hit one of the four other 32-bit Mersenne primes (which, in many fuzzers, is more likely than a uniform distribution would suggest), but I'm sure you can imagine situations where it wouldn't.
I think if you hit full path coverage in each of them independently and run all the cases through both and check they're consistent you're still done.
Or branch coverage for the lesser version, the idea is still to generate interesting cases based on each implementation, not based solely on one of them.
If the buggy implementation relies indirectly on the assumption that 2^n - 1 is composite, by performing a calculation that's only valid for composite values on a prime value, there won't be a separate path for the failing case. If the Mersenne numbers don't affect flow control in a special way in either implementation, there's no reason for the path coverage heuristic to produce a case that distinguishes the implementations.
Well yeah, but then any discrepancies that are found can be discussed (to decide which of the behaviors is the expected one) and then added as a test for all existing and future implementations.
Yes, but that's loss leader rather than capital investment. You can't put a customer on the balance sheet and depreciate them. Once you've paid for a free ride, you own nothing tangible.
I really need to automate it though - hard on Twitter and LinkedIn but still pretty easy for Bluesky and Mastodon.
reply