Should I Run Plain Docker Compose in Production in 2026?
Yes, plain Docker Compose can still run production workloads in 2026—if you close the operational gaps it leaves: cleanup, healing, image pinning, socket security, and updates.
Yes, plain Docker Compose can still run production workloads in 2026—if you close the operational gaps it leaves: cleanup, healing, image pinning, socket security, and updates.
Humans must not anthropomorphise AI systems. Humans must not blindly trust the output of AI systems. Humans must remain fully responsible and accountable for consequences arising from the use of AI systems.
Here's why I used Docker Compose in 2015 and still use it today to run a majority of the apps I build and deploy.
It feels productive to see rows of glowing charts and telemetry. They make for some cool office art when you put them on a giant TV on the wall. But nobody spends their day watching graphs. The real core of infrastructure monitoring isn't dashboards. It's the alerts.
Laws of UX is a collection of best practices that designers can consider when building user interfaces.
I think Scratch's approach to SVG sanitization is doomed. To explain, we have to take a trip through the history of SVG sanitization in Scratch to see how well it has worked so far.
The local-first, open-source Claude Design alternative. 🖥️ Native desktop app for macOS and Windows. ⚡ 100+ skills · ✨ 150 brand-grade DESIGN.md systems · 📦 261 ready-to-use plugins. 🖼️ Generates web · desktop · mobile prototypes, live dashboards / artifacts, decks, images, video, plus HyperFrames motion graphics.
A collection of principles and patterns that shape software systems, teams, and decisions.
Five git log commands that diagnose a new codebase before you open a single file: code churn hotspots, bus factor, bug clusters, and crisis patterns.
This is a virtual museum of operating systems (and standalone applications) running under emulation, implemented as a Linux VM for QEMU, VirtualBox, or UTM.
Every tool shows you average CPU utilization, but none of the tools help you interpret it. None of them tell you that CPU utilization isn't linear to how much capacity you have. They just show you a percentage. The jump from 80% to 81% CPU utilization adds roughly 20× more wait time than the jump from 10% to 11%. So even with 20% "headroom" at 80% utilization, latencies have already started climbing:
Besides unprecedented productivity, I discovered several techniques that were instrumental. This post shares my most valuable learnings on: ensuring correctness with code contracts, applying lightweight spec-driven development, and pursuing aggressive performance optimization — plus my wish list for the future of AI-assisted coding.
This is a brief guide to my new art project microgpt, a single file of 200 lines of pure Python with no dependencies that trains and inferences a GPT. This file contains the full algorithmic content of what is needed: dataset of documents, tokenizer, autograd engine, a GPT-2-like neural network architecture, the Adam optimizer, training loop, and inference loop. Everything else is just efficiency. I cannot simplify this any further.
Andrej Karpathy wrote a 200-line Python script that trains and runs a GPT from scratch, with no libraries or dependencies, just pure Python. The script contains the algorithm that powers LLMs like ChatGPT. Let's walk through it piece by piece and watch each part work. Andrej did a walkthrough on his blog, but here I take a more visual approach, tailored for beginners.
Welcome to Algorithm Visualizer, an interactive online platform designed to bring algorithms to life through visualization. Whether you're a student, teacher, or professional, our platform provides an engaging way to explore and understand various algorithms.
A machine learning primer built from first principles. Written for engineers who want to reason about ML systems the way they reason about software systems.
In machine learning, computers apply statistical learning techniques to automatically identify patterns in data. These techniques can be used to make highly accurate predictions.
IThis program prints its own SHA-512 hash.
SaaS is the most profitable business model on Earth. It's easy to understand why: build once, sell the same thing again ad infinitum, and don't suffer any marginal costs on more sales. AI is bringing an existential threat to a lot of B2B SaaS executives: How to keep asking customers for renewal, when every customer feels they can get something better built with vibe-coded AI products?
My experience adopting any meaningful tool is that I've necessarily gone through three phases: (1) a period of inefficiency (2) a period of adequacy, then finally (3) a period of workflow and life-altering discovery.
SectorC is a C compiler written in x86-16 assembly that fits within the 512 byte boot sector of an x86 machine. It supports a subset of C that is large enough to write real and interesting programs. It is quite likely the smallest C compiler ever written.
Or maybe we convert all of the mass of the universe into 1-gram nanobots? We would have 1.5 x 10^{56} bots, which would require IDs of 372 bits.
Social media is going the way of alcohol, gambling, and other social sins: Societies are deciding it's no longer kid stuff. Lawmakers point to compulsive use, exposure to harmful content, and mounting concerns about adolescent mental health. So, many propose to set a minimum age, usually 13 or 16.
Did you know that most modern passports are actually embedded devices containing an entire filesystem, access controls, and support for several cryptographic protocols?
As time marches on, and the HTML and CSS methods gain traction, we need to start replacing the old JS methods that feel so comfy with new methods that require less JS.
Time seems simple. But we engineers lose sleep over something as basic as keeping clocks in sync. Here's why...
When it comes to database optimization, developers often reach for the same old tools: rewrite the query slightly differently, slap an index on a column, denormalize, analyze, vacuum, cluster, repeat. Conventional techniques are effective, but sometimes being creative can really pay off!
When I joined Google ~14 years ago, I thought the job was about writing great code. I was partly right. But the longer I've stayed, the more I've realized that the engineers who thrive aren't necessarily the best programmers - they're the ones who've figured out how to navigate everything around the code: the people, the politics, the alignment, the ambiguity.
There are numbers every Python programmer should know. For example, how fast or slow is it to add an item to a list in Python? What about opening a file? Is that less than a millisecond? Is there something that makes that slower than you might have guessed? If you have a performance sensitive algorithm, which data structure should you use? How much memory does a floating point number use? What about a single character or the empty string? How fast is FastAPI compared to Django?
This is a reading of RFC 9111 (2022), the latest iteration of the HTTP Caching standard. It defines the Cache-Control HTTP header as a way to prescribe how caches should store and reuse HTTP responses, with regards to not just the browser cache, but to any other intermediary caches, such as proxies and content delivery networks, that may exist between the client and the origin server.
Before microchips existed, computers were built with mechanical relays. This is a working simulation of the Minivac 601, an educational computer designed by Claude Shannon. You can watch it think slowly enough to see every step.
Let me guess: Your life is going pretty darn well by any objective metric. Nice place to live. More than enough stuff. Family and friends who love you. But you're tired, burnt out, and more. It feels like you're stuck in the ordinary when all you want to do is chase greatness.
What you need to know about local model tooling and the steps for setting one up yourself
A simple utility to convert physical barcodes into digital passes for Apple Wallet®. Entirely free and runs directly from your browser. 1 Enter your membership or loyalty card barcode data. 2 Configure the appearance and titles for your pass. 3 Download and open the file to add it to your Wallet.
Welcome to CS251 at CMU! This course is about the rigorous study of computation, which is a fundamental component of our universe, the societies we live in, the new technologies we discover, as well as the minds we use to understand these things.
Docker Hub has over 20 billion monthly pulls, with nearly 90% of organizations now relying on containers in their software delivery workflows. That gives us a responsibility: to help secure the software supply chain for the world.
Why vibe code with a language that has human convenience and ergonomics in view? Or to put that another way: Wouldn't a language designed for vibe coding naturally dispense with much of what is convenient and ergonomic for humans in favor of what is convenient and ergonomic for machines? Why not have it just write C? Or hell, why not x86 assembly?
You may have heard the term Quine before… It means a program which prints its own source.
Big O notation is a way of describing the performance of a function without using time. Rather than timing a function from start to finish, big O describes how the time grows as the input size increases. It is used to help understand how programs will perform across a range of inputs.
Like designing good software systems, I think much of the advice floating around about API design is too fancy. People get wrapped up in what “real” REST is, or whether HATEOAS is a good idea, and so on. This post is my attempt at writing down everything I know about designing good APIs.
Amid the chaos of revolutionary France, one man's mathematical obsession gave way to a calculation that now underpins much of mathematics and physics. The calculation, called the Fourier transform, decomposes any function into its parts.
There is an ongoing trend in the industry to move people away from username and password towards passkeys. The intentions here are good, and I would assume that this has a significant net benefit for the average consumer. At the same time, the underlying standard has some peculiarities. These enable behaviors by large corporations, employers, and governments that are worth thinking about.
So, this blog post will be about LLMs, and everyone has opinions about that. To be upfront about it, I'm a skeptic, yet I like experimenting with stuff so I download and run them locally on my Mac. And I'll teach you how to do it too, if you'd like!
This article is the second of three "state of play" posts that explain how Large Language Models work, aimed at readers with the level of understanding I had in mid-2022: techies with no deep AI knowledge.
Developers are increasingly relying on AI coding assistants to accelerate our daily workflows. These tools can autocomplete functions, suggest bug fixes, and even generate entire modules or MVPs. Yet, as many of us have learned, the quality of the AI's output depends largely on the quality of the prompt you provide. In other words, prompt engineering has become an essential skill.
One of the most harmful pieces of advice is to not reinvent the wheel. It usually comes from a good place, but is typically given by two groups of people: those who tried to invent a wheel themselves and know how hard it is; those who never tried to invent a wheel and blindly follow the advice.
TeX and related systems are often associated with their default fonts, Donald Knuth's Computer Modern (CM) typefaces. While these fonts are excellent, they have become so ubiquitous in the scientific community that many LaTeX users have sought alternative fonts for their documents. As a result, a plethora of font packages and even OpenType-compatible engines (XeLaTeX and LuaLaTeX) have emerged in the past 20 years.
The OSSU curriculum is a complete education in computer science using online materials. It's not merely for career training or professional development. It's for those who want a proper, well-rounded grounding in concepts fundamental to all computing disciplines, and for those who have the discipline, will, and (most importantly!) good habits to obtain this education largely on their own, but with support from a worldwide community of fellow learners.
Millions of Americans can have their data stolen right now because of a deficiency in Google's “Sign in with Google” authentication flow. If you've worked for a startup in the past - especially one that has since shut down - you might be vulnerable.
You're probably familiar with the concept of 'dependency churn.' It's that never-ending treadmill of updates, patches, audits, and transitive dependencies that we as developers love to casually install in the name of productivity.
Overconfident developers that choose to write their own cryptography code have plagued the information security industry since before it was even an industry.
A few weeks ago at work we had a talk where senior developers (including me) were invited to spend around five minutes each talking about our personal software development philosophies. The idea was for us to share our years of experience with our more junior developers.
What git config settings should be defaults by now? Here are some settings that even the core developers change.
Subtrace is Wireshark for your Docker containers. It lets developers see all incoming and outgoing requests in their backend server so that they can resolve production issues faster.
After one year of trying uv, the new Python project management tool by Astral, with many clients, I have seen what it's good and bad for. My conclusion is: if your situation allows it, always try uv first. Then fall back on something else if that doesn't work out.
A calculator should show you the result of the mathematical expression you entered. That's much, much harder than it sounds. What I'm about to tell you is the greatest calculator app development story ever told.
Nping is a Ping tool developed in Rust. It supports concurrent Ping for multiple addresses, visual chart display, real-time data updates, and other features.
OpenStreetMap (OSM) has many objects remaining to be mapped, but the quality of AI-generated objects is not high enough for direct inclusion. We introduce MapTCHA, a CAPTCHA that leverages the uncertainty of interpreting imagery with computer vision, and provides human verification for AI predictions: users are asked to identify images containing correctly interpreted objects, e.g. building outlines.
A reproduction of Oliver Byrne's celebrated work from 1847 plus interactive diagrams, cross references, and posters designed by Nicholas Rougeux.
If my younger self had heard these stories he might have had a less stressful life knowing that even a long string of failures in specific endeavors doesn't necessarily translate to failure in life. Maybe some version of my younger self is still out there and will get some similar value out of it.
We all know, how computing is now expected to cure all ills of the world and more, and how as far as these expectations are concerned, even the sky is no longer accepted as the limit.
We're going to build a small operating system from scratch, step by step.
Semantic Reader is an augmented reader with the potential to revolutionize scientific reading by making it more accessible and richly contextual.
mCaptcha is proof-of-work based captcha system that is privacy focused and fully automated.
And now we know the binary search is bug-free, right? Well, we strongly suspect so, but we don't know. It is not sufficient merely to prove a program correct; you have to test it too. Moreover, to be really certain that a program is correct, you have to test it for all possible input values, but this is seldom feasible.
Your salary negotiation — which routinely takes less than 5 minutes to conclude — has an outsized influence on what your compensation is.
roadmap.sh is a community effort to create roadmaps, guides and other educational content to help guide developers in picking up a path and guide their learnings.
I decided to assemble a compilation of the 10 most common errors made by native Portuguese speakers when writing scientific papers in English.
I have never seen a computer system which handles names properly and doubt one exists, anywhere.
That thing about a minute being longer than an hour was a joke, right? No.
Consequently, every few years POSIX time jumps backwards, wreaking utter havoc. Someday it might jump forward.