If you are an Emacs user with a keen eye, you will have noticed that in Emacs Lisp, code is data. After all, 'Lisp' is shorthand for 'List Processing'. One of E...
JSON looks like a faithful representation of JavaScript data, but JSON.stringify and JSON.parse can silently alter or discard information at system boundaries.
The ‘small’ web, the ‘slow’ web, or the ‘indie’ web – the non corporate, original style internet we knew and loved in the 90s and early 2000s (people just …
Somewhere at the bottom of the Forth and Clyde Canal, buried in the silt, there is a box of custom silicon that was right about almost everything. Back in 1988 a Scottish hi-fi company shipped a processor that checked the type and bounds of every memory access in hardware, garbage-collected its own heap in silicon, […]
This is absurdly cool: Puter compiled Firefox to WebAssembly such that the whole browser runs in another browser. Here's my blog, running in Firefox, running in WebAssembly, running in Chrome: …
John Battelle's Search Blog Have We Lost The Plot?
“Our lives have become dematerialized.” That phrase – from author Ian Bogost in a short piece in Wired – struck at the center of something I’ve been trying to verbaliz…
John Battelle's Search Blog The Rhymes of Tech History
It seems ridiculous now, but when I was a cub reporter covering the tech industry, our publication had an entire beat focused on word processing – and it was one of the most sought after assi…
John Battelle's Search Blog Again, What About the AI Ads?
Last month the FT reported that OpenAI was going all in on a “super app” that combines agents and coding, a move clearly designed to compete with Anthropic, which dominates the “g…
Lately I’ve been asking myself: what might artificial intelligence be good for besides answering questions and writing code? My answer is the latent spaces within AIs themselves will become a new medium for creativity. I will first explain what I … Continue reading →