Open carefully. I’m mostly harmless.

If you scrolled all the way to the bottom of the /net/dev blog archive and wondered why a mysterious dispatch at /blog/go/ is timestamped January 1, 1970, congratulations: you have just stumbled into Inode #2—the accidental time machine of this website.

Bell Labs Room 2C-518 meets the Brussels Ligne Claire Atelier at Epoch Zero (1970-01-01T00:00:00Z): a vintage DEC PDP-11 front panel, ASR-33 Teletype, steaming espresso doppio, yellow rubber duck, and blue Go gopher Thursday, January 1, 1970 — 00:00:00 UTC (time_t t = 0): Where Bell Labs Room 2C-518 in Murray Hill meets a rainy Brussels atelier over a 9-bar espresso doppio, an ASR-33 Teletype, a yellow debugging duck, and a time-traveling Go gopher.


1. Easter Egg #0 · The new Date(0) Wormhole (Why This Page Lives in 1970)

Every good system has a ghost in the machine. Ours came from four lines of TypeScript in src/pages/blog/index.astro.

When this primordial test file (2017-06-20-first-post.md) was migrated with a custom frontmatter override—slug: "go"—and no explicit date: field, Astro replaced post.id ("2017-06-20-first-post") with "go". When the blog index sorted the archive, it ran this fallback cascade:

// src/pages/blog/index.astro — The Accidental Bell Labs Time Machine
function getPostDate(post: CollectionEntry<'blog'>): Date {
  if (post.data.pubDate) return new Date(post.data.pubDate);
  if (post.data.date)    return new Date(post.data.date);

  // When slug === "go", post.id is "go" — regex match returns null!
  const match = post.id.match(/(?:^|\/)(\d{4}-\d{2}-\d{2})/);
  if (match) return new Date(match[1]);

  // Welcome to Thursday, 01 Jan 1970 00:00:00 GMT (UNIX Epoch t = 0)
  return new Date(0);
}

Instead of crashing, JavaScript calmly returned new Date(0) (0x00000000 seconds since the UNIX Epoch). Rather than “fixing” the bug, we promoted it to a permanent architectural invariant: every filesystem needs a root superblock anchored at t = 0.

Historical Synchrony (1970 ↔ 2009 ↔ 2026):
Naming this timeless root slug /blog/go/ turned out to be unintentionally prophetic. In 1970, Ken Thompson and Dennis Ritchie were bringing up UNIX on a DEC PDP-7 and PDP-11/20 at Bell Labs, distilling BCPL into B and C. Exactly thirty-nine years later, Ken Thompson teamed up with Rob Pike and Robert Griesemer at Google to design Go (golang)—the very language powering our OKF Spanner Graph Vault and cloud-native microservices today.

2. Interactive PDP-11 / UNIX V0 Teletype (tty0 @ /net/dev)

Don’t just read about 1970—toggle the front-panel switches yourself. Below is a live, browser-native DEC PDP-11/20 UNIX V0 console connected to the /net/dev superblock. Click any preset command chip or type help, ls, man netdev, cat /etc/motd, brew doppio, foo 3, dgem, date, or fortune:

DEC PDP-11/20 • /dev/tty0 (ASR-33 110 BAUD)
time_t = 0

3. Easter Egg #1 · /* You are not expected to understand this */ (swtch(), 1970 ↔ 2026)

Every systems engineer carries a soft spot for line 2238 of slp.c in John Lions’ Commentary on UNIX 6th Edition (1976)—where Ken Thompson saved the stack pointer inside swtch() and left the most famous six-word comment in computing history.

If you dump the core memory (core.0) of /blog/go/ with od -c, you’ll find the exact context switch that bridges our 1970 PDP-11 superblock with our 2026 Brussels cloud architecture:

/*
 * usr/sys/ken/netdev_swtch.c — 1st Edition UNIX (1970) / Brussels Aether Patch
 *
 * Switch the CPU from PID 0 (1970 Murray Hill Swapper) to PID 42 (2026 /net/dev)
 */
#include "../param.h"
#include "../user.h"
#include "../proc.h"

#define ESPRESSO_BARS   9       /* Strict 9-bar hydrostatic invariant       */
#define BRUSSELS_HPA    1013    /* Barogroove reference barometric pressure */
#define DGEM_STEPS      1       /* 1-step bidirectional diffusion canvas    */
#define ENOFLATWHITE    418     /* Reject steamed milk on /dev/doppio       */

int
swtch_to_netdev(struct proc *p)
{
    register int r5; /* PDP-11 frame pointer */

    if (u.u_coffee != ESPRESSO_BARS) {
        u.u_error = ENOFLATWHITE;
        panic("flat white detected in Brussels atelier");
    }

    /*
     * If barometric pressure drops over Schaerbeek, pipe 160,717 Last.fm
     * scrobbles directly into /dev/barogroove before waking the GPU.
     */
    if (barometer_hpa() < BRUSSELS_HPA) {
        barogroove_forge(u.u_scrobbles, 160717L);
    }

    /*
     * You are not expected to understand this.
     *
     * Instead of spinning 60 autoregressive tokens for a boolean, we jump
     * across 56 years of silicon in a single dgem forward pass (steps=1).
     */
    savu(u.u_rsav);
    retu(p->p_addr);
    return (foo(3)); /* returns 010 octal == 8 decimal */
}

