- ↔
- →
- Jon's Arm Reference
- Optimize for momentum
- Nviso vshell report
- jj auto-track none
- Transparent Leadership Beats Servant Leadership
- December 21, 2025
-
🔗 sacha chua :: living an awesome life La semaine du 7 décembre au 13 décembre rss
Lundi, le huit décembre
Je me suis concentrée sur mon journal en français avant le rendez-vous avec ma tutrice. J'ai écrit suffisamment pour bien utiliser le temps, malgré la semaine dernière chargée. Nous avons aussi fait de la conversation. J'ai utilisé le Live Captions de Google Chrome pour comprendre quand elle parlait trop rapidement.
J'ai emmené ma fille à son cours de gymnastique. C'était apparemment la semaine des parents, donc j'ai pu regarder ma fille dans le gymnase. J'ai pris quelques vidéos pour la montrer.
J'ai fait beaucoup de lessive, parce que je n'ai pas pu en faire pendant la conférence.
Mardi, le neuf décembre
Ce matin, j'ai continué à rattraper mon retard. Pendant un ou deux mois précédant la conférence, je n'ai pas fait beaucoup de travail de conseil, donc j'ai accumulé quelques tâches. Je n'étais pas stressé, j'ai juste eu à gérer mon temps. J'ai pris plaisir à les aider.
L'un de mes amis m'a appelé pour discuter d'une crise personnelle. Je suppose que c'est ça la crise de la quarantaine. C'est très difficile, mais on doit persévérer.
Cet après-midi, j'ai contemplé mes valeurs pour mes devoirs de la session de gestion du stress avec ma thérapeute. Je pense que je peux les simplifier en cette liste : responsabilité, adaptabilité, relations, et curiosité. C'est utile pour faire des choix.
Aujourd'hui, il fait froid et gris avec de la neige et un vent fort. La météo a annoncé plus de neige. J'ai laissé ma fille choisir d'aller au cours d'art ou de rester à la maison. Elle a choisi de rester, donc nous avons passé une soirée tranquille. Nous avons joué aux jeux de cartes. Ma fille aime bien les jeux de stratégie. Moi aussi. Elle commence à apprendre à anticiper les choses quand elle joue à Exploding Kittens et à Tacos versus Burritos. Elle s'amuse beaucoup parce que les cartes sont amusantes.
Nous avons pratiqué un peu le français avec l'IA. Elle apprend le vocabulaire sur la météo à l'école, donc elle a essayé quelques phrases. Ensuite, j'ai écrit mon journal pendant qu'elle regardait KPop Demon Hunters pour l'énième fois.
Demain, je vais enregistrer une vidéo sur la préparation du bulletin d'information pour Bike Brigade pour le transférer à l'autre volontaire. Je vais aussi enregistrer une vidéo de félicitations en français. S'il y a du temps, je veux aussi traiter les vidéos de la conférence.
Mercredi, le dix décembre
Mon mari s'est levé très tôt pour préparer son examen médical. Il a dû jeûner pour son examen, donc il avait très faim et il s'ennuyait, alors il a commencé deux recettes de pain au levain. J'ai aidé ma fille avec sa routine matinale. Pendant que ma fille participait à l'école virtuelle et mon mari était sorti, j'ai dû gérer les deux recettes tout en cuisinant une bouillie de riz au poulet pour le déjeuner de mon mari.
Alors, je me suis sentie un peu perturbée, mais j'étais aussi contente car mon mari comptait sur moi pour faire ces tâches. Il n'a pas souvent demandé de l'aide. C'était un plaisir de l'aider, même si la situation était amusante.
J'ai fini les trois recettes moi-mĂŞme : deux sortes de pain et la bouillie. C'Ă©tait la deuxième fois que nous essayions de faire du pain au levain, et cette fois ça a marchĂ© ! Je pense que j'ai laissĂ© le pain reposer plus longtemps, ce qui a mieux fonctionnĂ©, en effet… Et ma fille aime notre pain au levain ! Enfin, notre première victoire ! Ma fille a jugĂ© que mes essais prĂ©cĂ©dents n'Ă©taient pas aussi bons que le pain qu'elle achète d'habitude au marchĂ© fermier.
J'ai aussi enregistré une courte vidéo pour souhaiter un joyeux anniversaire en français. C'était un bon exercice pour l'expression orale.
Pour l'exercice, j'ai déblayé beaucoup de neige. Il pleuvait aussi, donc la neige était lourde. Je n'ai pas pu me reposer parce que j'avais trop de tâches.
Malgré la neige et la pluie, ma fille a aussi envoyé une lettre au Père Noël. Nous sommes en retard pour le programme Lettres au Père Noël des Postes Canada, mais quand même ça vaut le coup d'essayer. Elle veut un jeu de piste pour elle, et des chaussettes pour moi. Le jeu de piste est une tradition dans ma famille. Je vais écrire quelques indices et les cacher partout dans la maison. Peut-être que cette année, je peux écrire quelques indices en français.
Mon mari réessaye la recette du pain maintenant. Petit à petit, on s'améliore. Les résultats intermédiaires sont délicieux, donc la pratique est agréable.
Jeudi, le onze décembre
J'étais fatiguée. L'œil de ma fille faisait un peu mal même après sa nuit de sommeil, donc je me suis un peu inquiétée. Elle a pu participer à l'école virtuelle, au moins. Je suppose que c'était une journée avec moins d'énergie.
J'ai emmené ma fille aux Stockyards à pied parce qu'elle avait envie d'une longue promenade. Pour une petite friandise, j'ai acheté une boîte de feuilletés chez Marry Me Mochi, et elle les a gardés pour après le souper. Mon mari et ma fille ont cuisiné des sandwiches au fromage grillé à la purée de pomme de terre, une nouvelle idée que mon mari a trouvée en ligne. C'était délicieux.
Après un souper rapide, j'ai eu une séance d'information sur le bulletin d'information de Bike Brigade. J'ai écrit de la documentation. Pendant la séance, j'ai expliqué le processus.
Vendredi, le douze décembre
L'œil de ma fille faisait mal et était enflé pendant deux jours, donc j'ai concentré mes efforts pour obtenir de l'aide. Elle n'a pas voulu participer en classe. Ce matin, j'ai appelé quelques endroits pour essayer de prendre un rendez-vous en alternant les câlins réconfortants. Après une longue attente et quelques messages, j'ai pris un rendez-vous à l'hôpital Sick Kids.
J'étais fatiguée, donc j'ai fait une sieste de trente minutes à midi.
Cet après-midi, j'ai emmené ma fille en métro chez l'ophtalmologue à l'hôpital. Nous avons attendu pendant deux heures, ce qui était très ennuyant pour ma fille mais c'était nécessaire. Je l'ai laissée regarder beaucoup de vidéos et jouer à quelques jeux.
L'ophtalmologue a dit que ma fille a un orgelet, donc elle a conseillé des compresses chaudes et de l'érythromycine. Elle a aussi remarqué qu'elle a des cils qui frottent l'œil, donc elle a recommendé des gouttes pour les yeux. J'ai déposé ma fille à la maison et je suis allée à la pharmacie pour acheter l'érythromycine.
Après tout ça, ce qui a pris toute la journée, j'étais très fatiguée.
Samedi, le treize décembre
Le masque chauffant pour les yeux semble aider ma fille avec son œil. Elle l'a porté hier soir dix minutes et encore ce matin. Son œil est moins enflé maintenant, mais elle a encore un peu mal.
Elle trouve que se concentrer sur ses devoirs est difficile. Les mathématiques sont amusantes, mais les devoirs de langue sont ennuyeux. Elle a reporté ses tâches pendant plusieurs jours, et maintenant elles forment un gros tas. J'ai conseillé de faire petit à petit et de faire les différentes sortes de devoirs pour que son maître puisse évaluer les différentes matières. J'ai travaillé sur mes devoirs de français dans sa chambre pour qu'elle ne se sente pas seule. Parfois elle a besoin d'un câlin avant de recommencer à travailler. Je n'ai pas le droit de lui rappeler ses devoirs, juste de la câliner. Eh, on va voir. D'une part, je souhaite le succès de ma fille. D'autre part, c'est elle qui doit découvrir ce qui fonctionne bien, et le moment présent est idéal pour expérimenter parce que les enjeux sont faibles. Aujourd'hui, elle veut rattraper tout son retard de devoirs de lecture au lieu de faire un peu de tout. C'est à elle de décider.
Après ses devoirs, elle veut aller à KidSpark pour jouer au magasin imaginaire. Je pense que je peux l'emmener à vélo malgré la neige et la glace, probablement. Le métro ne fonctionne pas ce week-end, donc il faudra se contenter. Je n'ai pas de pneus spéciaux pour la glace, donc je devrai faire du vélo attentivement.
—
Nous sommes tous allés à KidSpark malgré la fermeture du métro d'Ossington à Spadina. Je n'ai pas eu d'énergie pour faire du vélo, donc nous avons dû prendre le métro. La navette était lente et bondée, mais nous sommes finalement arrivés.
Nous n'avons joué qu'une heure, mais notre fille a eu beaucoup de plaisir, donc j'étais contente que nous sommes venus. Nous avons joué au magasin imaginaire et nous avons aussi joué avec les nouveaux jouets de construction. Il y avait beaucoup d'enfants, donc c'était bruyant, et notre fille a utilisé le protège-oreilles du sac à dos sensoriel.
Nous avons acheté quelques petits pains et des raviolis aux crevettes en rentrant, avant d'attendre les navettes pendant longtemps. Les navettes étaient très bondées, et notre fille a eu froid en marchant jusqu'à la maison. Mais nous avons persévéré.
Quand nous sommes rentrés, nous avons tous bu du thé. Mon mari et notre fille ont cuisiné deux fournées de petites crêpes épaisses, et j'ai fait la vaisselle.
Dimanche, le quatorze décembre
J'étais fatiguée, donc j'ai fait la grasse matinée. Ma fille s'est levée avant moi. Elle a fait tomber le sac de céréales par accident et elle est devenue un peu grincheuse. Elle est devenue plus grincheuse quand nous avons mentionné ses devoirs. Elle a une présentation la semaine prochaine, donc elle doit se préparer. Alors, je ne peux pas la forcer. Je me le dis : c'est son expérience, ce n'est pas moi.
Du coup, comme elle est grincheuse, peut-être que j'ai le temps pour mes tâches. Je dois produire ma déclaration fiscale de l'entreprise, qui a besoin de concentration. Je peux écrire mon journal avant le rendez-vous avec ma tutrice lundi, et j'ai les devoirs pour la session sur la gestion du stress mardi. Je veux aussi travailler sur le reste du travail de la conférence. Beaucoup de choses à faire.
Mes devoirs sur la gestion du stress comprennent la description de mon sentiment et son évaluation en pourcentage. Cette évaluation est étonnamment difficile. Je suis perdue. Alors, je suppose que c'est ce que je dois apprendre.
—
Ma fille est revenue de sa chambre d'humeur assez raisonnable. Elle a mangĂ© un peu de nourriture et a reçu des câlins. Je pense qu'elle n'a pas travaillĂ© sur ses devoirs. Son Ĺ“il fait mal et maintenant ses deux yeux dĂ©mangent, sa nouvelle molaire fait mal, elle Ă©tait fatiguĂ©e de ses devoirs… Je ne peux pas faire grand-chose, juste des câlins rĂ©confortants et aider avec sa routine du soir.
Reflection
I'm gradually expanding my vocabulary. I can now write enough that reading my vocabulary entries out loud to my tutor (and chatting a little about stuff along the way) takes up the hour. It's still good pronunciation practice while I work on picking up more words and internalizing the pronunciation rules, though, so it's probably a good idea to continue that instead of shifting that to AI.
New root wordsabsence, accumuler, adaptabilité, amélioration, anniversaire, annulation, anticiper, apparemment, appeler, apprécier, attente, attentivement, automatisation, bonder, bouillie, bruyant, cacher, car, certain, chauffer, choix, cil, commencer, comprendre, compresse, concentration, connecter, conseiller, construction, contempler, contenter, contrôler, coulisse, court, crise, crêpe, curiosité, câliner, céréale, description, deuxième, différence, différent, documentation, droit, décider, déclaration, découvrir, délicieux, démanger, dérouler, effet, effort, enfin, enfler, enjeu, ennuyant, ennuyer, entreprise, envie, essai, examen, expliquer, expérience, expérimenter, faible, falloir, façon, fenêtre, fermeture, fermier, feuilleté, fiscal, forcer, former, fournée, frotter, félicitation, glace, goutte, gras, griller, gris, gros, gymnase, général, hôpital, idéal, inattendu, indice, inspirant, intermédiaire, jeûner, jouet, joyeux, juger, lecture, lent, lessive, lettre, longtemps, lors, lourd, mal, masque, mathématique, mois, molaire, montrer, médical, métro, mêler, navette, nourriture, noël, obtenir, oeil, ophtalmologue, organisation, orgelet, outil, partager, partout, perdre, personnel, persévérer, phrase, plan, pneu, porter, poste, pourcentage, processus, produire, précédent, précéder, purée, quarantaine, raisonnable, rapidement, rattraper, recommencer, recommender, reconnecter, relation, remarquer, reposer, responsabilité, retard, réduire, répondre, résultat, réussir, sauter, sauvegarder, scène, sembler, sensoriel, sentiment, serviable, sieste, similaire, situation, soir, soirée, sommeil, sorte, souhaiter, spécial, spécialisé, stratégie, stresser, succès, suffisamment, supplémentaire, supposer, surtout, séance, taille, thé, toutefois, tradition, transcription, transformation, transférer, vaisselle, valoir, victoire, volet, ça, énergie, énième, épais, érythromycine, étonnamment, étude, évaluation, évaluer, œil
You can e-mail me at sacha@sachachua.com.
-
đź”— r/reverseengineering From UART to Root: Breaking Into the Xiaomi C200 via U-Boot rss
submitted by /u/igor_sk
[link] [comments] -
đź”— Register Spill Joy & Curiosity #67 rss
Last issue of the year, let's do this!
This week, Ryan and I got to interview DHH. It's very rare that I get nervous before an online conversation, but this was one of those times. I mean, that's the guy who made Rails, man! I wouldn't be here without Rails. Rails is what I did for the first seven years of my career. Rails is the reason why I have a career. I read every book he and Jason have ever written, of course, and 37signals has had as deep an impression as a company can have on probably anybody who's worked in a startup between 2008 and 2015.
…and then we had a great conversation. It's been a few days, and different parts of it keep popping back into my head. David said quite a few things that I now feel I have to share. Some things about marketing that resonate with what we've been talking about internally; some things I want the world to hear; some things that were funny; other things that were very fascinating (he said he still writes 95% of his code by hand); and the rant on cookie banners that I want politicians to hear.
But here's something that I want to leave you with, in this last edition of the year, this year that brought and announced more change to this profession than any other year I've lived through as a working software developer. Here's something that David said that sums up why I'm excited and so curious about where all of this is going, something that I hope makes you feel something positive too:
"Where does the excitement come from? First and foremost, I love computers and I love to see computers do new things. It's actually remarkable to me how many people who work in tech don't particularly like computers. Yes, even programmers who have to interact with them every day and make these computers dance, not all of them like computers. I love computers. I love computers just for the-- sheer machine of it. I'm not just trying to be instrumental about it. I'm not just trying to use computers to accomplish something. There's a whole class of people who view the computer just as a tool to get somewhere. No, no, no. For me, it's much deeper. I just love the computer itself and I love to see the computer do new things. And this is the most exciting new thing that computers have been doing, probably in my lifetime. Or at least it's on level with the network-connected computer. Yes."
The computer can now do new things.
-
My teammate Tim wrote about how he ported his TUI framework from Zig to TypeScript and how, in the process of porting it, he noticed that he's getting in the way of the agent, slowing it down and costing more tokens. So he took his hands off the wheel and what we ended up with is this: A Codebase by an Agent for an Agent. I've shared this story quite a few times in person. I'm really happy it's out now, so we have proof: this is an world-class terminal expert and programmer, letting an agent write 90% of the code, and ending up with something that is really , really good. (Also, side note: I contributed the images and, man, it's so fun to put stuff like this out into the world.)
-
This was fantastic: Jeff Dean and Sanjay Ghemawat with Performance Hints. When I opened it I thought I'd skim it, but then I read the whole thing, looked at a lot of the examples, asked ChatGPT some questions along with screenshots. The writing is clear and precise and simple, the section with the napkin math is impressive, the emoji map optimization is what made me open ChatGPT, and then at the end there, in the CLs that demonstrate multiple techniques section, there's this header 3.3X performance in index serving speed! and when you click on it you'll read that they "found a number of performance issues when planning a switch from on-disk to in-memory index serving in 2001. This change fixed many of these problems and took us from 150 to over 500 in-memory queries per second (for a 2 GB in-memory index on dual processor Pentium III machine)" and then you realize what an impressive cathedral of software engineering Google's infrastructure is. Click here for a good time, I'm telling you.
-
The TUI renaissance isn't over: Will McGugan just released Toad, a "unified experience for AI in the terminal." Taking inspiration from Jupyter notebooks is very smart and I love those little UI interactions he built. Good stuff.
-
The title is "Prompt caching: 10x cheaper LLM tokens, but how?" so you might think that this is about prompt caching, but, haha, that's silly. Listen, this is about everything. It's one of the best all-in-one explainers of how transformers work that I've come across. It's by Sam Rose, who's very good at visual explanations, and here he does a full explanation of how text goes into an LLM and text comes out the other end, including visuals, pseudo-code, in-depth explanations. It's very, very good. If you don't know how a transformer works, do yourself a favor and read this. If you do know how it works, look at this and smile at the visualizations.
-
Imagine you're holding two rocks. One has written on it: "terminals can display images now, thanks to the kitty's terminal graphics protocol". The other: "when you think about it, a GUI framework does nothing but create images and display them, right?" Now the question is: what happens if you smash those two rocks together? This: "DVTUI" (note the quotes!), which takes a GUI framework (DVUI), gets it to save PNGs instead of rendering them to the screen, and then uses a TUI framework (libvaxis) to render those images in the terminal. To quote: "All that happens every single frame. And yet it works."
-
As you know, I'm a sucker for lists like this one: Tom Whitwell's 52 things I learned in 2025. Wonderful.
-
… and it brought me to this: write to escape your default setting. "Writing forces you to tidy that mental clutter. To articulate things with a level of context and coherence the mind alone can't achieve." Yes. Now, in times of LLMs, it's probably more apparent than ever before that writing (real writing; writing you do) is thinking.
-
How I wrote JustHTML using coding agents: "After writing the parser, I still don't know HTML5 properly. The agent wrote it for me. I guided it when it came to API design and corrected bad decisions at the high level, but it did ALL of the gruntwork and wrote all of the code." I bet there's a lot of people who read this and think "ha! so he doesn 't know HTML5 still!" And yet I wonder: was that the goal? It's a very good post. A very calm, practical post, but that raises a fundamental question: JustHTML is now "3,000 lines of Python with 8,500+ tests passing" and "passes 100% of the html5lib test suite, has zero dependencies, and includes a CSS selector query API" -- how many more dependencies could we turn into that now?
-
Martin Kleppmann: "I find it exciting to think that we could just specify in a high-level, declarative way the properties that we want some piece of code to have, and then to vibe code the implementation along with a proof that it satisfies the specification. That would totally change the nature of software development: we wouldn't even need to bother looking at the AI-generated code any more, just like we don't bother looking at the machine code generated by a compiler."
-
"The perfection of snow in the paintings of Danish artist Peder Mørk Mønsted."
-
Stripe Press: Tacit. "The mechanism for developing tacit knowledge is straightforward but slow: repeated practice that gradually moves skills from conscious effort to automatic execution. The mechanism for transmitting it is even slower: apprenticeship, where a learner works alongside someone experienced, observing and imitating until their own judgment develops. This is why tacit knowledge often concentrates in lineages, unbroken chains of practitioners passing expertise to the next generation. […] AI has elevated the distinction between what is tacit and what is not. Language models can summarize and automate, but when they attempt to create something that carries the signature of human craft, the result is often flat." In the words of Tamara Winter: Tacit is a series of mini-documentaries that are " vignettes of craftspeople who provide a pretty compelling answer to the question, 'after AI, does mastery still matter?'"
-
I need to try this: Geoffrey Litt's JIT Guide Workflow.
-
This fantastic post by Jakob Schwichtenberg shifted something in my head: "Our very definition of intelligence encodes the bias toward speed. The modern definition of intelligence is extremely narrow. It simply describes the speed at which you can solve well-defined problems. Consider this: if you get access to an IQ test weeks in advance, you could slowly work through all the problems and memorize the solutions. The test would then score you as a genius. This reveals what IQ tests actually measure. It's not whether you can solve problems, but how fast you solve them." And then: "In fact, it's not hard to imagine how raw processing speed can be counterproductive. People who excel at quickly solving well-defined problems tend to gravitate toward... well-defined problems. They choose what to work on based on what they're good at, not necessarily what's worth doing."
-
… but then there's James Somers saying "Speed matters: Why working quickly is more important than it seems." And Nat Friedman is saying: "It's important to do things fast. You learn more per unit time because you make contact with reality more frequently. Going fast makes you focus on what's important; there's no time for bullshit." And Patrick Collison is collecting fast projects. Then here I am, wondering, and possibly assuring myself: yeah, we're not all doing the same things, are we?
-
antirez' Reflections on AI at the end of 2025. "The fundamental challenge in AI for the next 20 years is avoiding extinction."
-
Yes, this is in The New Yorker: "I trust in TextEdit. It doesn't redesign its interface without warning, the way Spotify does; it doesn't hawk new features, and it doesn't demand I update the app every other week, as Google Chrome does. I've tried out other software for keeping track of my random thoughts and ideas in progress--the personal note-storage app Evernote; the task-management board Trello; the collaborative digital workspace Notion, which can store and share company information. Each encourages you to adapt to a certain philosophy of organization, with its own formats and filing systems. But nothing has served me better than the brute simplicity of TextEdit, which doesn't try to help you at all with the process of thinking." Great title too: TextEdit and the Relief of Simple Software.
-
Also The New Yorker, on performative reading, and reading, and books, and social media: "Reading a book is antithetical to scrolling; online platforms cannot replicate the slow, patient, and complex experience of reading a weighty novel. [...] The only way that an internet mind can understand a person reading a certain kind of book in public is through the prism of how it would appear on a feed: as a grotesquely performative posture, a false and self-flattering manipulation, or a desperate attempt to attract a romantic partner."
-
LLMs and physical laws? Maybe: "The dynamics of LLM generation are quite unique. Compared to traditional rule-based programs, LLM-based generation exhibits diverse and adaptive outputs. […] To model the dynamic behavior of LLMs, we embed the generative process of LLM within a given agent framework, viewing it as a Markov transition process in its state space. […] Based on this model, we propose a method to measure this underlying potential function based on a least action principle. By experimentally measuring the transition probabilities between states, we statistically discover […] To our knowledge, this is the first discovery of a macroscopic physical law in LLM generative dynamics that does not depend on specific model details."
-
"'Climbing Everest solo without bottled oxygen in 1980 was the hardest thing I've done. I was alone up there, completely alone. I fell down a crevasse at night and almost gave up. Only because I had this fantasy - because for two years I had been pregnant with this fantasy of soloing Everest - was I able to continue.' This is how Messner talks about how his will was governed."
-
I regularly remind myself and sometimes even others of Jason Fried's Give it five minutes. It's one of the most influential things I've read in the past ten years. I constantly think of it and I'm convinced it's improved my mental well-being and my connections to other people like few others things. Yes, I know how this sounds, but, I guess, an idea and a specific phrase that sticks with you can go a long way as far as life-changing is concerned. Now, all of that is just context, because what I want to actually share is this Jason Fried piece here: Idea protectionism. I re-found and re-read it after sharing the other Jason Fried piece and wanting to share the Jony Ive quote in this one and, yup, stumbled across it by chance. Lucky.
-
Reuters reports on China's Manhattan Project. This is it, baby! This has it all: corporate espionage, ASML, lithography, "one veteran Chinese engineer from ASML recruited to the project was surprised to find that his generous signing bonus came with an identification card issued under a false name", EUV systems that "are roughly the size of a school bus, and weigh 180 tons", Germany's Carl Zeiss AG, "networks of intermediary companies are sometimes used to mask the ultimate buyer", "employees assigned to semiconductor teams often sleep on-site and are barred from returning home during the work week, with phone access restricted for teams handling more sensitive tasks", and, of course, the tension at the heart of it all: "Starting in 2018, the United States began pressuring the Netherlands to block ASML from selling EUV systems to China. The restrictions expanded in 2022, when the Biden administration imposed sweeping export controls designed to cut off China's access to advanced semiconductor technology. No EUV system has ever been sold to a customer in China, ASML told Reuters."
-
I didn't know this is a thing, this was funny: the Beckham rumour that refuses to die.
-
At work, we ended up talking about Christmas traditions and while I was explaining that where I live the magical entity that makes presents appear is called "christkind" (christ child), I was also trying to find proof on Wikipedia so I'd seem less weird and found this map. Note the filename: Christmas-gift-bringers-Europe.jpg. Great name. But now see where the green and the brown mix, in the middle of Germany? That's where I live. So not only does one legend say it's Baby Jesus bringing presents, it's also that in the next town over it's the Christmas Man. And that dude looks an awful lot like its American cousin Santa Claus, who has a lot more media appearances and higher popularity in the younger-than-10 demographic. Try to keep your story straight when you talk to a 4-year-old who keeps asking you whether she'll get a computer for Christmas. How grand it must be to live in Iceland, where, according to that map, the Christmas Lads live.
If you also feel a bit, let's say, joy & curiosity about computers doing new things, you should subscribe:
-
-
đź”— Andrew Healey's Blog A Fair, Cancelable Semaphore in Go rss
Building a fair, cancelable semaphore in Go and the subtle concurrency issues involved.
-
- December 20, 2025
-
đź”— IDA Plugin Updates IDA Plugin Updates on 2025-12-20 rss
IDA Plugin Updates on 2025-12-20
New Releases:
Activity:
- AiDA
- 7d7c9556: Merge pull request #12 from CheckForUpdates/main
- augur
- a1320f1d: chore: update dependencies
- haruspex
- 59546b3c: chore: update dependencies
- IDAPluginList
- 7a4bb0c8: Update
- rhabdomancer
- fd74d128: chore: update dependencies
- AiDA
-
đź”— Jeremy Fielding (YouTube) Machining Parts for Wall-E. Episode 03 rss
Order custom parts or PCB's from PCBWay👉 https://pcbway.com/g/4fU4Ha If you want to join my community of makers and Tinkers consider getting a YouTube membership 👉 https://www.youtube.com/@JeremyFieldingSr/join
If you want to chip in a few bucks to support these projects and teaching videos, please visit my Patreon page or Buy Me a Coffee. 👉 https://www.patreon.com/jeremyfieldingsr 👉 https://www.buymeacoffee.com/jeremyfielding
Social media, websites, and other channel
Instagram https://www.instagram.com/jeremy_fielding/?hl=en Twitter 👉https://twitter.com/jeremy_fielding TikTok 👉https://www.tiktok.com/@jeremy_fielding0 LinkedIn 👉https://www.linkedin.com/in/jeremy-fielding-749b55250/ My websites 👉 https://www.jeremyfielding.com 👉https://www.fatherhoodengineered.com My other channel Fatherhood engineered channel 👉 https://www.youtube.com/channel/UC_jX1r7deAcCJ_fTtM9x8ZA
Notes: Check out the Formlabs 4L Printer 👉https://bit.ly/4590tau
WALL-E Playlist here 👉 https://www.youtube.com/playlist?list=PL4njCTv7IRbwHiU2GX5WXI8d0NzBzbMsV
Technical corrections
Nothing yet
-
đź”— jj-vcs/jj v0.35.0 release
About
jj is a Git-compatible version control system that is both simple and powerful. See
the installation instructions to get started.Release highlights
-
Workspaces can now have their own separate configuration. For instance, you
can usejj config set --workspaceto update a configuration option only in
the current workspace. -
After creating a local bookmark, it is now possible to use
jj bookmark track
to associate the bookmark with a specific remote before pushing it. When
pushing a tracked bookmark, it is not necessary to use--allow-new. -
The new
jj git colocation enableandjj git colocation disablecommands
allow converting between colocated and non-colocated workspaces.
Breaking changes
-
The
remote_bookmarks(remote=pattern)revset now includes Git-tracking
bookmarks if the specifiedpatternmatchesgit. The default is
remote=~exact:"git"as before. -
The deprecated flag
--summaryofjj abandonhas been removed. -
The deprecated command
jj backouthas been removed, usejj revertinstead. -
The following deprecated config options have been removed:
signing.sign-allcore.watchman.register_snapshot_triggerdiff.format
Deprecations
-
jj bisect run --command <cmd>is deprecated in favor of
jj bisect run -- <cmd>. -
jj metaedit --update-committer-timestampwas renamed to
jj metaedit --force-rewritesince the old name (and help text)
incorrectly suggested that the committer name and email would not
be updated.
New features
-
Workspaces may have an additional layered configuration, located at
.jj/workspace-config.toml.jj configsubcommands which took layer options
like--reponow also support--workspace. -
jj bookmark trackcan now associate new local bookmarks with remote.
Tracked bookmarks can be pushed without--allow-new.
#7072 -
The new
jj git colocationcommand provides sub-commands to show the
colocation state (status), to convert a non-colocated workspace into
a colocated workspace (enable), and vice-versa (disable). -
New
jj tag set/deletecommands to create/update/delete tags locally.
Created/updated tags are currently always exported to Git as lightweight
tags. If you would prefer them to be exported as annotated tags, please give
us feedback on #7908. -
Templates now support a
.split(separator, [limit])method on strings to
split a string into a list of substrings. -
-Gis now available as a short form of--no-graphinjj log,jj evolog,
jj op log,jj op showandjj op diff. -
jj metaeditnow accepts-m/--messageoption to non-interactively update
the change description. -
The
CryptographicSignature.key()template method now also works for SSH
signatures and returns the corresponding public key fingerprint. -
Added
template-aliases.empty_commit_marker. Users can override this value in
their config to change the "(empty)" label on empty commits. -
Add support for
--when.workspacesconfig scopes. -
Add support for
--when.hostnamesconfig scopes. This allows configuration to
be conditionally applied based on the hostname set inoperation.hostname. -
jj bisect runaccepts the command and arguments to pass to the command
directly as positional arguments, such as
jj bisect run --range=..main -- cargo check --all-targets. -
Divergent changes are no longer marked red in immutable revisions. Since the
revision is immutable, the user shouldn't take any action, so the red color
was unnecessarily alarming. -
New commit template keywords
local/remote_tagsto show only local/remote
tags. These keywords may be useful in non-colocated Git repositories where
local and exported@gittags can point to different revisions. -
jj git clonenow supports the--branchoption to specify the branch(es)
to fetch during clone. If present, the first matching branch is used as the
working-copy parent. -
Revsets now support logical operators in string patterns.
Fixed bugs
-
jj metaedit --author-timestamptwice with the same value no longer
edits the change twice in some cases. -
jj squash: fixed improper revision rebase when both--insert-afterand
--insert-beforewere used. -
jj undocan now revert "fetch"/"import" operation that involves tag updates.
#6325 -
Fixed parsing of
files(expr)revset expression including parentheses.
#7747 -
Fixed
jj describe --stdinto append a final newline character.
Contributors
Thanks to the people who made this release happen!
- Alpha Chen (@kejadlen)
- Angel Ezquerra (@AngelEzquerra)
- ase (@adamse)
- Austin Seipp (@thoughtpolice)
- Benjamin Brittain (@benbrittain)
- bipul (@bipulmgr)
- Brian Schroeder (@bts)
- Bryce Berger (@bryceberger)
- Cole Helbling (@cole-h)
- Daniel Luz (@mernen)
- David Higgs (@higgsd)
- Defelo (@Defelo)
- Fedor (@sheremetyev)
- Gabriel Goller (@kaffarell)
- Gaëtan Lehmann (@glehmann)
- George Christou (@gechr)
- Ilya Grigoriev (@ilyagr)
- Isaac Corbrey (@icorbrey)
- James Coman (@jamescoman)
- Joseph Lou (@josephlou5)
- Lander Brandt (@landaire)
- Martin von Zweigbergk (@martinvonz)
- Michael Chirico (@MichaelChirico)
- Owen Brooks (@owenbrooks)
- Peter Schilling (@schpet)
- Philip Metzger (@PhilipMetzger)
- Remo Senekowitsch (@senekor)
- Ross Smyth (@RossSmyth)
- Scott Taylor (@scott2000)
- Steve Fink (@hotsphink)
- Steve Klabnik (@steveklabnik)
- Theo Buehler (@botovq)
- Theodore Dubois (@tbodt)
- Theodore Keloglou (@sirodoht)
- Yuya Nishihara (@yuja)
-
-
đź”— jj-vcs/jj v0.36.0 release
About
jj is a Git-compatible version control system that is both simple and powerful. See
the installation instructions to get started.Release highlights
- The documentation has moved from https://jj-vcs.github.io/jj/ to
https://docs.jj-vcs.dev/.
301 redirects are being issued towards the new domain, so any existing links
should not be broken.-
Fixed race condition that could cause divergent operations when running
concurrentjjcommands in colocated repositories. It is now safe to
continuously run e.g.jj logwithout--ignore-working-copyin one
terminal while you're running other commands in another terminal.
#6830 -
jjnow ignores$PAGERset in the environment and usesless -FRXon most
platforms (:builtinon Windows). See the docs for
more information, and #3502 for
motivation.
Breaking changes
-
In filesets or path patterns, glob matching
is enabled by default. You can usecwd:"path"to match literal paths. -
In the following commands, string pattern
arguments are now parsed the same way they
are in revsets and can be combined with logical operators:jj bookmark delete/forget/list/move,jj tag delete/list,jj git clone/fetch/push -
In the following commands, unmatched bookmark/tag names is no longer an
error. A warning will be printed instead:jj bookmark delete/forget/move/track/untrack,jj tag delete,jj git clone/push -
The default string pattern syntax in revsets will be changed to
glob:in a
future release. You can opt in to the new default by setting
ui.revsets-use-glob-by-default=true. -
Upgraded
scm-recordfrom v0.8.0 to v0.9.0. See release notes at
https://github.com/arxanas/scm-record/releases/tag/v0.9.0. -
The minimum supported Rust version (MSRV) is now 1.89.
-
On macOS, the deprecated config directory
~/Library/Application Support/jj
is not read anymore. Use$XDG_CONFIG_HOME/jjinstead (defaults to
~/.config/jj). -
Sub-repos are no longer tracked. Any directory containing
.jjor.git
is ignored. Note that Git submodules are unaffected by this.
Deprecations
-
The
--destination/-darguments forjj rebase,jj split,jj revert,
etc. were renamed to--onto/-o. The reasoning is that--onto,
--insert-before, and--insert-afterare all destination arguments, so
calling one of them--destinationwas confusing and unclear. The old names
will be removed at some point in the future, but we realize that they are
deep in muscle memory, so you can expect an unusually long deprecation period. -
jj describe --editis deprecated in favor of--editor. -
The config options
git.auto-local-bookmarkandgit.push-new-bookmarksare
deprecated in favor ofremotes.<name>.auto-track-bookmarks. For example:[remotes.origin]auto-track-bookmarks = "glob:*"
For more details, refer to
the docs.- The flag
--allow-newonjj git pushis deprecated. In order to push new
bookmarks, please track them withjj bookmark track. Alternatively, consider
setting up an auto-tracking configuration to avoid the chore of tracking
bookmarks manually. For example:[remotes.origin]auto-track-bookmarks = "glob:*"
For more details, refer to
the docs.New features
-
jj commit,jj describe,jj squash, andjj splitnow accept
--editor, which ensures an editor will be opened with the commit
description even if one was provided via--message/-m. -
All
jjcommands show a warning when the providedfilesetexpression
doesn't match any files. -
Added
files()template function toDiffStats. This supports per-file stats
likelines_added()andlines_removed() -
Added
join()template function. This is different fromseparate()in that
it adds a separator between all arguments, even if empty. -
RepoPathtemplate type now has aabsolute() -> Stringmethod that returns
the absolute path as a string. -
Added
format_path(path)template alias that controls how file paths are printed
withjj file list. -
New built-in revset aliases
visible()andhidden(). -
Unquoted
*is now allowed in revsets.bookmarks(glob:foo*)no longer
needs quoting. -
jj prev/next --no-editnow generates an error if the working-copy has some
children. -
A new config option
remotes.<name>.auto-track-bookmarkscan be set to a
string pattern. New bookmarks matching it will be automatically tracked for
the specified remote. See
the docs. -
jj lognow supports a--countflag to print the number of commits instead
of displaying them.
Fixed bugs
-
jj fixnow prints a warning if a tool failed to run on a file.
#7971 -
Shell completion now works with non‑normalized paths, fixing the previous
panic and allowing prefixes containing.or..to be completed correctly.
#6861 -
Shell completion now always uses forward slashes to complete paths, even on
Windows. This renders completion results viable when using jj in Git Bash.
#7024 -
Unexpected keyword arguments now return a parse failure for the
coalesce()
andconcat()templating functions. -
Nushell completion script documentation add
-foption, to keep it up to
date.
#8007 -
Ensured that with Git submodules, remnants of your submodules do not show up
in the working copy after runningjj new.
#4349
Contributors
Thanks to the people who made this release happen!
- abgox (@abgox)
- ase (@adamse)
- Björn Kautler (@Vampire)
- Bryce Berger (@bryceberger)
- Chase Naples (@cnaples79)
- David Higgs (@higgsd)
- edef (@edef1c)
- Evan Mesterhazy (@emesterhazy)
- Fedor (@sheremetyev)
- Gaëtan Lehmann (@glehmann)
- George Christou (@gechr)
- Hubert Lefevre (@Paluche)
- Ilya Grigoriev (@ilyagr)
- Jonas Greitemann (@jgreitemann)
- Joseph Lou (@josephlou5)
- Julia DeMille (@judemille)
- Kaiyi Li (@06393993)
- Kyle Lippincott (@spectral54)
- Lander Brandt (@landaire)
- Lucio Franco (@LucioFranco)
- Luke Randall (@lukerandall)
- Martin von Zweigbergk (@martinvonz)
- Matt Stark (@matts1)
- Mitchell Skaggs (@magneticflux-)
- Peter Schilling (@schpet)
- Philip Metzger (@PhilipMetzger)
- QingyaoLin (@QingyaoLin)
- Remo Senekowitsch (@senekor)
- Scott Taylor (@scott2000)
- Stephen Jennings (@jennings)
- Steve Klabnik (@steveklabnik)
- Tejas Sanap (@whereistejas)
- Tommi Virtanen (@tv42)
- Velociraptor115 (@Velociraptor115)
- Vincent Ging Ho Yim (@cenviity)
- Yuya Nishihara (@yuja)
- The documentation has moved from https://jj-vcs.github.io/jj/ to
-
đź”— r/wiesbaden Spa Companion rss
Guten Tag - I am a middle age man looking for someone to go with to the Friedrich Therma Spa on a bi-weekly basis. I’m willing to pay. DM if interested.
submitted by /u/Sea-Oil2724
[link] [comments] -
🔗 r/wiesbaden Wo arbeiten von Bar / Café nach 19 Uhr? rss
Hi zusammen,
ich arbeite am Laptop und setze mich dazu gerne in Cafés. Oft bin ich bis 21 Uhr aber noch nicht wirklich fertig. Die meisten Cafés haben spätestens dann geschlossen.
Kennt ihr Cafés oder Bars die geeignet wären? Musik ist für mich kein Problem, solange man dort auch am Laptop sitzen darf.
submitted by /u/CalmSorry
[link] [comments] -
🔗 r/LocalLLaMA Xiaomi’s MiMo-V2-Flash (309B model) jumping straight to the big leagues rss
| submitted by /u/98Saman
[link] [comments]
---|--- -
đź”— Anton Zhiyanov Go feature: Modernized go fix rss
Part of theAccepted! series: Go proposals and features explained in simple terms.
The modernized
go fixcommand uses a fresh set of analyzers and the same infrastructure asgo vet.Ver. 1.26 • Tools • Medium impact
Summary The go fix is re-implemented using the Go analysis framework — the same one go vet uses. While go fix and go vet now use the same infrastructure, they have different purposes and use different sets of analyzers: Vet is for reporting problems. Its analyzers describe actual issues, but they don't always suggest fixes, and the fixes aren't always safe to apply. Fix is (mostly) for modernizing the code to use newer language and library features. Its analyzers produce fixes are always safe to apply, but don't necessarily indicate problems with the code. See the full set of fix's analyzers in the Analyzers section. Motivation The main goal is to bring modernization tools from the Go language server (gopls) to the command line. If go fix includes the modernize suite, developers can easily and safely update their entire codebase after a new Go release with just one command. Re-implementing go fix also makes the Go toolchain simpler. The unified go fix and go vet use the same backend framework and extension mechanism. This makes the tools more consistent, easier to maintain, and more flexible for developers who want to use custom analysis tools. Description Implement the new go fix command: usage: go fix [build flags] [-fixtool prog] [fix flags] [packages] Fix runs the Go fix tool (cmd/fix) on the named packages and applies suggested fixes. It supports these flags: -diff instead of applying each fix, print the patch as a unified diff The -fixtool=prog flag selects a different analysis tool with alternative or additional fixers. By default, go fix runs a full set of analyzers (see the list below). To choose specific analyzers, use the -NAME flag for each one, or use -NAME=false to run all analyzers except the ones you turned off. For example, here we only enable the forvar analyzer: go fix -forvar . And here, we enable all analyzers except omitzero : go fix -omitzero=false . Currently, there's no way to suppress specific analyzers for certain files or sections of code. The -fixtool=prog flag selects a different analysis tool instead of the default one. For example, you can build and run the "stringintconv" analyzer, which fixes string(int) conversions, by using these commands: go install golang.org/x/tools/go/analysis/passes/stringintconv/cmd/stringintconv@latest go fix -fixtool=$(which stringintconv) Alternative fix tools should be built atop unitchecker, which handles the interaction with go fix. Analyzers Here's the list of fixes currently available in go fix, along with examples. any • bloop • fmtappendf • forvar • hostport • inline • mapsloop • minmax • newexpr • omitzero • plusbuild • rangeint • reflecttypefor • slicescontains • slicessort • stditerators • stringsbuilder • stringscut • stringcutprefix • stringsseq • testingcontext • waitgroup any Replace interface{} with any: // before func main() { var val interface{} val = 42 fmt.Println(val) } // after func main() { var val any val = 42 fmt.Println(val) } bloop Replace for-range over b.N with b.Loop and remove unnecessary manual timer control: // before func Benchmark(b *testing.B) { s := make([]int, 1000) for i := range s { s[i] = i } b.ResetTimer() for range b.N { Calc(s) } } // after func Benchmark(b *testing.B) { s := make([]int, 1000) for i := range s { s[i] = i } for b.Loop() { Calc(s) } } fmtappendf Replace []byte(fmt.Sprintf) with fmt.Appendf to avoid intermediate string allocation: // before func format(id int, name string) []byte { return []byte(fmt.Sprintf("ID: %d, Name: %s", id, name)) } // after func format(id int, name string) []byte { return fmt.Appendf(nil, "ID: %d, Name: %s", id, name) } forvar Remove unnecessary shadowing of loop variables: // before func main() { for x := range 4 { x := x go func() { fmt.Println(x) }() } } // after func main() { for x := range 4 { go func() { fmt.Println(x) }() } } hostport Replace network addresses created with fmt.Sprintf by using net.JoinHostPort instead, because host-port pairs made with %s:%d or %s:%s format strings don't work with IPv6: // before func main() { host := "::1" port := 8080 addr := fmt.Sprintf("%s:%d", host, port) net.Dial("tcp", addr) } // after func main() { host := "::1" port := 8080 addr := net.JoinHostPort(host, fmt.Sprintf("%d", port)) net.Dial("tcp", addr) } inline Inline function calls accoring to the go:fix inline comment directives: // before //go:fix inline func Square(x float64) float64 { return math.Pow(float64(x), 2) } func main() { fmt.Println(Square(5)) } // after //go:fix inline func Square(x float64) float64 { return math.Pow(float64(x), 2) } func main() { fmt.Println(math.Pow(float64(5), 2)) } mapsloop Replace explicit loops over maps with calls to maps package (Copy, Insert, Clone, or Collect depending on the context): // before func copyMap(src map[string]int) map[string]int { dest := make(map[string]int, len(src)) for k, v := range src { dest[k] = v } return dest } // after func copyMap(src map[string]int) map[string]int { dest := make(map[string]int, len(src)) maps.Copy(dest, src) return dest } minmax Replace if/else statements with calls to min or max: // before func calc(a, b int) int { var m int if a > b { m = a } else { m = b } return m * (b - a) } // after func calc(a, b int) int { var m int m = max(a, b) return m * (b - a) } newexpr Replace custom "pointer to" functions with new(expr): // before type Pet struct { Name string Happy *bool } func ptrOf *T { return &v } func main() { p := Pet{Name: "Fluffy", Happy: ptrOf(true)} fmt.Println(p) } // after type Pet struct { Name string Happy *bool } //go:fix inline func ptrOf[T any](v T) *T { return new(v) } func main() { p := Pet{Name: "Fluffy", Happy: new(true)} fmt.Println(p) } omitzero
Remove
omitemptyfrom struct-type fields because this tag doesn't have any effect on them:// before type Person struct { Name string `json:"name"` Pet Pet `json:"pet,omitempty"` } type Pet struct { Name string } // after type Person struct { Name string `json:"name"` Pet Pet `json:"pet"` } type Pet struct { Name string }plusbuild Remove obsolete //+build comments: //go:build linux && amd64 // +build linux,amd64 package main func main() { var _ = 42 } //go:build linux && amd64 package main func main() { var _ = 42 } rangeint Replace 3-clause for loops with for-range over integers: // before func main() { for i := 0; i < 5; i++ { fmt.Print(i) } } // after func main() { for i := range 5 { fmt.Print(i) } } reflecttypefor Replace reflect.TypeOf(x) with reflect.TypeFor when the type is known at compile time: // before func main() { n := uint64(0) typ := reflect.TypeOf(n) fmt.Println("size =", typ.Bits()) } // after func main() { typ := reflect.TypeFor[uint64]() fmt.Println("size =", typ.Bits()) } slicescontains
Replace loops with
slices.Containsorslices.ContainsFunc:// before func find(s []int, x int) bool { for _, v := range s { if x == v { return true } } return false } // after func find(s []int, x int) bool { return slices.Contains(s, x) }slicessort Replace sort.Slice with slices.Sort for basic types: // before func main() { s := []int{22, 11, 33, 55, 44} sort.Slice(s, func(i, j int) bool { return s[i] < s[j] }) fmt.Println(s) } // after func main() { s := []int{22, 11, 33, 55, 44} slices.Sort(s) fmt.Println(s) } stditerators Use iterators instead of Len/At-style APIs for certain types in the standard library: // before func main() { typ := reflect.TypeFor for i := range typ.NumField() { field := typ.Field(i) fmt.Println(field.Name, field.Type.String()) } } // after func main() { typ := reflect.TypeFor[Person]() for field := range typ.Fields() { fmt.Println(field.Name, field.Type.String()) } } stringsbuilder
Replace repeated
+=withstrings.Builder:// before func abbr(s []string) string { res := "" for _, str := range s { if len(str) > 0 { res += string(str[0]) } } return res } // after func abbr(s []string) string { var res strings.Builder for _, str := range s { if len(str) > 0 { res.WriteString(string(str[0])) } } return res.String() }stringscut
Replace some uses of
strings.Indexand string slicing withstrings.Cutorstrings.Contains:// before func nospace(s string) string { idx := strings.Index(s, " ") if idx == -1 { return s } return strings.ReplaceAll(s, " ", "") } // after func nospace(s string) string { found := strings.Contains(s, " ") if !found { return s } return strings.ReplaceAll(s, " ", "") }stringscutprefix
Replace
strings.HasPrefix/TrimPrefixwithstrings.CutPrefixandstrings.HasSuffix/TrimSuffixwithstring.CutSuffix:// before func unindent(s string) string { if strings.HasPrefix(s, "> ") { return strings.TrimPrefix(s, "> ") } return s } // after func unindent(s string) string { if after, ok := strings.CutPrefix(s, "> "); ok { return after } return s }stringsseq
Replace ranging over
strings.Split/Fieldswithstrings.SplitSeq/FieldsSeq:// before func main() { s := "go is awesome" for _, word := range strings.Fields(s) { fmt.Println(len(word)) } } // after func main() { s := "go is awesome" for word := range strings.FieldsSeq(s) { fmt.Println(len(word)) } }testingcontext
Replace
context.WithCancelwitht.Contextin tests:// before func Test(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() if ctx.Err() != nil { t.Fatal("context should be active") } } // after func Test(t *testing.T) { ctx := t.Context() if ctx.Err() != nil { t.Fatal("context should be active") } }waitgroup
Replace
wg.Add+wg.Donewithwg.Go:// before func main() { var wg sync.WaitGroup wg.Add(1) go func() { defer wg.Done() fmt.Println("go!") }() wg.Wait() } // after func main() { var wg sync.WaitGroup wg.Go(func() { fmt.Println("go!") }) wg.Wait() }Links & Credits
𝗣 71859 👥 Alan Donovan, Jonathan Amsterdam
*[Medium impact]: Likely impact for an average Go developer
-
đź”— r/wiesbaden kĂĽnstler*innenviertel? rss
finde online nichts dazu, aber wird die haltestelle kĂĽnstlerviertel bei der buslinie 18 seit neuestem als kĂĽnstlerinnenviertel angesagt? oder spinn ich und das war schon immer so
submitted by /u/imdrixn
[link] [comments] -
đź”— r/LocalLLaMA Open source LLM tooling is getting eaten by big tech rss
I was using TGI for inference six months ago. Migrated to vLLM last month. Thought it was just me chasing better performance, then I read the LLM Landscape 2.0 report. Turns out 35% of projects from just three months ago already got replaced. This isn't just my stack. The whole ecosystem is churning.
The deeper I read, the crazier it gets. Manus blew up in March, OpenManus and OWL launched within weeks as open source alternatives, both are basically dead now. TensorFlow has been declining since 2019 and still hasn't hit bottom. The median project age in this space is 30 months.
Then I looked at what's gaining momentum. NVIDIA drops Dynamo, optimized for NVIDIA hardware. Google releases Gemini CLI with Google Cloud baked in. OpenAI ships Codex CLI that funnels you into their API. That's when it clicked.
Two years ago this space was chaotic but independent. Now the open source layer is becoming the customer acquisition layer. We're not choosing tools anymore. We're being sorted into ecosystems.
submitted by /u/Inevitable_Wear_9107
[link] [comments] -
🔗 r/LocalLLaMA Key Highlights of NVIDIA’s New Open-Source Vision-to-Action Model: NitroGen rss
- NitroGen is a unified vision-to-action model designed to play video games directly from raw frames. It takes video game footage as input and outputs gamepad actions.
- NitroGen is trained purely through large-scale imitation learning on videos of human gameplay.
- NitroGen works best on games designed for gamepad controls (e.g., action, platformer, and racing games) and is less effective on games that rely heavily on mouse and keyboard (e.g., RTS, MOBA).
How this model works?
- RGB frames are processed through a pre-trained vision transformer (SigLip2).
- A diffusion matching transformer (DiT) then generates actions, conditioned on SigLip output.
Model - https://huggingface.co/nvidia/NitroGen submitted by /u/Dear- Success-1441
[link] [comments]
---|--- -
đź”— r/LocalLLaMA Japan's Rakuten is going to release a 700B open weight model in Spring 2026 rss
https://news.yahoo.co.jp/articles/0fc312ec3386f87d65e797ab073db56c230757e1
Hope it works well in real life. Then it can not only be an alternative to the Chinese models. but also prompt the US companies to release big models.
submitted by /u/Ok_Warning2146
[link] [comments] -
đź”— Filip Filmar note to self: do not remove `.bazelversion` rss
note to self: do not remove .bazelversion from projects The other day, I was pondering whether to keep setting particular bazel version in projects. I even removed some, to see what would become of it. Since I use the bazelisk installation method, I get automatic bazel updates when a new version is released. It turns out that this remains a bad idea. An auto-update to bazel 8.5.0 caused some of my CI workflows to fail, likely because bazel 8.
-
- December 19, 2025
-
đź”— IDA Plugin Updates IDA Plugin Updates on 2025-12-19 rss
IDA Plugin Updates on 2025-12-19
New Releases:
Activity:
- AiDA
- 7dbc5e59: updated
- augur
- bee9d32d: chore: update dependencies
- capa
- DriverBuddy-7.4-plus
- ghidra
- dc583611: Merge remote-tracking branch 'origin/patch'
- a163b023: Merge remote-tracking branch 'origin/GP-6253_Dan_fixPcodeStepper' int…
- c1d61b00: GP-6253: Emu: Fix crash reading uniques before space is written.
- 40e0af6e: Merge remote-tracking branch 'origin/patch'
- 289e55c4: Merge remote-tracking branch
- 2df41bc0: Merge branch 'GP-6252_ryanmkurtz_pyghidra-launcher-fixes' (Closes #8801,
- cbe7d474: GP-6236: Emulate from nearest snapshot. Avoid UI hang in Registers Pa…
- 56252685: GP-6252: pyghidra_launcher.py fixes
- 8890f90d: Merge remote-tracking branch 'origin/GP-6251_d-millar_bad_arg_revisited'
- haruspex
- 03090c02: chore: update dependencies
- IDA-VTableExplorer
- 00eb520f: feat: Inheritance supports
- idaguides
- 3d2b522a: simplified Liner
- IDAPluginList
- bd07b119: Update
- rhabdomancer
- 43c60880: chore: update dependencies
- AiDA
-
🔗 Locklin on science Don’t go to physics grad school and other cautionary tales rss
Contra Professor Katz, I have known more people ruined by drugs. Mostly because I didn’t spend my life as a physics professor as he did. But I can see why he said it, because you’d see a lot of ruined lives in gradual school. It is an essay that should occur to people in […]
-
đź”— r/wiesbaden MTG Commander Gruppe rss
Servus, suche nach Leuten zum Commander spielen in Wiesbaden.
submitted by /u/WretchedIEgg
[link] [comments] -
đź”— Bits About Money The gift card accountability sink rss

Programming note : Merry Christmas! There will likely be another Bits about Money after the holiday but before New Year.
Bits about Money is supported by our readers . If your education budget or business can underwrite the coming year of public goods in financial-infrastructure education, commentary, and policy analysis, please consider supporting it. I 'm told this is particularly helpful for policymakers and others who cannot easily expense a subscription, and who benefit from all issues remaining publicly available with no paywall.
The American Association of Retired People (AARP, an advocacy non-profit for older adults) has paid for ads on podcasts I listen to. The ad made a claim which felt raspberry-worthy (in service of an important public service announcement), which they repeat in writing: Asking to be paid by gift card is always a scam.
Of course it isn't. Gift cards are a payments rail, and an enormous business independently of being a payments rail. Hundreds of firms will indeed ask you to pay them on gift cards! They also exist, and are marketed, explicitly to do the thing that the AARP implicitly asserts no business or government entity will ever do: provide a method for transacting for people who do not have a banked method of transacting. [0]
Gift card scams are also enormous. The FBI's Internet Crime Complaint Center received $16.6 billion in reports in 2024 across several payment methods; this is just for those consumers who bothered reporting it, in spite of the extremely real received wisdom that reporting is unlikely to improve one's direct situation.
The flavor texts of scams vary wildly, but in substance they'll attempt to convince someone, often someone socially vulnerable, to part with sometimes very large sums of money by buying gift cards and conveying card information (card number and PIN number, both printed on the card) to the scammer. The scammer will then use the fraud supply chain, generally to swap the value on the card to another actor in return for value unconnected to the card. This can be delivered in many ways: cash, crypto, products and services in the scamming economy (such as purloined credit cards or even "lead lists" of vulnerable people to run more scams on), or laundered funds within regulated financial institutions which obscure the link between the crime and the funds (layering, in the parlance of AML professionals). A huge portion of running a gift card marketplace is trying to prevent yourself from being exploited or made into an instrumentality in exploiting others.
It surprises many people to learn that the United States aggressively defends customers from fraud over some payment methods, via a liability transfer to their financial institution, which transfers it to intermediaries, who largely transfer it to payment-accepting businesses. Many people think the U.S. can't make large, effective, pro-consumer regulatory regimes. They are straightforwardly wrong… some of the time.
But the AARP, the FBI, and your friendly local payments nerd will all tell you that if you're abused on your debit card you are quite likely to be made whole, and if you're abused via purchasing gift cards, it is unlikely any deep pockets will cover for you. The difference in treatment is partially regulatory carveouts, partially organized political pressure, and partly a side effect of an accountability sink specific to the industrial organization of gift cards.
Most businesses do not run their own gift card programs
There exists an ecosystem of gift card program managers, who are essentially financial services businesses with a sideline in software. (I should probably mention that I previously worked for and am currently an advisor to Stripe, whose self conception would not be precisely that, but which a) supports many ways for people to pay money for things and b) does not necessarily endorse what I say in my personal spaces.)
Why does the program manager exist? Why not simply have the retailer keep some internal database of who the retailer owes money to, updating this when someone buys or loads a gift card and when they spend the balance at the store? Because this implies many capabilities that retailers do not necessarily have, such as e.g. software development teams.
There is also a large regulatory component to running a gift card program, despite gift cards' relatively lax regulatory drag (we'll return to that in a moment). Card programs are regulated at both the federal and state levels. One frequent requirement in several states is escheatment. (Essentially all states have a requirement for escheatment; many but not all exempt gift cards from it.)
As discussed previously in Bits about Money, a major component of the gift card business model is abandonment ("breakage"). Consumer advocates felt this was unfair to consumers, bordering on fraudulent really. They convinced states to take the money that retailers were keeping for themselves. (Many states didn't take all that much convincing.)
In theory, and sometimes even in practice, a consumer can convince a state treasurer's office of unclaimed property (e.g. Illinois') that the $24.37 that Target remitted as part of its quarterly escheatment payment for an unused gift card 13 years ago was actually theirs. A consumer who succeeds at this, which is neither easy nor particularly inexpensive to do, will receive a $24.37 check in the mail. The state keeps the interest income; call it a fee for service. It also keeps the interest income of the tens of billions of dollars of accumulated unclaimed property, which it generally promises to dutifully custody awaiting a legitimate claim for as long as the United States shall exist.
And so if you are a regional or national retailer who wants to offer gift cards, you have a choice. You can dedicate a team of internal lawyers and operations specialists to understanding both what the laws of the several states require with respect to gift cards, which are a tiny portion of your total operations, not merely today but as a result of the next legislative session in Honolulu, because you absolutely must order the software written to calculate the payment to remit accurately several quarters in advance of the legal requirement becoming effective. Or you can make the much more common choice, and outsource this to a specialist.
That specialist, the gift card program manager, will sell you a Solution™ which integrates across all the surfaces you need: your point-of-sale systems, your website, your accounting software, the 1-800 number and website for customers to check balances, ongoing escheatment calculation and remittance, cash flow management, carefully titrated amounts of attention to other legal obligations like AML compliance, etc. Two representative examples: Blackhawk Network and InComm Payments. You've likely never heard of them, even if you have their product on your person right now. Their real customer has the title Director of Payments at e.g. a Fortune 500 company.
And here begins the accountability sink: by standard practice and contract, when an unsophisticated customer is abused by being asked to buy a BigCo gift card, BigCo will say, truthfully and unhelpfully, that BigCo does not issue BigCo gift cards. It sells them. It accepts them. But it does not issue them. Your princess is in another castle.
BigCo may very well have a large, well-staffed fraud department. But, not due to any sort of malfeasance whatsoever, that fraud department may consider BigCo gift cards entirely out of their own scope. They physically cannot access the database with the cards. Their security teams, sensitive that gift card numbers are dangerous to keep lying around, very likely made it impossible for anyone at BigCo to reconstruct what happened to a particular gift card between checkout and most recent use. "Your privacy is important to us!" they will say, and they are not cynically invoking it in this case.
Gift cards are not regulated like other electronic payments instruments
As mentioned above, Regulation E is the primary driver for the private enforcement edifice that makes scarily smart professionals (and their attached balance sheets) swing into action on behalf of consumers. Reg E has a carveout for certain prepaid payments. Per most recent guidance, that includes prepaid gift cards, gift certificates, and similar.
And so, if you call your bank and say, "I was defrauded! Someone called me and pretended to be the IRS, and I read them my debit card number, and now I've lost money," the state machine obligates the financial institution to have the customer service representative click a very prominent button on their interface. This will restore your funds very quickly and have some side effects you probably care about much less keenly. One of those is an "investigation," which is not really an investigation in the commanding majority of cases.
And if you call the program manager and say, "I was defrauded! Someone called me and pretended to be the IRS, and I read them a gift card number, and now I've lost money," there is… no state machine. There is no legal requirement to respond with alacrity, no statutorily imposed deadline, no button for a CS rep to push, and no investigation to launch. You will likely be told by a low-paid employee that this is unfortunate and that you should file a police report. The dominant reason for this is that suggesting a concrete action to you gets you off the phone faster, and the call center aggressively minimizes time to resolution of calls and recidivism, where you call back because your problem is not solved. Filing a police report will, in most cases, not restore your money--but if it causes you not to call the 1-800 number again, then from the card program manager's perspective this issue has been closed successfully.
Why do we choose this difference in regulation?
The people of the United States, through their elected representatives and the civil servants who labor on their behalf, intentionally exempt gift cards from the Reg E regime in the interest of facilitating commerce.
It is the ordinary and appropriate work of a democracy to include input from citizens in the rulemaking process. The Retail Industry Leaders Association participated, explaining to FinCEN that it would be quite burdensome for retailers to fall into KYC scope, etc etc. Many other lobbyists and industry associations made directionally similar comments.
The Financial Crimes Enforcement Network, for example, has an explicit carveout in its regulations: while FinCEN will aggressively police rogue bodegas, it has no interest in you if you sell closed-loop gift cards of less than $2,000 face value. This is explicitly to balance the state's interest in law enforcement against, quote, preserving innovation and the many legitimate uses and societal benefits offered by prepaid access, endquote.
FinCEN's rules clarify that higher-value activity--such as selling more than $10,000 in gift cards to a single individual in a day--brings sellers back into scope. Given the relatively lax enforcement environment for selling a $500 gift card, you very likely might not build out systems which will successfully track customer identities and determine that the same customer has purchased twenty-one $500 gift cards in three transactions. That likely doesn't rate as a hugely important priority for Q3.
And so the fraud supply chain comes to learn which firms haven't done that investment, and preferentially suggests those gift cards to their launderers, mules, brick movers, and scam victims.
And that's why the AARP tells fibs about gift cards: we have, with largely positive intentions and for good reasons, exposed them to less regulation than most formal payment systems in the United States received. That decision has a cost. Grandma sometimes pays it.
[0] Indeed, there are entire companies which exist to turn gift cards into an alternate financial services platform, explicitly to give unbanked and underbanked customers a payments rail. Paysafe, for example, is a publicly traded company with thousands of employees, the constellation of regulatory supervision you'd expect, and a subsidiary Openbucks which is designed to give businesses the ability to embed Pay Us With A Cash Voucher in their websites/invoices/telephone collection workflows. This is exactly the behavior that "never happens from a legitimate business" except when it does by the tens of billions of dollars.
As Bits about Money has frequently observed, people who write professionally about money--including professional advocates for financially vulnerable populations--often misunderstand alternative financial services, largely because those services are designed to serve a social class that professionals themselves do not belong to, rarely interact with directly, and do not habitually ask how they pay rent, utilities, or phone bills.
-
🔗 r/LocalLLaMA Career Advice in AI — Notes from an Andrew Ng Lecture rss
| [1] A Golden Age for AI Careers- Andrew Ng emphasizes that this is the best time ever to build a career in AI. He notes that the complexity of tasks AI can handle is doubling approximately every seven months, meaning progress is accelerating, not slowing down.
[2] The Power of AI Coding Tools
- Staying on the “frontier” of coding tools (like Cursor, Claude, and Gemini) is crucial. Being even half a generation behind in your tooling makes you significantly less productive in the current market.
[3] The “Product Management Bottleneck”
- Because AI has made writing code so much cheaper and faster, the bottleneck has shifted to deciding what to build. Engineers who can talk to users, develop empathy, and handle product management (PM) tasks are the fastest-moving individuals in Silicon Valley today.
[4] Surround Yourself with the Right People
- Success is highly predicted by the people you surround yourself with. Ng encourages building a “rich connective tissue” of friends and colleagues to share insights that aren’t yet published on the internet.
[5] Team Over Brand
- When job hunting, the specific team and people you work with day-to-day are more important than the company’s “hot brand.” Avoid companies that refuse to tell you which team you will join before you sign.
[6] Go and Build Stuff
- Andrew Ng’s number one piece of advice is to simply go and build stuff. The cost of failure is low (losing a weekend), but the learning and demonstration of skill are invaluable.
[7] The Value of Hard Work Andrew Ng encourages working hard, defining it not just by hours but by output and passion for building. Video - https://www.youtube.com/watch?v=AuZoDsNmG_s submitted by /u/Dear- Success-1441
[link] [comments]
---|--- -
đź”— r/LocalLLaMA Qwen released Qwen-Image-Layered on Hugging face. rss
| Hugging face: https://huggingface.co/Qwen/Qwen-Image-Layered Photoshop-grade layering Physically isolated RGBA layers with true native editability Prompt-controlled structure Explicitly specify 3–10 layers — from coarse layouts to fine-grained details Infinite decomposition Keep drilling down: layers within layers, to any depth of detail submitted by /u/Difficult-Cap-7527
[link] [comments]
---|--- -
đź”— r/wiesbaden Fachanwalt fĂĽr Mietrecht rss
Hallo.
Kennt jemand einen guten (fiesen) Anwalt fĂĽr Mietrecht?
submitted by /u/Best_Ad3170
[link] [comments] -
đź”— @cxiao@infosec.exchange RE: mastodon
RE: https://infosec.exchange/@decoderloop/115746825926307965
I'm happy to announce that I'll be teaching 2 Rust reverse engineering trainings in 2026!
1) Deconstructing Rust Binaries at @ringzer0 COUNTERMEASURE, March 23-26 2026, 16 hours, Remote: https://ringzer0.training/countermeasure- spring-2026-deconstructing-rust- binaries/
2) Deconstructing Rust Binaries at @NorthSec, May 11-13 2026, 24 hours, Onsite in Montréal, Canada and Remote: https://nsec.io/training/2026-deconstructing-rust- binaries/
No previous experience with reversing Rust binaries, or writing Rust code, is required, and we'll be using Binary Ninja in the course! (A Binary Ninja student license is provided!)
-
đź”— r/LocalLLaMA GLM 4.7 is Coming? rss
| https://github.com/vllm-project/vllm/pull/30876 submitted by /u/InternationalAsk1490
[link] [comments]
---|--- -
đź”— r/LocalLLaMA Realist meme of the year! rss
| submitted by /u/Slight_Tone_2188
[link] [comments]
---|--- -
🔗 r/reverseengineering #ScanOfTheYear2025 Week 1 – Reverse Engineering: Submit Your Project for a $300 Gift Card! rss
submitted by /u/CrealityHenry
[link] [comments] -
đź”— @cxiao@infosec.exchange RE: mastodon
RE: https://mastodon.social/@KristopherWells/115743294984047151
really great read on the background of skate canada's decision
-
đź”— Rust Blog What do people love about Rust? rss
Rust has been named Stack Overflow's Most Loved (now called Most Admired) language every year since our 1.0 release in 2015. That means people who use Rust want to keep using Rust1--and not just for performance-heavy stuff or embedded development, but for shell scripts, web apps, and all kinds of things you wouldn't expect. One of our participants captured it well when they said, "At this point, I don't want to write code in any other language but Rust."
When we sat down to crunch the vision doc data, one of the things we really wanted to explain was: What is it that inspires that strong loyalty to Rust?2 Based on the interviews, the answer is at once simple and complicated. The short version is that Rust empowers them to write reliable and efficient software. If that sounds familiar, it should: it's the slogan that we have right there on our web page. The more interesting question is how that empowerment comes about, and what it implies for how we evolve Rust.
What do people appreciate about Rust?
The first thing we noticed is that, throughout every conversation, no matter whether someone is writing their first Rust program or has been using it for years, no matter whether they're building massive data clusters or embedded devices or just messing around, there are a consistent set of things that they say they like about Rust.
The first is reliability. People love that "if it compiles, it works" feeling:
"What I really love about Rust is that if it compiles it usually runs. That is fantastic, and that is something that I'm not used to in Java." -- Senior software engineer working in automotive embedded systems
"Rust is one of those languages that has just got your back. You will have a lot more sleep and you actually have to be less clever." -- Rust consultant and open source framework developer
Another, of course, is efficiency. This comes up in particular at the extremes, both very large scale (data centers) and very small scale (embedded):
"I want to keep the machine resources there for the [main] computation. Not stealing resources for a watchdog." -- Software engineer working on data science platforms
"You also get a speed benefit from using Rust. For example, [..] just the fact that we changed from this Python component to a Rust component gave us a 100fold speed increase." -- Rust developer at a medical device startup
Efficiency comes up particularly often when talking to customers running "at-scale" workloads , where even small performance wins can translate into big cost savings:
"We have a library -- effectively it's like an embedded database -- that we deploy on lots of machines. It was written in Java and we recently rewrote it from Java to Rust and we got close to I think 9x to 10x performance wins." -- Distinguished engineer working on cloud infrastructure services
"I'm seeing 4x efficiency in the same module between Java code that loads a VM and Rust. That's a lot of money you save in data center cost." -- Backend engineering company founder specializing in financial services
At the other end of the spectrum, people doing embedded development or working at low-levels of abstraction highlight Rust's ability to give low-level control and access to system details :
"Rust was that replacement for C I'd been looking for forever." -- Backend engineering company founder specializing in financial services
"If you're going to write something new and you do kind of low-level systemsy stuff, I think Rust is honestly the only real choice." -- Distinguished engineer
Many people cite the importance of Rust's supportive tooling , which helps them get up and going quickly, and in particular the compiler's error messages:
"I think a big part of why I was able to succeed at learning Rust is the tooling. For me, getting started with Rust, the language was challenging, but the tooling was incredibly easy." -- Executive at a developer tools company
"The tooling really works for me and works for us. The number one way that I think I engage with Rust is through its tooling ecosystem. I build my code through Cargo. I test it through Cargo. We rely on Clippy for everything." -- Embedded systems engineer working on safety-critical robotics
"I think the error messages and suggestions from the Rust compiler are super helpful also." -- Professor specializing in formal verification
Finally, one of Rust's most important virtues is its extensibility. Both in the language itself and through the crates.io ecosystem, Rust is designed to let end-users create libraries and abstractions that meet their needs:
"The crate ecosystem combined with the stability guarantees and the semantic versioning mean that it's the best grab and go ecosystem I've ever seen." -- Computer science professor and programming language designer
"I think proc macros are a really big superpower for Rust." -- Creator and maintainer of Rust networking libraries
"Rust is incredibly good at making it very very easy to get started, to reuse things, just to experiment quickly with new tools, new libraries, all the rest of it... so for me, as an experimentation platform, it's great." -- Rust expert and consultant focused on embedded and real-time systems
But what they love is the sense of empowerment and versatility
Reliability, efficiency, tooling, ecosystem—these are all things that people appreciate about Rust. But what they love isn't any one of those things. It's the way the combination makes Rust a trusted, versatile tool that you can bring to virtually any problem :
"When I got to know about it, I was like 'yeah this is the language I've been looking for'. This is the language that will just make me stop thinking about using C and Python. So I just have to use Rust because then I can go as low as possible as high as possible." -- Software engineer and community organizer in Africa
"I wanted a language that works well from top to bottom in a stacking all the way from embedded to very fancy applications" -- Computer science professor and programming language designer
"If [Rust] is going to try and sort of sell itself more in any particular way, I would probably be saying high performance, highly expressive, general purpose language, with the great aspect that you can write everything from the top to the bottom of your stack in it." -- Rust expert and consultant focused on embedded and real-time systems
Each piece is necessary for the whole to work
Take away the reliability, and you don't trust it: you're second-guessing every deployment, afraid to refactor, hesitant to let junior developers touch the critical paths.
"Rust just lowers that bar. It's a lot easier to write correct Rust code. As a leader on the team, I feel a lot safer when we have less experienced engineers contributing to these critical applications." -- Distinguished engineer working on cloud infrastructure services
"My experience with writing Rust software tends to be once you've got it working, it stays working. That's a combination of a lot of care taken in terms of backwards compatibility with the language and a lot of care taken around the general ecosystem." -- Rust expert and consultant focused on embedded and real-time systems
Reliability also provides guardrails that help people enter new domains—whether you're a beginner learning the ropes or an expert venturing into unfamiliar territory:
"Rust introduces you to all these things, like match and all these really nice functional programming methods." -- Software engineer with production Rust experience
"I think Rust ownership discipline is useful both for regular Rust programmers and also for verification. I think it allows you to within the scope of your function to know very clearly what you're modifying, what's not being modified, what's aliased and what's not aliased." -- Professor specializing in formal verification
"I discovered Rust... and was basically using it just to give myself a little bit more confidence being like a solo firmware developer" -- Software engineer working on automotive digital cockpit systems
Take away the efficiency and low-level control, and there are places you can't go: embedded systems, real-time applications, anywhere that cost-per-cycle matters.
"The performance in Rust is nutty. It is so much better and it's safe. When we rewrote C++ and C libraries or C applications into Rust, they would end up being faster because Rust was better at laying out memory." -- Senior Principal Engineer leading consumer shopping experiences
"9 times out of 10, I write microcontroller code and I only test it through unit testing. I put it on real hardware and it just works the first time." -- Embedded systems engineer working on safety-critical robotics
"I can confidently build systems that scale." -- Engineering manager with 20 years experience in media and streaming platforms
Take away the tooling and ecosystem, and you can't get started: or you can, but it's a slog, and you never feel productive.
"For me, getting started with Rust, the language was challenging, but the tooling was incredibly easy... I could just start writing code and it would build and run, and that to me made a huge difference." -- Founder and CEO of company creating developer tools
"Cargo is an amazing package manager. It is probably the best one I've ever worked with. I don't think I ever run into issues with Cargo. It just works." -- Software engineer with production Rust experience
"The Rust compiler is fantastic at kind of the errors it gives you. It's tremendously helpful in the type of errors it produces for it. But not just errors, but the fact it also catches the errors that other languages may not catch." -- Distinguished engineer working on cloud infrastructure services
The result: Rust as a gateway into new domains
When all these pieces come together, something interesting happens: Rust becomes a gateway into domains that would otherwise be inaccessible. We heard story after story of people whose careers changed because Rust gave them confidence to tackle things they couldn't before:
"I was civil engineering and I studied front-end development on my own, self taught. I had no computer background. I got interested in Rust and distributed systems and designs and systems around it. I changed my major, I studied CS and Rust at the same time." -- Software engineer transitioning to cryptography research
"I've been working with arbitrary subsidiaries of [a multinational engineering and technology company] for the last 25 years. Always doing software development mostly in the Java space... two years ago I started peeking into the automotive sector. In that context it was a natural consequence to either start working with C++ (which I did not want to do) or take the opportunity to dive into the newly established Rust ecosystem." -- Senior software engineer working in automotive embedded systems
"I started in blockchain. Currently I'm doing something else at my day job. Rust actually gave me the way to get into that domain." -- Rust developer and aerospace community leader
"Before that, I had 10 years of programming on some dynamic programming languages, especially Ruby, to develop web applications. I wanted to choose some language which focuses on system programming, so I chose Rust as my new choice. It is a change of my career." -- Rust consultant and author working in automotive systems and blockchain infrastructure
But the balance is crucial
Each of Rust's attributes are necessary for versatility across domains. But when taken too far, or when other attributes are missing, they can become an obstacle.
Example: Complex APIs and type complexity
One of the most powerful aspects of Rust is the way that its type system allows modeling aspects of the application domain. This prevents bugs and also makes it easier for noobs to get started3:
"Instead of using just a raw bit field, somebody encoded it into the type system. So when you'd have a function like 'open door', you can't pass an 'open door' if the door's already open. The type system will just kick that out and reject it." -- Software engineer working on automotive digital cockpit systems
"You can create contracts. For example, when you are allowed to use locks in which order." -- Senior embedded systems engineer working on automotive middleware development
The problem though is that sometimes the work to encode those invariants in types can create something that feels more complex than the problem itself:
"When you got Rust that's both async and generic and has lifetimes, then those types become so complicated that you basically have to be some sort of Rust god in order to even understand this code or be able to do it." -- Software engineer with production Rust experience
"Instead of spaghetti code, you have spaghetti typing" -- Platform architect at automotive semiconductor company
"I find it more opaque, harder to get my head around it. The types describe not just the interface of the thing but also the lifetime and how you are accessing it, whether it's on the stack or the heap, there's a lot of stuff packed into them." -- Software engineer working on data science platforms
This leads some to advocate for not using some of Rust's more complex features unless they are truly needed:
"My argument is that the hard parts of Rust -- traits, lifetimes, etc -- are not actually fundamental for being productive. There's a way to set up the learning curve and libraries to onboard people a lot faster." -- Creator and maintainer of Rust networking libraries
Example: Async ecosystem is performant but doesn't meet the bar for
supportiveness
Async Rust has fueled a huge jump in using Rust to build network systems. But many commenters talked about the sense that "async Rust" was something altogether more difficult than sync Rust:
"I feel like there's a ramp in learning and then there's a jump and then there's async over here. And so the goal is to get enough excitement about Rust to where you can jump the chasm of sadness and land on the async Rust side." -- Software engineer working on automotive digital cockpit systems
"My general impression is actually pretty negative. It feels unbaked... there is a lot of arcane knowledge that you need in order to use it effectively, like Pin---like I could not tell you how Pin works, right?" -- Research software engineer with Rust expertise
For Rust to provide that "trusted tool that will help you tackle new domains" experience, people need to be leverage their expectations and knowledge of Rust in that new domain. With async, not only are there missing language features (e.g.,
async fnin traits only became available last year, and still have gaps), but the supportive tooling and ecosystem that users count on to "bridge the gap" elsewhere works less well:"I was in favor of not using async, because the error messages were so hard to deal with." -- Desktop application developer
"The fact that there are still plenty of situations where you go that library looks useful, I want to use that library and then that immediately locks you into one of tokio-rs or one of the other runtimes, and you're like that's a bit disappointing because I was trying to write a library as well and now I'm locked into a runtime." -- Safety systems engineer working on functional safety for Linux
"We generally use Rust for services, and we use async a lot because a lot of libraries to interact with databases and other things are async. The times when we've had problems with this is like, um, unexplained high CPU usage, for example. The only really direct way to try to troubleshoot that or diagnose it is like, OK, I'm going to attach GDB and I'm gonna try to see what all of the threads are doing. GDB is -- I mean, this is not Rust's fault obviously -- but GDB is not a very easy to use tool, especially in a larger application. [..] And with async, it's, more difficult, because you don't see your code running, it's actually just sitting on the heap right now. Early on, I didn't actually realize that that was the case." -- Experienced Rust developer at a company using Rust and Python
Async is important enough that it merits a deep dive. Our research revealed a lot of frustration but we didn't go deep enough to give more specific insights. This would be a good task to be undertaken by the future User Research team (as proposed in our first post).
Example: The wealth of crates on crates.io are a key enabler but can be an
obstacle
We mentioned earlier how Rust's extensibility is part of how it achieves versatility. Mechanisms like overloadable operators, traits, and macros let libraries create rich experiences for developers; a minimal standard library combined with easy package management encourage the creation of a rich ecosystem of crates covering needs both common and niche. However, particularly when people are first getting started, that extensibility can come at the cost of supportiveness , when the "tyranny of choice" becomes overwhelming:
"The crates to use are sort of undiscoverable. There's a layer of tacit knowledge about what crates to use for specific things that you kind of gather through experience and through difficulty. Everyone's doing all of their research." -- Web developer and conference speaker working on developer frameworks
"Crates.io gives you some of the metadata that you need to make those decisions, but it's not like a one stop shop, right? It's not like you go to crates.io and ask 'what I want to accomplish X, what library do I use'---it doesn't just answer that." -- Research software engineer
The Rust org has historically been reluctant to "bless" particular crates in the ecosystem. But the reality is that some crates are omnipresent. This is particular challenging for new users to navigate:
"The tutorial uses
Result<Box<dyn Error>>-- but nobody else does. Everybody uses anyhow-result... I started off using the result thing but all the information I found has example code using anyhow. It was a bit of a mismatch and I didn't know what I should do." -- Software engineer working on data science platforms"There is no clear recorded consensus on which 3P crates to use. [..] Sometimes it's really not clear---which CBOR crate do you use?[..] It's not easy to see which crates are still actively maintained. [..] The fact that there are so many crates on crates.io makes that a little bit of a risk." -- Rust team from a large technology company
Recommendations
Enumerate Rust's design goals and integrating them into our processes
We recommend creating an RFC that defines the goals we are shooting for as we work on Rust. The RFC should cover the experience of using Rust in total (language, tools, and libraries). This RFC could be authored by the proposed User Research team, though it's not clear who should accept it — perhaps the User Research team itself, or perhaps the leadership council.
This post identified how the real "empowering magic" of Rust arises from achieving a number of different attributes all at once -- reliability, efficiency, low-level control, supportiveness, and so forth. It would be valuable to have a canonical list of those values that we could collectively refer to as a community and that we could use when evaluating RFCs or other proposed designs.
There have been a number of prior approaches at this work that we could build on (e.g., this post from Tyler Mandry, the Rustacean Principles, or the Rust Design Axioms). One insight from our research is that we don't need to define which values are "most important". We've seen that for Rust to truly work, it must achieve all the factors at once. Instead of ranking, it may help to describe how it feels when you:
- Don't achieve it (too little)
- Get it right (the sweet spot)
- Go overboard (too much)
This "goldilocks" framing helps people recognize where they are and course- correct, without creating false hierarchies.
Double down on extensibility
We recommend doubling down on extensibility as a core strategy. Rust's extensibility — traits, macros, operator overloading — has been key to its versatility. But that extensibility is currently concentrated in certain areas: the type system and early-stage proc macros. We should expand it to cover supportive interfaces (better diagnostics and guidance from crates) and compilation workflow (letting crates integrate at more stages of the build process).
Rust's extensibility is a big part of how Rust achieves versatility, and that versatility is a big part of what people love about Rust. Leveraging mechanisms like proc macros, the trait system, and the borrow checker, Rust crates are able to expose high-level, elegant interfaces that compile down to efficient machine code. At its best, it can feel a bit like magic.
Unfortunately, while Rust gives crates good tools for building safe, efficient abstractions, we don't provide tools to enable supportive ones. Within builtin Rust language concepts, we have worked hard to create effective error messages that help steer users to success; we ship the compiler with lints that catch common mistakes or enforce important conventions. But crates benefit from none of this. RFCs like RFC #3368, which introduced the diagnostic namespace and
#[diagnostic::on_unimplemented], Rust has already begun moving in this direction. We should continue and look for opportunities to go further, particularly for proc-macros which often create DSL-like interfaces.The other major challenge for extensibility is concerned with the build system and backend. Rust's current extensibility mechanisms (e.g., build.rs, proc- macros) are focused on the early stages of the compilation process. But many extensions to Rust, ranging from interop to theorem proving to GPU programming to distributed systems, would benefit from being able to integrate into other stages of the compilation process. The Stable MIR project and the build-std project goal are two examples of this sort of work.
Doubling down on extensibility will not only make current Rust easier to use, it will enable and support Rust's use in new domains. Safety Critical applications in particular require a host of custom lints and tooling to support the associated standards. Compiler extensibility allows Rust to support those niche needs in a more general way.
Help users get oriented in the Rust ecosystem
We recommend finding ways to help users navigate the crates.io ecosystem. Idiomatic Rust today relies on custom crates for everything from error- handling to async runtimes. Leaning on the ecosystem helps Rust to scale to more domains and allows for innovative new approaches to be discovered. But finding which crates to use presents a real obstacle when people are getting started. The Rust org maintains a carefully neutral stance, which is good, but also means that people don't have anywhere to go for advice on a good "starter set" crates.
The right solution here is not obvious. Expanding the standard library could cut off further experimentation; "blessing" crates carries risks of politics. But just because the right solution is difficult doesn't mean we should ignore the problem. Rust has a history of exploring creative solutions to old tradeoffs, and we should turn that energy to this problem as well.
Part of the solution is enabling better interop between libraries. This could come in the form of adding key interop traits (particularly for async) or by blessing standard building blocks (e.g., the
httpcrate, which provides type definitions for HTTP libraries). Changes to coherence rules can also help, as the current rules do not permit a new interop trait to be introduced in the ecosystem and incrementally adopted.Conclusion
To sum up the main points in this post:
- What people love about Rust is the way it empowers them to tackle tough problems and new domains. This is not the result of any one attribute but rather a careful balancing act between many; if any of them are compromised, the language suffers significantly.
-
We make three recommendations to help Rust continue to scale across domains and usage levels
- Enumerate and describe Rust's design goals and integrate them into our processes, helping to ensure they are observed by future language designers and the broader ecosystem.
- Double down on extensibility, introducing the ability for crates to influence the develop experience and the compilation pipeline.
- Help users to navigate the crates.io ecosystem and enable smoother interop
-
In 2025, 72% of Rust users said they wanted to keep using it. In the past, Rust had a way higher score than any other language, but this year, Gleam came awfully close, with 70%! Good for them! Gleam looks awesome--and hey, good choice on the
fnkeyword. ;) ↩ -
And, uh, how can we be sure not to mess it up? ↩
-
...for experienced devs operating on less sleep, who do tend to act a lot like noobs. ↩
-