_____ _ / ____| | Sebastien LOVERGNE | (___ | | /projects.txt \___ \| | /awesome.txt ____) | |____ /blogroll.txt |_____/|______| /rss.xml =========================================================================== My list of π—”π˜„π—²π˜€π—Όπ—Ίπ—² things =========================================================================== This is a curated list of things I have discovered on the web and found useful or thought-provoking, there is also some fun stuff. Potential subjects include, but are not limited to, programming, engineering, technology, and woodworking. The list is sorted by date of addition (latest first), expect for my favorites wich are pinned. β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ β™₯ Putting the β€œYou” in CPU β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ A deep dive into how exactly your program can "run"on a machine. It's β”‚ β”‚ simple question but it will lead you to explore a lot of interesting β”‚ β”‚ things: what's is an instruction? How can we multitask on a CPU if β”‚ β”‚ its execution is sequential? How do memory isolation between kernal β”‚ β”‚ and different process work? What is a dawn syscall actually? And how β”‚ β”‚ to become an Elf-lord? β”‚ β”‚ β”‚ β”‚ It's well written and beautifully presented which make it β”‚ β”‚ approachable despite being very detailed ( if you wonder how β”‚ β”‚ detailed, there is a function by function analysis of how linux β”‚ β”‚ implement system call in chapter 3). If you're anything like me and β”‚ β”‚ want to understand how your programs run all the ways down from your β”‚ β”‚ code to the hardware level then, this is for you. This has actually β”‚ β”‚ improved my understanding of how computers work and what the role of β”‚ β”‚ an kernel is. I cannot recommend reading it enough! β”‚ β”‚ β”‚ β”‚ PS: I realised after reading the entire thing the the research and β”‚ β”‚ the writing was done by a 17 year old with the help of hackclub. This β”‚ β”‚ person probably has a bright future ahead of her, I wish I could have β”‚ β”‚ been so dedicated when i was 16 year old! β”‚ β”‚ β”‚ β”‚ PPS : there is another one by same person about networking called how β”‚ β”‚ did I get here?[1]. ~~It's on my reading list!~~. It's also very β”‚ β”‚ cool. β”‚ β”‚ β”‚ β”‚ [1] https://how-did-i-get-here.net/ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ β™₯ Schemathesis β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Schemathesis is an incredible fuzzer for REST and GraphQL API. It can β”‚ β”‚ be used through CLI or integrate directly with your unit test in β”‚ β”‚ python. Thanks to it's property-based testing, I have found numerous β”‚ β”‚ bug, including inside my dependencies, . It also help me catch bad β”‚ β”‚ documentation with it's response schema validation. I definitly β”‚ β”‚ integrate it inside my CI/CD pipeline whenever I can. β”‚ β”‚ β”‚ β”‚ If you have been impressed by schemathesis capability like me and you β”‚ β”‚ want to know more about it's conception I would recommend reading the β”‚ β”‚ paper published by its creators "Deriving Semantics-Aware Fuzzers β”‚ β”‚ from Web API Schemas" by Zac Hatfield-Dodds and Dmitry Dygalo. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Computer, Enhance! β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ An excellent performance-Aware programming course by Casey Muratori. β”‚ β”‚ If you're not familiar with him, Casey Muratori is a programmer who β”‚ β”‚ specializes in game engine research and development. He has extensive β”‚ β”‚ knowledge of CPU and GPU micro-architecture and how they interact β”‚ β”‚ with software performance. β”‚ β”‚ β”‚ β”‚ This course is designed for programmers who already know how to code β”‚ β”‚ but want to learn how to maximize hardware performance. The course is β”‚ β”‚ language-agnostic, focusing on five optimizations applicable to any β”‚ β”‚ program: waste reduction, instructions per clock, single operation, β”‚ β”‚ multiple data (SIMD), caching, and multi-threading. β”‚ β”‚ β”‚ β”‚ The course is updated weekly with a Q&A for the previous week, a new β”‚ β”‚ lesson, and homework assignments for the upcoming week. It is not β”‚ β”‚ free; it costs $9 per month. I recommend checking out some of the β”‚ β”‚ free episodes available on his YouTube channel[1] or one of his β”‚ β”‚ interviews[2] first to see if the course is right for you. β”‚ β”‚ β”‚ β”‚ [1] https://youtube.com/@mollyrocket?si=HEWDx_HjvBjrD3uK β”‚ β”‚ [2] https://youtu.be/Zr09I5OlOjs?si=oM1tmYGWNE6EGaxX β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ What makes concurrency so hard? β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ The short version: Concurrency is difficult due to the state space β”‚ β”‚ explosion that occurs very quickly when you distribute a system, β”‚ β”‚ which exceeds our ability to model. β”‚ β”‚ β”‚ β”‚ The author provides a neat demonstration of this hypothesis, and it β”‚ β”‚ really resonates with my own experience. β”‚ β”‚ β”‚ β”‚ Recently, I’ve been thinking about this idea a lot since I discovered β”‚ β”‚ Residual Theory[1]. In this theory, we begin with too many possible β”‚ β”‚ states to create an accurate model, but progressively reduce the β”‚ β”‚ complexity by focusing on attractors[2], solutions that cover large β”‚ β”‚ areas of the state space, so that unforeseen states already have a β”‚ β”‚ solution. β”‚ β”‚ β”‚ β”‚ [1] https://youtu.be/_MPUoiG6w_U?si=-G54W3aPhlvWTiQd β”‚ β”‚ [2] https://en.m.wikipedia.org/wiki/Attractor β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Models All the Way Down β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ "Models All the Way Down" by Knowing Machines[1] is a detailed β”‚ β”‚ investigation into the datasets behind our current foundational AI β”‚ β”‚ models, the methods used to create them, and the inevitable biases β”‚ β”‚ they produce. The results of this investigation are presented through β”‚ β”‚ a stunning visual display based on the collected data. The β”‚ β”‚ storytelling is excellent, allowing readers to understand the subject β”‚ β”‚ progressively, even if they are novices. β”‚ β”‚ β”‚ β”‚ All the data from their investigation has been published on β”‚ β”‚ GitHub[2]. β”‚ β”‚ β”‚ β”‚ [1] https://knowingmachines.org/about β”‚ β”‚ [2] https://github.com/NYUEngelberg/models-all-the-way β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Glory is only 11MB/sec away β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ A good article against the necessity of horizontal scaling and β”‚ β”‚ deploying on the edges. β”‚ β”‚ β”‚ β”‚ Indeed, I think that for most applications you might want horizontal β”‚ β”‚ scaling but you don't actually need it, worst than that, it can β”‚ β”‚ actually hurt your application by adding unnecessary complexity and β”‚ β”‚ remember what Grug[1] told use: complexity is the enemy. β”‚ β”‚ β”‚ β”‚ [1] https://lovergne.dev/archive/grub-brain β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ A Distributed Systems Reading List by Fred Hebert β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Distributed systems are everywhere now, if you are working on a web β”‚ β”‚ application now, chances are it is distributed or someone will ask β”‚ β”‚ you to make it distributed at some point. Probably most systems β”‚ β”‚ should not be distributed, as it adds an incredible amount of β”‚ β”‚ complexity, but the promises of fault tolerance and scalability are β”‚ β”‚ hard to ignore, we are only human after all, and we have a hard time β”‚ β”‚ not imagining the grass is greener elsewhere. Also, sometimes systems β”‚ β”‚ actually need to be distributed to meet some constraints. β”‚ β”‚ β”‚ β”‚ But distributed systems are hard and often counterintuitive. So I'm β”‚ β”‚ currently trying to learn more about distributed systems theory so β”‚ β”‚ that I don't shoot myself in the foot when I try to design and build β”‚ β”‚ them. This reading list is a good place to start, as it references a β”‚ β”‚ lot of foundational papers. But more than the references, what I β”‚ β”‚ really like about this page are the definitions. On this page, the β”‚ β”‚ author defines most of the vocabulary commonly used to talk about β”‚ β”‚ distributed systems. These definitions are concise, understandable, β”‚ β”‚ and often accompanied by insights into what a concept actually means β”‚ β”‚ for real-world applications. I highly recommend reading the whole β”‚ β”‚ page before you start reading papers, it will give you the basics. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Excalidraw β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Excalidraw is amazing. It's very simple, it doesn't have all the β”‚ β”‚ features of other big diagramming tools, it doesn't even have a grid, β”‚ β”‚ and yet you'll make better diagrams faster with it. It's like using a β”‚ β”‚ real whiteboard, expecting that it's infinite and you don't have to β”‚ β”‚ rewrite everything if you've misplaced something. β”‚ β”‚ β”‚ β”‚ Excalidraw is such a good example of UX: you open it and you are β”‚ β”‚ ready to go, no need to register, no need for a tutorial. It's low β”‚ β”‚ fidelity style will make all your diagrams beautiful without effort β”‚ β”‚ and without the need for precision. All the tools are intuitive and β”‚ β”‚ immediately usable, yet when you start using exclidraw more you will β”‚ β”‚ discover a lot of shortcuts to work faster (see the help in the β”‚ β”‚ bottom right corner for a full list of keyboard shortcuts). β”‚ β”‚ β”‚ β”‚ Excalidraw is also fully collaborative with it's Live Session: just β”‚ β”‚ share the link and you can instantly see other people working in your β”‚ β”‚ workspace. Then there is the fantastic library functionality that β”‚ β”‚ allows you to share and reuse components with ease. β”‚ β”‚ β”‚ β”‚ Finally, there is the mermaid support, which will turn your β”‚ β”‚ text-based, simple-version, easy-to-maintain but ugly diagram into β”‚ β”‚ something nice and pleasing. β”‚ β”‚ β”‚ β”‚ It's lovely. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Restic β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Restic is the tool you should be using for your backups: β”‚ β”‚ β”‚ β”‚ 1. You can always find what you need in a restic backup because it β”‚ β”‚ uses incremental snapshots (like git). β”‚ β”‚ β”‚ β”‚ 2. It's safe, because your data is always encrypted. β”‚ β”‚ β”‚ β”‚ 3. It's painless, because it always checks your files for integrity β”‚ β”‚ and consistency. β”‚ β”‚ β”‚ β”‚ 4. It's efficient, because it not only uses incremental snapshots, β”‚ β”‚ but also compresses them. β”‚ β”‚ β”‚ β”‚ 5. It's flexible, because it can integrate with virtually any remote β”‚ β”‚ storage backend (I personally use Backblaze B2). β”‚ β”‚ β”‚ β”‚ 6. It's long-lastings, because the Restic repository format has its β”‚ β”‚ own open specification and other multiple implementations. β”‚ β”‚ β”‚ β”‚ 7. It's easy to set up and maintain, because it has a good CLI β”‚ β”‚ interface and good documentation. β”‚ β”‚ β”‚ β”‚ 8. It's fast and CPU efficient, because it's in Golang. β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Restic, what else? β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Wizard Zines β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ A series of vulgarisation comics on all sorts of topics related to β”‚ β”‚ programming. I think it's an excellent ressource for beginner β”‚ β”‚ programmers, it lets you ask some questions about basic things that β”‚ β”‚ you usually don't have time for or, maybe too afraid to ask, like: β”‚ β”‚ what is http?[1] or what is memory allocation?[2] β”‚ β”‚ β”‚ β”‚ [1] https://wizardzines.com/zines/http/ β”‚ β”‚ [2] https://wizardzines.com/comics/memory-allocation/ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Hey: tiny program that sends some load to a web application β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ When I deploy a new app in production, I like to do a quick load test β”‚ β”‚ to have an idea of how much traffic I can support while staying under β”‚ β”‚ my latency target. β”‚ β”‚ β”‚ β”‚ Hey is an excellent CLI tool for that. You give it the URL of the β”‚ β”‚ page you want to test and it will generate some load for it. You can β”‚ β”‚ easily configure the load (number of requests, headers, rate β”‚ β”‚ limit...) with flags. Once the loading is finished, you received a β”‚ β”‚ very readable report with the latency distribution and other key β”‚ β”‚ indicators. β”‚ β”‚ β”‚ β”‚ Another practical tool to have in the toolbox! β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ HTMHell: collection of bad (and good) practices in HTML β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ I considered myself pretty up to date with the functionality offered β”‚ β”‚ by HTML but HTMLHell show me I was wrong. Notably I discovered the β”‚ β”‚ existence of download links[1] (how did I miss that all this time?!) β”‚ β”‚ and how to use for progressive enhancement[2]. β”‚ β”‚ β”‚ β”‚ The site has two main section: β”‚ β”‚ β”‚ β”‚ 1. Hell: where you find bad, but not obviously bad, examples of HTML β”‚ β”‚ code β”‚ β”‚ β”‚ β”‚ 2. Heaven: where you discover little-known but very useful features β”‚ β”‚ of HTML β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ There is also an advent calendar with tips and tricks in December. I β”‚ β”‚ highly recommend exploring this site if you want to deepen your β”‚ β”‚ understanding of what HTML has to offer. β”‚ β”‚ β”‚ β”‚ [1] https://www.htmhell.dev/tips/download-links/ β”‚ β”‚ [2] https://www.htmhell.dev/tips/the-avif-image-format/ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Tinystatus: a lovingly simple monitoring tool. β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Sometimes, you have a basic website or a small application, and all β”‚ β”‚ you need is a way to receive alerts if it goes down. In such cases, β”‚ β”‚ you probably don't want to deploy the entire OpenTelemetry stack with β”‚ β”‚ all the required infrastructure and integration. Sometimes, all you β”‚ β”‚ want is something simple. This is where "tinystatus" comes into play; β”‚ β”‚ it couldn't be simpler. β”‚ β”‚ β”‚ β”‚ Tinystatus is a compact 130-line Bash script that queries a list of β”‚ β”‚ URLs and generates an HTML report. You can effortlessly set it up in β”‚ β”‚ cron or systemd and direct your HTTP server to the generated β”‚ β”‚ `index.html`. VoilΓ , you've got yourself a status service. Moreover, β”‚ β”‚ by redirecting its `stderr` output to a mail service, you can receive β”‚ β”‚ real-time alerts if your website or app experiences any downtime. β”‚ β”‚ β”‚ β”‚ Because it's so concise, you can easily customize it to your β”‚ β”‚ preferences by adding extra checks or tweaking the styling. And if β”‚ β”‚ you don't want to deal with setting up cron, systemd or the web β”‚ β”‚ server, it's also available as a Docker container or as a Go β”‚ β”‚ implementation, aptly named "go-tinystatus", which embeds the HTTP β”‚ β”‚ server for your convenience. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ FoundationDB: Distributed Unbundled Transactional Key Value Store β”‚ β”Œβ”€β”€ (2021) β”œβ”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ FoundationDB is a distributed transactional key value store created β”‚ β”‚ in 2009 wich guarantee ACID transactions at scale. β”‚ β”‚ β”‚ β”‚ This is paper published by the FoundationDB team summarising there β”‚ β”‚ approach to building a distributed database 10 years after building β”‚ β”‚ it. There is a lot of interesting things inside it but here are my β”‚ β”‚ main takeaway: β”‚ β”‚ β”‚ β”‚ β€’ They built the simulation and testing framework before starting β”‚ β”‚ to build the actual database. This really highlights the β”‚ β”‚ importance of extensive testing capabilities if you want to β”‚ β”‚ achieve consistency and robustness in complex systems. I find the β”‚ β”‚ idea of a simulation to continuously test and find bug in a β”‚ β”‚ system trully amazing and I hope I will have the chance to do β”‚ β”‚ something similar one day. β”‚ β”‚ β”‚ β”‚ β€’ FoundationDB offers a minimal and carefully chosen feature set β”‚ β”‚ and instead realy on a layered architecture to enable other β”‚ β”‚ developer to implement there own feature and data-model. This β”‚ β”‚ approch has seen a lot of success as FoundationDB has been used β”‚ β”‚ as a literal foundation for other paradigm of distributed β”‚ β”‚ databases: semi-relational databases, document and object stores, β”‚ β”‚ graph databases and more. β”‚ β”‚ β”‚ β”‚ β€’ I am way over my head with the internals of the transaction β”‚ β”‚ system. β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Why is CSS so Weird? β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Because the web has been build with a set of value at it's core : the β”‚ β”‚ web is open, it's for everyone and everything. By accepting those β”‚ β”‚ value we must, at the same time, accept that we loose some degree of β”‚ β”‚ control, we don't choose who will look at our website and on what β”‚ β”‚ devices. That lake of control means we must build websites for an β”‚ β”‚ infinite canvas with unknown constraints and capabilities. But β”‚ β”‚ designing for the unknown is hard, for that, we need flexibility, and β”‚ β”‚ this is where CSS come in. β”‚ β”‚ β”‚ β”‚ The Cascade in Cascading Style Sheets is the process of assembling β”‚ β”‚ styles from different inputs. You gain from that process the β”‚ β”‚ capability to merge intent from different sources: the Author, the β”‚ β”‚ Browser and remarkably, the User. β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ AUTHOR BROWSER USER β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β–Ό β”‚ β”‚ β”‚ └──────► CASCADE β—„β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β–Ό β”‚ β”‚ STYLE β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ "Author, browser, and user styles consolidate into one style throught β”‚ β”‚ cascade" β”‚ β”‚ β”‚ β”‚ It also allows us to fail gracefully by cascading upward wich is good β”‚ β”‚ for resilence and backward compatibility. But the tradeoff is that β”‚ β”‚ your instructions can be overridden, they became suggestions. This is β”‚ β”‚ one of the pitfalls of CCS and why we sometime have to use the β”‚ β”‚ infamous `!important`. The other consequence is that everything is β”‚ β”‚ hierarchically linked. This is great, as one style can be reused in β”‚ β”‚ many similar places to achieve consistency, but this is also another β”‚ β”‚ big pitfall of CSS as a style might impact elements it was never β”‚ β”‚ meant to. β”‚ β”‚ β”‚ β”‚ Overall some might think that we made a bad tradeoff with CSS by β”‚ β”‚ loosing too much control, but I don't think so. As John Allsopp said, β”‚ β”‚ "Control[...] is a limitation of the printed page", when a book is β”‚ β”‚ produce and sold only the editor can make it accessible, and he fails β”‚ β”‚ to do it most of the time whether it's diagrams with bad contrast or β”‚ β”‚ the absence of braille editions or other things. But with the browser β”‚ β”‚ and CSS the user has the last word, he can make it feet it's need, β”‚ β”‚ whatever it is.' β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Every Layout: relearn CSS β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ One of the best resource I could find on modern CSS practice. It goes β”‚ β”‚ deep on how css properties function and interact, provide some β”‚ β”‚ general design rules and propose solution to a lot of common layout β”‚ β”‚ problem in a flexible and reusable way. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ WAVE: Web Accessibility Evaluation Tools β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ A collection of tools to test website accessibility. There browser β”‚ β”‚ extension is great and give an instanious and detailed feeback on β”‚ β”‚ accessibity isssues on a web page. (Try it here and you wont find any β”‚ β”‚ error!) β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ The Grug Brained Developer β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ A fun guide on managing complexity in software for all of us small β”‚ β”‚ brained developers. Remember: complexity is the enemy; complexity is β”‚ β”‚ very, very bad. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ RFC9457: problem details for HTTP APIs β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ There are currently no standard ways for API to communicate there β”‚ β”‚ domain specific error where HTTP status is not enough. This RFC hopes β”‚ β”‚ to remedy that with a proposed schema for error response. I think β”‚ β”‚ it's a good proposal, it give enough feedback and it's flexibility β”‚ β”‚ enough to work in most API. The one thing I really like is that it β”‚ β”‚ forces you to document your API's specific errors because a link to β”‚ β”‚ documentation about the error is included in the schema. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Adminer β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Minimalist, fast, single-file, UI for RDBMS. phpmyadmin but way β”‚ β”‚ better. I love there interface, it's very clear and readable. Adminer β”‚ β”‚ is simple but also fully featured. It is customizable and extendable β”‚ β”‚ throught themes and plugins. It also integrate very well with docker β”‚ β”‚ and help access the database for debugging. Overall a very practical β”‚ β”‚ tool to have in the toolbox. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Alpines.js β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Make the web simple again! Alpine.js provide DOM reactivity and β”‚ β”‚ two-way data binding thought a lightweight framework. It's build on β”‚ β”‚ top of the `@vue/reactivity` package, which is it's only dependency, β”‚ β”‚ and the whole framework is ~16kb minified and compressed. Alpine.js β”‚ β”‚ work very well on it's owm but I think it would be very interesting β”‚ β”‚ to see if it synergize well with HTMX for the place where client site β”‚ β”‚ reactivity is absolutly needed. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ CSS Bed β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ CSS Bed is a collection of classless CSS theme, it let you test each β”‚ β”‚ of them by effortlessly changing the stylesheet of the site. I am a β”‚ β”‚ big fan of classless CSS for small and static website (like this β”‚ β”‚ one), it reduce unnecessary complexity by not having to think about β”‚ β”‚ class at all and only concentrate on semantic HTML. Also modern β”‚ β”‚ framework provide CSS isolation wich mean class are not as much of a β”‚ β”‚ necessity to avoid colision between components. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ The Moral Character of Cryptographic Work (2015) β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ In reaction to the Snowden's revelation in 2013, Phillip Rogaway β”‚ β”‚ started to reconsider his role and social responsibility as a β”‚ β”‚ cryptographer. This paper focus on the discipline of cryptography but β”‚ β”‚ the first part does an excellent job at explaining why any technician β”‚ β”‚ has a social impact, whether that's on purpose or not, and therefore β”‚ β”‚ should be conscious of his political responsibility. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Shields.io: concise, consistent, and legible badges β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Most practical badge generator I have used yet. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Voronoi generator β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ This is an online and open-source tool for parametric voronoi β”‚ β”‚ generation. Voronoi is a diagram derived from a mathematical equasion β”‚ β”‚ that look like cells, there is a lot of applications for it, but I β”‚ β”‚ mostly use it for visual design. With the real time editing and SVG β”‚ β”‚ export it's really handy for that use case. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ The Rise of Worse is Better by R. P. Gabriel (1991) β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ This article discusses the trade-off between implementation β”‚ β”‚ simplicity and interface simplicity and argues in favor of β”‚ β”‚ implementation simplicity. Despite being published more than 30 years β”‚ β”‚ ago it is still interesting and relevant. If you find it interesting β”‚ β”‚ you can also read the counter argument "Worse is Better is Worse" by β”‚ β”‚ Nickieben Bourbaki (it's the same author under a pseudonym). β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ HTMX β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Make the web simple again! HTMX is a framework for building frontend β”‚ β”‚ with the hypermedia design philosophy. It's dependency free and β”‚ β”‚ weight only ~14k minified and compressed wich is really nice. It's β”‚ β”‚ not for every project, for example if you want offline support it's β”‚ β”‚ not what you should use, but it can be used in way more applications β”‚ β”‚ than people realize, especially CRUDish apps or data exploration β”‚ β”‚ apps. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€ Dreamberd: the perfect programing language β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ It's perfect, what else is there to say? β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ─────────────────────────────────────────────────────────────────────────── The bottom of every page is padded so readers can maintain a consistent eyeline You can navigate to /awesome.txt, /blogroll.txt and /rss.xml