4. Easter Egg #2 · From 1970 UNIX Pipes (|) to 2026 Agentic Pipelines

In 1973, Douglas McIlroy finally convinced Ken Thompson to add the pipe operator (|) to UNIX overnight, crystallizing the timeless UNIX Philosophy:

  1. Write programs that do one thing and do it well.
  2. Write programs to work together.
  3. Write programs to handle text streams, because that is a universal interface.

Fifty-six years later, when we wire dgem (Decision Diffusion Gemma), Barogroove, Cloud Foundation Fabric (FAST), and GKE Scale-to-Zero together in europe-west1, we are still writing UNIX pipes—only the file descriptors now carry typed logits, OpenTelemetry traces, and barometric telemetry:

flowchart LR
    subgraph UNIX1970["1970 • Bell Labs PDP-11 Pipe (McIlroy, Thompson, Ritchie)"]
        direction LR
        T1["cat /dev/tty0"] -->|fd 0/1| T2["grep 'urgent'"]
        T2 -->|pipe '|'| T3["sort -u"]
        T3 -->|fd 1| T4["lp0 (ASR-33)"]
    end

    subgraph NETDEV2026["2026 • /net/dev Brussels Cloud-Native & Agentic Pipe"]
        direction LR
        A1["stdin: Event / Barometer / Ticket"] -->|61.8 ms, steps=1| A2["dgem Switchboard (10 Typed Booleans)"]
        A2 -->|"Hesitation < 16% (66%)"| A3["Deterministic Fast-Path / Barogroove"]
        A2 -->|"Hesitation >= 16% (34%)"| A4["Stage 2 Gemini 3.8 Flash"]
        A3 --> A5["stdout: FAST Landing Zone (europe-west1)"]
        A4 --> A5
    end

    UNIX1970 ===>|"time_t = 0 -> 1,793,700,000+"| NETDEV2026

The slug: "go" Time-Capsule Program

Why is this URL /blog/go/? Because Ken Thompson co-invented UNIX in 1970 and co-invented Go in 2009. Here is the official /blog/go/ polyglot sanity check—preserving the original foo(3) closure from the 2017 markdown template inside idiomatic Go:

// $ go run netdev_epoch.go
package main

import (
	"fmt"
	"time"
)

// The primordial 2017 /blog/go/ closure:
// var foo = function(x) { return(x + 5); }; foo(3)
func foo(x int) int {
	return x + 5
}

func main() {
	epoch := time.Unix(0, 0).UTC()
	fmt.Printf("Inode #2 Booted : %s (unix=%d)\n", epoch.Format(time.RFC3339), epoch.Unix())
	fmt.Printf("foo(3)          : %d (decimal) == 0%o (PDP-11 octal)\n", foo(3), foo(3))
	fmt.Printf("Atelier Advice  : step 1 = talk | step 2 = be kind | status = mostly harmless\n")
}

5. Easter Egg #3 · The Original /blog/go/ Relics (Decoded in PDP-11 Octal)

For longtime visitors who remember the original starter template that lived at /blog/go/ (“All the front matter variables available in Congo”), every single artifact is still right here—now annotated with the Bell Labs diagnostics it was hiding all along:

Both menus are completely optional and can be commented out if not required. Use the template provided in the file as a guide.

// The original 2017 snippet that survived the time warp to 1970:
var foo = function(x) {
  return(x + 5);
}
foo(3) // => 8 (010 in PDP-11 octal: the exact byte offset of the UNIX V1 superblock!)
If you now run hugo server (or mount /dev/rk0 on a DEC RK05 disk pack) you will be presented with the Three Laws of the /net/dev Atelier: #### step 1 ## talk #### step 2 ## be kind #### Last advice ## keep looking up `¯\_(ツ)_/¯`
KERNEL DIAGNOSTIC (lp0 on fire — 1970 / 2023 Rant Edition):
When a line printer catches fire at Bell Labs or an autoregressive JSON parser stalls in production, consult the Yellow Rubber Duck on /dev/duck0 before paging on-call: ![Yellow Duck guarding the PDP-11 superblock](/assets/img/posts/fire.jpg '/net/dev')

The “Useless Table” — Now Decoded as the PDP-11 Interrupt & Inode Map

In the original post, this table looked like a random list of numbers. Look closer at the arithmetic (Number, Next = n + 1, Previous = n - 1) and their PDP-11 Octal / UNIX File Descriptor assignments:

Number (n) Next (++n) Previous (--n) Octal (0n) 1970 UNIX & /net/dev Kernel Meaning
Five Six Four 005 SIGTRAP (5) — PDP-11 trace trap used by db / adb and our SRE OpenTelemetry spans.
Ten Eleven Nine 012 012 Octal = \n (ASCII Line Feed 10) — The single-byte UNIX newline that ended CRLF tyranny forever.
Seven Eight Six 007 007 Octal = BEL (^G) — Rings the physical mechanical bell on an ASR-33 Teletype when the espresso doppio finishes extracting.
Two Three One 002 fd = 2 (stderr) & Inode #2 (/) — The root directory inode of a UNIX filesystem (and /blog/go/!).

It can also be a centered logo!

Crepe & Avatar Icon

mostly harmless (errno = 42)