<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>De Programmatica Ipsum</title><link>https://deprogrammaticaipsum.com/</link><description>Recent content on De Programmatica Ipsum</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 02 Nov 2026 05:03:00 +0200</lastBuildDate><atom:link href="https://deprogrammaticaipsum.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Issue 098: Apple</title><link>https://deprogrammaticaipsum.com/issue-98-apple/</link><pubDate>Mon, 02 Nov 2026 05:03:00 +0200</pubDate><guid>https://deprogrammaticaipsum.com/issue-98-apple/</guid><description><![CDATA[ <p>Welcome to the 98th issue of <em>De Programmatica Ipsum</em>, about <em>Apple</em>.</p>
<p>In this edition:</p>
<ul>
<li>Graham reminisces on his own experience as a software engineer at Apple and its <a href="/how-could-that-possibly-work/">peculiar methodology choices</a>.</li>
<li>Adrian points out Apple&rsquo;s <a href="/the-subtle-art-of-hating-developers/">infamous disdain</a> of third-party developers.</li>
<li>In our <a href="/category/videotheque/">Vidéothèque section</a>, we watch <a href="/steve-gets-trolled/">Steve Jobs getting trolled</a> during WWDC'97, and then French journalist <a href="/sonia-devillers/">Sonia Devillers</a> analyzing the terrible &ldquo;Crush&rdquo; advertising campaign.</li>
<li>In the <a href="/category/library/">Library section</a>, we review &ldquo;Apple: The Inside Story of Intrigue, Egomania, and Business Blunders&rdquo; by <a href="/jim-carlton/">Jim Carlton</a>, and &ldquo;Revolution in the Valley: The Insanely Great Story of How the Mac Was Made,&rdquo; by <a href="/andy-hertzfeld/">Andy Hertzfeld</a>.</li>
</ul>
<p>Download this issue in DRM-free <a href="/pdf/issue-098-apple.pdf">PDF</a> or <a href="/epub/issue-098-apple.epub">EPUB</a> format, and read it on your preferred device. You can also subscribe to <a href="/index.xml">our RSS feed</a>, featuring the full content of our articles.</p>]]></description><content:encoded><![CDATA[ <p>Welcome to the 98th issue of <em>De Programmatica Ipsum</em>, about <em>Apple</em>.</p>
<p>In this edition:</p>
<ul>
<li>Graham reminisces on his own experience as a software engineer at Apple and its <a href="/how-could-that-possibly-work/">peculiar methodology choices</a>.</li>
<li>Adrian points out Apple&rsquo;s <a href="/the-subtle-art-of-hating-developers/">infamous disdain</a> of third-party developers.</li>
<li>In our <a href="/category/videotheque/">Vidéothèque section</a>, we watch <a href="/steve-gets-trolled/">Steve Jobs getting trolled</a> during WWDC'97, and then French journalist <a href="/sonia-devillers/">Sonia Devillers</a> analyzing the terrible &ldquo;Crush&rdquo; advertising campaign.</li>
<li>In the <a href="/category/library/">Library section</a>, we review &ldquo;Apple: The Inside Story of Intrigue, Egomania, and Business Blunders&rdquo; by <a href="/jim-carlton/">Jim Carlton</a>, and &ldquo;Revolution in the Valley: The Insanely Great Story of How the Mac Was Made,&rdquo; by <a href="/andy-hertzfeld/">Andy Hertzfeld</a>.</li>
</ul>
<p>Download this issue in DRM-free <a href="/pdf/issue-098-apple.pdf">PDF</a> or <a href="/epub/issue-098-apple.epub">EPUB</a> format, and read it on your preferred device. You can also subscribe to <a href="/index.xml">our RSS feed</a>, featuring the full content of our articles.</p>
<p>We would like to thank our patrons who generously contribute every month (or have contributed in the past) to our work and help us run this magazine. Thank you so much! In alphabetical order: Adam Guest, Adrian Tineo Cabello, Benjamin Sheldon, Christopher Nascone, Colin Powell, Franz Lucien Moersdorf, Guillermo Ramos Álvarez, Jean-Paul de Vooght, Dr. Juande Santander-Vela, Patryk Matuszewski, Paul Hudson, Quico Moya, Roger Turner, Szymon Licau, and countless more leaving anonymous tips every month.</p>
<p>Enjoy this issue! Please share our articles on social media, or <a href="/contribute/">contribute</a> if you would like to support our work with a donation via <a href="https://liberapay.com/akosma/donate">Liberapay</a>.</p>
<p>Cover photo by <a href="https://unsplash.com/@zhiyue?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Zhiyue</a> on <a href="https://unsplash.com/photos/silhouette-of-people-standing-near-wall-7DOU5NlNIcE?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</p>
]]></content:encoded></item><item><title>How Could That Possibly Work?</title><link>https://deprogrammaticaipsum.com/how-could-that-possibly-work/</link><pubDate>Mon, 02 Nov 2026 05:02:02 +0200</pubDate><guid>https://deprogrammaticaipsum.com/how-could-that-possibly-work/</guid><description> &lt;p>I have got a pretty clear model of how software engineering works, or is supposed to work. Like most people, I am a product of my time and my experiences, with new information and experiences getting incorporated (or sometimes filtered) through the weight of my history. As someone who became a professional software engineer at the start of the 21st century, those experiences mostly come from the period when object-oriented programming hit the &lt;a href="https://deprogrammaticaipsum.com/the-hype-cycle-of-oop/">plateau of productivity&lt;/a> and agile software development rode the whole hype cycle, with some teams now being productive and many more mired in the trough of disillusionment through botched or misunderstood adoptions.&lt;/p></description><content:encoded><![CDATA[ <p>I have got a pretty clear model of how software engineering works, or is supposed to work. Like most people, I am a product of my time and my experiences, with new information and experiences getting incorporated (or sometimes filtered) through the weight of my history. As someone who became a professional software engineer at the start of the 21st century, those experiences mostly come from the period when object-oriented programming hit the <a href="https://deprogrammaticaipsum.com/the-hype-cycle-of-oop/">plateau of productivity</a> and agile software development rode the whole hype cycle, with some teams now being productive and many more mired in the trough of disillusionment through botched or misunderstood adoptions.</p>
<p>In many ways, this period coincides with the death of software engineering methodology. Methodology is the study of method; not the engineering of software, but the engineering of software engineering. The people who went on that famous Snowbird skiing holiday that generated the Agile manifesto were a mix of people who make software, people who manage people who make software, people who tell other people how to make software, and people who think about how people go about making software; with that last group being the methodologists. These people compared notes on the ways in which they worked, which were all biased towards so-called &ldquo;lightweight methods&rdquo; that optimise for learning what people want, making software that does that, then checking whether anything&rsquo;s changed. What they came up with was a document that said to do that. Get software out to your customer as quickly as you can, work with them to understand what to do next, and do not be afraid of finding out that they (now) want something else.</p>
<p>That is such broadly applicable (and vague) advice that it has never been superseded. Everyone thinks they are doing that, whether they are following by-the-book Scrum, a poorly understood Scrumbut process, or any of the other Lean, XP, Kanban etc. processes that you come across. The only real attempts at modernising methodology in the quarter-decade since Agile killed it have been devops and continuous delivery, and those have both been restatements of the ideas of agile software development. The core message of devops—that everyone working on software should work on the same thing—is the message about &ldquo;self-organising teams&rdquo; that is one of the principles behind agile software development. Continuous delivery is even a phrase borrowed from that same list of principles.</p>
<p>Instead of improvements to methodology, we have tool advocacy—the idea that a new programming language, large language model, or cloud deployment platform is a silver bullet that solves every problem. With no new approaches to software design since OOP, new programming languages offer &ldquo;post-object&rdquo; objects that are basically the same thing but with slightly different approaches to memory management or threading. Design itself has embraced the JFDI—Just Fucking Do It—ideology, with design choices being laundry lists of technologies to adopt where the choices are explicit at all.</p>
<p>That means that when I walk into a new software shop—or connect to their group video call, which is much more likely these days—I have a good idea of what to expect. There is going to be a two-pizza team, probably mostly programmers with an &ldquo;ops person&rdquo; or two, a &ldquo;QA person&rdquo; or two, and a &ldquo;product owner&rdquo;. When they describe their architecture, it is actually their technology laundry list, which is mostly open source components with maybe a couple of proprietary bits, commonly Slack, Github, AWS/GCloud/Azure, and perhaps the commercial version of something like MongoDB. They have a long &ldquo;backlog&rdquo; of tickets in a task tracker or a virtual kanban board, and once every 1-4 weeks the product owner suggests which ones to work on next. The team work out how many they think they can do, take those away, assign each of them to a programmer, and then when each programmer is done they assign their ticket to the QA, and then it goes to the ops person, and then it is in &ldquo;staging&rdquo; or &ldquo;pre-prod&rdquo;, and so on.</p>
<p>I also already have a good idea of why that team is getting slower at delivering on expectations from &ldquo;the business&rdquo;, why customers are becoming less satisfied with the product, and why a lot of the people are grumpy; and a few solid interventions to turn that around and create a high-performing team. You will <a href="https://sicpers.info/agency">find my rates very reasonable, by the way</a>.</p>
<p>While that is my model of how software teams <em>do</em> work and <em>should</em> work, not every team that I join <em>does</em> work like that. And some of the surprises are eye-opening. Take Apple, a company that I have worked for as both a contractor and employee, across multiple cross-functional teams led by sponsors in different divisions. You count up the number of people employed as software engineers and related roles and you are well into five figures. They report to multiple different sub-organizations in the company, with the effect that sometimes the first manager in common between two programmers who need to work together might be the CEO.</p>
<p>You will not find much information about how Apple works, beyond this <a href="https://www.apple.com/careers/pdf/HBR_How_Apple_Is_Organized_For_Innovation-4.pdf">HBR article</a> that they are happy to share on their website. What it describes is a functional, not geographic or sectoral, division of labour. Each engineer is in a team responsible for a different part of a huge, integrated system, with thousands of components that come together to make about half a dozen operating systems, productivity apps, creativity apps, server components, retail support systems, and so on—products that involve thousands of engineers where any pair might not directly communicate at all during the course of a release. How can that possibly work?</p>
<p>Well, the answer appears to be &ldquo;very nicely, thank you very much&rdquo;. They routinely have successful product launches, and a higher revenue or profit per employee than any of those two-pizza teams that are a better fit to my mental model. Fred Brooks and Melvin Conway tell us that communication problems should overwhelm productivity as organizations get larger, and yet here is one of the largest software orgs on the planet also carrying on being one of the most productive. Sure, there are bugs, and people who do not like the products, but that is largely the result of trying to please billions of people with the same products. The list of things that literally do not work, as a fraction of the list of things that <em>should</em> work, is not all that big.</p>
<p>And that is really the lesson I want to communicate when it comes to software engineering methodology: one that is more about you and me than it is about Apple. Any organization that is well outside your comfort zone is not necessarily doing it wrong, they are doing it differently. If my experience over the last 20 years had mostly been at Silicon Valley giants, then I would have a model of software engineering that matches what they do, and I would be very shocked by those little two-pizza teams who try to run a whole business from a single room. Approach new situations with humility, and an eagerness to adapt or discard your model. Of course look for opportunities to improve the system, but also pay attention to the things that do not need improving just because they do not align with your preconceptions. You might find that they work very nicely, thank you very much.</p>
<p>Cover photo by <a href="https://unsplash.com/@shelleypauls?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Shelley Pauls</a> on <a href="https://unsplash.com/photos/red-apple-fruit-I58f47LRQYM?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</p>
]]></content:encoded></item><item><title>The Subtle Art Of Hating Developers</title><link>https://deprogrammaticaipsum.com/the-subtle-art-of-hating-developers/</link><pubDate>Mon, 02 Nov 2026 05:02:01 +0200</pubDate><guid>https://deprogrammaticaipsum.com/the-subtle-art-of-hating-developers/</guid><description> &lt;p>For a short period in time, around the end of the 1990s and beginning of the 2000s, it seemed as if Apple actually cared about third-party developers hard at work creating software for their platforms. Of course this interest waned as soon as it was clear that Apple was on track to become the most valuable company on the face of Earth. Getting software developers interested in Apple was always a one-way road paved with obstacles.&lt;/p></description><content:encoded><![CDATA[ <p>For a short period in time, around the end of the 1990s and beginning of the 2000s, it seemed as if Apple actually cared about third-party developers hard at work creating software for their platforms. Of course this interest waned as soon as it was clear that Apple was on track to become the most valuable company on the face of Earth. Getting software developers interested in Apple was always a one-way road paved with obstacles.</p>
<p>During those weird times, around the turn of the millennium, Apple was desperately trying not to go bankrupt and forgotten. So Steve Jobs did something that he really hated doing: opening their platform for outside developers to create software for it.</p>
<p>In those long-forgotten days, Apple would have a strong commitment to open sourcing as many software thingies from their ecosystem as possible and touting that through a now largely <a href="https://web.archive.org/web/20020126133130/https://opensource.apple.com/">forgotten web page</a> nobody cares about. It also made sure Java developers <a href="https://web.archive.org/web/20011107065120/http://developer.apple.com/java/index.html">felt at home</a>, even allowing them to create Cocoa applications with it, instead of having to use the (ugh!) Objective-C programming language.</p>
<p>But there were clear limits to that unusual love for developers: for example, the iPod, which is <a href="https://sixcolors.com/post/2026/10/the-ipod-which-set-apple-on-its-course-turns-25/">celebrating its 25th anniversary</a> as this article hits the web, was famously closed for external developers, and never saw anything resembling an App Store for it. And to be honest, even the iPhone was about to suffer the same fate when it was first released in August 2007; we had to wait until March 2008 to have the confirmation of an upcoming &ldquo;iPhone SDK,&rdquo; which turned out to be, ironically enough, quite the cash cow for the company.</p>
<p>Because it is a quite accepted fact by all biographers of Apple and Steve Jobs that the man <em>hated</em> third-party software developers with passion. The man did not want to see software he had not personally approved on those machines he was selling.</p>
<p>It was not always like this. Here is a famous example: in <a href="https://archive.org/details/BYTE-MAGAZINE-COMPLETE/197705_Byte_Magazine_Vol_02-05_Interfacing/page/34/mode/2up">page 34 of the May 1977 issue of BYTE Magazine</a>, Steve Wozniak himself proceeded to describe in astonishing detail the ins and outs of the Apple II, arguably one of the most popular 8-bit computers of all time. His description included various snippets of sample code, board electronics schemas, and various screenshots.</p>
<blockquote>
<p>To me, a personal computer should be small, reliable, convenient to use and inexpensive. <br>
(…) <br>
The latest result of my design activities is the Apple-II which is the main subject of this system description article. The Apple-II builds upon this idea by providing a computer with more memory capability, a read only memory (ROM) BASIC interpreter, color video graphics as well as point graphics and character graphics, and extended systems software.</p>
</blockquote>
<p>Imagine Apple providing such circuit schemas nowadays, for example for their latest MacBook Pro with PROLED XDR touchscreen and M5 Max CPUs, enabling the <a href="https://asahilinux.org/">Asahi Linux</a> team to finally deliver a proper experience with full driver support. The dream!</p>
<p>But… no. The issue is that the idea of offering an appliance to consumers (a mantra that pretty much defines Apple in its entirety nowadays) is anathema to that of opening their (admittedly crippled) APIs to others to play with, no matter how hard said developers scream.</p>
<p>This attitude is (maybe) also what explains why Apple makes arguably the best computers on the market: fast, lightweight, snappy, and (relatively) secure. But also crippled by what increasingly appears as a bloated operating system, filled with a gazillion features hastily copied from others, exposing an array of quite broken APIs to software developers, and offering a set of programming tools to third-party developers that cannot be called anything else but pathetic.</p>
<p>These days, the only reason a software developer should choose a Mac as a software development tool is, precisely, to build software for the many Apple official operating systems (macOS, iOS, iPadOS, watchOS, tvOS, and whatever runs CarPlay or the recently released HomePod). The rest of the world could not care less about those restrictive APIs, or about the sad programming language (Swift) with which those developers should be fighting all day long to get shit done.</p>
<p>While the rest of the world moves into automation, CI/CD, DevOps, containers, Kubernetes, AI, and whatnot, developers stuck in the Apple ecosystem must still fight against Xcode and its various shenanigans to get anything done. The situation has not improved <a href="https://akos.ma/blog/courage/">in a whole decade</a>, which clearly shows that not giving a shit about developers is just about corporate policy at this point.</p>
<p>(Yes, this author knows that Apple has provided an implementation of the <a href="https://opencontainers.org/">OCI standard</a> in the form of the open-source container project <a href="https://github.com/apple/container">on GitHub</a>, but to be honest, I still have to see one of those containers in the wild at this point.)</p>
<p>Apple&rsquo;s legendary developer micromanagement chromosome has always been problematic, but right now it is ridiculous. Of course, they now own the complete software delivery platform, from the CPUs to the IDEs and the marketplaces, so it is ridiculous to expect any betterment in the developer experience anytime soon.</p>
<p>Sadly, the only way the company could react to this state of things would be a major liquidity and bankruptcy event, but Apple&rsquo;s cash reserves (unironically generated in great proportion through the hard of indie developers) have never been so humongous at any other time in history, so the recommendation of the author of these lines to any person new to IT is to avoid dealing with Apple-sanctioned developer tools as much as possible.</p>
<p>Cover photo by <a href="https://unsplash.com/@specphotops?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">John Warg</a> on <a href="https://unsplash.com/photos/primitage-road-no-warning-signs-signage-V12_AmFAINg?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</p>
]]></content:encoded></item><item><title>Steve Gets Trolled</title><link>https://deprogrammaticaipsum.com/steve-gets-trolled/</link><pubDate>Mon, 02 Nov 2026 05:01:02 +0200</pubDate><guid>https://deprogrammaticaipsum.com/steve-gets-trolled/</guid><description><![CDATA[ <p>You have almost certainly <a href="https://www.youtube.com/watch?v=oeqPrUmVz-o">seen the video before</a>, because it gets trotted out on LinkedIn every time someone wants to boast about how humble they are. The context: Apple&rsquo;s Worldwide Developer Conference (WWDC), 1997. The dramatis personae: an <a href="https://www.quora.com/History-of-Apple-Inc/History-of-Apple-Inc-Whos-the-guy-who-insults-Steve-Jobs-in-this-clip-of-WWDC-1997">alleged</a> Robert Hamisch, allegedly an engineer at a Sun Microsystems reseller, and Steven P. Jobs (verified, blue checkmark), CEO of Pixar, Inc. and advisor to Apple Computer, Inc. after the purchase of his computing startup, NeXT, Inc.</p>]]></description><content:encoded><![CDATA[ <p>You have almost certainly <a href="https://www.youtube.com/watch?v=oeqPrUmVz-o">seen the video before</a>, because it gets trotted out on LinkedIn every time someone wants to boast about how humble they are. The context: Apple&rsquo;s Worldwide Developer Conference (WWDC), 1997. The dramatis personae: an <a href="https://www.quora.com/History-of-Apple-Inc/History-of-Apple-Inc-Whos-the-guy-who-insults-Steve-Jobs-in-this-clip-of-WWDC-1997">alleged</a> Robert Hamisch, allegedly an engineer at a Sun Microsystems reseller, and Steven P. Jobs (verified, blue checkmark), CEO of Pixar, Inc. and advisor to Apple Computer, Inc. after the purchase of his computing startup, NeXT, Inc.</p>
<p>Maybe-Hamisch opens (in response to an earlier question about the demise of <a href="https://www.youtube.com/watch?v=_7Yz-NRBv4Q">OpenDoc</a>, a technology for building componentised document-centric software instead of monolithic applications) with &ldquo;more of a comment than a question&rdquo;:</p>
<blockquote>
<p>Mr. Jobs, you&rsquo;re a bright and influential man. It&rsquo;s sad and clear that on several counts you&rsquo;ve discussed you don&rsquo;t know what you&rsquo;re talking about. I would like for example for you to express in clear terms how say Java in any of its incarnations addresses any of the ideas embodied in OpenDoc. And when you&rsquo;re finished with that perhaps you could tell us what you personally have been doing for the last seven years.</p>
</blockquote>
<p>This person could have merely waited 29 years to grab a copy of <a href="https://geoffreycain.net/steve-jobs-in-exile/">Steve Jobs in Exile</a> and discovered that the answer to the last part is that Steve was raising a kid, running Pixar, and putting in sporadic levels of effort when it came to running NeXT, hyper-focusing on some details while leaving others untouched or even sabotaging parts of the work.</p>
<p>However, he stated the not-question, and the rest is history: Steve pauses, drinks his water, pauses some more, then gives an answer. An answer that simultaneously demolishes the request while also allowing for the possibility that it might be true. That Apple&rsquo;s responsibility is to start with the customer experience and work back to the technology they need, not to build cool technology and try to work out how to market it. Some mistakes will get made on the way, &ldquo;and that&rsquo;s good because it means decisions are being made&rdquo;.</p>
<p>And it is true; both that Apple became an experience-focused company that first gave us computers that do not crash when you so much as look at them, then as many songs as we could fit in our pockets, then real pocket web browsers. And also that they made mistakes along the way.</p>
<p>Let us go back to the original almost-question, which asked in what ways <em>Java</em> was comparable to OpenDoc. At the time, Apple were huge Java fanboys, and Gil Amelio (then CEO of Apple Computer) reports discussing Java and Rhapsody with Steve in their advisory meetings.</p>
<p>When you run a &ldquo;beleagured&rdquo; computer company with a tiny market share, Java offers clear benefits: any software someone writes in Java automatically becomes available on your platform. There are no <a href="https://deprogrammaticaipsum.com/behold-the-app-killers/">killer apps</a> for your computer any more, but then there are not any for your competitors&rsquo; computers either; everything runs everywhere. But more than that, Java offered the first scaled-up realisation of the object-oriented vision.</p>
<p>Apple had bet on Java with the <a href="https://www.infoworld.com/article/2169105/four-mac-based-ides-compared-which-should-you-choose.html">Mac OS Runtime for Java</a> (MRJ), which supported Java software and browser applets on the classic Mac OS. When they integrated the NeXT technology, they went even deeper, providing Cocoa-Java (née Yellow Box Java) access to the OPENSTEP APIs from the Java virtual machine, and even replatforming WebObjects entirely onto Java.</p>
<p>Launch a developer release of Rhapsody (the transitional, server version of OPENSTEP on the Mac that became Mac OS X) or the early versions of Mac OS X and you are running Java everywhere, because someone at Apple wrote it once. At various times, the TextEdit app, System Preferences, and even Login Window got ported to Java—and then ported back to Objective-C, after people noticed that their Macs ground to a halt for a minute or so while they loaded the Java runtime environment from a slow spinning hard disk.</p>
<p>Further, developers did not really get onboard either. A lot of long-running Mac developers were betting on Carbon (either directly, or indirectly via PowerPlant) to keep their investment in the classic Mac OS technology valid, the refugees from NeXT knew that Objective-C was superior to Java anyway so did not feel the need to switch, and people new to the platform similarly seemed happy enough with ObjC.</p>
<p>So in a way, maybe-Hamisch was correct. It <em>was</em> a mistake to bet on Java. But Steve was also correct: the goal was to make things that customers want, and there are a billion more Apple customers today than there were on that day in 1997.</p>
<p>Cover snapshot chosen by the author.</p>
]]></content:encoded></item><item><title>Sonia Devillers</title><link>https://deprogrammaticaipsum.com/sonia-devillers/</link><pubDate>Mon, 02 Nov 2026 05:01:01 +0200</pubDate><guid>https://deprogrammaticaipsum.com/sonia-devillers/</guid><description><![CDATA[ <p>On September 22nd, 1984, the then French president François Mitterand and West Germany chancellor Helmut Kohl visited the Douamont Ossary, paying tribute to the soldiers who fought in the infamous <a href="https://en.wikipedia.org/wiki/Battle_of_Verdun">battle of Verdun</a> during World War I. In a highly symbolic gesture, both chiefs of state <a href="https://en.wikipedia.org/wiki/Mitterrand_and_Kohl_holding_hands_in_Verdun">held hands</a> during the ceremony, showing the reconciliation between the French and the German, less than 40 years after the end of World War II, and merely 5 years before the fall of the Berlin Wall.</p>]]></description><content:encoded><![CDATA[ <p>On September 22nd, 1984, the then French president François Mitterand and West Germany chancellor Helmut Kohl visited the Douamont Ossary, paying tribute to the soldiers who fought in the infamous <a href="https://en.wikipedia.org/wiki/Battle_of_Verdun">battle of Verdun</a> during World War I. In a highly symbolic gesture, both chiefs of state <a href="https://en.wikipedia.org/wiki/Mitterrand_and_Kohl_holding_hands_in_Verdun">held hands</a> during the ceremony, showing the reconciliation between the French and the German, less than 40 years after the end of World War II, and merely 5 years before the fall of the Berlin Wall.</p>
<p>As part of this reconciliation, in 1991 started broadcasting in continental Europe a new, quite innovative binational TV channel, called <a href="https://en.wikipedia.org/wiki/Arte">&ldquo;Arte&rdquo;</a>; a very poetic name that apparently also serves as an acronym for &ldquo;Association relative à la télévision européenne.&rdquo; A distinctive feature of this channel, available in most cable TV subscriptions for decades, was that it included programs produced in both French and German languages, with subtitles or dubbing whenever required. Arte quickly gained recognition for the quality of its productions, the depth of its analysis, and the pan-European perspective it brought to otherwise segregated cultures.</p>
<p>A sign of the times, Arte is nowadays arguably the most interesting channel you could watch on YouTube and is also available as a specialized app in most smart TVs and all smartphones on the market. The content showcased therein is nothing short of astonishing, from documentaries to debate to music, and in the latter case, from live classical concerts to the wildest of electronica raves. It could be described as the antithesis to TikTok: a place where you can find &ldquo;content&rdquo; (what a horrendous word, really) that makes you think.</p>
<p>Remember thinking? Yeah.</p>
<p>Among those programs, there is this series of shorts called &ldquo;Le dessous des images,&rdquo; a French name that translates to &ldquo;Behind the Scenes&rdquo; or &ldquo;The Story Behind the Pictures.&rdquo; As is the tradition in Arte, the name of the series is also translated to German, in this case &ldquo;Mit offenen Augen,&rdquo; or literally, &ldquo;With Open Eyes.&rdquo; Both names complement each other and describe the idea very well: in each edition, French journalist <a href="https://fr.wikipedia.org/wiki/Sonia_Devillers">Sonia Devillers</a> explains the rationale, the creation, and the cultural impact of a particular photography or video in our world. A simple idea at first, yet a monumental and essential work.</p>
<p><em>Madame</em> Devillers started her career as a journalist in the French newspaper &ldquo;Le Figaro&rdquo; and progressively moved into radio and, finally, in 2022, started hosting &ldquo;Le dessous des images&rdquo; on Arte. Initially only available online, the series ended up being broadcasted on the main TV channel from 2023 onwards. In this program she dissects the ins and outs of those images that make our world: those memes that circulate online, those reels on Instagram, those photographs on press outlets. Images that flash into our brain and, in a single sight, tell a whole story about the (sometimes sad) state of our world.</p>
<p>Thus came to be a criticism of a particular advertising campaign from 2024 by Apple, previously available <a href="https://www.youtube.com/watch?v=ntjkwIXWtrc">on YouTube</a>, but do not click on that link! The video has been made private since and still is at the time of the publication of this article.</p>
<p>Apple diehards and fanbois will probably remember it well: a massive press, compressing a wide set of objects–a piano, computer screens, a record player, a typewriter, a guitar, books, a lamp, reminiscing of Pixar&rsquo;s <a href="https://en.wikipedia.org/wiki/Luxo_Jr.">&ldquo;Luxo,&rdquo;</a> an arcade game from the 1970s, sculptures, tables, and cans of paint–in a massive and frankly disgusting process, somehow inspired by the wonders of those <del>statistical bullshit machines</del> LLMs, falsely referred to as Artificial &ldquo;Intelligence.&rdquo;</p>
<p>And at the end of the video, in a perverse act of magic, all of those things merge and combine and disappear under the weight of the press in the shape of &ldquo;the new&rdquo; (at the time) iPad Pro.</p>
<p>I do not think we need to say more.</p>
<p>Apple has a long and fruitful <a href="https://en.wikipedia.org/wiki/Apple_Inc._advertising">history of advertising</a> feats. Come to mind the canonical examples, like the <a href="https://en.wikipedia.org/wiki/1984_(advertisement)">&ldquo;1984&rdquo;</a> Macintosh commercial directed by Ridley Scott himself, the 1999 <a href="https://en.wikipedia.org/wiki/Think_different">&ldquo;Think Different&rdquo;</a> campaign, or the memorable and goofy <a href="https://en.wikipedia.org/wiki/Get_a_Mac">&ldquo;I&rsquo;m a Mac, I&rsquo;m a PC&rdquo;</a> series, a real hit two decades ago.</p>
<p>But this campaign, well, needless to say, it was a miss. And the voices online claimed blood, as is usually the case with social media. In this case, truth be told, this author agrees with their observations. This campaign was a rare event in tasteless production, and even worse, coming from a company that has usually done a better job.</p>
<p>The backlash was such that in a very rare instance of corporate humility and real <a href="https://akos.ma/blog/courage/">courage</a>, Apple&rsquo;s vice president of marketing Tor Myhren publicly <a href="https://www.dezeen.com/2024/05/10/apple-ipad-advert-apology/">apologized</a> for it:</p>
<blockquote>
<p>We missed the mark with this video, and we&rsquo;re sorry.</p>
</blockquote>
<p>Apology accepted, Tor.</p>
<p>Some images, like that of Kohl and Mitterand holding hands, inspire a sense of history in the making, of progress, of reconciliation, leaving centuries of animosity behind them and opening the door to new possibilities. Some others, however, like in the case of Apple&rsquo;s infamous &ldquo;Crush&rdquo; advertising, feed a narrative of disdain and hubris that is unnecessary, horrid, and frankly tasteless. Such a narrative opens the door to the dismissal of centuries of work and craft in the name of a sacrosaint &ldquo;modernity&rdquo; that is not.</p>
<p>Maybe the most important message in this episode of &ldquo;Le dessous des images&rdquo; for those in our industry is that the past must not be crushed, synthesized, or forgotten but studied, cherished, and learned from. A lesson that many easily forget after joining the industry: their eyes blurred by all the hype around those shiny new things surrounding us all the time.</p>
<p>Watch <a href="https://www.youtube.com/watch?v=7ocdOYp56tk">&ldquo;Apple: la pomme écrasée par sa pub&rdquo;</a> (in French, but featuring autogenerated English subtitles) on the <a href="https://www.youtube.com/@dessousdesimages01">&ldquo;Le dessous des images&rdquo;</a> channel on YouTube.</p>
<p>Cover snapshot chosen by the author.</p>
]]></content:encoded></item><item><title>Jim Carlton</title><link>https://deprogrammaticaipsum.com/jim-carlton/</link><pubDate>Mon, 02 Nov 2026 05:00:02 +0200</pubDate><guid>https://deprogrammaticaipsum.com/jim-carlton/</guid><description><![CDATA[ <p>You may be surprised to hear it, but Apple Computer, Inc. did not survive the turn of the millennium. This was the topic of the 1997 book &ldquo;Apple: The Inside Story of Intrigue, Egomania, and Business Blunders&rdquo; by Jim Carlton. Despite still having a couple of years to go, it was clear to Carlton that Apple was on the way out, and that his book was a fitting epitaph for &ldquo;this once-great icon of American business.&rdquo; The only potential way for the company to survive would be a miracle.</p>]]></description><content:encoded><![CDATA[ <p>You may be surprised to hear it, but Apple Computer, Inc. did not survive the turn of the millennium. This was the topic of the 1997 book &ldquo;Apple: The Inside Story of Intrigue, Egomania, and Business Blunders&rdquo; by Jim Carlton. Despite still having a couple of years to go, it was clear to Carlton that Apple was on the way out, and that his book was a fitting epitaph for &ldquo;this once-great icon of American business.&rdquo; The only potential way for the company to survive would be a miracle.</p>
<p>In fairness, the history parts of the book are accurate as they go. Apple was already on a downturn by the time the Macintosh became a huge hit that turned the company into a multi-billion firm. John Sculley, the sugar-water seller from Pepsi who had successfully turned Apple into a lifestyle brand, had countered a boardroom coup from company co-founder Steve Jobs by turning it into a &ldquo;him or me&rdquo; situation, and the board had chosen Sculley.</p>
<p>Unfortunately, it turned out that Sculley did not know as much about turning small electronics devices into desirable customer experiences as Jobs did (and, as NeXT would discover, Jobs did not know as much about it as he thought he did either). Further, while Steve had told the board that he would take a few low-level employees to go and work on his startup, he had actually poached some key people which left gaps throughout the organisation.</p>
<p>Apple did still have some great people, including Jean-Louis Gassée, the man who had clued the board into Jobs&rsquo;s machinations, but none of the people at the top could agree. Or maybe John Sculley could not get along with anyone. Regardless, Gassée was out soon, having disagreed on how to position the Mac (he thought it was a premium product that should command a premium price; others wanted to extend down into the lower end of the market, including by licensing their technology to partners).</p>
<p>A pattern was established; the director of European operations would move into a key role in the Cupertino HQ. But it was not Gassée who became CEO in 1993, having already been fired and started Be. Ironically, Sculley was also interested in licensing Apple&rsquo;s technology, and the board could not stomach it, along with his focus on one of Gassée&rsquo;s pet projects, the Newton; he was forced out and replaced by COO Michael Spindler, who had come from the European office.</p>
<p>&ldquo;I never was an operations guy&rdquo;, said Spindler. As you can probably tell, a company that had a &ldquo;not operations guy&rdquo; as director of European operations, then as COO, had some problems. Those problems continued when Spindler became CEO. His great idea was a sell-off of the company. In fairness Apple and Sun Microsystems seem to have had a recurring meeting in the calendar about merging, but could never make it stick. Given that this was Spindler&rsquo;s only idea (the target of the merger being the variable part), he was out.</p>
<p>And so in came Gil Amelio, who only has the position as Apple&rsquo;s <em>second</em>-shortest CEO tenure because John Ternus needs to last another 438 days (from the day of this article&rsquo;s publication) to overtake him. Famous as the CEO who tried to point the sinking ship in the right direction, Amelio oversaw an Apple with confusing product lines, directionless engineering departments working on competing products, almost no cash, and inventory that mysteriously moved between warehouses depending on whether Apple or a reseller were preparing their accounts.</p>
<p>He is often derided as the worst person ever to run Apple, but only because the subsequent incumbent was very uncomplimentary. The Apple that Amelio took over had a few weeks of cash in the bank; the Apple that he left had a few months of cash in the bank, and the wherewithal to spend $400M on acquiring cutting-edge technology and expertise. However, part of that money went on hiring the CEO of the acquisition company as an advisor (Steve Jobs again), and the advice was that the CEO needed to go. Jobs himself was uninterested in running Apple, as he was having too much fun over at Pixar.</p>
<p>And that is where the story ends, as far as Carlton&rsquo;s publishers are concerned. It would be a short while before Apple appointed Jobs as the interim CEO (iCEO), but the book had already gone to the press at that point. Carlton suggests a few potential candidates for 1997&rsquo;s least-competitive CEO vacancy:</p>
<ul>
<li>Bob Frankenberg, formerly CEO of Novell.</li>
<li>Eric Schmidt, then CEO of Novell, potentially most famous today as the long-time CEO of Google.</li>
<li>Del Yocam, former Apple COO and CEO of Borland.</li>
</ul>
<p>He suggests whoever takes the job has their work cut out. With Windows NT being the clear leader in the operating system market, Apple&rsquo;s strategy of dividing its attention between the legacy Mac OS and the Rhapsody platform based on NeXT&rsquo;s technology looks hugely risky. Indeed, so bad a poison apple (sorry) is the Apple platform, that even the clone makers are trying to get out of the Mac market and into Wintel machines. Microsoft is already winning accounts in Apple&rsquo;s key markets, education and DTP, and Intel&rsquo;s new MMX technology makes their CPUs competitive with the otherwise superior PowerPC architecture for graphics-rich applications.</p>
<p>Carlton suggests that the best thing to do with Apple is to pursue the often-abandoned merger strategy; perhaps with a consumer electronics leader like Sony or Philips, perhaps with a telco like AT&amp;T or MCI. A telco merger would open up the opportunity to sell &ldquo;smart phones, or portable phones with computer features&rdquo;.</p>
<p>Let us see how that works out.</p>
<p>Cover photo by the author.</p>
]]></content:encoded></item><item><title>Andy Hertzfeld</title><link>https://deprogrammaticaipsum.com/andy-hertzfeld/</link><pubDate>Mon, 02 Nov 2026 05:00:01 +0200</pubDate><guid>https://deprogrammaticaipsum.com/andy-hertzfeld/</guid><description><![CDATA[ <p>The <a href="https://en.wikipedia.org/wiki/Twentieth_Anniversary_Macintosh">Twentieth Anniversary Macintosh</a>, released in April 1996 to commemorate the 20th anniversary of Apple, is a machine that few people remember, and with reason. It was named the 25th &ldquo;Worst Tech Product of All Time&rdquo; by PC World magazine, and to be honest, it was hideous and, needless to say, <em>insanely</em> expensive. Of course, as soon as Jobs returned to the company, the machine was promptly dismissed and phased out.</p>]]></description><content:encoded><![CDATA[ <p>The <a href="https://en.wikipedia.org/wiki/Twentieth_Anniversary_Macintosh">Twentieth Anniversary Macintosh</a>, released in April 1996 to commemorate the 20th anniversary of Apple, is a machine that few people remember, and with reason. It was named the 25th &ldquo;Worst Tech Product of All Time&rdquo; by PC World magazine, and to be honest, it was hideous and, needless to say, <em>insanely</em> expensive. Of course, as soon as Jobs returned to the company, the machine was promptly dismissed and phased out.</p>
<p>The word &ldquo;insanely&rdquo; is highlighted in the previous paragraph, because it is an adverb that was particularly cherished by <a href="/steve-gets-trolled/">Steve Jobs</a>. And it is no coincidence that it appears on the title of this month&rsquo;s Library choice: <a href="https://en.wikipedia.org/wiki/Revolution_in_the_Valley">&ldquo;Revolution in the Valley: The Insanely Great Story of How the Mac Was Made,&rdquo;</a> by <a href="https://en.wikipedia.org/wiki/Andy_Hertzfeld">Andy Hertzfeld</a>, a noted member of the original Apple Macintosh team.</p>
<p>This book was published by O&rsquo;Reilly in 2005, precisely 21 years after the original Macintosh was released, marking the actual &ldquo;Twentieth Anniversary&rdquo; celebration.</p>
<p>Mr. Hertzfeld first poured the memories onto a web page in early 2004, still available at the time of this writing, with the tantalizing and peculiar domain name <a href="https://www.folklore.org/">Folklore.org</a>. The book is simply a beautiful printed copy of the material on that website, and another example of a &ldquo;coffee table book,&rdquo; just like <a href="/jens-muller-and-julius-wiedemann/">&ldquo;The Computer&rdquo;</a> by Jens Müller and Julius Wiedemann or <a href="/alex-wiltshire-john-short/">&ldquo;Home Computers&rdquo;</a> by Alex Wiltshire and John Short, two beautiful and interesting books we have talked about in previous editions of this magazine.</p>
<p>&ldquo;Revolution in the Valley&rdquo; is as fun to read as it is to explore, telling the story of the making of the Macintosh in short <em>vignettes</em>. Each of the chapters, which to a large degree can be read separately from one another, focuses on this or that particular aspect of the final product. The making of the software, the signatures of the team inside the enclosure, the clash between Steve Jobs and <a href="https://en.wikipedia.org/wiki/Adam_Osborne">Adam Osborne</a>, the evolution of the iconography by <a href="https://en.wikipedia.org/wiki/Susan_Kare">Susan Kare</a>, the disk drive, <a href="/programming-the-liberal-arts/">Microsoft BASIC</a> (or its lack thereof), <a href="https://en.wikipedia.org/wiki/Burrell_Smith">Burrell Smith</a>&rsquo;s passion for pineapple pizza, the meaning of the &ldquo;Real Artists Ship&rdquo; mantra, and so much more.</p>
<p>The book expands on the website in one particular aspect, making it a gem and a treasure to hold and explore: the photography. The illustrations are sumptuous, from early paper sketches of various ideas to the development of prototypes to magazine covers and even printouts of drawings made with early versions of <a href="https://en.wikipedia.org/wiki/MacPaint">MacPaint</a>.</p>
<p>And yes, there are a lot of coding shenanigans spread throughout the book (we know our audience very well, see?), including how Andy Hertzfeld thought that lines of code were a meaningless metric (and rightfully so), the use of the Hungarian notation developed by <a href="https://en.wikipedia.org/wiki/Charles_Simonyi">Charles Simonyi</a> from Microsoft, which was quite on vogue at the time, or how one <a href="https://en.wikipedia.org/wiki/Bill_Atkinson">Bill Atkinson</a> programming year was equivalent, according to Steve Jobs, to six standard man-years of coding (and how Hertzfeld thought this was a modest estimate).</p>
<p>The first Mac was, in hindsight, quite a watershed moment for the industry, so advanced for its time, that it took Microsoft 10 years from that point to release a proper user interface on their own operating system. Simultaneously, Apple was busy becoming almost extinct, only to be spectacularly reborn again in the 2000s, but that is a different folklore for somebody else to talk about.</p>
<p>Cover photo by the author.</p>
]]></content:encoded></item><item><title>Issue 097: File Systems</title><link>https://deprogrammaticaipsum.com/issue-97-file-systems/</link><pubDate>Mon, 05 Oct 2026 05:03:00 +0200</pubDate><guid>https://deprogrammaticaipsum.com/issue-97-file-systems/</guid><description><![CDATA[ <p>Welcome to the 97th issue of <em>De Programmatica Ipsum</em>, about <em>File Systems</em>, starting our 9th volume.</p>
<p>In this edition:</p>
<ul>
<li>Graham <a href="/no-file-system-is-fit-for-purpose/">wonders</a> whether the idea of a hierarchical file system makes sense at all in 2026.</li>
<li>Adrian goes back in time to find the origin of the <a href="/everything-is-a-file/">&ldquo;everything is a file&rdquo;</a> moniker.</li>
<li>In our <a href="/category/videotheque/">Vidéothèque section</a>, Adrian reviews a documentary about the Unix file system <a href="/at-t-tech-channel/">on the AT&amp;T Tech Channel</a>.</li>
<li>In the <a href="/category/library/">Library section</a>, Graham reviews the <a href="/apple-computer-inc/">Apple Computer, Inc.</a> developer manual explaining the file system in the 1990s.</li>
</ul>
<p>Download this issue in DRM-free <a href="/pdf/issue-097-file-systems.pdf">PDF</a> or <a href="/epub/issue-097-file-systems.epub">EPUB</a> format, and read it on your preferred device. You can also subscribe to <a href="/index.xml">our RSS feed</a>, featuring the full content of our articles.</p>]]></description><content:encoded><![CDATA[ <p>Welcome to the 97th issue of <em>De Programmatica Ipsum</em>, about <em>File Systems</em>, starting our 9th volume.</p>
<p>In this edition:</p>
<ul>
<li>Graham <a href="/no-file-system-is-fit-for-purpose/">wonders</a> whether the idea of a hierarchical file system makes sense at all in 2026.</li>
<li>Adrian goes back in time to find the origin of the <a href="/everything-is-a-file/">&ldquo;everything is a file&rdquo;</a> moniker.</li>
<li>In our <a href="/category/videotheque/">Vidéothèque section</a>, Adrian reviews a documentary about the Unix file system <a href="/at-t-tech-channel/">on the AT&amp;T Tech Channel</a>.</li>
<li>In the <a href="/category/library/">Library section</a>, Graham reviews the <a href="/apple-computer-inc/">Apple Computer, Inc.</a> developer manual explaining the file system in the 1990s.</li>
</ul>
<p>Download this issue in DRM-free <a href="/pdf/issue-097-file-systems.pdf">PDF</a> or <a href="/epub/issue-097-file-systems.epub">EPUB</a> format, and read it on your preferred device. You can also subscribe to <a href="/index.xml">our RSS feed</a>, featuring the full content of our articles.</p>
<p>We would like to thank our patrons who generously contribute every month (or have contributed in the past) to our work and help us run this magazine. Thank you so much! In alphabetical order: Adam Guest, Adrian Tineo Cabello, Benjamin Sheldon, Christopher Nascone, Colin Powell, Franz Lucien Moersdorf, Guillermo Ramos Álvarez, Jean-Paul de Vooght, Dr. Juande Santander-Vela, Patryk Matuszewski, Paul Hudson, Quico Moya, Roger Turner, Szymon Licau, and countless more leaving anonymous tips every month.</p>
<p>Enjoy this issue! Please share our articles on social media, or <a href="/contribute/">contribute</a> if you would like to support our work with a donation via <a href="https://liberapay.com/akosma/donate">Liberapay</a>.</p>
<p>Cover photo by <a href="https://unsplash.com/@qwitka?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Maksym Kaharlytskyi</a> on <a href="https://unsplash.com/photos/file-cabinet-Q9y3LRuuxmg?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</p>
]]></content:encoded></item><item><title>No File System Is Fit For Purpose</title><link>https://deprogrammaticaipsum.com/no-file-system-is-fit-for-purpose/</link><pubDate>Mon, 05 Oct 2026 05:02:02 +0200</pubDate><guid>https://deprogrammaticaipsum.com/no-file-system-is-fit-for-purpose/</guid><description> &lt;p>The hierarchical file system—a directed graph database that is not quite an adirected tree—in which every node is either a container of other nodes that has no content itself (a folder, or directory, or drawer for those lucky enough to work with Amiga Workbench) or a leaf node that has content but no other nodes (a file). To effectively use one of those, you need random-access storage; if you are using a tape you do not bother, you have a single table of contents at the front with offsets to the starts of the various files. If you use punchcards then your filing system is literally the cabinets full of drawers and folders you keep the cards in.&lt;/p></description><content:encoded><![CDATA[ <p>The hierarchical file system—a directed graph database that is not quite an adirected tree—in which every node is either a container of other nodes that has no content itself (a folder, or directory, or drawer for those lucky enough to work with Amiga Workbench) or a leaf node that has content but no other nodes (a file). To effectively use one of those, you need random-access storage; if you are using a tape you do not bother, you have a single table of contents at the front with offsets to the starts of the various files. If you use punchcards then your filing system is literally the cabinets full of drawers and folders you keep the cards in.</p>
<p>Early examples of such file systems have a single level of structure; you create directories at the top level, and files in those directories (this actually means that there are two levels of directory, because there must be a top-level index to find the directories you create). These have one of two purposes:</p>
<ol>
<li>Help a person organise their files in a way that makes it easier to find them.</li>
<li>Keep multiple people who use a time-sharing system from getting in each others&rsquo; way, by giving them separate areas to store their files.</li>
</ol>
<p>In 1965, someone on the Multics project notices that the laws of physics do not apply to computers, and you can <a href="https://dl.acm.org/doi/abs/10.1145/1463891.1463915">fit a folder inside another folder</a>. The arbitrarily-nested hierarchical file system is born. Now users on Multics and its progeny, Unix, can organise their files, and do so while keeping out of each others&rsquo; way! Access control stops any account reading, writing, or deleting another account&rsquo;s files, unless someone who can change the rules gives that account explicit permission.</p>
<p>Unfortunately, as anybody who ever deleted <code>/vmunix</code> or <code>C:\COMMAND.COM</code> knows, saving user accounts from each other is not the whole story. We also need to save the operating system from the people using the computer. This means a new requirement:</p>
<ol start="3">
<li>Keep multiple people who use a time-sharing system from interfering with the operating system, by making operating system files inaccessible from regular accounts.</li>
</ol>
<p>But because we already shipped the multi-user filesystem and designed the file-access APIs around it, we cannot add this requirement to the model. So we invent a fiction: the operating system is another user account, or a collection of user accounts, that share the filesystem with the actual people who use the computer. So maybe the mail server has its own user account, and the print spool daemon, and so on.</p>
<p>Unfortunately, even this does not solve the problem, because the person who runs the computer needs to be able to configure, patch, and update the operating system. That person then gets access to an account that can work with all the files on the filesystem, starting at the root of the whole hierarchy: call it the root account.</p>
<p>They get that access, but they do not <em>need</em> that access, and indeed they should not <em>have</em> that access, because a person with the root account can violate requirements 2 and 3: they can get in another user&rsquo;s way, and they can interfere with the operating system. Ideally the filesystem would help with requirement 1 and strictly enforce requirements 2-3, but the user-permissions model does not lend itself to that possibility. So add another layer to the cake: mandatory access controls stop people from fiddling with particular files, even if their user account has discretionary permission to operate on those files.</p>
<p>Unfortunately, computers no longer exist in isolation (nor did they at the time; but we assumed that someone who connected up a tape drive and spooled the contents of the tape into their local installation had a reason for doing so). People download files from the internet, and they download files from the internet that are programs, and they expect to run those programs, and they do not want for one bad (or well-intentioned but poorly coded) program to break the files they use in other programs, or even to read those files unless that is their explicit intent. Time to add a new requirement:</p>
<ol start="4">
<li>Keep the documents that a person creates using a computer private and intact, even when that person runs arbitrary software.</li>
</ol>
<p>Mandatory access control no longer cuts it; now the filesystem needs a dynamic level of protection, in which files created by different processes are maybe usable from other processes run by the same user account, but maybe not. It depends on what those processes are, and what the files are, too. And where the files came from, and whether the person using the computer intended to get the file, or whether the process they ran just sorta created it for them without telling them. And also, those processes want to keep their own files, to cache downloads, to store the working set from complex computations, to save configuration options, and for whatever purposes.</p>
<ol start="5">
<li>Keep the files that arbitrary software creates private and intact, even when a person uses that or other arbitrary software.</li>
</ol>
<p>Oh, and by the way, while all of that is going on, there are now so many files that even requirement 1 is long forgotten. People cannot remember whether that important report due tomorrow is in their <code>Desktop</code> folder, or in <code>Desktop/Desktop.old</code>, or in <code>Desktop/Desktop.old/from_dell</code>, or in their <code>Documents</code> folder, or in some unique folder that is managed by whichever app it is they use to edit the file.</p>
<ol start="6">
<li>Help a person to find documents in a labyrinthine structure of folders that they do not understand.</li>
</ol>
<p>…it is always possible that they accidentally deleted the file they need, or that they kept the file but deleted a critical section of the report that, on reflection, they realised the audience is actually going to care about.</p>
<ol start="7">
<li>Help a person to browse and restore previous versions of a file, and deleted files.</li>
</ol>
<p>…or maybe they were just saving the file as the battery on their laptop finally discharged?</p>
<ol start="8">
<li>Provide resilience to common hardware failures that lead to incorrectly or partially committed filesystem changes.</li>
</ol>
<p>…or, no, wait, I remember, the correct version of the report is on my desktop, I have been editing the version on my laptop, I will get that other version once it syncs via my cloud provider.</p>
<ol start="9">
<li>(to a high number, probably around 94). Act as a cache to a remote file storage system; maintain most recently-used files locally while still evicting files as needed to make space for other files a person requests; resolve version conflicts when the remote version and the local version both have changes since the last sync point; resolve conflicts when one version has changes and the other version is deleted; retain confidentiality and integrity over the remote sync interface…</li>
</ol>
<p>And we need to go back and redefine the idea of &ldquo;users of a time-sharing system&rdquo; that we mentioned in requirements 2-3, and invented in about 1965. You see, those time-sharing systems have changed somewhat. Some are little portable devices, so the person whose &ldquo;account&rdquo; is &ldquo;logged in&rdquo; gives them to a passing acquaintance to share a fun meme they saw. Some are big wall-mounted devices, so the person is using the system alongside six other people who can all see and interact with it.</p>
<p>But yeah, sure, I guess it is neat that the last time we improved the file system was ZFS circa 2005, and that the other file systems are still catching up.</p>
<p>Photo by <a href="https://unsplash.com/@jackkrzysik?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Jack Krzysik</a> on <a href="https://unsplash.com/photos/green-and-white-cardboard-boxes-r1oeiXFHQIY?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</p>
]]></content:encoded></item><item><title>Everything Is A File</title><link>https://deprogrammaticaipsum.com/everything-is-a-file/</link><pubDate>Mon, 05 Oct 2026 05:02:01 +0200</pubDate><guid>https://deprogrammaticaipsum.com/everything-is-a-file/</guid><description><![CDATA[ <p>In page 227 of the wonderful book &ldquo;The Dream Machine&rdquo; by M. Mitchell Waldrop, covered in a <a href="/j-c-r-licklider-m-mitchell-waldrop/">previous issue</a>, telling the story of the early development of computers, we can learn that <a href="https://en.wikipedia.org/wiki/Fernando_J._Corbat%C3%B3">Fernando Corbató</a> and his team were busy in 1965 adding a new feature to <a href="https://en.wikipedia.org/wiki/Compatible_Time-Sharing_System">CTSS</a>, the first interactive and multi-user operating system for the <a href="https://en.wikipedia.org/wiki/IBM_7090#IBM_7094">IBM 7094</a> computer. That feature was, you guessed it, a file system.</p>]]></description><content:encoded><![CDATA[ <p>In page 227 of the wonderful book &ldquo;The Dream Machine&rdquo; by M. Mitchell Waldrop, covered in a <a href="/j-c-r-licklider-m-mitchell-waldrop/">previous issue</a>, telling the story of the early development of computers, we can learn that <a href="https://en.wikipedia.org/wiki/Fernando_J._Corbat%C3%B3">Fernando Corbató</a> and his team were busy in 1965 adding a new feature to <a href="https://en.wikipedia.org/wiki/Compatible_Time-Sharing_System">CTSS</a>, the first interactive and multi-user operating system for the <a href="https://en.wikipedia.org/wiki/IBM_7090#IBM_7094">IBM 7094</a> computer. That feature was, you guessed it, a file system.</p>
<blockquote>
<p>CTSS&rsquo;s fundamental model of human-computer interaction (…) can still be found today at the heart of MS-DOS, Windows, Macintosh, Linux, and many other operating systems. So can such innovations as CTSS&rsquo;s &ldquo;hierarchical&rdquo; file system, a scheme devised by Corbató and his team to enable individual groups and individual users to organize their personal files into &ldquo;directories&rdquo; and &ldquo;subdirectories&rdquo; on the 7094&rsquo;s hard disks. (In modern-day Windows and Macintosh systems, of course, such directories are called folders.)</p>
</blockquote>
<p>Waldrop forgot to mention Linux, itself a derivative of Unix, where a quick <code>man 7 hier</code> command will display the complete description of the filesystem hierarchy, finally providing some light on the intricacies of the various <code>/etc</code>, <code>/usr</code>, <code>/home</code>, and <code>/var</code> folders.</p>
<p>Beyond the mere organization of data, the Unix lineage of operating systems took Corbató&rsquo;s hierarchical concept and elevated it into something akin to an arcane voodoo artiluge. This is true of Linux, macOS, and the BSDs, but not so much Android and iOS, because let us be honest, it is quite tough to use a command line with these last two, and iOS&rsquo;s &ldquo;File&rdquo; application is an absolute clusterfuck of an idea.</p>
<p>This &ldquo;feature&rdquo; of a voodoo-like file system is probably one of the most salient aspects of Unix-based systems, and it is captured in a famous, four-word axiom of the Unix philosophy: <em>everything is a file.</em> This is one of those phrases that have echoed throughout the ages, similar to <em>you are doing it wrong</em> or <em>the network is the computer</em>; or at least, it did until file systems disappeared beneath the rugged interface of an S3 bucket somewhere in 2005.</p>
<p>To understand the reason behind this idea, we have to look back to the creators of Unix at Bell Labs: <a href="https://en.wikipedia.org/wiki/Ken_Thompson">Ken Thompson</a>, <a href="https://en.wikipedia.org/wiki/Dennis_Ritchie">Dennis Ritchie</a>, and <a href="https://en.wikipedia.org/wiki/Douglas_McIlroy">Douglas McIlroy</a>. When they were building Unix from the ashes of the overly complex Multics project, they sought simplicity. Instead of creating a dozen different APIs to talk to a hard drive, a keyboard, a printer, and a network connection, they created just one.</p>
<p>Scarcity is the actual mother of invention, because nobody needed this, really.</p>
<p>They decided that if an abstraction worked for a text document, it should work for everything. (I know, stay with me.) In their worldview, a file was simply a stream of bytes. Consequently, the same system calls used to manipulate a text file (<code>open()</code>, <code>read()</code>, <code>write()</code>, and <code>close()</code>) could be used to interact with virtually every component of the computer. Because why not.</p>
<p>(See? The world was much simpler back in the day.)</p>
<p>Take a walk through the <code>/dev</code> (device) directory on any modern Linux or macOS machine, and you are no longer looking at data stored on a magnetic platter or solid-state drive; you are looking at the hardware itself, masquerading as files!</p>
<p>It goes even deeper. When you type on your keyboard or watch text scroll on your screen, you are interacting with a TTY device (like <code>/dev/tty</code>), a direct descendant of the physical <a href="https://en.wikipedia.org/wiki/Teleprinter#Teletype_Corporation">Teletype</a> machines of the 1970s. If you wanted to send text directly to a parallel-port printer in the early days of Linux, you did not need a dedicated printing application; you simply redirected your text into the printer&rsquo;s file: <code>echo &quot;Hello World&quot; &gt; /dev/lp0</code>. Of course, you would still need a printer, which can be a problem in and of itself.</p>
<p>There are &ldquo;block devices&rdquo; like <code>/dev/sda</code> or <code>/dev/nvme0n1</code>, which represent your actual physical hard drives. You can read them directly, bypassing the traditional file system entirely, simply by pointing a tool like <code>cat</code> or <code>dd</code> at them.</p>
<p>Then there are the esoteric, conceptual devices. Need an endless stream of zeroes to wipe a hard drive? Read from <code>/dev/zero</code>. Need a place to send error messages so you never have to see them again? Throw them into the abyss of <code>/dev/null</code>, the file system&rsquo;s built-in black hole. Need cryptographic randomness? Just read from <code>/dev/urandom</code>, where the kernel distills the chaotic entropy of hardware interrupts into a stream of random bytes. Try it by yourself: run <code>cat /dev/urandom | hexdump -C | head -n 5</code> in your nearest terminal (well, do not try it if you are running Windows) and you will see some… well, random garbage printed out.</p>
<p>The &ldquo;everything is a file&rdquo; philosophy enters the realm of LSD when we look at Inter-Process Communication, or &ldquo;IPC&rdquo;. How do two completely isolated programs talk to each other in Unix? By reading and writing to files, of course!</p>
<p>The most iconic manifestation of this is the pipe (represented by the <code>|</code> character in your shell). Conceived by Douglas McIlroy, the pipe takes the standard output (file descriptor 1) of one program and connects it to the standard input (file descriptor 0) of another. But Unix also allows for <em>named pipes</em>: again, you guessed it: persistent files residing on the disk that act as FIFO (First In, First Out) queues. One program opens the file and writes to it, another opens the file and reads from it. To the programs involved, they are just doing standard file I/O.</p>
<p>This abstraction scales up to networking. When you browse the web, your browser communicates over a network socket. In Unix, that socket is treated as a file descriptor. The program writes its HTTP request to the &ldquo;file&rdquo; and reads the web server&rsquo;s response from that same &ldquo;file.&rdquo; The underlying networking stack (TCP handshakes, IP routing, Ethernet frames) is completely hidden behind the familiar <code>read()</code> and <code>write()</code> interface. Even complex virtualization tools like <a href="/shipping-your-computer/">Docker</a> rely on this, listening for instructions via a Unix domain socket, usually located at <code>/var/run/docker.sock</code>. Anyone reading this who has ever debugged REST APIs using <code>curl</code> knows this mechanism very well.</p>
<p>If Unix established the &ldquo;everything is a file&rdquo; paradigm, the research operating system <a href="https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs">Plan 9 from Bell Labs</a> perfected it, and modern Linux heavily borrowed from there, taking it from LSD to full-on <a href="https://en.wikipedia.org/wiki/Ayahuasca">Ayahuasca</a> level.</p>
<p>Boot up a Linux machine and navigate to <code>/proc</code>. The files you see there take up exactly zero bytes on your hard drive. They exist entirely in the computer&rsquo;s RAM, dynamically generated by the kernel on the fly. Magic!</p>
<p>The <code>/proc</code> (process) filesystem is an illusion that maps the internal state of the operating system into the file hierarchy. Want to know what CPU you are running? You do not need a specialized hardware diagnostic tool; you just type <code>cat /proc/cpuinfo</code>. Want to see how much memory is free? <code>cat /proc/meminfo</code>.</p>
<p>Every running program on your computer has a dedicated directory in <code>/proc</code> named after its Process ID (PID). Inside that directory are files containing everything from the exact command used to launch the program, to the environmental variables it holds, to the specific areas of memory it is currently using.</p>
<p>Similarly, the <code>/sys</code> (sysfs) directory provides a window into the Linux kernel&rsquo;s device model. If you are on a Linux laptop and want to check your battery percentage, you do not need a graphical widget. Oh noes, that is for simpleton users. No, you, my dear IT expert, you can simply <code>cat /sys/class/power_supply/BAT0/capacity</code>. Want to change the brightness of your screen? Just write a new number into <code>/sys/class/backlight/intel_backlight/brightness</code>. <em>Und so weiter.</em></p>
<p>Good luck remembering all of those commands, but hey! Now you know you can.</p>
<p>The Unix file abstraction is considered by many one of the greatest engineering triumphs in software history. Sadly, those &ldquo;many&rdquo; are not simple computer users, but actual experts of the industry. Of course, if you look at it closely, yes, it enables composability. Keyboards, displays, network connections, random number generators, and kernel diagnostics all share the exact same interface as a simple text file, making this standard toolkit universally applicable.</p>
<p>I personally think that the Unix file system analogy is not enough. We should be able to listen to Mark Snow&rsquo;s famous &ldquo;X-Files Theme&rdquo; by just typing <code>cat /music/spotify/track/3pDZSfOSszYWMYygDiuPJx</code>. We should be able to swipe Tinder profiles using <code>left /social/tinder/34564576891457</code>. We should be able to search and buy plane tickets with <code>fly /AF/CDG/PPT/business/2027-03-02/2027-04-10</code>. You get the idea. And to be honest, none of the scenarios above would be too complicated to implement (well, except the airline thing, really).</p>
<p>But the truth is that in terms of usability, let us be honest, it is a terrible system. Even for people from the world of IT, it is usually impossible to actually remember all of the myriad combinations available, and which one represents what. You might have a few in mind, or you might create an <code>alias</code> to quickly type one or the other, but the fact that &ldquo;everything is a file&rdquo; is barely more than a curiosity to pretty much everyone. Add some complexity points if you switch from Linux to FreeBSD, and suddenly you must <code>cat</code> for files in other locations.</p>
<p>As I said at the beginning, we have not cared about file systems for more than 20 years now. (Remember when you could not have spaces in DOS filenames until circa 1995? If you can, I have bad news for you: you are old.) In Linux, arguably the most nerdy of all operating systems, you might still be choosing between ZFS, EXT, BTRFS, or XFS when formatting a new drive, but nobody cares anymore, really. Windows users are fine with NTFS, Mac users do not even know what <a href="https://en.wikipedia.org/wiki/Apple_File_System">APFS</a> is. Gone are the days of using <code>fdisk</code>. Nostalgic OS/2 users might even remember <a href="https://en.wikipedia.org/wiki/High_Performance_File_System">HPFS</a> and shed a tear. Most users probably even use some kind of encryption on top of their file system, just in case. And some ultra-nerd Linux users might be even be interested in <a href="https://gobolinux.org/">Gobolinux</a>, a distribution that literally reorganized the whole hierarchy for… reasons.</p>
<p>These days people are more interested in knowing whether we have a fast SSD in our home computer, or if we have properly configured Ceph, Gluster, or Longhorn within our Kubernetes cluster. And if all else fails, you can always format your USB thumbdrives with <a href="https://en.wikipedia.org/wiki/File_Allocation_Table">FAT32</a> and make sure that virtually every operating system on Earth can read and write to it.</p>
<p>But whatever you do, remember that this article only caters to systems deriving from Unix, and in particular, do not even think of creating a file named <code>CON</code> on your Windows hard disk. <a href="https://superuser.com/questions/86999/why-cant-i-name-a-folder-or-file-con-in-windows">You have been warned.</a></p>
<p>Cover photo by <a href="https://unsplash.com/@alexeydemidov?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Alexey Demidov</a> on <a href="https://unsplash.com/photos/graphical-user-interface-application-teams-7bWbVyjd8mA?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</p>
]]></content:encoded></item></channel></rss>