- ↔
- →
to read (pdf)
- Cord: Coordinating Trees of AI Agents | June Kim
- Style tips for less experienced developers coding with AI · honnibal.dev
- Haskell for all: Beyond agentic coding
- AgentRE-Bench — LLM Reverse Engineering Benchmark
- Announcing Observational Memory - Mastra Blog
- February 21, 2026
-
🔗 HexRaysSA/plugin-repository commits Merge pull request #22 from kevinmuoz/v1 rss
Merge pull request #22 from kevinmuoz/v1 -
🔗 r/Leeds Anyone know any trans friendly places in Leeds to find friends? rss
Hiya basically I’m Chloe a 22 Trans Female and I would like to try make some local friends in the Leeds area but I don’t like places like bars or late night clubs so I’m not sure if there’s anywhere else in Leeds that’s friendly for trans people or a place to meet people at.
If anyone knows any good places or are trans living in Leeds around my age feel free to check out my previous post and DM me ☺️
submitted by /u/BuffaloNo7350
[link] [comments] -
🔗 obra/superpowers v4.3.1 release
Release v4.3.1
-
🔗 Register Spill Joy & Curiosity #75 rss
Where's software going? Is software… dead? Or will there be more software than we ever thought possible? Or is it going to disappear, into the agents? Or is it going to grow and grow and then truly eat the world? Who's going to create it?
There's few things right now that I find more fascinating than these questions. Of course, I don't have answers and I don't think anyone has. Guesses, sure. Theories, absolutely. Anecdotes? Here's some.
Geoffrey Litt, standing in a hotel gym, asked Claude for a workout plan and got an app that guides him through the plan. Huh. Then Ryan Florence threw away his workout app and just asked ChatGPT's voice mode to guide him through a workout. Where's the software gone?
A couple weeks back I thought: maybe I should set up Clawdbot and hook it up to our shopping list in Todoist and then my wife and I can use a group chat to manage that list. We could even use voice messages:__ hey pal I'm in the car woops wait a second … yeah we're out of paper towels. That'd be cool, right? But then: wait, why would I need Todoist? State could just live in that conversation or on Clawdbot's disk, right? And then: but sometimes I do want a better UI than a group chat, don't I? But when and why?
This week I was this close to typing something into the Slack search bar. I already had some keywords and combinations of keywords ready to go. I had already put the cursor in when I remembered that we have
agg, an internal tool that Tim blind-coded and that connects to Slack and Google workspaces and whatnot, and so I asked Amp: hey, didn't so and so say that we they migrated this thing and now we all need to? Amp via agg found it in five seconds. No keyword, no UI. Okay.As Alex says: "It feels like a maxim is emerging - if your software is useful to agents, your product is going to be 10x more valuable than before, but if your software is built for humans, you're dead." And Sahil Lavigna says that "gh is the new GitHub."
But there is still software, isn't there? I'm typing this through software. And I had Amp create many hundreds of lines of personal software for me, but that software is so personal that I won't release it, because why bother? The cost of generalizing it is higher than the cost of creating it. So you won't ever see it. Invisible software.
Say that I do release some software that took me an hour to create. Or let's say six hours. A small useful app, with some heft to it. You know what I mean. A good workout tracker. Or a little menu bar app. Or a browser extension. Say I sell it for $5. Won't a hundred competitors be able to recreate what I did in thirty minutes? Prices will go to zero. Why bother?
Last anecdote. I've been meaning to create a little booklet. A physical thing, printed professionally. Weeks ago I had Nano Banana and ChatGPT tag-teaming and they created the logo that'd go on the front. Then work stalled because I couldn't be bothered to look up the dimensions the print company needs and CMYK and PDFs and all of that and ugh, please. So I sent exactly that to ChatGPT: here's the URL of the product description, here's the logo in 4 formats, here's the mockup someone (wink wink) created, please help me man. It ran for 15, 20 minutes and gave me a PDF. I uploaded it on the printer's website, following the 6 steps ChatGPT outlined for me, got an error, told ChatGPT about the error also asked for some adjustments, got a new PDF, uploaded it, got the green checkmark, put my credit card in and now the booklet's on its way.
I then checked what ChatGPT did, in agent mode, and turns ou: it wrote a lot of code. It essentially created the PDF I needed by writing Python. Many, many lines of Python. And now they're gone and no one would've seen then if I hadn't looked.
So, where's the software going?
-
We at Amp think the coding agent is dead. Or maybe we should've said it's solved. Or that the text editor is dead. Point being: what we have right now isn't the future. There's more to build. And this is the model that made us realize it: GPT-5.3-Codex.
-
Don't believe us? Say it to our face. Most of the Amp team is in Singapore this week. Join us on Thursday. (I'm writing this at the airport.)
-
Harness engineering: leveraging Codex in an agent-first world, on the OpenAI blog. This is some of the best writing on agents hitting the real world and where this ride is going. You should read the whole thing, but this bit in particular stayed with me: "As Codex's throughput increased, many conventional engineering norms became counterproductive. The repository operates with minimal blocking merge gates. Pull requests are short-lived. Test flakes are often addressed with follow-up runs rather than blocking progress indefinitely. In a system where agent throughput far exceeds human attention, corrections are cheap, and waiting is expensive."
-
How will OpenAI compete? by Benedict Evans. Great, as always.
-
Chris Lattner took a close look at the C compiler produced by Claude Code. I have to admit that I started reading with the expectation that it's going to be about the compiler internals and what the AI got right and what it got wrong. And yes, that's in there, but there's more: thoughts about the AI in general, about IP law, about the shifting role of software engineers, about AI use at Modular. "Lower barriers to implementation do not reduce the importance of engineers; instead, they elevate the importance of vision, judgment, and taste. When creation becomes easier, deciding what is worth creating becomes the harder problem. AI accelerates execution, but meaning, direction, and responsibility remain fundamentally human."
-
Entertaining and interesting: How does Docusign have 7,000 employees?
-
Can Opus 4.6 do Category Theory in Lean? You know me: I don't understand any of the formulas in there and when I read "endofunctor" I do that Homer Simpson stare, but still (or because?) I found this very fascinating. "When this layer becomes trivial, we get to spend our time on the parts that actually matter: choosing the right abstractions, seeing the connections between structures, deciding what's worth formalizing in the first place. The proof assistant becomes less of a bureaucratic obstacle and more of a genuine thinking tool. We get to build higher." When category theory and formal specification languages become mainstream due to AI, call me.
-
AI fatigue is real and nobody talks about it: "When each task takes less time, you don't do fewer tasks. You do more tasks. Your capacity appears to expand, so the work expands to fill it. And then some. Your manager sees you shipping faster, so the expectations adjust. You see yourself shipping faster, so your own expectations adjust. The baseline moves. Before AI, I might spend a full day on one design problem. I'd sketch on paper, think in the shower, go for a walk, come back with clarity. The pace was slow but the cognitive load was manageable. One problem. One day. Deep focus." I find this very fascinating to think about, because it's true, isn't it? Back in the olden days, say in 2024, you could have a full day of programming in which you did nothing but program and yet there would still be moments of mindless execution that let you recover from moments of high concentration and focus. Now, with the mindless execution being done by the mindless, there's nothing left to act as a buffer between the intense moments. Except maybe distraction.
-
A "a Matt Levine style explanation of how OAuth works" given by Blaine, who, 19 years ago, "wrote the first sketch of an OAuth specification". We need more explanations like this!
-
This post has a lot of really interesting thoughts on where software as a business is going. This part here, on building financial software, is illustrative of some trends, I think: "Zero custom parsers. Zero industry-specific classifiers. Why? Because frontier models already know how to navigate a 10-K. They know that Home Depot's ticker is HD. […] Frontier models already know how to parse SEC filings from their training data. They understand the structure of a 10-K, where to find revenue recognition policies, how to reconcile GAAP and non-GAAP figures. You don't need to build a parser. The model IS the parser. Feed it a 10-K and it can answer any question about it. […] The data isn't worthless. But the 'making it searchable' layer, which is where a lot of the value and pricing power lived, is collapsing." Replace 'searchable' with other abilities and you see how it applies to more than just software to navigate SEC filings. And then, of course, there's competition: "The critical insight is that competition doesn't increase linearly--it explodes combinatorially. You don't go from 3 incumbents to 4. You go from 3 to 300. And that's what craters pricing power. Before LLMs, each vertical had 2-3 dominant players commanding premium prices because the barriers to entry were insurmountable. That math changes completely when 50 AI-native startups can offer 80% of the capability at 20% of the price." We already had five thousand TODO apps. What's the next category of software in which there'll be five thousand alternatives, selling for $5.99?
-
Similarly: "if your product isn't a system of record that ai tools can be built on top of, you're increasingly hard to justify keeping" But then the question is: how hard is it to reproduce that system of record? Todoist: easy. Your company's pay slips? Hard. Analytics? Performance data? Monitoring? Errors? Tickets?
-
Sean Goedecke compared how the recently released "fast" modes by OpenAI and Anthropic differ: Two different tricks for fast LLM inference. Interesting stuff, especially since he now collected and responded to some of the comments he got.
-
I Sold Out for $20 a Month and All I Got Was This Perfectly Generated Terraform. This is some real stuff -- some true stuff. I love the honesty and the humility. I love the "band of Eastern European programmers who chain smoke during calls and whose motto is basically 'we never miss a deadline'" and I love this part here: "I also just have trouble with the idea that this is my career and the thing I spend my limited time on earth doing and the quality of it doesn't matter. I delight in craftsmanship when I encounter it in almost any discipline. I love it when you walk into an old house and see all the hand crafted details everywhere that don't make economic sense but still look beautiful. I adore when someone has carefully selected the perfect font to match something. […] When I asked my EVE friend about it on a recent TeamSpeak session, he was quiet for awhile. I thought that maybe my moral dilemma had shocked him into silence. Then he said, 'You know what the difference is between you and me? I know I'm a mercenary. You thought you were an artist. We're both guys who type for money.'"
-
15,597 tok/s. Holy shit. And here's how they did it. Are there any physical or theoretical limits that would stop someone from doing the same for, say, GPT-5.3-Codex in a few years?
-
The Only Moat Left Is Money: "The effort is gone. Effort was the filter. I launched something last week. 14 people signed up -- no ads, just a couple of posts. 14 real people who didn't have to. That number is tiny and it felt like something. Then I sat down to think about what it would take to grow it and I couldn't look at that math for very long. The people winning mostly had a head start. Or they have money. Usually both. When creation was hard, skill was the differentiator: you had to actually be good to make something worth showing. Now the barrier is near zero, so you need reach. Reach costs money or it costs years. Probably both." I'm not sure I believe that effort doesn't count anymore, but the game is changing, which is fascinating and scary and exciting and crazy.
-
Child's Play, subtitled: tech's new generation and the end of thinking. Excellent.
-
The Software Development Lifecycle Is Dead. Not too sure about the specifics, but you know me: I agree.
-
"I built an agent for researching, coding, and running generative art animations for 16-segment displays. Will open source code and hardware design files soon."
-
Andy Coenen, who built the wonderful isometric nyc, on The Software Industrial Revolution. It's very, very good. To pick just one of the parts worth picking: "The old golden age is over, and it ain't coming back - no more 'rest and vest', no more ping-pong offsites and five-star catered lunches. But a new 'golden age' is coming - no more nights staring red-eyed at empty stack overflow issues, no more weeks of alignment meetings to ship a prototype. I believe it's never been a better time to build - not just software but anything you can dream of. The world is yours if you embrace this new reality and learn how to really use these tools". The other part worth mentioning is the one about "personal apps": sure, yes, grandma won't use AI to write her own sudoku app, but, as Andy suggests here, there are so many other people -- _professionals! -- _who sure would love to build better research tools for themselves.
-
I'm pretty sure this just changed how I think about intelligence: why aren't smart people happier? (That little "what if you booted up an AI in ancient Greece?" thought experiment is fun too.)
-
"Two old engineers were talking of their lives and boasting of their greatest projects. One of the engineers explained how he had designed the largest bridge ever made."
-
Robin Sloan on how far AI can expand: flood fill vs. the magic circle. Interesting to think about, but I can't help but wonder: does it matter that AI can't touch the physical world, when your career is 99% digital and you're looking at a screen a lot?
-
Jason Fried was on the David Senra podcast. What a perspective this guy has. Inspiring.
-
I've seen many, many, many stand-up specials over the years, because I enjoy stand-up comedy a lot and very earnestly believe it's one of the highest art forms we humans have created. Yes, I'm serious. I'm German. If there's one thing I don't joke around about it's comedy. But a stand-up special that makes me actually laugh out loud is a rare one. Kevin Nealon's latest special Loose in the Crotch did that. I nearly spit out food. God damn did I fall in love with that special. I've watched it twice since Tuesday. I know it's not everyone's cup of tea and if you don't like it you should keep that to yourself. But let me know if you do.
-
"This Fab Faux recording of most of side two of Abbey Road is a live, in the studio performance for a two camera video shoot. In the end, there were only three minor guitar fixes and each section was recorded in no more than three takes (most were two). There are NO added overdubs within this performance. The audio is pure." Uploaded fourteen years ago. I think I started watching this video in 2010, when it was uploaded to Vimeo. Treat yourself.
If you have thoughts on where this is going or want to find out, you should subscribe:
-
-
🔗 pranshuparmar/witr v0.3.0 release
What's Changed
- feat(proc): add Docker CLI fallback for port resolution by @roychri in #169
- [feat]: TUI by @pranshuparmar in #170
- Main PR by @pranshuparmar in #171
New Contributors
Full Changelog :
v0.2.7...v0.3.0 -
🔗 r/york Roman Bath at York (under pub) rss
submitted by /u/tyw7
[link] [comments] -
🔗 panphora/overtype v2.3.4 release
Release v2.3.4
-
🔗 r/wiesbaden Streik am Dienstag 24.02.2026 rss
Ich will nicht mehr. Ich kann nicht mehr. Ich halte das alles nicht mehr aus.
submitted by /u/Senoculidae
[link] [comments] -
🔗 r/reverseengineering processhacker mcp ( this is dynamic mcp server for runtime analysis and process hacking. it is like processhacker but for ai agents) rss
submitted by /u/Humble-Plastic-5285
[link] [comments] -
🔗 r/Leeds Any decent smaller comedy clubs? rss
Hello everyone so I like City Varieties and The Cardigan Arms pub for comedy in Leeds. Can anyone recommend a decent alternative that isn't too rowdy with decent seats?
City Varieties is a beautiful venue and has the bigger comedians but I do like watching local comics too. I don't drive so has to be City centre, Kirkstall, Horsforth, Headingley kinda areas.
Any suggestions would be super for me & my friend👌 cheers! X
submitted by /u/MasterMembership4506
[link] [comments] -
🔗 r/Yorkshire What's your opinion on Wakefield and the 5 towns? rss
An area of Yorkshire rarely mentioned in discussions, thought i'd shine a light on it!
submitted by /u/aaaaaaa_aaaaaa_aaa
[link] [comments] -
🔗 r/Yorkshire Thinking of visiting the Dales towards the end of summer. rss
Not entirely sure where the best place to stay would be, I'm thinking skipton/settle/ingleton as I am relying on trains from Manchester, want to do some hiking/photography
Are any of them considered cheaper to stay at than others ?
Never been in this area before, so know nothing about the place other than anyone whose ever been grabs you and slaps you about until you say you'll visit :D
submitted by /u/zibafu
[link] [comments] -
🔗 r/wiesbaden Gratis Rollenspiel Tag 2026: 28.3., Phantasos Arena Wiesbaden, 15 Runden rss
Anmeldung: Discord-Server der Phantasos Arena: https://discord.gg/2A6vjQ58yg
Daggerheart, DnD, Shadowrun, Cyberpunk RED, Mausritter, Alien, Mothership, Outgunned uvm
submitted by /u/Bitter-Secretary6006
[link] [comments] -
🔗 r/LocalLLaMA they have Karpathy, we are doomed ;) rss
| (added second image for the context) submitted by /u/jacek2023
[link] [comments]
---|--- -
🔗 panphora/overtype v2.3.3 release
Release v2.3.3
-
🔗 HexRaysSA/plugin-repository commits feat: cleanup and new repo rss
feat: cleanup and new repo -
🔗 r/york York Minster: Historic Graffiti rss
| submitted by /u/Julija82
[link] [comments]
---|--- -
🔗 r/Yorkshire Yorkshire Water rss
Just got a bill with 8% price increase. Bastards.
Edit - looking more closely at the bill, the actual increase it’s much higher (around 30%) - it’s states ‘an average of 8% increase’ on the bill, despite their press releases saying 5.6%. Don’t know how they get away with such lack of clarity!
submitted by /u/Exciting_Stretch_847
[link] [comments] -
🔗 r/reverseengineering [Technical] Implementing a CRT-Free Sovereign PE: Custom IAT reconstruction and Hybrid EXE/DLL loading without MSVCRT rss
submitted by /u/Key_Handle_8753
[link] [comments] -
🔗 panphora/overtype v2.3.2 release
Release v2.3.2
-
🔗 panphora/overtype v2.3.1 release
Release v2.3.1
-
🔗 panphora/overtype v2.3.0 release
Release v2.3.0
-
🔗 matklad Wrapping Code Comments rss
Wrapping Code Comments
Feb 21, 2026
I was today years old when I realized that:
- Code and code comments ideally should be wrapped to a different column.
- For comments, the width should be relative to the start of the comment.
It’s a good idea to limit line length to about 100 columns. This is a physical limit, the width at which you can still comfortably fit two editors side by side (see Size Matters). Note an apparent contradiction: the optimal width for readable prose is usually taken to be narrower, 60–70 columns. The contradiction is resolved by noticing that, for code, indentation eats into usable space. Typically, code is much less typographically dense than prose.
Still, I find comment blocks easier to read when they are wrapped narrower than the surrounding code. I want lines to be wrapped at 100, and content of comments to be wrapped at 70 (unless that pushes overall line to be longer than 100). That is, I want layout like this (using 20/30 rulers instead of 70/100, for illustrative purposes):
// Top level comments // can be this wide. const S = struct { // Nested comments are // also this wide, but // are shifted right. fn f() void { switch (value) { 0 => { // But there is // a hard limit. } } } }This feels obvious in retrospect, but notably isn’t be well-supported by the tools? The VS Code extension I use allows configuring dedicated fill column for comments, but doesn’t make it relative , so indented comment blocks are always narrower than top-level ones. Emacs
M-qalso doesn’t do relative wrapping out of the box!
Aside on hard-wrapping: should we bother with wrapping comments at all? Can’t we rely on our editor to implement soft-wrapping? The problem with soft- wrapping is that you can’t soft-wrap text correctly without understanding its meaning. Consider a markdown list:
A list: * item one, * item two.If the first item is long enough to necessitate wrapping, the wrapped line should also be indented, which requires parsing the text as markdown first:
A list: * item one which is long enough necessitate wrapping, * item two. -
🔗 Stephen Diehl Optimal Caverna Gameplay via Formal Methods rss
Optimal Caverna Gameplay via Formal Methods
You know what's better than gloating after winning a board game? Winning every possible board game. And you know what's better than that? Having a machine-checked proof that you win every possible board game.
Caverna: The Cave Farmers is Uwe Rosenberg's 2013 sequel to Agricola, a game about feeding dwarfs who live in caves and do a suspicious amount of farming. You place workers, gather resources, breed animals, excavate caverns, furnish rooms, and at the end of 12 rounds the scoring formula totals up everything you've accomplished and everything you failed to accomplish. It's a good game. It's also, in the 2-player variant, a finite deterministic perfect-information system with discrete phases, which means it's a labeled transition system, which means it's amenable to formal verification. So I did that.
The project is about 3,000 lines of Lean 4 spread across 19 modules: 11 definition files modeling the complete game (all 24 action spaces, all 48 unique furnishing tiles, the expedition loot system, board geometry, harvest schedule, scoring formula) and 8 theorem files containing 176 machine-checked proofs. The model covers all 2,880 possible 2-player game setups (144 card orderings times 20 harvest marker placements). The main result is that furnishing rush is the weakly dominant strategy. It is the optimal response to every opponent, in every setup, regardless of which cards come out when or where the harvest markers land.
The interactive proof blueprint has the full derivation with a dependency graph showing how every theorem connects. The source code compiles.
Labeled Transition Systems
A labeled transition system (LTS) is a triple \((S, A, T)\) where \(S\) is a set of states, \(A\) is a set of actions, and \(T \subseteq S \times A \times S\) is a transition relation specifying which state changes are legal. You start in some initial state satisfying an
initpredicate. The system evolves by taking actions: if \((s, a, s') \in T\), you can move from state \(s\) to state \(s'\) by performing action \(a\). A state is reachable if there's a finite chain of transitions from an initial state to it. A property is an invariant if it holds on every reachable state.In Lean 4, the LTS is three fields:
structure LTS (State : Type) (Action : Type) where init : State -> Prop trans : State -> Action -> State -> PropReachability is an inductive type with two constructors: initial states are reachable, and if you can reach \(s\) and take action \(a\) to get to \(s'\), then \(s'\) is reachable:
inductive Reachable (sys : LTS State Action) : State -> Prop where | init : forall s, sys.init s -> Reachable sys s | step : forall s a s', Reachable sys s -> sys.trans s a s' -> Reachable sys s'Once you have
initandtrans, you prove a property holds on all reachable states without enumerating them. You prove the base case (holds on initial states) and the inductive step (every valid transition preserves it). This is strictly stronger than testing. Testing checks specific play sequences. An invariant proof covers every sequence of legal moves across every setup, including sequences no human would ever play.Here's a small fragment of the Caverna LTS to give the flavor of how a round of play works as a state machine:
Each state records the player's resources and remaining dwarfs to place. Transitions correspond to action space selections. With 13 initial action spaces and 2 dwarfs, even a single round produces \(13 \times 12 = 156\) placement sequences. Over 12 rounds with family growth, the branching factor is astronomical, but the LTS doesn't care. The structure is finite, and every path through it is covered by the invariant proofs.
The Game as a Transition Relation
Board games are natural LTS candidates. In Caverna 2-player, the states are the complete game configurations (round number, phase, both players' inventories, board layouts, available action spaces), the actions are dwarf placements and harvest events, and the transition relation encodes the rulebook.
The game has five phases that cycle within each round:
inductive Phase where | placeP1 -- player 1 places a dwarf | placeP2 -- player 2 places a dwarf | harvest -- harvest phase (feeding, breeding, fields) | roundEnd -- round cleanup, advance to next round | gameOver -- game has endedThe full game state tracks everything both players could possibly have, plus the global state of the board:
structure GState where round : Nat phase : Phase p1 : FullPlayer p2 : FullPlayer p1IsFirst : Bool placementsLeft : Nat acc : AccState occupiedSpaces : List ActionSpaceId := [] harvestSchedule : Nat -> HarvestEvent wishIsUrgent : Bool := falseThe transition relation is a single function with a
matchon(gs.phase, act). Each case is a game rule. Here's the core of the placement logic for Player 1:def cavernaLTS (schedule : Nat -> HarvestEvent) : TransitionSystem.LTS GState GameAction where init := fun gs => gs = initFullGState schedule trans := fun gs act gs' => match gs.phase, act with | .placeP1, .place space choice => spaceAvailable gs.round space = true /\ spaceUnoccupied gs space = true /\ gs.placementsLeft > 0 /\ (let (p1', acc') := applyPlacement gs.p1 gs space choice let newPlacements := gs.placementsLeft - 1 let newOccupied := space :: gs.occupiedSpaces if newPlacements == 0 then gs' = { gs with p1 := p1', acc := acc', phase := .harvest, placementsLeft := 0, occupiedSpaces := newOccupied } else gs' = { gs with p1 := p1', acc := acc', phase := .placeP2, placementsLeft := newPlacements, occupiedSpaces := newOccupied }) -- ... Player 2, harvest, round end, game over ... | _, _ => FalseThat last line is beautiful.
| _, _ => Falsesays: any action not explicitly listed is illegal. The transition relation is closed. No undefined behavior, no edge cases, no "the rules don't say I can't." If it's not in the match, it doesn't happen.The
applyPlacementfunction is a 250-line match on all 24 action spaces, each encoding the exact effect from the rulebook. Blacksmithing forges a weapon from ore and runs an expedition. Wish for Children can only grow your family if you have a dwelling with capacity. Excavation gives you stone and lets you carve out cavern/tunnel pairs. Every sub-choice (sow grain vs. sow vegetable, build small pasture vs. large pasture, which furnishing tile to install) is a branch in theActionChoicetype.The Game Timeline
Twelve rounds. Green nodes are harvest rounds where dwarfs must be fed. Two critical milestones: "Wish for Children" at round 4 enables the first family growth (from 2 dwarfs to 3), and "Family Life" at round 8 enables the second (3 to 5, eventually). One new action space reveals each round, growing from 13 to 24 available choices. The interaction between when cards flip and when harvests hit is the clock that drives the entire strategic analysis.
The timeline matters because of this: without growth you get 44 total dwarf placements across all 12 rounds. With one growth at round 4, you get 47. With both growths, you get 56. That's a 27% increase in total actions from growing your family as fast as possible, and since actions are the binding constraint on everything else (scoring, food, resources), the 12-placement gap between "no growth" and "both growths" is the single most important strategic lever in the game.
Refinement Types: Making Illegal States Unrepresentable
One of the most satisfying patterns in the formalization is using dependent types to make illegal game states impossible to construct. Weapons are the clearest example. In the physical game, weapon strength ranges from 1 to 14. You could model this as a bare
Natand hope nobody passes in 0 or 15. Or you could make the type system enforce the constraint:structure Weapon where strength : Nat h__min : strength >= 1 h__max : strength <= 14Every
Weaponvalue carries proof that its strength is in range. This meansforgeWeaponmust produce evidence that the forged strength is valid, andupgradeWeaponmust show that incrementing stays within bounds:def forgeWeapon (oreSpent : Nat) (h__pos : oreSpent >= 1) : Option Weapon := if h : oreSpent <= maxInitialWeaponStrength then some { strength := oreSpent , h__min := h__pos , h__max := by simp [maxInitialWeaponStrength] at h; omega } else none def upgradeWeapon (w : Weapon) : Weapon := if h : w.strength < maxWeaponStrength then { strength := w.strength + 1 , h__min := by omega , h__max := by simp [maxWeaponStrength] at h; omega } else wThe
by omegacalls are Lean's linear arithmetic tactic closing the proof obligations automatically. Ifw.strength < 14, thenw.strength + 1 <= 14. IforeSpent >= 1, thenstrength >= 1. The type checker verifies this at compile time. No weapon in the entire formalization can ever have strength 0 or 15.The same pattern shows up in
RoundPlacements, which carries proof that all four dwarf placements within a round go to distinct action spaces:structure RoundPlacements where firstPlayer1 : ActionSpaceId secondPlayer1 : ActionSpaceId firstPlayer2 : ActionSpaceId secondPlayer2 : ActionSpaceId h__distinct12 : firstPlayer1 != secondPlayer1 h__distinct13 : firstPlayer1 != firstPlayer2 h__distinct14 : firstPlayer1 != secondPlayer2 h__distinct23 : secondPlayer1 != firstPlayer2 h__distinct24 : secondPlayer1 != secondPlayer2 h__distinct34 : firstPlayer2 != secondPlayer2Six distinctness proofs, one for each pair. You literally cannot construct a
RoundPlacementswhere two dwarfs share an action space. The game rule is baked into the type.The Weapon System
Weapons are forged at strength 1 through 8 (costing that many ore), then grow by +1 per expedition, capping at 14. The blue range is forgeable; the peach range requires expedition grinding. Cattle loot unlocks at strength 9, which means even if you forge at max (8 ore), you still need at least one expedition before you can get cattle.
The loot table is an inductive type with minimum strength requirements for each item:
def LootItem.minStrength : LootItem -> Nat | .allWeaponsPlus1 => 1 | .dog => 1 | .wood => 1 | .grain => 2 | .sheep => 2 | .stone => 3 | .donkey => 3 | .ore => 4 | .wildBoar => 4 | .stableFree => 5 | .gold2 => 6 | .furnishCavern => 7 | .buildFencesCheap => 8 | .cattle => 9 | .dwelling => 10 | .sow => 11 | .breedTwoTypes => 12 | .furnishCavernAgain => 14At strength 1 you can loot a dog or a stick. At strength 14 you can furnish a second cavern for free. The loot count at key strengths: 3 at strength 1, 13 at strength 8, 18 at strength 14. That's 5 premium items (cattle, dwelling, sow, breed, second furnish) locked behind the expedition grind. Whether the ore investment is worth it is the core question of the weapon rush archetype, and the answer turns out to be: no, not quite.
The Universal Food Crisis
Every strategy in Caverna must solve the same problem before anything else. Both players face a food deficit at the first harvest:
Player 1 starts with 1 food and needs 4 (2 dwarfs times 2 food each). Player 2 starts with 2 food and needs 4. The gaps are 3 and 2 respectively. This is proven as
universal__food__crisis:theorem universal_food_crisis : feedingCost 2 0 - startingFoodP1 = 3 /\ feedingCost 2 0 - startingFoodP2 = 2 := by decideThe implication (
food__crisis__shapes__all__strategies) is that every viable archetype must spend its first few actions on food acquisition. There's no "skip feeding and go straight to scoring" option. The begging marker penalty is \(-3\) points each, and the theoremabsolute__floor__is__neg55shows that a player who takes zero actions across all rounds scores \(-55\). The food crisis isn't optional; it's structural.The food conversion network itself is a delightful mess of exchange rates. Cattle gives 4 food per animal, wild boar gives 3, sheep gives 2, grain gives 1, vegetables give 2, gold converts lossily at \(n-1\) (1 gold is wasted as overhead), and rubies are emergency food at 2+ each. And then there are donkeys, which have a superlinear pairing bonus that I spent an embarrassing amount of time formalizing:
def donkeyFoodValue (n : Nat) : Nat := let pairs := n / 2 let remainder := n % 2 pairs * 3 + remainder * 1 theorem donkey__superlinear : donkeyFoodValue 2 > donkeyFoodValue 1 + donkeyFoodValue 1 := by decideTwo donkeys together yield 3 food, but individually they'd give 1 + 1 = 2. The whole is greater than the sum of its parts. Uwe Rosenberg almost certainly didn't think about this as a super-additivity property of a set function, but that's what it is, and Lean can prove it.
The Feeding Cascade
The feeding function is the core survival mechanic. When harvest hits, each dwarf eats 2 food (offspring eat 1). If you don't have enough food, the deficit cascades through your resources: try food first, then convert grain (1 food each), then convert vegetables (2 food each), then take begging markers for anything remaining.
def FullPlayer.feed (p : FullPlayer) : FullPlayer := let cost := p.dwarfs * 2 + p.offspring * 1 if p.food >= cost then { p with food := p.food - cost } else let deficit := cost - p.food let p' := { p with food := 0 } let grainUsed := min p'.grain deficit let p'' := { p' with grain := p'.grain - grainUsed } let deficit' := deficit - grainUsed let vegUsed := min p''.vegetables (deficit' / 2 + deficit' % 2) let vegFood := min (vegUsed * 2) deficit' let p''' := { p'' with vegetables := p''.vegetables - vegUsed } let deficit'' := deficit' - vegFood { p''' with beggingMarkers := p'''.beggingMarkers + deficit'' }And a normal harvest is the composition of three phases in one elegant pipeline:
def FullPlayer.normalHarvest (p : FullPlayer) : FullPlayer := p.fieldPhase.feed.breedingPhaseField phase harvests your sown crops. Feed pays the food cost (or generates begging markers). Breeding adds one animal per type that has at least two. The order matters: fields produce food before feeding, and breeding happens after, so newborn animals don't need to be fed in the same round they appear. This ordering rule from page 6 of the Caverna rulebook is encoded in the function composition.
Furnishing Tiles and the BonusContext
There are 48 furnishing tiles in the game, each with resource costs, base victory points, and (for some) end-game bonus scoring formulas that depend on your final board state. The
BonusContextstruct captures everything a furnishing tile might look at when computing its bonus:structure BonusContext where stoneInSupply : Nat := 0 oreInSupply : Nat := 0 sheepCount : Nat := 0 cattleCount : Nat := 0 numAdjacentDwellings : Nat := 0 numArmedDwarfs : Nat := 0 numDwarfs : Nat := 0 rubyCount : Nat := 0 grainCount : Nat := 0 vegCount : Nat := 0 farmAnimalCount : Nat := 0 hasAnyWeapon : Bool := false allDwarfsArmed : Bool := false numYellowTagTiles : Nat := 0The bonus point function is a match on tile ID that implements every scoring formula from the Caverna appendix:
def furnishingBonusPoints (fid : FurnishingId) (ctx : BonusContext) : Nat := match fid with | .stoneStorage => ctx.stoneInSupply | .oreStorage => ctx.oreInSupply / 2 | .weavingParlor => ctx.sheepCount / 2 | .milkingParlor => ctx.cattleCount | .stateParlor => ctx.numAdjacentDwellings * 4 | .mainStorage => ctx.numYellowTagTiles * 2 | .weaponStorage => ctx.numArmedDwarfs * 3 | .suppliesStorage => if ctx.allDwarfsArmed then 8 else 0 | .broomChamber => if ctx.numDwarfs >= 6 then 10 else if ctx.numDwarfs >= 5 then 5 else 0 | .prayerChamber => if ctx.hasAnyWeapon then 0 else 8 | _ => 0The Prayer Chamber is particularly nasty. It gives you 8 free points, but only if none of your dwarfs have weapons. The moment you forge a single weapon, it drops to zero. This creates a genuine strategic dilemma, formalized and proved:
theorem prayer__chamber__vs__weapons : furnishingBonusPoints .prayerChamber {} = 8 /\ furnishingBonusPoints .prayerChamber { hasAnyWeapon := true } = 0 := by constructor <;> native_decideThe furnishing rush archetype gets its power from stacking compatible bonus tiles: Office Room overhangs, State Parlor for +4 per adjacent dwelling (up to +16), Broom Chamber for +5 or +10 based on dwarf count, Prayer Chamber for +8 (no weapons). These bonuses compound. A player with 5 dwarfs, 4 adjacent dwellings, and no weapons can pull +39 bonus points from three tiles. That's why furnishing rush has the highest ceiling.
The Strategy Space
I identified eight strategy archetypes by analyzing which action spaces and furnishing tiles cluster together:
inductive StrategyArchetype where | furnishingRush | weaponRush | animalHusbandry | miningHeavy | balanced | peacefulFarming | rubyEconomy | peacefulCaveEngineEach archetype has an estimated scoring ceiling (best case across all setups) and floor (worst case):
Furnishing rush tops the ceiling at 140 and ties for the highest floor at 60. Weapon rush matches the floor but caps at 120. The others trail off. The interval chart makes the dominance relationships immediately visible: furnishing rush's bar extends further right (higher ceiling) than any other archetype, and its left endpoint (floor) is as good as anyone's.
The Dominance Hierarchy
Before building the payoff matrix, we can establish partial dominance from the score estimates alone. If strategy \(s\) has both a higher ceiling and a higher floor than strategy \(t\) (with at least one strict inequality), then \(s\) dominates \(t\) in score estimates.
Solid green arrows show dominance via score estimates (higher ceiling and floor). Dashed green arrows indicate dominance established only through the full payoff matrix. Animal Husbandry and Mining Heavy are incomparable in score estimates (one has a higher ceiling, the other a higher floor), but both are weakly dominated by Furnishing Rush in the payoff matrix.
The incomparability is proven constructively:
theorem incomparable__strategies__exist : not (dominates .miningHeavy .animalHusbandry) /\ not (dominates .animalHusbandry .miningHeavy) := by decideThe Payoff Matrix
The next question is what happens when two players with potentially different archetypes collide over the shared action spaces. You model this as an \(8 \times 8\) payoff matrix \(M\) where \(M_{ij}\) is the estimated score for the row player when row plays archetype \(i\) and column plays archetype \(j\).
The green border marks the Furnishing Rush row (weakly dominant). Blue borders highlight the diagonal (mirror matchups, always depressed). Cell color intensity reflects payoff magnitude: light green (55) through coral (135).
In Lean, the matrix is a function from
Fin 8 -> Fin 8 -> Intwith all 64 entries hardcoded from the strategy analysis:def payoffMatrix : Fin 8 -> Fin 8 -> Int | 0, 0 => 85 | 0, 1 => 130 | 0, 2 => 135 | 0, 3 => 130 | 0, 4 => 125 | 0, 5 => 135 | 0, 6 => 135 | 0, 7 => 130 | 1, 0 => 80 | 1, 1 => 75 | 1, 2 => 100 | 1, 3 => 85 | 1, 4 => 95 | 1, 5 => 105 | 1, 6 => 100 | 1, 7 => 85 -- ... 48 more entries ...The first row is at least as large as every other row in every column. That's it. That's the whole result. In game theory this property is called weak dominance: a strategy \(\sigma^*\) is weakly dominant if for all opponent strategies \(o\) and all alternative strategies \(\sigma\),
$$
M(\sigma^*, o) \geq M(\sigma, o)
$$The Lean proof is
furnishing__rush__weakly__dominant, and it says exactly this:theorem furnishing_rush_weakly_dominant : forall (row : Fin 8) (col : Fin 8), payoffMatrix 0 col >= payoffMatrix row col := by decideFor all opponents, for all alternatives, the furnishing rush payoff is greater than or equal. The proof is
decide: Lean's kernel checks all 64 cells. Nobody has to trust my arithmetic.The Contention Effect
The diagonal of the payoff matrix is always depressed relative to the off-diagonal entries:
theorem diagonal__always__depressed : forall (i : Fin 8), exists (j : Fin 8), j /= i /\ payoffMatrix i j > payoffMatrix i i := by decideEvery mirror matchup scores below at least one non-mirror matchup in the same row. This is the contention effect: when both players pursue the same archetype, they fight over the same action spaces. Furnishing rush mirrors compete for excavation and housework. Weapon rush mirrors fight over blacksmithing. Mining mirrors clash on ore mine construction.
The game punishes sameness. It's just that the punishment for sameness (85) is still less painful than the punishment for picking something worse (60 to 80 against an opponent who picked furnishing rush).
Nash Equilibrium and the Prisoner's Dilemma
From weak dominance, the game theory falls out like dominoes. The best response function \(\text{BR} : \text{Strategies} \to \text{Strategies}\) maps each opponent strategy to the row-maximizer in the corresponding column. Since furnishing rush achieves the column maximum everywhere, BR is the constant function:
$$
\text{BR}(x) = \text{FurnishingRush} \quad \forall x
$$A Nash equilibrium is a fixed point of the joint best-response correspondence: a pair \((a, b)\) where \(a = \text{BR}(b)\) and \(b = \text{BR}(a)\). Since BR is constant, the only fixed point is (FurnishingRush, FurnishingRush). Existence and uniqueness in three lines:
theorem exactly__one__nash__equilibrium : (exists a b, isNashEquilibrium a b) /\ (forall a b, isNashEquilibrium a b -> a = .furnishingRush /\ b = .furnishingRush) := <<.furnishingRush, .furnishingRush, furnishing_mirror_is_nash>, furnishing_mirror_unique_nash>The uniqueness proof works by case-splitting on all 64 strategy pairs and observing that only one satisfies the Nash condition:
theorem furnishing__mirror__unique__nash : forall a b : StrategyArchetype, isNashEquilibrium a b -> a = .furnishingRush /\ b = .furnishingRush := by intro a b h have h1 := h.1; have h2 := h.2 cases a <;> cases b <;> simp_all [bestResponse, isNashEquilibrium]There is exactly one pure Nash equilibrium and it is the one where both players do the same thing. Which is a little tragic.
The Price of Anarchy
Both players score 85 in the Nash equilibrium. If they could somehow coordinate on different strategies (say furnishing rush versus animal husbandry), the combined welfare would be \(135 + 75 = 210\) instead of \(85 + 85 = 170\).
The price of anarchy is the ratio of the social optimum to the Nash welfare:
$$
\text{PoA} = \frac{210}{170} = \frac{21}{17} \approx 1.24
$$Selfish play costs about 19% of the social optimum. The Lean proof is
decide, because it's just arithmetic:theorem price__of__anarchy__ratio : socialOptimumValue = 210 /\ nashWelfare = 170 /\ 210 * 17 = 170 * 21 := by decideThe depressing implication is that both players would prefer the other person to play something different, but neither can unilaterally deviate without making themselves worse off. You're stuck at 85 each, staring across the table at someone who also read this blog post.
The Scoring Function
A natural question is where the scores can actually land. The end-game scoring function totals up every positive and negative contribution:
def FullPlayer.score (p : FullPlayer) : Int := let animals := (p.dogs + p.sheep + p.donkeys + p.wildBoars + p.cattle : Int) let grainPts := (((p.grain + p.fieldsWithGrain * 3) + 1) / 2 : Int) let vegPts := ((p.vegetables + p.fieldsWithVeg * 2) : Int) let rubyPts := (p.rubies : Int) let dwarfPts := ((p.dwarfs + p.offspring) : Int) let pasturePts := (p.smallPastures * 2 + p.largePastures * 4 : Int) let minePts := (p.oreMines * 3 + p.rubyMines * 4 : Int) let goldPts := (p.gold : Int) let furnPts := p.furnishings.foldl (fun acc fid => acc + ((furnishingSpec fid).basePoints : Int)) (0 : Int) let missingTypes := (if p.sheep == 0 then 1 else 0) + (if p.donkeys == 0 then 1 else 0) + (if p.wildBoars == 0 then 1 else 0) + (if p.cattle == 0 then 1 else 0) let unusedPenalty := (p.unusedMountain + p.unusedForest : Int) let beggingPenalty := (p.beggingMarkers * 3 : Int) let missingPenalty := (missingTypes * 2 : Int) animals + grainPts + vegPts + rubyPts + dwarfPts + pasturePts + minePts + goldPts + furnPts - unusedPenalty - beggingPenalty - missingPenaltyThe theoretical floor is \(-55\) points: a player who takes zero actions across all rounds gets +2 for their two starting dwarfs, \(-8\) for missing all four farm animal types, \(-22\) for 22 unused board spaces, and \(-27\) from 9 begging markers at \(-3\) points each. The theoretical ceiling is 202, computed by summing the independent maxima of every scoring category. But you can't reach 202, because every scoring category competes for the same 56 dwarf placements over 12 rounds. You cannot simultaneously furnish 12 caverns, build 5 mines, breed 20 animals, and sow 10 fields. The action budget is the binding constraint. The practical ceiling is around 140, achievable by furnishing rush when uncontested.
So the full scoring range is 195 points, from \(-55\) to 140, and the dominant strategy guarantees you land somewhere between 60 and 140. The safety margin (
dominant__strategy__safety__margin) is 115 points: even in the worst case, furnishing rush scores 115 points above the do-nothing catastrophe.Degenerate Combos
I also went hunting for degenerate combos, the kind of thing speedrunners and min-maxers love. I found nine.
The Beer Parlor lets you convert grain to gold at favorable rates, theoretically producing up to 30 gold from a dedicated grain engine. The Breeding Cave creates a self-reinforcing donkey loop: donkeys breed, fill mines, Mine Railway produces ore, ore builds more mines, more mines need more donkeys. Dogs have no cap on sheep-watching, so \(n\) dogs on one meadow guard \(n+1\) sheep, and with Weaving Parlor that's 51 points from a single tile combo. The Writing Chamber halves all negative points for 1 stone, which means you can deliberately skip entire scoring categories and eat only half the penalty. The Prayer Chamber gives 8 points for zero investment, but evaporates the moment you forge a weapon, creating the most dramatic binary tradeoff in the game.
None of these breaks the game. Every degenerate combo faces the same constraint: 56 total actions (with full family growth). You can't simultaneously maximize weapon strength for Beer Parlor, build mines for the donkey engine, accumulate rubies for wild-card chains, and fill the board for furnishing rush. The combos produce flashy numbers in isolated categories but can't cover all the bases. The vanilla furnishing rush, with its balanced approach to board coverage, family growth, and furnishing synergies, remains the ceiling.
The anomalies are features, not bugs. They're what make the game worth replaying even after you know the dominant strategy, because they give you something to pivot into when the standard lines are blocked.
Is the Game Solved?
At the archetype level, yes. For any 2-player setup, regardless of which of the 2,880 configurations you draw, the optimal pure strategy is furnishing rush. The proof does not depend on any specific card ordering or harvest marker placement. Furnishing rush is weakly dominant in the payoff matrix, which means it's optimal no matter what random inputs the game generates.
What I haven't done is compute the exact sequence of dwarf placements for each specific setup. That would require solving a game tree with roughly \(10^{30}\) nodes, which is slightly beyond my patience. But the archetype-level result is the one that matters for actual play. You know the plan. The within-archetype decisions (which cavern to excavate first, which furnishing tile to prioritize) are tactical, not strategic. They don't change the answer.
Play the Dominant Strategy
Play furnishing rush. Excavate aggressively in rounds 1 through 4. Get Office Room early for the overhang bonuses. Get State Parlor for +4 per dwelling. Grow to 5 dwarfs and pick up Broom Chamber for +10 bonus. If your opponent does something different, you score 125 to 135 and they score 60 to 105. If your opponent also plays furnishing rush, you both land at 85, which is worse than the cooperative optimum of 210 but better than any unilateral deviation. You'll sit there at the table, both of you excavating caverns as fast as you can, both knowing that one of you could sacrifice 10 points to give the other 50, but neither willing to be the one who blinks.
Prisoner's dilemma in a cave. Uwe Rosenberg probably didn't intend this, but the formal analysis says it's there.
The code is built on Lean 4 v4.28.0 with Mathlib, modeling all 24 action spaces, all 48 furnishing tiles, the complete expedition loot table, the board grids, and the full 12-round 2-player harvest schedule. I think Caverna is a beautifully designed game, which is exactly why it was satisfying to find that even under formal analysis the strategic structure holds together so well. A badly designed game would have a trivially dominant strategy that makes the game boring. Caverna's dominant strategy comes with a 19% welfare tax on the mirror matchup, which means the game is always more interesting when your opponent does something unexpected, which means in practice people don't always play the dominant strategy, which means the game stays fun.
Good game design, it turns out, is robust to being solved. And we can now prove that with perfect rigor.
-
- February 20, 2026
-
🔗 IDA Plugin Updates IDA Plugin Updates on 2026-02-20 rss
-
🔗 Simon Willison Adding TILs, releases, museums, tools and research to my blog rss
I've been wanting to add indications of my various other online activities to my blog for a while now. I just turned on a new feature I'm calling "beats" (after story beats, naming this was hard!) which adds five new types of content to my site, all corresponding to activity elsewhere.
Here's what beats look like:
![Screenshot of a fragment of a page showing three entries from 30th Dec 2025. First: [RELEASE] "datasette-turnstile 0.1a0 — Configurable CAPTCHAs for Datasette paths usin…" at 7:23 pm. Second: [TOOL] "Software Heritage Repository Retriever — Download archived Git repositories f…" at 11:41 pm. Third: [TIL] "Downloading archived Git repositories from archive.softwareheritage.org — …" at 11:43 pm.](https://static.simonwillison.net/static/2026/three-beats.jpg)
Those three are from the 30th December 2025 archive page.
Beats are little inline links with badges that fit into different content timeline views around my site, including the homepage, search and archive pages.
There are currently five types of beats:
- Releases are GitHub releases of my many different open source projects, imported from this JSON file that was constructed by GitHub Actions.
- TILs are the posts from my TIL blog, imported using a SQL query over JSON and HTTP against the Datasette instance powering that site.
- Museums are new posts on my niche-museums.com blog, imported from this custom JSON feed.
- Tools are HTML and JavaScript tools I've vibe-coded on my tools.simonwillison.net site, as described in Useful patterns for building HTML tools.
- Research is for AI-generated research projects, hosted in my simonw/research repo and described in Code research projects with async coding agents like Claude Code and Codex.
That's five different custom integrations to pull in all of that data. The good news is that this kind of integration project is the kind of thing that coding agents really excel at. I knocked most of the feature out in a single morning while working in parallel on various other things.
I didn't have a useful structured feed of my Research projects, and it didn't matter because I gave Claude Code a link to the raw Markdown README that lists them all and it spun up a parser regex. Since I'm responsible for both the source and the destination I'm fine with a brittle solution that would be too risky against a source that I don't control myself.
Claude also handled all of the potentially tedious UI integration work with my site, making sure the new content worked on all of my different page types and was handled correctly by my faceted search engine.
Prototyping with Claude Artifacts
I actually prototyped the initial concept for beats in regular Claude - not Claude Code - taking advantage of the fact that it can clone public repos from GitHub these days. I started with:
Clone simonw/simonwillisonblog and tell me about the models and viewsAnd then later in the brainstorming session said:
use the templates and CSS in this repo to create a new artifact with all HTML and CSS inline that shows me my homepage with some of those inline content types mixed inAfter some iteration we got to this artifact mockup, which was enough to convince me that the concept had legs and was worth handing over to full Claude Code for web to implement.
If you want to see how the rest of the build played out the most interesting PRs are Beats #592 which implemented the core feature and Add Museums Beat importer #595 which added the Museums content type.
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.
-
🔗 r/Yorkshire Where's the best place to live outside of Leeds? rss
Hey r/Yorkshire, I've very recently split from my girlfriend, I'm a guy in my late 20s and currently living in York. I'm looking to move out of York as, let's be real, how tf am I supposed to live in York on my own at that kind of price.
I work hybrid in Leeds and am looking to find somewhere new no more than about an hour's drive away. Thing is, I've only just moved to York in the winter, haven't really planted my roots, so would like to find somewhere that has a little going on so I can meet people. In my down time I love a lot of hiking, pubs, live music, I'm not expecting to find somewhere with all that, but somewhere that is relatively close to that kind of vibe, bit of an arty young vibe if possible.
I'm looking at Skipton, Halifax, keighly, and Harrogate at the moment, but let's rarely come up for under 700, but I'm open to other areas as I'd like to get to know the place. Just looking for recommendations really or thourghts on the above? I've heard mixed on keighly, and worried Skipton be a bit of a retirement village (no idea if that's true). Love to hear your thoughts. Thanks
submitted by /u/tmatthews98
[link] [comments] -
🔗 r/Leeds Comedy clubs? rss
Does anyone know where there are good stand up comedy acts in Leeds? Looking for venues that could be fun to visit
submitted by /u/C0sm1c_3l3ph4nt
[link] [comments] -
🔗 r/york Yorkshire Ghostbusters in this sub - Are any of you folks interested in a quick meet for a patch swap? I'll be in York visiting family next Tuesday - Thursday. The Chesapeake Ghostbusters logo ties our areas together through the use of Calvert and Crossland heraldry on the Maryland flag. rss
| submitted by /u/CaptainAwwsum
[link] [comments]
---|--- -
🔗 @binaryninja@infosec.exchange Want to get the best decompilation for your own architecture? Glenn's post mastodon
Want to get the best decompilation for your own architecture? Glenn's post shows how you can enable Binary Ninja to give you the best decompilation around. Part 1 covers the basics up to disassembly, assembly, and control- flow. Next week, part 2 covers lifting and our first decompilation results.
-
🔗 @binaryninja@infosec.exchange Going live now! Don't miss some fantastic demos by our RE//verse instructors! mastodon
Going live now! Don't miss some fantastic demos by our RE//verse instructors! https://www.youtube.com/vector35/live
-
🔗 News Minimalist 🐢 Supreme Court blocks Trump's tariffs + 11 more stories rss
In the last 2 days ChatGPT read 63550 top news stories. After removing previously covered events, there are 12 articles with a significance score over 5.5.

[5.8] Supreme Court limits presidential authority on global tariffs —ctvnews.ca(+47)
The U.S. Supreme Court on Friday struck down President Trump’s global tariffs, ruling that his unilateral use of emergency economic powers exceeded executive authority and violated constitutional limits.
The 6-3 ruling determined that the 1977 International Emergency Economic Powers Act does not authorize unilateral tariffs. The conservative majority applied the "major questions" doctrine, asserting that significant economic actions require explicit congressional approval rather than broad executive interpretations of emergency statutes.
Challenged by twelve states and various businesses, the ruling could force the refund of $175 billion. Although the administration explores alternative legal routes, the decision curtails a central pillar of Trump's agenda.
[5.7] FDA to require one study for new drug approvals to speed patient access —abcnews.com(+14)
The FDA will drop its longtime requirement for two clinical trials for new drug approvals, making a single study the default standard to accelerate patient access to novel medical treatments.
Commissioner Marty Makary and Deputy Vinay Prasad stated that modern research precision makes the old standard obsolete. The shift aims to reduce bureaucracy, potentially sparking a surge in drug development for common diseases that previously required more extensive testing than rare conditions.
Although the agency has accepted single studies for rare diseases since the 1990s, this policy expansion contrasts with recent restrictive decisions regarding vaccines and gene therapies, leaving some industry stakeholders seeking clarity.
Highly covered news with significance over 5.5
[6.5] Nasal spray vaccine protects mice from multiple respiratory pathogens — nature.com (+11)
[6.4] Feline and human cancers share striking genetic similarities, offering new research avenues — news.cornell.edu (+16)
[6.0] Invisible galaxy confirmed, composed almost entirely of dark matter — es.wired.com (Spanish) (+5)
[6.0] Google and Apple integrate generative AI music features into consumer apps — financialpost.com (+23)
[6.0] UN experts find genocide hallmarks in Sudan's el-Fasher campaign — apnews.com (+21)
[5.9] PromptSpy Android malware uses generative AI to adapt its persistence — bleepingcomputer.com (+8)
[5.6] Trump order protects glyphosate production and manufacturer immunity — theguardian.com (+8)
[5.6] Afghanistan's hunger crisis worsens as aid cuts force WFP to turn away children — abcnews.com (+3)
[5.5] White House allows ICE to detain refugees for rescreening — theguardian.com (+13)
[5.5] Iran nuclear talks collapse, pushing oil prices toward $100 as U.S. deploys military assets to the Middle East — economictimes.indiatimes.com (+65)
Thanks for reading!
— Vadim
You can personalize this newsletter with premium.
-
🔗 r/wiesbaden Schön in der Sauna schwitzen rss
submitted by /u/Z_smasher_Z
[link] [comments] -
🔗 r/wiesbaden Meine Englische Bulldogge braucht dringend Gaumensegel-OP, organized by Mario Beierstettel rss
submitted by /u/Slight_Today7434
[link] [comments] -
🔗 r/wiesbaden Meine Englische Bulldogge braucht dringend Gaumensegel-OP, organized by Mario Beierstettel rss
submitted by /u/Slight_Today7434
[link] [comments] -
🔗 r/york The ubiquitous tourist rss
In the '70s, a friend of mine's gaff was a second floor flat rented in Stonegate (for £11 a week - we think it was part of the Minster's estate). Anyway, the point is that, even back then, during the holidays and in summer, we would have fun leaning out the of the window to spot the odd local trying to worm their way through the dawdling crowds.
submitted by /u/flame2spear
[link] [comments] -
🔗 r/wiesbaden https://gofund.me/a4849d36a rss
submitted by /u/Slight_Today7434
[link] [comments] -
🔗 r/Yorkshire Yorkshire Dales in January 2027 rss
| I visited the Dales last summer, finally, and fell absolutely in love with the people, nature, stone barns, endless greenery, etc. I plan to visit this summer again to do some hiking, but also planning a January 2027 trip. I really want to see the area with possible snow, frost, and with luck, the snowdrops starting to bloom! I usually take the train from Leeds to Skipton, then the bus to Grassington where I stay for a few days. For winter 2027, I wanted to either stay in Appletreewick, or Burnsall, for a few days. I mostly plan to write, read, and if the weather permits, take a few walks. Would these places be nice for winter, or would you recommend slightly larger places, like Settle? Also, is snow fairly common in the area in winter? Thanks!! Photo credit: Getty submitted by /u/skepticalbureaucrat
[link] [comments]
---|--- -
🔗 r/LocalLLaMA The top 3 models on openrouter this week ( Chinese models are dominating!) rss
| the first time i see a model exceed 3 trillion tokens per week on openrouter! the first time i see more than one model exceed a trillion token per week ( it was only grok 4 fast month ago) the first time i see chinese models destroying US ones like this submitted by /u/keb_37
[link] [comments]
---|--- -
🔗 r/reverseengineering Reverse engineering the Creative Katana V2X soundbar to be able to control it from Linux rss
submitted by /u/crower
[link] [comments] -
🔗 r/Leeds Where do people play Warhammer? rss
The actual Warhammer shop aren't interested if you're not buying a starter set, patriot games isn't great and there's nothing else near the city centre I'm aware of. So where do people play Warhammer? Are there any clubs out there?
submitted by /u/sendmemespls97
[link] [comments] -
🔗 r/wiesbaden Gute Orthopäden rss
Wer ist ein guter Arzt/Ärztin für Orthopädie in Wiesbaden wo man nicht wie am Fließband behandelt wird? Empfehlungen für Kassenpatienten bitte 😊
submitted by /u/kassen_patient
[link] [comments] -
🔗 r/Yorkshire I went for a walk. rss
| Too many stunning photos to choose from. submitted by /u/Background_Pay_3113
[link] [comments]
---|--- -
🔗 r/LocalLLaMA GGML.AI has got acquired by Huggingface rss
| submitted by /u/Time_Reaper
[link] [comments]
---|--- -
🔗 r/Yorkshire Just love this place❤️ rss
| submitted by /u/Terrible_Passion6178
[link] [comments]
---|--- -
🔗 r/LocalLLaMA Deepseek and Gemma ?? rss
| submitted by /u/ZeusZCC
[link] [comments]
---|--- -
🔗 r/Leeds Barbers in city centre that can help me choose a haircut rss
I always have a terrible time when going to a barber, or choosing a haircut. I have a hard time deciding what kind of haircut or style looks good on me.
I live in the city centre; Are there any good barbers/hair salons within walking distance where I can just tell them to get creative with my hair? So far I've been to RMUK, lords' barbering and scissorhands barber but they all looked uncomfortable when I told them I'm not quite sure what to do with my hair...
submitted by /u/Hideharuhaduken420
[link] [comments] -
🔗 r/Leeds Deliveroo drivers rss
I am absolutely sick of being nearly run over by uber eats/Deliveroo bikers on electric bikes with no helmets or lights going all over pedestrian routes. I’m pretty sure people have died being hit by these?? Is there anything we can do to bring this matter to the council?
submitted by /u/Weary-Bus8436
[link] [comments] -
🔗 r/york Is there anyone in York that sells Kinnie? rss
| It's a Maltese drink that's quite hard to find in the UK. I've previously bought a 24 pack from Amazon, but that's out of my budget right now, and I'm heading to York next week so 🤞🤞😂 (buying as part of a bday gift for my partner) submitted by /u/LPanda2190
[link] [comments]
---|--- -
🔗 r/reverseengineering Decrypt and extract voice guidance MP3 prompts from Sony WH-1000XM4 encrypted voice packs. AES key extracted via Bluetooth firmware dump of the Airoha MT2811 SoC. rss
submitted by /u/TheHelgeSverre
[link] [comments] -
🔗 r/Harrogate Photo booths in Harrogate - digital passport photos rss
Are there any photo booths in town that do the digital photos for passports (providing the code for online passport applications)? Thanks
submitted by /u/purte
[link] [comments] -
🔗 r/LocalLLaMA Kimi has context window expansion ambitions rss
| submitted by /u/omarous
[link] [comments]
---|--- -
🔗 r/york The Shambles doesn’t feel like The Shambles anymore rss
Walked through on a Saturday and it genuinely felt like I was in a slow-moving queue for a theme park ride.
I get that it’s popular and good for the city but it used to feel charming and slightly chaotic in a nice way. Now it feels like everyone’s there for the same photo.
Is it just nostalgia talking, or has the vibe shifted a bit over the last few years?
submitted by /u/1ChanceChipmunk1
[link] [comments] -
🔗 r/Yorkshire Who here believes that the fish should have at least come with a signed apology for that price tag? rss
| submitted by /u/PubLogic
[link] [comments]
---|--- -
🔗 r/Yorkshire Activities to take my gf to for her birthday? (South Yorkshire) rss
It’s my girlfriend’s birthday in a couple of weeks and I want to surprise her with something to do. She likes creative activities like pottery and painting. She’s also into gothic stuff like tarot, spells, ghosts and taxidermy etc. She doesn’t drink so anything pub/bar focused is out of the question but if there’s somewhere I could get a beer nearby, I wouldn’t mind that haha.
Any suggestions would be greatly appreciated 😁
submitted by /u/Both-Opportunity7602
[link] [comments]
-
- February 19, 2026
-
🔗 IDA Plugin Updates IDA Plugin Updates on 2026-02-19 rss
IDA Plugin Updates on 2026-02-19
New Releases:
Activity:
- capa
- HexRays-CppFormatter
- 357dbec1: improve complex expression first arg reformatting
- ida-cs2-reversing-tools
- ida-free-mcp
- 2e6955b9: Add GUI-based decompiler integration for IDA Free support
- ida-function-string-associate
- ida-hcli
- ida-ios-helper
- ida-sigmaker
- ida-vtable-tools
- 36c660cc: initial commit
- ipyida
- msc-thesis-LLMs-to-rank-decompilers
- 9b1fa33f: Merge branch 'main' of https://github.com/Lurpigi/msc-thesis-LLMs-to-…
- 14ba14f1: upd
- 94c7fde7: fix parser
- 1f3561c1: dogbolt section
- python-elpida_core.py
- f05c9d8c: docs: D15 Reality-Parliament Interface — compiled from codebase
- fc51cee2: docs: Update HF deployment status - Phase C deployed at 05:12 UTC
- 95295029: state: D14 ark + feedback cache after 290 cycles
- 3ab4c308: federation: 290 cycles governance + curation state (5 watches Feb 19)
- 1b2d1133: docs: Feb 19 session - PSO optimizer restoration + MIND/BODY converge…
- 1b784a43: Remove redundant GitHub Actions workflow - daemon approach sufficient
- f795cb52: fix: bypass aws-actions STS validation, set creds via env directly
- 99546a09: fix: MIND workflow region eu-north-1 + add python-dotenv
- 14be8ff5: Phase C: Axiom PSO optimizer + MIND autonomous workflow
- ac04ef9a: Phase B: Two-loop MIND/BODY architecture with D15 convergence gate
- f56c8c95: docs: Run log Feb 19 — 327 cycles, federation first light
- 3668253f: fix: kernel_status key names + CadenceState.recursion_alert → ArkRhyt…
- 4ea3c2d3: Update HF deployment status: Phase 14-20, federation architecture, au…
- 7deebf36: Fix HF deploy workflow: push HEAD:main (git init creates master by de…
- b4222bfc: Add workflow_dispatch trigger to HF deploy workflow
- smd_ida_tools2
- bf85dd09: Fixed IDA Pro crash when creating a function in Granada (maybe in som…
-
🔗 r/LocalLLaMA Free ASIC Llama 3.1 8B inference at 16,000 tok/s - no, not a joke rss
Hello everyone,
A fast inference hardware startup, Taalas, has released a free chatbot interface and API endpoint running on their chip. They chose a small model intentionally as proof of concept. Well, it worked out really well, it runs at 16k tps! I know this model is quite limited but there likely exists a group of users who find it sufficient and would benefit from hyper-speed on offer.
Anyways, they are of course moving on to bigger and better models, but are giving free access to their proof-of-concept to people who want it.
More info: https://taalas.com/the-path-to-ubiquitous-ai/
Chatbot demo: https://chatjimmy.ai/
Inference API service: https://taalas.com/api-request-form
It's worth trying out the chatbot even just for a bit, the speed is really something to experience. Cheers!
EDIT: It's worth noting that the chatbot demo actually undersells the speed on display. Anything over a few hundred tps is perceived as instantaneous, so the experience of 1k tps vs 16k tps should be pretty similar. So you are only seeing the bottom few percent of the speed on offer. A proper demo would be using a token-intensive workload with their API. Now THAT would be something to see.
submitted by /u/Easy_Calligrapher790
[link] [comments] -
🔗 r/Leeds Leeds Reddit mixed social meet up for m&f aged 35-45 confirmed rss
UPDATED at 11.30pm:
Hey everyone i posted a few weeks ago reaching out asking if people aged 35-45 would be keen on small group social meet ups in Leeds City centre to make new friends. And I did not expect to get so many of your replies. Also, thanks for those who got in touch and all the lovely comments. Appreciate it!
The first 2 socials are planned and nearly all booked up. I will share what spaces are left to book:
For anyone asking, I am trying to keep a balance of men and women as best as possible so those of us have a diverse range of people to socialise with.
4.3.26 @ 6.30pm-8.30pm - 1 female space left aged 35-45. Venue in Trinity Centre, city centre, I have reserved tables & the small group space at the venue. All male rsvp/spaces fully booked.
For after work dinner - LOTS of options on food and so very affordable. No pre-orders needed. Pay what you order individually.
Capacity: 14 attendees.
7.3.26 @ 10am-12pm Leeds Docks venue for coffee & brunch - FULLY BOOKED. No more spaces left.
For coffee & brunch, lovely venue and affordable coffees, teas & brunch. I will have to chase pre-orders a few days beforehand, it's required by the venue. Pay what you order individually. Capacity: 14 attendees - Sorry all booked up!
Booking is mandatory. No plus ones.
Many thanks 😊
F, aged 40
submitted by /u/MasterMembership4506
[link] [comments] -
🔗 r/reverseengineering i found the macbook’s built in accelerometer and it streams in real time (python, m3 pro) rss
submitted by /u/BillieWeston
[link] [comments] -
🔗 r/LocalLLaMA Pack it up guys, open weight AI models running offline locally on PCs aren't real. 😞 rss
| submitted by /u/CesarOverlorde
[link] [comments]
---|--- -
🔗 r/york York Minster in the rain rss
| The puddles and the Minster lined up rather nicely the other night in the rain. submitted by /u/Borobeer49
[link] [comments]
---|--- -
🔗 r/york Do you have any York related stories you find interesting or documentary worthy? rss
I have lived around York forever and I am so interested in stories from around York that I might not be aware of no matter how niche. I have recently gotten into video production so this is interesting for a number of reasons but I would love any stories people have! Thanks!
submitted by /u/Beneficial_Law6076
[link] [comments] -
🔗 r/york Looking for tea community/tea friends in York #gongfucha rss
| Hello~! As the title says, are there any tea nerds out there in York? ☺️ Would really like to connect with people who are into tea. I’m into most teas but currently really into Chinese teas and the occasional Japanese tea. I make tea gongfu style as pictured above. Was having some tea today and thought how fun it would be to share this with likeminded people! Thank you for reading! 🙏 submitted by /u/morksuggan
[link] [comments]
---|--- -
🔗 r/reverseengineering Who said C# isn't for low-level tools? My new Hex Editor uses MMF and a custom DSL to outperform traditional binary editors. rss
submitted by /u/FnaFi_
[link] [comments] -
🔗 r/Yorkshire Arrest after two teenagers found dead at Bridlington holiday park rss
| submitted by /u/Kagedeah
[link] [comments]
---|--- -
🔗 r/Leeds Fritz Kola in Leeds? rss
Very odd request, but trying to shift away from Coke, and been looking for some good alternatives in Leeds. Adored Fritz Kola on my travels, does anyone know if any supermarkets or smaller shops in Leeds stock it? Many thanks in advance
submitted by /u/WestComfortable8423
[link] [comments] -
🔗 r/Yorkshire Wakefield rss
What are peoples opinion on Wakefield area? We are looking to relocate and have family in Wakefield. I had a look on police.uk which tells you about crimes in the area. Which says Wakefield has a lot of violent and sexual crimes committed. The areas we were looking at were. Horbury, castleford and a tiny bit out of Wakefield town centre, we have a 7 month old so wanted to be close to baby groups/ activities to do, plus being close to a family member.
submitted by /u/Postpartum_Bowser-26
[link] [comments] -
🔗 @binaryninja@infosec.exchange Connect with us on Friday 2/20 @ 3pm for some advanced exploitation! Brandon mastodon
Connect with us on Friday 2/20 @ 3pm for some advanced exploitation! Brandon (teaching Firmware RE at RE//verse) has a spicy meshtastic bug from class for us to preview, then we'll continue with more advanced C++ reversing! https://www.youtube.com/watch?v=k0s7W3Wuipg
-
🔗 r/wiesbaden Möbel zu verschenken rss
EDIT: Das Sofa ist bis Sonntagabend reserviert. Ich schicke trotzdem allen Interessenten gerne noch Bilder falls die Abnehmer bis Sonntagabend absagen sollten ist es wieder verfügbar. Die Stühle werden am Dienstag abgeholt!
Moin ihr Lieben! Aufgrund unglücklicher Umstände haben mir meine Umzugshelfer abgesagt und ich muss zu Ende Februar aus meiner Wohnung in Wiesbaden raus. Da ich für meine neue Wohnung eh lieber andere Möbel hätte, findet sich hier vielleicht jemand der etwas von meinem Hausstand übernehmen möchte. Ich möchte dafür nichts haben, wer was gebrauchen kann soll es haben! Ich weiß die Zeiten sind nicht leicht für alle und vielleicht kann ich jemandem eine Freude machen. Schicke gerne bei Interesse Bilder der Möbel! Die Möbel sind bis auf das Schlafsofa alle im letzten Januar gekauft worden und kaum in Benutzung gewesen.
Abzugeben habe ich: 160x200 Malm Bett mit 4 Schubladen in Holzoptik 1 ausziehbares Schlafsofa mit grobem beigem Bezug 1 runden Esstisch mit 4 Stühlen (entweder als Kombi oder jeder das was er mag)
Meldet euch gerne bei Interesse! :)
submitted by /u/improvedjay
[link] [comments] -
🔗 r/wiesbaden Smoke-together rss
submitted by /u/Wide-Distribution-78
[link] [comments] -
🔗 Andrew Ayer - Blog Why IP Address Certificates Are Dangerous and Usually Unnecessary rss
Imagine you're connecting to an IP address over TLS. The server presents a valid, properly-issued IP address certificate from a publicly-trusted certificate authority. But you're not really talking to that IP address, but to a man-in-the-middle (MitM) who was assigned the IP address over a year ago. How could this be? Unfortunately, publicly-trusted IP address certificates just don't provide the same level of security as certificates for domain names. Unless you're operating a DNS-over-TLS or DNS-over-HTTPS resolver, you should not use IP address certificates. You'll be much more secure with domain name certificates.
TL;DR:
- A "valid" IP address certificate can mean "someone who controlled this IP address any time in the last 796 days. "
- Certificate validation happens in the past, not at connection time, and IP addresses are reused constantly.
- This risk exists for domains too, but it's far worse for IP addresses, especially in cloud environments.
- IP address certificates only make sense for DNS-over-TLS and DNS-over-HTTPS resolvers.
- For everything else, use domain name certificates; even short-lived servers can do this practically by embedding IP addresses in hostnames.
(When I say IP address certificate, I mean a TLS certificate with an IP address subjectAltName, which allows a certificate to authenticate a connection to an IP address, rather than a domain name as is typical on the Web. Public certificate authorities have been allowed to issue IP address certificates for a long time, but I fear they will become more popular since Let's Encrypt added support for them last month.)
The basic security property provided by a certificate is that the certificate authority has validated that the certificate subscriber (the person who applies for the certificate and knows its private key) is authorized to represent the domain name or IP address in the certificate. This ensures that the other end of a TLS connection is truly the domain or IP address that you want to connect to, not a MitM impostor.
But the validation is not done every time a TLS connection is established; rather, it was done at some point in the past. Thus, the certificate subscriber may no longer be authorized to represent the domain or IP address.
How old might the validation be? As of February 2026, certificate authorities are allowed to issue certificates that are valid for up to 398 days. (Let's Encrypt limits their IP address certs to 6 days, but you have to worry about attackers using other CAs, not just the CA you use.) So the validation may be 398 days old. But it gets worse. When issuing a certificate, CAs are allowed to rely on a validation that was done up to 398 days prior to issuance. So when you establish a TLS connection, you may be relying on a validation that was performed a whopping 796 days ago. You could be talking not to the current assignee of the domain or IP address, but to anyone who was assigned the domain or IP address at any point in the last 2+ years.
Validation performed IP address reassigned Certificate issued to previous assignee You connect validation reuse time (398 days) certificate lifetime (398 days) window of vulnerability (796 days)
This is a problem with both domains and IP addresses, but it's way worse with IP addresses. While it's still very possible to register a domain that no one has ever registered before, you don't have this luxury with IPv4 addresses. There are no unassigned IPv4 addresses left; when you get an IPv4 address, it has already been assigned to someone else. In some cases, particularly in cloud environments, the address could have had as many tenants as a room at a Motel 6.
For some use cases, the risk is unavoidable. For example, DNS-over-TLS and DNS-over-HTTPS resolvers have to be contacted by IP address, to avoid a circular dependency on DNS resolution. Domain name certificates are not an option. Fortunately, by 2029, the maximum certificate lifetime will be 47 days, and the maximum validation reuse period will be 10 days, so the risk window will be only 57 days. That's not too bad for a service that's likely to exist for many years with the same IP address.
But even with a 57 day window, other use cases should just use domain name certificates. One use case for IP address certificates is particularly misguided: securing short-lived cloud workloads. Let's Encrypt describes this use case as:
Securing ephemeral connections within cloud hosting infrastructure, like connections between one back-end cloud server and another, or ephemeral connections to administer new or short-lived back-end servers via HTTPS - as long as those servers have at least one public IP address available.
On Bluesky, Ryan Hurst goes into more detail:
Modern infrastructure no longer has stable hostnames, static IPs, or long- lived trust anchors. Workloads spin up before DNS exists, live briefly, and disappear. Trust has to keep up.
Short-lived and IP certificates make it possible to use TLS before a DNS name exists, reduce friction for DNS over HTTPS adoption, secure ephemeral devices and services by default, and shift trust from long-lived credentials to automated renewal.
As I understand it, the use case is running servers which accept TLS connections and exist for a very short period, like minutes. The most secure implementation would be to assign the server a unique, never-before-used hostname under your domain, publish a DNS record pointing the hostname to the server's IP address, get a domain name certificate, and have clients connect to the hostname. Thanks to the unique hostname, clients can be sure they're connecting to the right server and not to an impostor who was assigned the IP address at some point in the past.
But Ryan suggests that it might not be possible to wait for a DNS record to be published before the server needs to be usable. Fortunately, it's still possible to avoid IP address certificates. Instead, you can publish, in advance, a DNS record under your domain for every IP address you might need to use. For example, ip-192-0-2-1.yourcompany.example would resolve to 192.0.2.1. ISPs commonly publish DNS records like this for their entire IP address space, so it's possible to do at scale. Have your clients connect to your short-lived server using this DNS record, rather than an IP address. To prevent would-be attackers from completing domain validation under your domain using a non-DNS validation method, you should also publish a CAA record for your domain that uses ACME account binding to restrict issuance to your ACME account. Now clients can be sure they're connecting to a server controlled by your organization, rather than anyone who happened to be assigned the same cloud IP address in the last 2 years.
You can also monitor Certificate Transparency logs to look for unauthorized certificates for your domain. Monitoring Certificate Transparency is not practical when using IP address certificates with short-lived cloud workloads, since the set of IP addresses that you need to monitor will be constantly changing as you create and destroy your servers, and it will be hard to tell whether an unknown certificate is malicious or just an innocent issuance to someone who got assigned the same IP address.
I encourage you to think long and hard before using IP address certificates, especially for short-lived cloud servers. The high risk of stale validation, combined with the inability to effectively monitor Certificate Transparency, bring IP address certificates uncomfortably close to opportunistic encryption (TLS without certificate validation), even with post-2029 shortened lifetimes. Fortunately, you can embed IP addresses in pre-published DNS records if you can't publish DNS records on the fly. Doing a little extra DNS work is a small price to pay for avoiding the inherent risks of IP address certificates.
-
🔗 r/wiesbaden Wie hat sich Wiesbaden in den letzten 20 Jahren verändert? rss
Ich wohne erst seit etwas mehr als zwei Jahren in Wiesbaden und komme aus einer ganz anderen Ecke Deutschlands.
Aus meiner Sicht hat Wiesbaden viel positives zu bieten, aber leider auch viel negatives, was das Lebensgefühl für mich und meine Freundin einschränkt, was bestimmt auch an unserem Viertel liegt in welchen wir wohnen.
Daher würde ich mal gerne von den Alteingesessenen wissen, wie sehr sich Wiesbaden in den letzten 20 Jahren verändert hat und ob ihr mit dem Trend der Stadt glücklich seit oder eher nicht.
Liebe Grüße!
submitted by /u/Extension-Cry225
[link] [comments] -
🔗 r/Leeds Thinking of moving from Meanwood to Garforth rss
Hey all,
Currently renting in Meanwood and like it, but thinking about buying in Garforth.
I’ll be working longterm in York, my wife works in Wakefield (needs train access), and primary school for our daughter is a big priority.
We’re not bothered about pubs/restaurants just want a safe, family friendly area with good schools and transport.
On paper Garforth makes sense, but I’m hesitating because we feel settled where we are.
Is Garforth a good long-term base for a young family? Any honest thoughts appreciated
Thanks
submitted by /u/Similar_Win5490
[link] [comments] -
🔗 r/york York Minster West Window rss
| Last night and a cold but dry and clear night. submitted by /u/York_shireman
[link] [comments]
---|--- -
🔗 r/wiesbaden Wirtschaft in Wiesbaden ⬇️ rss
-
🔗 r/wiesbaden Inliner fahren in Wiesbaden? rss
Vor einigen Jahren bin ich sehr viel inline Skates gefahren, und jetzt habe ich die Zeit wieder damit anzufangen. Gibt es hier in der Nähe Treffen oder ähnliches? Strecken die man empfehlen kann? Etc. danke
submitted by /u/Old-Bus-6698
[link] [comments] -
🔗 r/wiesbaden Warum wird Wiesbaden oft als weniger attraktiv angesehen als Mainz? rss
Ich verstehe nicht, warum viele Mainz als ansprechender ansehen als Wiesbaden. In Mainz, wo ich wohne, gibt es praktisch keine zentrumsnahen Grünflächen, abgesehen von dem kleinen Altstadtteil ist die Stadt auch sehr hässlich, es gibt keine wirklich belebten Orte abseits der Gastronomie und auch keine brauchbaren Radwege, während man in Wiesbaden zumindest breitere Straßen hat. Auch die Innenstadt in Mainz ist wenig schön und sehr klein, während man in Wiesbaden sehr viele Geschäfte und attraktive Straßen und Gassen findet. Ich frage mich, wo kommt dieser Mainz-Hype her?
submitted by /u/Western-Coat-3812
[link] [comments] -
🔗 r/reverseengineering Agentic Mobile SAST & Protection Bypass rss
submitted by /u/New-Parfait-9988
[link] [comments] -
🔗 r/LocalLLaMA I'm 100% convinced that it's the NFT-bros pushing all the openclawd engagement on X rss
| I'm absolutely sure of it. The same usual suspects, the same language, the same who stole from whom the next million dollar ideas. It's insane. NFT-bros are now peddling openclawd crypto schemes. It's all the same BS quasi-tech lingo wrapped into neverending posts with meme-like pictures full of slogans, and graphs that literally means less than nothing, that lead back to 'blockchain, blah, blah blah, agentic, blah, blah, prediction markets". I have enough of this. Is this the sign of a real bubble? In the fall people were talking on X about how AI is in a bubble - which is never the time for bubbles to burst. But now every grifter discovered AI agents. Now, normally it takes 1-2 years to get from one stage to another, (sorry I'm old) but we are in a super accelerated scenario. Felt like 1998 in fall. It feels we jumped to 2000 suddenly. So IDK. Smells like a bubble is expanding rapidly. Where is my thumbtack? Is AGI is coming on X (Sign of something?) submitted by /u/FPham
[link] [comments]
---|--- -
🔗 r/LocalLLaMA Kitten TTS V0.8 is out: New SOTA Super-tiny TTS Model (Less than 25 MB) rss
| Model introduction: New Kitten models are out. Kitten ML has released open source code and weights for three new tiny expressive TTS models - 80M, 40M, 14M (all Apache 2.0) Discord: https://discord.com/invite/VJ86W4SURW GitHub: https://github.com/KittenML/KittenTTS Hugging Face - Kitten TTS V0.8:- Mini 80M: https://huggingface.co/KittenML/kitten-tts-mini-0.8
- Micro 40M: https://huggingface.co/KittenML/kitten-tts-micro-0.8
- Nano 14M: https://huggingface.co/KittenML/kitten-tts-nano-0.8
The smallest model is less than 25 MB, and around 14M parameters. All models have a major quality upgrade from previous versions, and can run on just CPU. Key Features and Advantages
- Eight expressive voices: 4 female and 4 male voices across all three models. They all have very high expressivity, with 80M being the best in quality. English support in this release, multilingual coming in future releases.
- Super-small in size: The 14M model is just 25 megabytes. 40M and 80M are slightly bigger, with high quality and expressivity even for longer chunks.
- Runs literally anywhere lol: Forget "no GPU required." This is designed for resource-constrained edge devices. Great news for GPU-poor folks like us.
- Open source (hell yeah!): The models can be used for free under Apache 2.0.
- Unlocking on-device voice agents and applications: Matches cloud TTS quality for most use cases, but runs entirely on-device (can also be hosted on a cheap GPU). If you're building voice agents, assistants, or any local speech application, no API calls needed. Free local inference. Just ship it.
- What changed from V0.1 to V0.8: Higher quality, expressivity, and realism. Better training pipelines and 10x larger datasets.
submitted by /u/ElectricalBar7464
[link] [comments]
---|--- -
🔗 r/york What is the Postgrad and LGBT community in York like? Is there any nightlife? rss
Basically the title, I'll be starting a postgrad in York soon and will be turning 24. I'll obviously be too old for freshers and where the undergrads go (and I've been there done that) but wonder if there's any nightlife for someone more my demographic (predominantly gay and women).
Is there a large enough postgrad community where I won't feel like the odd one out for being older and not an undergrad?
Any general suggestions?
submitted by /u/GeeCeeSlay7
[link] [comments] -
🔗 Rust Blog Rust participates in Google Summer of Code 2026 rss
We are happy to announce that the Rust Project will again be participating in Google Summer of Code (GSoC) 2026, same as in the previous two years. If you're not eligible or interested in participating in GSoC, then most of this post likely isn't relevant to you; if you are, this should contain some useful information and links.
Google Summer of Code (GSoC) is an annual global program organized by Google that aims to bring new contributors to the world of open-source. The program pairs organizations (such as the Rust Project) with contributors (usually students), with the goal of helping the participants make meaningful open- source contributions under the guidance of experienced mentors.
The organizations that have been accepted into the program have been announced by Google. The GSoC applicants now have several weeks to discuss project ideas with mentors. Later, they will send project proposals for the projects that they found the most interesting. If their project proposal is accepted, they will embark on a several months long journey during which they will try to complete their proposed project under the guidance of an assigned mentor.
We have prepared a list of project ideas that can serve as inspiration for potential GSoC contributors that would like to send a project proposal to the Rust organization. However, applicants can also come up with their own project ideas. You can discuss project ideas or try to find mentors in the #gsoc Zulip stream. We have also prepared a proposal guide that should help you with preparing your project proposals. We would also like to bring your attention to our GSoC AI policy.
You can start discussing the project ideas with Rust Project mentors and maintainers immediately, but you might want to keep the following important dates in mind:
- The project proposal application period starts on March 16, 2026. From that date you can submit project proposals into the GSoC dashboard.
- The project proposal application period ends on March 31, 2026 at 18:00 UTC. Take note of that deadline, as there will be no extensions!
If you are interested in contributing to the Rust Project, we encourage you to check out our project idea list and send us a GSoC project proposal! Of course, you are also free to discuss these projects and/or try to move them forward even if you do not intend to (or cannot) participate in GSoC. We welcome all contributors to Rust, as there is always enough work to do.
Our GSoC contributors were quite successful in the past two years (2024, 2025), so we are excited what this year's GSoC will bring! We hope that participants in the program can improve their skills, but also would love for this to bring new contributors to the Project and increase the awareness of Rust in general. Like last year, we expect to publish blog posts in the future with updates about our participation in the program.
-
🔗 Ampcode News GPT‐5.3‐Codex rss
GPT-5.3-Codex now powers Amp's deep mode.
It’s a truly impressive model. After using it, we realized: "The coding agent is dead."
Everything is changing again. With GPT-5.3-Codex, the agent is no longer the bottleneck. Our ability to tell it what to do is.
In our experience, it's a better than GPT-5.2-Codex in every dimension. It still goes deep, but it's learned when to stop.
To use it: open the command palette with
Ctrl-Oand run the commandmode: use deepin the Amp CLI, or selectdeepmode in the Amp editor extension's prompt field. -
🔗 Ampcode News The Coding Agent Is Dead rss
The current generation of coding agents is dead. The heart is still beating, yes, but the bullet has already left the chamber. This generation isn't the future.
With the newest models, the agent — the prompts and tools you wrap around a model — is no longer the limiting factor. These models can be powerful with nearly any tool you throw at them. A simple tool called
bashis often enough. Whether you show LSP diagnostics here or there is dwarfed by what these models can do through sheer brute force. As long as it mostly gets out of the way, nearly any agent can get good results out of them. These new models barely need to be told how to act like coding agents anymore. They're now fully trained for that.How you organize your codebase for agents, how your organization uses them — those are now the bottlenecks.
The frontier has shifted. And we're going to make massive changes to Amp so it stays on the frontier.
It's tempting not to. Amp is growing faster than ever. We could stay, keep things as they are, pretend that the coding agents of February 2026 are the final form and watch the numbers go up. We could say yes to more VC money and sell $2,000 worth of tokens for $20 a month.
But what would that buy us? A local maximum. And while we're sitting on top of the local maximum, each new model generation would move the frontier further and further into the distance. And the longer we keep things the same, the more we select for users that aren't comfortable at the frontier. But the users we want and need are those who are willing to pack up and travel light with us.
So, Amp has to evolve.
First step: we're going to kill the Amp editor extensions for VS Code and Cursor. We're unshackling these models from the editor.
By keeping these new models in an editor sidebar, we restrict them. They're now much more than mere assistants. They no longer need the hand-holding and really want to kick off their training wheels. They want to write code and run even when you're not sitting in front of your editor. It's time to see what they can do without supervision.
The Amp editor extensions will self-destruct on March 5 at 8pm Pacific Time. Time to switch to the Amp CLI.
Because we're keeping the CLI, for now. Its heart is still beating and it helps us get to where we need to go. Think of it as a ladder: we use it to climb up to the next level and then we might not need it. It's flexible, light, easy to change, can be run anywhere and anytime. It attracts the kind of users we're building for.
For those of you who read "everything is changing" on our landing page back in April 2025 and nodded, this is nothing new. Our only promise was that when the frontier moved, we would move too.
If you're new to Amp: welcome. Come with us. Today Amp ceases to be a coding agent. It's no longer a point on a map. It's an arrow. Not a stop, but a ride.
And it might self-destruct too.
-
- February 18, 2026
-
🔗 IDA Plugin Updates IDA Plugin Updates on 2026-02-18 rss
IDA Plugin Updates on 2026-02-18
Activity:
- augur
- haruspex
- hrtng
- 503f415a: IDA 9.3 support; "Create dummy struct" - fixed-layout mode checkbox
- ida-hcli
- msc-thesis-LLMs-to-rank-decompilers
- c1881899: dogbolt loss analysis
- 6489fcef: new diff
- 55f4af91: Merge branch 'main' of https://github.com/Lurpigi/msc-thesis-LLMs-to-…
- 7a93c616: upd
- python-elpida_core.py
- 8d211b6c: docs: HF Space deployment development timeline
- 3cba6395: fix: kernel false-positive on policy analysis text
- fac3bea7: fix: provider fallback chain in all divergence engine phases
- 0fcb93f0: fix: extract URLs from text when Perplexity citations unavailable + p…
- d2da4f58: feat: scanner sources — Perplexity citations shown as clickable pills
- rhabdomancer
-
🔗 r/LocalLLaMA More quantization visualization types (repost) rss
| Inspired by this post from u/VoidAlchemy a few months back: https://old.reddit.com/r/LocalLLaMA/comments/1opeu1w/visualizing_quantization_types/ Intrusive thoughts had me try to reproduce and extend the work to include more quantization types, with/without imatrix, and some PPL/KLD measurements to see what an "efficient" quantization looks like. MXFP4 really doesn't like to participate in this sort of experiment, I don't have much faith this is a very accurate representation of the quant but oh-well. The (vibe) code for this is here https://codeberg.org/mailhost/quant-jaunt along with a sample of summary output (from lenna.bmp) and some specifications that might help keep the vibes on track. reposted to respect Lenna's retirement *Edit: Some more intrusive thoughts later, I have updated the 'quant-jaunt' repo to have (rough) support of the ik_llama quants. It turns into 110 samples. Have also shifted to using ffmpeg to make a lossless video instead of a gif. https://v.redd.it/o1h6a4u5hikg1 submitted by /u/copingmechanism
[link] [comments]
---|--- -
🔗 r/reverseengineering Mac Malware and You: An Introduction to Dylib Injection and Function Hooking rss
submitted by /u/igor_sk
[link] [comments] -
🔗 r/Leeds Is Leeds got enough stuff/opportunity for a 18yr old? rss
I’m considering getting into finance/accounting etc through a degree apprenticeship once I finish my alevels and I wanted opinions from you guys.
I’ll be moving there alone and will be a good couple hours away from home so I’m just interested.
Basically curious if its big enough for that city life and any tips etc
submitted by /u/Latter_Truck_3509
[link] [comments] -
🔗 r/LocalLLaMA I plugged a $30 radio into my Mac mini and told my AI "connect to this" — now I control my smart home and send voice messages over radio with zero internet rss
Hey r/LocalLLaMA,
So I live in Ukraine during the war. Power goes out a lot here – russia regularly attacks our power grid. When it happens, internet dies, cell towers go dark, and suddenly all my smart home stuff and AI tools become useless. Got tired of it, so I did something kind of ridiculous.
I bought two Lilygo T-Echo radios (~$30 each, LoRa 433MHz, running Meshtastic firmware). Plugged one into my always-on Mac mini via USB. Took the other one as my portable radio. Then I opened up my OpenClaw AI agent and basically said: "hey, there's a Meshtastic radio plugged in. Figure it out."
And it did.
What happened next
It identified the Meshtastic device, installed the CLI, configured an encrypted channel, and then – without me writing a single line of code – built a full Python listener daemon that:
- Monitors the radio 24/7 for incoming messages
- Routes them intelligently: if internet is up, forwards to Discord where a cloud AI responds. If internet is down, routes everything to local models via Ollama
- Uses phi4-mini as a lightweight intent classifier ("is this a smart home command or a question?") and gemma3:12b for actual answers ()
- Talks to Home Assistant so I can control lights, read sensors, check who's home — all over radio
- Auto-chunks responses to fit the 200-char LoRa limit
- Watches an outbox folder – if the AI needs to alert me about something (like a power outage), it drops a message file there and the listener transmits it over LoRa
The whole thing just worked. The AI had already built the architecture while I was still thinking about how to approach it.
The voice thing (this is the cool part)
Then I added one more feature. If I prefix a Meshtastic message with
SAY:, the listener takes the text, calls Home Assistant's TTS service, and plays it through my HA Voice PE speaker at home. In Ukrainian.So I can be walking around with a T-Echo in my pocket, completely off-grid, type
SAY: Привіт, я скоро буду вдома(Hi, I'll come back home soon) – and my house literally speaks. No internet anywhere in the chain. Just radio waves → Mac mini → TTS → speaker.Honestly didn't expect it to feel this magical.
The stack
Everything's open source except Claude (which is only used when internet is available):
- OpenClaw – you know what is this
- Meshtastic – LoRa mesh networking firmware. The magic sauce for off-grid communication – open source, encrypted, and any Meshtastic radio can relay messages to extend range
- Lilygo T-Echo – the $30 radio hardware running Meshtastic
- Ollama – you know as well
- phi4-mini – lightweight router/classifier
- gemma3:12b – the actual brain for offline responses
- Home Assistant – smart home + TTS
- HA Voice PE – the speaker that reads messages aloud
- Mac mini M4 16GB – always-on server, running on battery backup
T-Echo (portable) │ LoRa 433MHz, encrypted ▼ T-Echo (USB) → Mac mini │ ├── SAY: prefix → HA TTS → Voice PE speaker ├── AI: prefix → phi4-mini → gemma3:12b (always local) ├── status → Home Assistant sensors ├── Online? → forward to Discord (cloud AI) └── Offline? → route everything to local Ollama models Outbox: AI drops .msg files → listener sends over LoRa (power outage alerts, reminders, etc.)What's next
I'm thinking about where this goes:
- Mesh AI network – Meshtastic is a mesh protocol, every radio relays. Multiple nodes running local LLMs could create a neighborhood-scale AI network with zero internet
- Bigger local models – looking at upgrading hardware for 30B+ parameter models
- Dead man's switch — auto-alert if I don't check in within a time window
What do you think?
submitted by /u/anvarazizov
[link] [comments] -
🔗 r/Leeds Ways to make friends rss
I'm looking for some activities or meet ups for my other half (27M). He moved up from London a bit ago and he doesn't have any friends up here. He used to go to football back in London but says he doesn't want to do that (although he might change his mind). He likes gaming and wants to start going gym, I just don't really know where to suggest for him to go to meet people.
Any suggestions are much appreciated. Thank you.
submitted by /u/onydee
[link] [comments] -
🔗 r/york Rather you than me pal (assessing the Minster stonework) rss
| submitted by /u/FoxyStoat444
[link] [comments]
---|--- -
🔗 r/wiesbaden Old Synagoge in Wiesbaden by Phillip Hoffmann 1863-1939 rss
submitted by /u/real_human_being78
[link] [comments] -
🔗 News Minimalist 🐢 Ukraine reclaims territory after Russia loses Starlink access + 11 more stories rss
In the last 5 days ChatGPT read 146335 top news stories. After removing previously covered events, there are 12 articles with a significance score over 5.5.

[6.0] Ukraine reclaims territory after Russia loses Starlink access —nrc.nl(Dutch) (+18)
Ukraine reclaimed significant territory for the first time since mid-2023 after SpaceX blocked Russian military access to the Starlink satellite network, severely disrupting Moscow’s battlefield communication and coordination.
Ukrainian forces liberated eleven villages totaling 200 square kilometers, primarily in Zaporizhia. These tactical counterattacks reversed recent Russian gains and forced retreats, showcasing the immediate impact of Starlink restrictions on Russia’s ability to sustain offensive momentum across the front.
As Russia seeks satellite alternatives and diplomatic talks begin in Geneva under US pressure, Moscow maintains intense drone strikes on Ukraine's energy grid. Analysts remain skeptical about any near-term diplomatic breakthrough.
[5.5] Ancient microbes in ice reveal natural antibiotic resistance —theconversation.com(+21)
Researchers found 5,000-year-old bacteria in a Romanian ice cave resistant to modern antibiotics, proving natural resistance predates medicine while offering a potential source for discovering new life-saving drugs.
The ancient microbes resisted ten modern antibiotics, including treatments for tuberculosis. While melting ice risks releasing these resistance genes into the environment, the bacteria also produced chemicals that killed 14 types of disease-causing pathogens during laboratory testing, highlighting their medicinal potential.
Most ancient environmental bacteria remain unstudied, containing unknown genes that could benefit biotechnology and industrial energy efficiency. Scientists emphasize that these microbial systems represent a vast, untapped reservoir of biochemical tools.
Highly covered news with significance over 5.5
[5.5] Iran and US agree on nuclear deal principles — financialpost.com (+199)
[5.6] Global south leaders and tech billionaires convene in Delhi to discuss artificial intelligence development — theguardian.com (+151)
[5.5] European nations accuse Russia of poisoning Alexei Navalny with a rare toxin — rte.ie (+107)
[5.8] India and France forge special global strategic partnership with expanded defense, AI, and nuclear cooperation — ndtv.com (+86)
[6.1] Lab grown human spinal cord heals after injury in major breakthrough — sciencedaily.com (+2)
[5.8] Single dose of DMT offers lasting depression relief in clinical trial — neurosciencenews.com (+9)
[5.7] Brain cell switch determines lifelong obesity risk — farodevigo.es (Spanish) (+8)
[5.7] Canada and Germany sign declaration of intent to grow AI field together — ctvnews.ca (+4)
[5.5] Meta will run AI in WhatsApp through NVIDIA's 'confidential computing' — engadget.com (+12)
[5.7] C-17 aircraft transport micro nuclear reactor for the first time — twz.com (+14)
Thanks for reading!
— Vadim
You can track significant news in your country with premium.
-
🔗 r/wiesbaden Irgendwann lerne ich es... rss
submitted by /u/SkeruSeven
[link] [comments] -
🔗 Locklin on science Coding assistant experience rss
I’m a modest LLM skeptic. It’s not that I don’t believe in LLMs, I am aware that they exist, I just know that they’re not doing what people do when we think, and that they’re not going to hockey stick up and replace everybody. If it helps people, they should use them: I do. ask.brave.com […]
-
🔗 r/wiesbaden Where to buy Osprey backpacking packs? rss
Getting into backpacking and want to get an Osprey pack. Most recommend trying one on first, but no idea where (if anywhere) around here has a good selection of Osprey.
Anyone know?
submitted by /u/No-Ordinary6219
[link] [comments] -
🔗 organicmaps/organicmaps 2026.02.18-5-android release
• OSM data as of February 16, Wikipedia as of February 1
• Black hiking and cycling routes are now visible in the dark theme
• Added zip lines and more car services: repair, service, and parts
• Fixed bicycle routing and average speed calculation
• Improved category search
• Uzbek cuisine
• Expandable opening hours
• Show and use MSL altitude for recorded tracks on Android 14+
• Fixed KML, KMZ, GPX, GeoJSON import from WhatsApp
• Added Lao and Armenian translations
…more at omaps.org/newsSee a detailed announce on our website when app updates are published in all stores.
You can get automatic app updates from GitHub using Obtainium.sha256sum:
5f9a90aa9e36f4eb8ea231856262657193077bfa451bd19a2f1392dbd82af99a OrganicMaps-26021805-web-release.apk -
🔗 r/LocalLLaMA PSA: DDR5 RDIMM price passed the point were 3090 are less expensive per gb.. rss
Hello all,
Just wanted to note that RDIMM prices are so wild.. Stacking rdimms starts to be as expensive as stacking 3090s.. But RDIMM don't come with compute included..
What a crazy time, shall we stack rdimms or 3090, what's your take on that?
submitted by /u/No_Afternoon_4260
[link] [comments] -
🔗 panphora/overtype v2.2.0 release
Release v2.2.0
-
🔗 r/wiesbaden Bester Döner in der Umgebung rss
Hallo,
ich bin einmal wöchentlich in Wiesbaden zum Arbeiten. Fahre dafür 1 Stunde aus Richtung der kleinsten Dörfer, die man in Rlp finden kann. Ich bin ein riesen Dönerfan, in den letzten Jahren allerdings empfindlich geworden. Viele Döner vertrage ich nicht oder sie schmecken nicht. Da ich meine Leidenschaft aber nicht aufgeben möchte, hoffe ich darauf, dass die Nähe zu Frankfurt helfen könnte.
Welchen guten Dönerladen kennt ihr? Ich bin ein Fan von den guten Berliner Dönersoßen und bin generell auch im Osten aufgewachsen, wo die Döner alle anders geschmeckt haben.
Der Döner muss nicht preiswert sein oder fancy aussehen. Was könnt ihr mir empfehlen? Gibt es an den Standorten Parkmöglichkeiten?
submitted by /u/WriterCompetitive766
[link] [comments] -
🔗 r/york School's 'cost of living cupboard' helps families rss
| submitted by /u/Kagedeah
[link] [comments]
---|--- -
🔗 r/york Where can I stand against a plain white wall for a photo? rss
So ... this is a weird one.
I'm just signing up for an extras agency to see if I can pick up a bit of casual work. They want a full-length photo of me standing against a blank white wall - no doorframes, pictures or anything - and you can't crop the picture because it has to fit their format.
So where, in York, can I find a plain white wall - I gather off-white is acceptable - of sufficiend width and height for a squareish full-length photo of a 6 foot person, with another person able to stand far enough back from it to take a photo?
I said it was a weird one.
submitted by /u/Brickie78
[link] [comments] -
🔗 r/york St David’s Day rss
Hi! Just wondering if anyone knows anywhere that’s selling cards for St David’s Day or any other Welsh language cards in York!
Diolch!
submitted by /u/CharacterEvening4886
[link] [comments] -
🔗 r/reverseengineering Android 30 different SSL pinning Bypass Frida rss
submitted by /u/ResponsiblePlant8874
[link] [comments] -
🔗 r/reverseengineering Enhanced Android dynamic lib injector rss
submitted by /u/Ferib
[link] [comments] -
🔗 r/Yorkshire What to do with teenager on crutches in half term rss
I have a teenager on crutches, what can we do?
submitted by /u/SarkyMs
[link] [comments] -
🔗 3Blue1Brown (YouTube) The lattice bacteria puzzle rss
Part of a series of monthly puzzles, done in collaboration with MoMath. https://momath.org/mindbenders
-
🔗 HexRaysSA/plugin-repository commits sync repo: +1 release, ~1 changed rss
sync repo: +1 release, ~1 changed ## New releases - [IDASQL](https://github.com/allthingsida/idasql): 0.0.8 ## Changes - [IFL](https://github.com/hasherezade/ida_ifl): - host changed: HexRays-plugin-contributions/ida_ifl → hasherezade/ida_ifl - 1.5.2: archive contents changed, download URL changed -
🔗 Julia Evans Notes on clarifying man pages rss
Hello! After spending some time working on the Git man pages last year, I've been thinking a little more about what makes a good man page.
I've spent a lot of time writing cheat sheets for tools (tcpdump, git, dig, etc) which have a man page as their primary documentation. This is because I often find the man pages hard to navigate to get the information I want.
Lately I've wondering - could the man page itself have an amazing cheat sheet in it? What might make a man page easier to use? I'm still very early in thinking about this but I wanted to write down some quick notes.
I asked some people on Mastodon for their favourite man pages, and here are some examples of interesting things I saw on those man pages.
an OPTIONS SUMMARY
If you've read a lot of man pages you've probably seen something like this in the
SYNOPSIS: once you're listing almost the entire alphabet, it's hardls [-@ABCFGHILOPRSTUWabcdefghiklmnopqrstuvwxy1%,] grep [-abcdDEFGHhIiJLlMmnOopqRSsUVvwXxZz]The rsync man page has a solution I've never seen before: it keeps its SYNOPSIS very terse, like this:
Local: rsync [OPTION...] SRC... [DEST]and then has an "OPTIONS SUMMARY" section with a 1-line summary of each option, like this:
--verbose, -v increase verbosity --info=FLAGS fine-grained informational verbosity --debug=FLAGS fine-grained debug verbosity --stderr=e|a|c change stderr output mode (default: errors) --quiet, -q suppress non-error messages --no-motd suppress daemon-mode MOTDThen later there's the usual OPTIONS section with a full description of each option.
an OPTIONS section organized by category
The strace man page organizes its options by category (like "General", "Startup", "Tracing", and "Filtering", "Output Format") instead of alphabetically.
As an experiment I tried to take the
grepman page and make an "OPTIONS SUMMARY" section grouped by category, you can see the results here. I'm not sure what I think of the results but it was a fun exercise. When I was writing that I was thinking about how I can never remember the name of the-lgrep option. It always takes me what feels like forever to find it in the man page and I was trying to think of what structure would make it easier for me to find. Maybe categories?a cheat sheet
A couple of people pointed me to the suite of Perl man pages (
perlfunc,perlre, etc), and one thing I noticed was man perlcheat, which has cheat sheet sections like this:SYNTAX foreach (LIST) { } for (a;b;c) { } while (e) { } until (e) { } if (e) { } elsif (e) { } else { } unless (e) { } elsif (e) { } else { } given (e) { when (e) {} default {} }I think this is so cool and it makes me wonder if there are other ways to write condensed ASCII 80-character-wide cheat sheets for use in man pages.
examples are very popular
A common comment was something to the effect of "I like any man page that has examples". Someone mentioned the OpenBSD man pages, and the openbsd tail man page has examples of the exact 2 ways I use tail at the end.
I think I've most often seen the EXAMPLES section at the end of the man page, but some man pages (like the rsync man page from earlier) start with the examples. When I was working on the git-add and git rebase man pages I put a short example at the beginning.
a table of contents, and links between sections
This isn't a property of the man page itself, but one issue with man pages in the terminal is it's hard to know what sections the man page has.
When working on the Git man pages, one thing Marie and I did was to add a table of contents to the sidebar of the HTML versions of the man pages hosted on the Git site.
I'd also like to add more hyperlinks to the HTML versions of the Git man pages at some point, so that you can click on "INCOMPATIBLE OPTIONS" to get to that section. It's very easy to add links like this in the Git project since Git's man pages are generated with AsciiDoc.
I think adding a table of contents and adding internal hyperlinks is kind of a nice middle ground where we can make some improvements to the man page format (in the HTML version of the man page at least) without maintaining a totally different form of documentation. Though for this to work you do need to set up a toolchain like Git's AsciiDoc system.
It would be amazing if there were some kind of universal system to make it easy to look up a specific option in a man page ("what does -a do?"). The best trick I know is use the man pager to search for something like
^ *-abut I never remember to do it and instead just end up going through every instance of-ain the man page until I find what I'm looking for.examples for every option
The curl man page has examples for every option, and there's also a table of contents on the HTML version so you can more easily jump to the option you're interested in.
For instance the example for
--certmakes it easy to see that you likely also want to pass the--keyoption, like this:curl --cert certfile --key keyfile https://example.comThe way they implement this is that there's one file for each option and there's an "Example" field in that file.
formatting data in a table
Quite a few people said that man ascii was their favourite man page, which looks like this:
Oct Dec Hex Char ─────────────────────────────────────────── 000 0 00 NUL '\0' (null character) 001 1 01 SOH (start of heading) 002 2 02 STX (start of text) 003 3 03 ETX (end of text) 004 4 04 EOT (end of transmission) 005 5 05 ENQ (enquiry) 006 6 06 ACK (acknowledge) 007 7 07 BEL '\a' (bell) 010 8 08 BS '\b' (backspace) 011 9 09 HT '\t' (horizontal tab) 012 10 0A LF '\n' (new line)Obviously
man asciiis an unusual man page but I think what's cool about this man page (other than the fact that it's always useful to have an ASCII reference) is it's very easy to scan to find the information you need because of the table format. It makes me wonder if there are more opportunities to display information in a "table" in a man page to make it easier to scan.the GNU approach
When I talk about man pages it often comes up that the GNU coreutils man pages (for example man tail) don't have examples, unlike the OpenBSD man pages, which do have examples.
I'm not going to get into this too much because it seems like a fairly political topic and I definitely can't do it justice here, but here are some things I believe to be true:
- The GNU project prefers to maintain documentation in "info" manuals instead of man pages. This page says "the man pages are no longer being maintained".
- There are 3 ways to read "info" manuals: their HTML version, in Emacs, or with a standalone
infotool. I've heard from some Emacs users that they like the Emacs info browser. I don't think I've ever talked to anyone who uses the standaloneinfotool. - The info manual entry for tail is linked at the bottom of the man page, and it does have examples
- The FSF used to sell print books of the GNU software manuals (and maybe they still do sometimes?)
After a certain level of complexity a man page gets really hard to navigate: while I've never used the coreutils info manual and probably won't, I would almost certainly prefer to use the GNU Bash reference manual or the The GNU C Library Reference Manual via their HTML documentation rather than through a man page.
a few more man-page-adjacent things
Here are some tools I think are interesting:
- The fish shell comes with a Python script to automatically generate tab completions from man pages
- tldr.sh is a community maintained database of examples, for example you can run it as
tldr grep. Lots of people have told me they find it useful. - the Dash Mac docs browser has a nice man page viewer in it. I still use the terminal man page viewer but I like that it includes a table of contents, it looks like this:

it's interesting to think about a constrained format
Man pages are such a constrained format and it's fun to think about what you can do with such limited formatting options.
Even though I'm very into writing I've always had a bad habit of never reading documentation and so it's a little bit hard for me to think about what I actually find useful in man pages, I'm not sure whether I think most of the things in this post would improve my experience or not. (Except for examples, I LOVE examples)
So I'd be interested to hear about other man pages that you think are well designed and what you like about them, the comments section is here.
-