Found 8968 bookmarks
Newest
Why We Mock Everything — Vivian Voss
Why We Mock Everything — Vivian Voss
On Second Thought Episode 09. The reflex is universal: to test a unit, first isolate it; to isolate it, fake everything it touches. The unit test was born pure: Kent Beck wrote SUnit for Smalltalk in 1994 and adapted it into JUnit with Erich Gamma in 1998, to test library code (parsers, algorithms, data structures, pure functions) with nothing to mock because there was no world to touch. The practice was carried wholesale into application code, which is nothing but world (a database, a queue, a payment API, a clock, a mailer), and to keep calling the tests unit tests we faked the world; dependency injection arrived to give every collaborator a seam through which a fake could be inserted, and the architecture was reshaped so the fakes would fit. Martin Fowler's 2007 essay Mocks Aren't Stubs named the classicist and mockist camps; the London school (Freeman and Pryce, Growing Object-Oriented Software, Guided by Tests, 2009) is coherent and disciplined, but the industry generalised it until unit test came to mean test with the dependencies mocked out. The cost arrives in three layers: daily friction (forty lines of mock setup to two of assertion; refactoring with no behaviour change turns fifty tests red because mockist tests assert on interactions, not behaviour); false confidence (four hundred green tests, broken checkout in production, because every dependency was a mock); and the hidden design cost (interfaces, seams and injection points that exist only to receive a mock). The most testable software ever written has no mocks at all: a Unix filter (grep, awk, sort in the FreeBSD base) is pure, text in, text out, isolated by construction because the kernel and the shell handle the world. Doug McIlroy's pipe (1973) was, in modern terms, a functional core with an imperative shell. Gary Bernhardt named that shape functional core, imperative shell in his 2012 talk Boundaries; Alistair Cockburn called it ports and adapters (hexagonal architecture, renamed 2005). A pure core needs no mocks; a thin shell needs only a few real integration tests. A mock is not a tool, it is a reading on a gauge of how far the logic was allowed to wander into the world.
·vivianvoss.net·
Why We Mock Everything — Vivian Voss
The skeleton library ⊗ Could humans become “Sun-eaters”?
The skeleton library ⊗ Could humans become “Sun-eaters”?
No.404 — Le mal du siècle, bis ⊗ AI Resist List and the Luddite Lab ⊗ Microcosm Industries ⊗ Narrative inheritance ⊗ Books in an age of AI ⊗ The near-term future of climate adaptation ⊗ The Neanderthal dentist
·sentiers.media·
The skeleton library ⊗ Could humans become “Sun-eaters”?
When the connector becomes the source
When the connector becomes the source
Weeknotes 390: Google I/O revealed something bigger than new features: a shift from connector to source. When the search engine becomes the author, who owns the knowledge—and who's responsible for it? And more human-picked notions from last week’s news on physical AI and tech impact.
·iskandr.nl·
When the connector becomes the source
Tweezeday
Tweezeday
Not cheap, but appealing Is my future portable drive one or more 8 TB strips (such as one of these) that I carry with me and plug into one of these? I laid out the problem in more detail here. Noth…
·doc.searls.com·
Tweezeday
Down and Running
Down and Running
A GrandPerspective map of my laptop’s hard drive. The vertical green block is Apple Photos. The large yellow blocks are videos I neeeded to offload to an external movie drive. Lots of smaller…
·doc.searls.com·
Down and Running
Choosing to Stay Human
Choosing to Stay Human
If you go to your favorite social media site, you will find it full of posts that start to look suspiciously similar to each other:
·oneusefulthing.org·
Choosing to Stay Human
From Losing the Web to Saving Us All
From Losing the Web to Saving Us All
As Q&A with AI chatbots replaces search, the Web is starting to look run-down, and in some ways is being abandoned. If that continues, what happens to the Web’s architects, authors, and i…
·doc.searls.com·
From Losing the Web to Saving Us All
space-tree: Workspace Management Trees in Emacs
space-tree: Workspace Management Trees in Emacs
space-tree is a tree-based workspace manager for Emacs. Workspaces are a battle-tested UX concept across operating systems, but in Emacs and most OSes alike, th...
·chiply.dev·
space-tree: Workspace Management Trees in Emacs
The Eternal Sloptember
The Eternal Sloptember
I’m calling it now, the adoption of AI agents into software development will be one of the most costly mistakes in the field’s history. Agents cannot program, and it’s taking longer and longer to realize that they can’t. They are a highly sophisticated statistical model designed to mimic the distribution of programming. The output is broken, but in a way that’s getting harder and harder to detect. Which is exactly what you’d expect from an increasingly accurate statistical model.
·geohot.github.io·
The Eternal Sloptember
Declarative partial updates | Blog | Chrome for Developers
Declarative partial updates | Blog | Chrome for Developers
Learn about new out-of-order streaming capabilities and the renewed HTML insertion and streaming methods available for testing from Chrome 148
·developer.chrome.com·
Declarative partial updates | Blog | Chrome for Developers
The Industry Is Normalizing Rushed, Unreviewable Code.
The Industry Is Normalizing Rushed, Unreviewable Code.
Tanstack got hijacked via its own CI. OpenAI wants to loan you engineers so you can stuff AI into everything. Bun just rushed its Rust rewrite with AI.
·ipenewsletter.substack.com·
The Industry Is Normalizing Rushed, Unreviewable Code.
The Tension Plex’s Huge Price Increase Exposes
The Tension Plex’s Huge Price Increase Exposes
Plex sends a message to the self-hosting community with a massive upcharge targeted at the very people who hate monthly fees.
·tedium.co·
The Tension Plex’s Huge Price Increase Exposes
The Agentic P&L: Beyond the Empire of Headcount
The Agentic P&L: Beyond the Empire of Headcount
For over a century, both the prestige and budget of a corporate department have been measured by a single crude metric: headcount. If you manage 500 people,
·oreilly.com·
The Agentic P&L: Beyond the Empire of Headcount
The Hardware Store
The Hardware Store
The hardware store’s customers aren’t just customers. They aren’t just numbers on a spreadsheet. They are its neighbors.
·frontporchrepublic.com·
The Hardware Store
Why We Containerise Everything — Vivian Voss
Why We Containerise Everything — Vivian Voss
On Second Thought Episode 08. The reflex is universal: every new service ships in its own container. The container is now the unit of thought, not merely a deployment artefact. Three currents converged. Isolation: Poul-Henning Kamp's FreeBSD Jails (1999, FreeBSD 4.0 in March 2000) provided kernel-native isolation with no daemon, one coherent abstraction; Solaris Zones (2004), Linux namespaces and cgroups (2006 to 2008, eight separate namespaces), LXC (2008), Docker (2013) reproduced the technique with progressively less coherence and more advertising. Org-shape: Scrum codified between 1995 and 2001 split organisations into sprint-shaped teams; Melvin Conway's 1968 paper had explained in advance that software mirrors its organisation's communication structure; the container became the natural envelope. Runtime: Node.js (Ryan Dahl, 2009) was single-threaded by design and multi-core hardware required multi-container deployment. The cost arrives in four layers: image bloat (node:22 over a gigabyte for a 50 MB application), supply chain (the May 2026 npm wave reached 172 packages, 403 versions, ~518 million cumulative downloads), daemon overhead (dockerd above 5 GB at 183 containers), and network tax (a function call ~1 microsecond, a network call between services ~1-5 milliseconds). The retreat is documented: Amazon Prime Video returned video monitoring to a monolith for ~90 per cent cost reduction; Segment consolidated 140 services into one; Istio quietly merged its own control plane back into a single binary; 37signals left AWS and recouped hardware inside year one. The alternatives have been quietly working: FreeBSD Jails, Capsicum, OpenBSD pledge and unveil, Go and Rust finding their own cores. The honest question is whether isolation, runtime split and team split were ever the same question.
·vivianvoss.net·
Why We Containerise Everything — Vivian Voss
The lasting influence of Netscape Time - The History of the Web
The lasting influence of Netscape Time - The History of the Web
After Netscape, the speed of software sped up beyond what anyone could have imagined. Thanks to a documentary crew and a ghost writer, we have a full view of the whole thing.
·thehistoryoftheweb.com·
The lasting influence of Netscape Time - The History of the Web
tcpdump — Vivian Voss
tcpdump — Vivian Voss
Technical Beauty Episode 35. tcpdump (Van Jacobson, Craig Leres, Steven McCanne at LBL, 1988) is a thin command-line filter on top of libpcap, on top of BPF. McCanne and Jacobson's 1992 paper 'The BSD Packet Filter' (USENIX Winter 1993, Best Student Paper) replaced Sun's NIT stack-based filter with a register-based in-kernel pseudo-machine; measured up to 20x faster than its predecessor and up to 100x faster than NIT on the same hardware. libpcap, factored out around 1995, is the capture library every serious network tool uses: Wireshark, tshark, dumpcap, Zeek, snort, suricata, nmap, ngrep, dsniff. eBPF (Alexei Starovoitov, Linux 3.18, December 2014) extended the same architecture with a wider register file and a verifier; it is what powers most contemporary Linux observability. The technical beauty is the layering, not the tool.
·vivianvoss.net·
tcpdump — Vivian Voss
What Bazel taught us about Terraform
What Bazel taught us about Terraform
Bazel only rebuilds what changed. Terraform replans the world. Here's how the build-system playbook maps onto HCL.
·stategraph.com·
What Bazel taught us about Terraform