Not Before Time

The practical design document NotBeforeTime v2.6 explains how existing technologies can be assembled to create a universal way to time-lock information accessed by everyday software most people already use. Underpinned by tried-and-true mathematics, this is a pragmatic tool that anyone will be able to use. The design document explains in mostly non-technical language how: Not Before Time combines existing technology to give three strong guarantees that particular information: will not be readable before a certain future time was not created before a certain past date and time was not electronically signed before a certain past time These support human rights, democracy, health and business. ...

February 11, 2026 · 317 words · Dan Shearer

Opportunity in GDPR Article 28

The detail of the GDPR and its implied computer science contain a solution for sharing secrets according to law. This continues to be true in 2026, as the Digital Omnibus Regulation takes shape. Executive Summary The GDPR sets up a conflict in trust between companies in particular circumstances, which can only be resolved by using the automation of a cryptographic audit trail with particular properties as described below. Problem Statement Under the EU’s GDPR law virtually every company is a Controller, and virtually all Controllers use at least one Processor. When a Processor is engaged, the GDPR requires that a contract is signed with the very specific contents spelled out in clause 3 of Article 28. The GDPR requires that Controllers and Processors cooperate together in order to deliver data protection, and this cooperation needs to be very carefully managed to maintain the security and other guarantees that the GDPR also requires. That’s what this mandatory contract is intended to achieve. ...

February 9, 2026 · 2799 words · Dan Shearer

How to Replace Windows NT with Linux

When Linux was a Struggling Challenger In 1999 I joined my first startup, Linuxcare in San Francisco. The Linuxcare story is a quintessential United States dot-com bubble narrative, featuring a famous venture capital fund, massive growth, a failed IPO, a fancy new ex-IBM CEO resigning under a cloud. Founded in 1998, it was designed to be the “800 number for Linux”, a concept that history shows was a good one at the time and it could have worked. ...

February 8, 2026 · 9525 words · Dan Shearer

Fossil

The Fossil source code management system is the only realistic alternative to Git, and has had 15 years of development and testing. After helping Fossil make some changes I now use Fossil for many projects. I also use Git on various software forges, and Mercurial if I need to work with code from the Mozilla project. One-sentence Summary - Why Fossil? 21st century privacy and reproducibility require code to be in an append-only, non-repudiable Merkle tree with strong crytographic guarantees, and that is what Fossil is by design. ...

February 8, 2026 · 2709 words · Dan Shearer

LumoSQL

LumoSQL protects data on mobile phones using a new data storage technology which is highly compatible with most existing devices. With LunmoSQL, the device owner has ultimate right to decide who can read or change their data… and this decision continues to be enforced even after it has been copied off the phone to (for example) a bank or insurance company for processing with their in-house database software. In contrast, the situation at present is that device owners are rarely in control of the privacy of their own data, despite many laws relating to privacy. ...

February 7, 2026 · 1155 words · Dan Shearer

Not Forking

Not-forking is a technical tool for software development. Not-forking assists with reproducibility. Here are some simple ways of explaining what Not-forking can do: Not-forking lets you integrate non-diffable codebases, a bit like patch/sed/diff/cp/mv rolled into one. Not-forking is a machine-readable file format and tool. It answers the question: What is the minimum difference between multiple source trees, and how can this difference be applied as versions change over time? Not-forking avoids duplicating source code. When one project is within another project, and the projects are external to each other, there is often pressure to fork the inner project. Not-forking avoids that. Not-forking helps address the problem of reproducibility. By giving much better control over the input source trees, it is more likely that the output binaries are the same each time. But here is the big win: Not-forking avoids project-level forking by largely automating change management in ways that version control systems such as Fossil, Git, or GitHub cannot. The full documentation goes into much more detail than this overview. ...

February 1, 2026 · 535 words · Dan Shearer

Reversible Computers

Reversible Computing and Reversible Debugging are amazing and useful applications of Time Shifting via virtualisation, aiming at the massive problem of software unreliability. I believe my excited comments from 2005 still stand: Reversibility is the biggest advance in debugging since source code debugging — GDB developers list In 2026, reversibility has come both a long way and not far at all. I am still very interested in it. What is reversibility? It is possible to have a network of running computers - say, Android, Windows, Linux running on miscellaneous hardware - and then to stop them all and reverse back to any point in time. For example, reversing to a point just before a catastrophic error occurred, so we can watch carefully. And repeat it if we want to, again and again, any number of times. Imagine installing an operating system you know nothing about, starting an application… and then running the process in reverse as it unboots, scrolling up the screen until it switches off. This is true reversibility. ...

February 1, 2026 · 956 words · Dan Shearer

Education Exercises

These are some exercises and tricks I have either created or been subjected to over the years, and I have mentored students through them on many occasions. The general theme here is that most of the systems and stacks that are taken for granted often don’t work very well, and often don’t seem to have a very bright future. This is even the case for famous codebases relied on by billions of people. There are no absolutes and no immediate fixes, but it is food for thought if we can demonstrate immense waste of human effort amid poor quality computing systems, even when impressive modern computer science is applied. ...

February 1, 2026 · 1047 words · Dan Shearer

Radio Waves to Random Number Generator

Random humans and computers Humans are terrible at randomness. In fact if you ask people to write down a list of random numbers it usually takes a few seconds to show they are really not random at all. Similarly, the common saying “one chosen at random” is often not random, and stage magicians exploit our inability to assess how random an event is. But computers now, surely they can be random? It sure feels like it when your printer jams. It turns out though that no, computers need some help to be random. That wouldn’t matter except that randomness is exceedingly important to making computers and networks work. Somehow or other I had picked that up when I was 16 years old. Our highschool had the quite amazing BBC Micros, which I didn’t use much since my loving parents bought the family a Unitron 2200 when I was 15, because computers do seem like they are going to be important in the future. Well they got that right, among many other things. ...

January 11, 2026 · 585 words · Dan Shearer