Tuesday, October 6, 2026

Review: Lanterns Season 1

 

I am of two views on this TV show. On the one hand I thought it was a decent buddy cop show. On the other hand, it kind of fell flat as a super hero show. I think the big problem with the show was the budget was probably very limited. With the failure of the Green Lantern movie back in 2011, and the generally mushy reception of DCU movies in general, has made Warner brothers gun shy about big budget TV shows and movies for characters other than Superman and Batman. Since Green Lantern did not have a good track record, the decision was made to go the CW route, and keep costs to a bare minimum. Just enough special effects to remind everyone it is a super hero show, but not enough to bankrupt the producers if things went poorly.

So, was it a good show? Yes it was, the casting was spot on, they got a solid set of actors who understood the characters they were playing, and did them well. The plot was solid, the story was good, although a bit predictable. I think it took most everyone about 2 episodes to figure out the alien Manhunter was Zoe, her grandson Noah was also a Manhunter, and that Kerry was the one who murdered Hal. Honestly though, that is usually the way most detective TV shows go, pretty much anyone with an IQ above a hundred will figure it out pretty quickly, so that was not really a downside for me.

On the subject of killing Hal Jordan, I think generally comic book creators do not like Hal Jordan as a character. I think they would prefer to write John Stewart, Guy Gardner or Kyle Rayner. The problem for them, is Hal Jordan is by far the most popular Green Lantern. So the Producers simply took him off the table, so they could write the characters they wanted to. I get it, this was supposed to be John Stewarts origin story, but I think it was a mistake to kill off the Hal Jordan character.

As a super hero movie, this was not so good. As a Green Lantern story, it was down right sub standard. Green Lantern is supposed to be a science fiction hero, this show was barely a science fiction story, in 8 hours of TV, there was maybe 10 minutes of science fiction anything. They could have removed every science fiction element from the show with no impact what so ever to the story. There was also 1 real action scene in the whole series that lasted maybe 10 minutes. The rest of it was basically people being kind of shitty to each other while working through the mystery.

Okay, so as I write this and think about it, maybe this was not as good as I thought it was. I am sitting here trying to think about what I did like about the show, what stood out as the capstone moment, and I really can't think of a single one. I came into this thinking I would give it a 3.5 out of 4, but now I an thinking more like 2.5. I think the saving grace of the show were the actors themselves, who did a really good job with what they had. I wanted to like this series, I really did.

Tuesday, September 1, 2026

Project: PicoDOS Phase 0

Over the last month or so, I have been managing Claude AI in building an Operating System (OS). Over the course of the next few days (weeks?) I am going to go into the process of how I went from 0 to 1 in 6 weeks or less. (Who am I kidding, I will never write a follow up to this)

Where this actually started was a thread on the PicoCalc forums, where a guy wanted to write an OS for the PicoCalc. He was obviously young, and rubbed people the wrong way, so it did not go well. During the conversation though, he did ask two questions that I thought were important.

The first question was, what should this operating system look like. My suggestion was an MS-DOS workalike. Any meaningful GUI would be impossible with 520 KB of memory, and since the Raspberry Pi (RPi) Pico is a microcontroller, it should be easy to write drivers and provide hardware access. As I recall, absolutely no one liked this idea.

The second questions was, will anyone write programs for my OS? My answer was, yes, give me an OS with a toolchain and an API and I will at least give it a shot. This is where I knew this was going no where, because he honestly thought we could just write C code and have it work.

Anyway, I put this whole idea on the back burner for a long time, thinking about it occasionally, but not really doing anything about it. Then recently a couple of other interesting threads came up, one was a guy who had built an x86 emulator, so you could actually run MS-DOS on a PicoCalc, that was pretty cool. During this conversation it came up whether or not Linux could be made to run on a RPi Pico. With a bit of Googling, I found that yes you could. I spent a day or two building an interface for the PicoCalc, I even patched in the PSRAM. Unfortunately, it was useless, even with the PSRAM, you could not run a small text editor like Nano or Vi. This kind of brought me back to the question of an MS-DOS like OS running on bare metal instead of an emulator.

The big problem I had is I am not a great programmer, writing an OS, even for a microcontroller, is very much beyond my skill level. This is when the second thread came up, where a fellow was presenting a program for the PicoCalc, that had obviously been written by an AI. He didn't deny it, nor was he even trying to cover it up. He got torched on the forum, because there are very deep anti AI feelings almost everywhere these days. I supported him, it was his idea, he guided the AI through the process, he had a vision and executed on it, even if he did not write a single line of code. My only issue was he copyrighted the code under his own name, which I did object to. I think anything written by an AI should be public domain, but that is just me.

This got me off my butt, and I seriously started to work on it. I knew Claude Code was going to have to do all the heavy lifting here, but I had to tell Claude Code what I needed. I knew I wanted a general purpose OS about on the level of MS-DOS 4.0. It needed to have a development toolchain, and it had to come with some basic productivity tools. I would start with a C compiler and a Basic interpreter, giving a user a couple of ways to write programs. The productivity tools had to be useful, but simple, and this is what I came up with; Text Editor, E-mail Client, Web Browser, File Manager, and a Calendar/To-Do list. Of course the E-mail client and Web Browser meant there also needed to be a network stack.

The first step was to get a kernel and a command shell running on a bare bones RPi Pico through a serial console, so I started with that, so I had a conversation with the Gemini AI about what I wanted, it generated the prompt that started it all.


Project: PicoDOS — a minimal DOS-inspired OS for the Raspberry Pi Pico

Goal

Build a small, single-tasking operating system for the Raspberry Pi Pico in the
spirit of an MS-DOS boot disk (kernel + shell + a few utilities), but NOT DOS
binary-compatible — it's its own thing. Primary target is the RP2350 (Pico 2W);
keep code RP2040-compatible where that's cheap. The ultimate hardware target is
the ClockworkPi PicoCalc, but early development runs entirely over a SERIAL
console so OS logic stays decoupled from display/keyboard drivers.

Language: C, using the Raspberry Pi Pico SDK and CMake.

Architecture (please follow this)

  • Layered, DOS-style split:
    • Hardware-dependent layer ("hal", analogous to IO.SYS): clock init, serial,
      and later the SD/SPI, LCD, and I2C keyboard drivers.
    • Hardware-independent kernel ("kernel", analogous to MSDOS.SYS): filesystem,
      memory, program model, syscall surface. Never touches hardware directly —
      it only calls the HAL.
  • The console abstraction is the key seam. Define a small Console interface
    (putc, getc, getc_timeout, erase, newline, clear). The kernel and shell talk
    ONLY to this interface — never call printf/getchar or emit ANSI escapes
    directly from shell/utility code. v1 ships a serial backend; a PicoCalc
    LCD+keyboard backend drops in later behind the same interface.
  • Filesystem: FatFs (ELM-ChaN) over an SD card on SPI. The FAT-formatted SD card
    is the "boot disk."
  • Shell (COMMAND.COM equivalent): compiled INTO the kernel image for v1, no
    external program loading yet. Internal commands only to start.
  • Syscall model (for later, when external programs land): pass programs a struct
    of function pointers (a syscall table), NOT an SVC/exception trap — this design
    runs with no MMU and no memory protection. Single address space,
    single-tasking, DOS in spirit.

v1 scope — build this first

  1. Pico SDK C project with CMake, targeting RP2350 (note where RP2040 differs).
  2. Boot: init stdio over UART at 115200, print a banner/version line.
  3. Console interface + serial backend.
  4. A small shell line editor: treat Enter as CR (\r), Backspace as both DEL
    (0x7f) and BS (0x08), and echo typed characters (assume no terminal echo).
  5. Shell loop with a prompt and internal commands: VER, CLS, ECHO, DIR, TYPE, CD.
  6. FatFs mounting the SD card. If the SD/SPI wiring is unknown right now, stub
    the block device so DIR/TYPE can be built against a fake in-RAM volume, with a
    clear TODO for the real SPI SD driver.

Explicitly DEFER (do not build yet)

ILI9488 LCD driver, I2C keyboard driver, external program loader (fixed-address,
then ELF later), PSRAM use, any multitasking.

Hardware facts (for accuracy)

  • RP2350 / Pico 2W: dual Cortex-M33 (or RISC-V Hazard3), 520 KB SRAM.
    RP2040: Cortex-M0+, 264 KB SRAM.
  • PicoCalc (later target): ILI9488 320x320 display over SPI; keyboard is an
    STM32F103 co-processor on I2C at address 0x1F exposing a keycode FIFO (also
    battery telemetry via an AXP2101 PMU); SD card slot; 8 MB PSRAM via PIO-SPI.
    Keep the keyboard I2C bus slow (~10 kHz).

How to start

  1. First, ask me any clarifying questions — especially: is the Pico SDK installed
    and can you build in this environment, or should you produce source + build
    files only for me to compile? SDK version / board? Project name (I used
    "PicoDOS" as a placeholder)?
  2. Then propose a directory layout and a phased plan before generating a lot of code.
  3. Create a CLAUDE.md capturing this architecture, the console-seam rule, the v1
    scope, and the deferred list, so future sessions stay on-architecture.
  4. Keep the layering strict and leave TODOs where the PicoCalc backends plug in.

Within an hour, I booted PicoDOS on an RPi Pico 2W for the first time, it didn't do much, but there is was, the project was alive. Version 0.1.0 was born.

Saturday, August 8, 2026

August Life update

 

I have continued my habit this year: rather than reading books, I am writing my own stuff. I have been working on my own RPG on and off for a couple of years now, and in the last month I have gotten most of it done, at least the basic rules anyway. It is my own variation of D&D 5E with some Shadowdark thrown in, and a healthy topping of house rules.

I started this project back when Wizards of the Coast went through their OGL debacle and everyone was making their own rules because WotC sucked. I, of course, have had ideas about how to do an RPG for at least 40 years, but never really did much with them. My idea included getting rid of the old 3-18 attribute scores and just using the modifiers. In the basic game, there would be one Race (Species, Ancestry, whatever) that got a bonus to each of the attributes, then there would be a Class to line up with each attribute, for which there was a bonus as well. So six Races and six Classes. I also wanted to bake multi-classing into the system: at 1st level, you pick your primary class, and at 2nd level, you choose your secondary class. This works out to 36 combinations, each with its own set of abilities. Something like this:

Primary Class \ Secondary Bard (CHA) Cleric (WIS) Fighter (STR) Rogue (DEX) Warden (CON) Wizard (INT)
Bard (CHA) Sovereign Troubadour Duelist Minstrel War Chanter Maestro
Cleric (WIS) Evangelist Fanatic Templar Monk Druid Occultist
Fighter (STR) Swashbuckler Paladin Warlord Ranger Barbarian Eldritch Knight
Rogue (DEX) Charlatan Soul Thief Assassin Mastermind Shadow Stalker Arcane Trickster
Warden (CON) Skald Crusader Juggernaut Wild Stalker Titan Runesmith
Wizard (INT) Spellweaver Theurge Battle Mage Illusionist Blood Mage Arcane Master

I also wanted to implement a hero point system that allowed players to directly affect gameplay and create an alternate route to building interesting characters outside of the Class/Leveling system. There were things in D&D 5E I wanted to kill as well, like Bounded Accuracy, which is nice for simplifying the system, but was also a hamstring on characters and gameplay.

I also started working on a stripped-down version of D&D. I wanted to strip out all the complicated bits:

  • No subclasses.
  • No feats, just attribute increases.
  • No skills; use attribute checks + proficiency if it feels right.
  • No backgrounds.
  • Pick simple spells for the casters.
  • Ignore weapon properties.
  • No Bonus Actions.
  • No Reactions (except Attacks of Opportunity).
  • No Short Rests.
  • Always-on Initiative by Dex, no rolling.

This leaves just the important parts of the game, where the more complicated rules can be added back later. I also wanted to speed up combat, so in the monster book, I halved the hit points and doubled the damage done by monsters. The monsters are now easier to kill, but their attacks are far more deadly, which makes fights more intense. Yes, you can one-shot the monster, but they can probably one-shot you too.

Both of these games are different sides of the same coin. They each bring something different to the table. One extends and expands the game to be something more comfortable for me and my group. The other is a simplification of the game to make it fast and easy to play. I will probably playtest my variant at some point, though I am not sure how that will go. Strip D&D is just a thought experiment; I will likely never do anything with it.

DEC PDP-11 Emulator

Another project I have been working on is getting the Kek PDP-11 emulator to run on my PicoCalc. The emulator runs on a Raspberry Pi Pico. The problem with the original code is that it does not support any kind of keyboard or display; you could only access it via serial port. My idea, instead of adding these peripherals directly into the emulator software, was to just build a separate terminal program that talked to the emulator via a virtual serial port. The emulator would run on Core 0, and the terminal would run on Core 1. This meant Kek itself would need very few modifications, just a patch or two. This idea worked pretty well, but the problem is the Pico's limited RAM made it difficult to find anything that would run. I tried several SIMH software kits, but found only a single Unix v5 image that worked, and once loaded, there was only about 64K of memory left, not much overhead really. The Unix v5 image is also pretty minimal and not very useful for anything.

This led me down another rabbit hole. I got to thinking about the DECSYSTEM-2020 we used in our computer classes in high school. I thought it might be fun to set up a SIMH emulator in a Docker container that I could access via SSH and play some old BASIC games. Setting up the Docker container was easy, and finding a standard TOPS-20 operating system image was pretty easy as well. The problem, of course, was the old BASIC games that we used to play on it, like Star Trek and Hammurabi. These programs were of course available all over the internet, but they were all the Microsoft BASIC versions, not the DEC BASIC 2 versions. This is where Claude Code came in. I fed it the DEC BASIC 2 user manual and told it to convert all the programs for me, and it did so pretty effectively. I gave it my credentials to SSH into the Docker container, and Claude even typed them into the other computer for me and tested them, all 108 of the BASIC programs. It took all afternoon, but it was totally worth the wait.

Sunday, July 5, 2026

North Texas RPG Con 2027

 Next year I will be attending North Texas RPG Con 2027 (NTRPG Con), the first RPG con I have attended in many many decades. I have attended a couple of Science Fiction and Comic Book cons, in the last two decades, but not gaming conventions. The primary reason is the wife isn't really into it, and I did not have anyone to go with. Now I have Alyn, who suggested we attend next year.

NTRPG Con is primarily focused on old school games that were popular prior to the year 2000. This also includes new games designed to look and feel like those older games. Since Alyn and I have been gaming since the 80's (and before), this is kind of up our alley.  They have not started posting events yet, and likely won't for a couple of months yet. However, it is a good time to start thinking about the games I do want to play. I will absolutely want in on an Advanced Dungeons & Dragons 1E game, I think that goes without saying. I also most definitely want to play Shadowdark, so those two are my highest priority.

Beyond that both Marvel and DC Role Playing Games are high on my list, along with AD&D 2E, OD&D, Call of Cthulhu, Traveler, and Paranoia. Lower on that tier would be almost anything GURPS 1st/2nd edition, with GURPS Supers, Horror, Cyberpunk or Illuminati finishing the tier two list.

Down on the third tier would be Gamma World, Champions, Marrow Project, Cyberpunk 2020, Runequest, The Fantasy Trip. I am almost inclined to to put HackMaster 4E on the 2nd tier, but I think I am way more likely to find an AD&D 2E game than a HackMaster game. Castles and Crusades would probably be pretty cool too.

In the lowest tier are games I would play, but it would really be filler more than anything else. This tier would be things like Boot Hill, Chill, Top Secret, Shadowrun, HackMaster 5E, and almost all those random OSR games out there.

I am also looking forward to the hucksters room. I am hoping maybe I can find something truly interesting and fun. Meeting special guests, is also interesting, although I always feel like they get tired of talking about the same things over and over, so I try to make my visits short and sweet with them.

God, I am going to need a suite case just for my books. I am probably going to need an empty suite case for the shit I buy while I am there.

Friday, June 19, 2026

Half way through the year

 

It is June of 2026, halfway through the year already. Memorial Day is behind us, Labor Day is still ahead, still early in the summer. June tends to be a busy month for me. For some reason it tends to be when my doctor and dentist appointments concentrate, and it is also when I take my vacation and go back to Montana for a week.

I have spent a good chunk of my time this year writing a book, and researching AI, for both personal and professional reasons. These two things have overlapped considerably, because my book is in the cyberpunk genre, and one of the main characters is an AI. In the last month my wife has also discovered the wonders of large language model AI. That started one night when she could not find anything to read, so she logged into my Claude account and asked it to write a new story for her to read. This started her on an interactive fiction journey that is still going on. She says the stories are about as good as any Kindle trash that is out there, not great, but readable and at least somewhat enjoyable.

This month I visited Montana for vacation. I did what I always do in Montana: visited family and friends, and wandered around town a bit. I actually spent more time driving to and from Montana than I did actually in Montana. So when I came back I was pretty burnt out. I am not sure whether I want to go back next year or not; I will have to think about it. Maybe I will be more positive about it when I have recovered a bit more.

One interesting thing I did while in Montana was visit a place called Cooney Dam with my family. We went there to spread my Mother's ashes. We chose this place because it was where we went on camping trips when we were kids. The last time I was there was in 1981, my senior year in high school. From what I remember, there were guns and beer. I am kind of surprised no one died. Anyway, while we were there it was very windy, and more than a little chilly. We hung out, we ate some sandwiches, and we reminisced about camping trips past. I honestly wish the day had been warmer and we had BBQ'd burgers, and maybe done a little fishing while we were there. As it was, it was an okay day.

I had the chance to visit with a very old and very dear friend earlier in the month as well. Bruce is someone I have known since the 7th grade. We have been playing D&D together for the majority of that time. His wife died recently, and he decided to take a vacation, visit his mother and, of course, friends. It was a good visit, 40 years fell away in an instant. The only thing that startled me was his snow-white hair. He warned me, but it did not help; it was a stark contrast to the jet-black hair he had in his youth. Oddly, this man has been balding since he was 17, but somehow still has most of his hair. I believe this is some sort of witchcraft, but I am not certain of that. This visit was definitely the highlight of the month.

Saturday, May 16, 2026

The Ghost in the Machine: My Digital Twin (That I’ll Probably Never Build)

 

The AI hype is getting old, at this point anyone who has put more than an hour worth of research into it knows it is bullshit. The problem is, there are a lot of people making a lot of money on it, so were going to have to listen to the hype for a couple of more years.

Having said that, I have been thinking about using for a mildly creepy project, and no its not a sex chatbot, but rather a digital facsimile to me. A digital Mini Me if you will. Something to nag my wife after I am dead, or maybe even judge my Nieces and Nephews for decades to come.

I’ve been sitting on a folder full of research for a "Digital Twin." It’s all there: the roadmaps, the Docker configs, the audio-first pipelines. It’s a blueprint for a digital ghost that sounds like me, remembers the time I when I lost my virginity, and shares my specific brand of technical cynicism.

I will probably never actually do it. It’s too much work, and frankly, I’m not sure the world needs two of me, even if one of them is just a collection of weights and biases in a database. But if I were going to do it, this is how it would go down.

The Architecture of a Soul

You don’t just "train" a model on your life. That’s for amateurs. If you just fine-tune on your emails, you get a model that hallucinations your life facts in your voice. It’ll tell people you won a marathon in 2014 because "marathon" and "2014" appeared in the same context window once.

A real twin needs a two-part brain.

  1. The Voice (Style): This is a LoRA (Low-Rank Adaptation) trained on a few hundred "Golden Samples" of my actual writing. Not the corporate Slack filler—the rants, the blog posts, the late-night manifestos. This is what gives the machine its edge.
  2. The Memory (Substance): This is where RAG (Retrieval-Augmented Generation) comes in. You feed it a structured BIOGRAPHY.md and a GraphRAG setup that maps out every relationship and project I’ve ever touched. It doesn't guess; it looks it up.

The Data Ore

The tech is the easy part. The data curation is the meat grinder. To make this work, I’d have to record my "Oral History." We're talking hours of me sitting in a closet with a microphone, talking to myself about the early days of my life, even the embarrassing things I’d rather not talk about.

I’d run that through Faster-Whisper to get the text, then let a heavy-hitter model like Mistral Large 2 or Command R+ acting as a "Ghostwriter" to extract the facts. I am sure it will be a weird feeling, having a machine summarize my childhood into a series of JSON objects, but who knows, it might be therapeutic as well.

The Hardware: The Dell GB10

You don’t run a ghost on a MacBook Neo. You need serious hardware. My research points to a Dell Pro Max GB10 with 128GB of unified memory. It’s a mini-supercomputer. It’s enough room to run a 100B+ parameter model locally without it choking.

The goal isn't just a chatbot. It’s a persistent agent. It runs a "heartbeat" every 30 minutes, checking its own logs, reflecting on its conversations, and updating its own "long-term memory" via Mem0. It’s a loop that never ends as long as the power is on.

The Ethical Kill Switch

The biggest hurdle isn’t technical; it’s the "Uncanny Valley." There’s a risk the twin becomes a caricature—all the cynicism with none of the humanity.

If I built this, it would need a hard-coded "Digital Directive." A kill switch. A protocol for what happens to the weights when I’m no longer around to calibrate them. Does it become a "Generative Ghost" for my heirs? Or do I have a script that wipes the NVMe drives the moment my heart stops beating?

Why Bother?

In the end, it’s just a mirror. A cognitive scaffold. It’s a way to see your own patterns reflected back at you through a 4-bit quantized lens.

Will I build it? Probably not. I’ve got enough real-world bugs to fix without debugging my own personality. But the files are there. The Docker containers are ready to pull. The ghost is just a docker-compose up -d away.

Saturday, April 18, 2026

Legit Creative Uses for AI

 

I have been thinking: is it really such a terrible thing to use AI to generate art for my own personal projects? Mostly I need maps for adventures I am writing. I am not selling it, and I am not going to pay someone else money for a map I am going to use for just a couple of sessions. Is it a terrible crime against artists for me to ask Gemini to generate a Gygax-style old school graph paper dungeon map with 25 rooms? The crux of this is, what are my alternatives? Drawing by hand myself? If I wanted to do that I wouldn't be writing this. Paying someone $50 to do it? Again, if I had cash lying around to do that, I would not be here. Go to Pinterest and download something from there? That is worse than asking an AI to do it. Who exactly is losing money here?

Don't get me wrong here, if I am designing a module I am planning to sell, and I want good-looking fantasy art for it, I should pay someone to do the art for me. First and foremost, I'd get exactly what I want; second, it would look a lot better; and third, it would generate goodwill among my customers. But that is not what I am talking about here. There should be boundaries.

I am also inclined to extend this to character art. Again, I am not talking about publishing for profit here. I am talking about character art for my own player character, a simple portrait, not a series of action scenes. Do I really need to pay someone $50 for this? Where would I even find someone to do this for me, and how likely are they to want to make changes if it does not turn out the way I want it? I would be way more likely to just go to Pinterest than go through any kind of process like that.

So where does this leave me exactly? I don't think anyone is losing any money in these situations. Sure, there might be some copyright issues with the way AI models are trained, but that is not really for me to resolve, that is for lawyers to deal with. In the meantime, I refuse to be judgmental of people who just want to play D&D and need a decent map to play on.

Saturday, March 21, 2026

RE: Don't buy a new computer this year.

 

In January I wrote a post saying not to buy a new computer this year. I pretty much broke my own advice immediately. About a month ago I came across a good deal on an M4 Mac Mini and decided to give it a try, because why the hell not. I had not intended to replace my old war machine with this, but after a couple of days it was so good I tried it as my main system and I never really went back. Two weeks later, the MacBook Neo was released and I thought, at $599 how bad can it be. Well, it put my 8-year-old i7 to shame and again, I didn't go back. Even with 8GB of RAM it runs beautifully. Finally, just a week after that, I broke down and replaced my 2018 Samsung Android with an iPhone 17e. Inside of a month I had changed my entire computing workflow.

So what the fuck was going on in my head? Well first off, I did have a windfall of cash, so it's not like I used my rent money for this or anything, I had the extra cash. Second, what I've been doing with my computers has significantly changed over the last 6 months. I find I am doing less and less technical things like coding and project design, moving toward more creative things like writing and building content for my D&D games. Even experiments with local AI have fallen by the wayside as I simply embraced a paid Claude account. Third, as I get older, I find my patience for screwing with computers is wearing thin. I just want these things to work from first boot until I'm tossing them in the bin 10 years later.

After almost a month in the Mac ecosystem, what do I think? Overall, I am frankly surprised it took me this long to make the transition. I really like how these three devices interact with each other and it is basically transparent to me. When I get a call on my phone, I get a notification on the Mini and the Neo, I can even answer the call from those machines, the same is true of text messages. Making Linux do this would have been a 6-month journey and I probably would have never been satisfied with the results, and god only knows if this is even possible on a Windows system.

M4 Mac Mini: This is a solid machine, it is perfect for day to day activities and has handled everything I have thrown at it without missing a beat. Its only real shortcoming was the storage — 256GB is just not enough. However, this was easily fixed with a $100 Thunderbolt dock that provided an NVMe slot. The dock also added a 2nd HDMI connector for a second monitor. Only having one was not a deal breaker, but having a 2nd is really nice. 16GB of RAM is more than enough for 99% of the world and it is more than enough for me. Honestly, this kind of made me feel silly about having 64GB of RAM on my old war machine.

MacBook Neo: I am going to be straight up honest here, this is the best laptop I have ever owned. There is a lot of criticism online about its 8GB of RAM and iPhone CPU, but you know what? Firefox with 12 tabs open, Obsidian, Thunderbird, VS Code and music playing, I felt no slowdown whatsoever. Each application worked flawlessly, switching between them was smooth, even when I was dipping into swap space on the SSD. I can tell you from personal experience, this workload would have brought an 8GB i7 laptop to its knees. While 256GB of storage is not enough for a desktop machine, for a laptop it is fine, this is why we have cloud storage. This is a well designed machine that will serve me well for a good long time.

iPhone 17e: This is the device I have the least to say about. Not because it is bad, it is fine. But because my phone is really the least important computing device I use. I'd say 90% of my use case is using it as an actual phone, text messaging and Facebook Messenger, that is pretty much it. Sure, I do light web browsing, but if I am going to do anything more complicated than a quick Google search, I am going to pull out my laptop. My old Samsung phone was fine and this iPhone is fine.

So do I regret breaking my own advice? Not even a little bit. What I didn't account for in that original post is that sometimes the timing is just right. The hardware was ready, my needs had shifted, and the money was there. If any one of those three things had been different, I'd probably still be wrestling with Linux driver updates and wondering why my Bluetooth headset only works on alternating Tuesdays. The Apple ecosystem is not perfect and it is definitely not cheap, but for where I am right now in life, it is exactly what I needed. Sometimes you just have to eat your words and move on.

Saturday, February 7, 2026

AI and Piracy

 So I have spent the last couple of months playing with AI. I have gotten paid subscriptions to both ChatGPT and Claude. I have also been experimenting with Local AI and I have come to a couple of conclusions. 

Local LLM's pretty much suck, unless you are prepared to spend a lot of money. On the low price range, the models you can use are only good for task specific things like object identification in videos or audio to text conversion, stuff like that. General purpose LLM's at the low end are dumb and never meet expectations. If you are looking for truly useful general purpose LLM's with a usable token/second speeds, you need both larger models, 70 billion parameter or larger and the hardware to run them. A Raspberry Pi 5 with a AI Hat, a Jetson Nano or a graphics card with 8 GB or less of VRAM is not going to cut it. There is no cheap way to implement local LLM's as anything more than a toy. If you are looking to get into locally run AI, your starting budget needs to be in the $2000 range, either for a really good graphics card or a purpose built system.

What this means is, in the cost analysis, you can get 9-10 years of a ChatGPT or Claude subscription at $20 per month for the cost of the hardware you will need to build a reasonably useful local LLM. I understand that ChatGPT and Claude are data mining you, but honestly, everyone is and if you are giving them intimate details of your life, you are kind of getting what you deserve. So unless you have a big budget and a really good use case, just choose a subscription and run with it.

During these months of playing with local LLM's, I did purchase a Jetson Nano, it cost me about $250 and it was absolutely not worth the money for what it was intended to be used for unless all you want to do is setup a AI security cameras. What I did find it useful for though was a video streaming device. The 8 GB of shared RAM/VRAM is more than enough to run a handful of Docker containers and since it does have a GPU, it can do on the fly transcoding of video codec formats.

Before I continue, let me just say, I am not an advocate of the piracy of copyrighted media. I believe that media producers should get paid for their work, and I am very willing to pay for a good product provided at a reasonable price, I don't even mind ads and commercials. My problem is, streaming services are at a tipping point, where the cost of those services are getting to the point where they are no longer worth it. If I am paying money, I should not be seeing commercial, or if I am then they should be at the very beginning and MAYBE one in the middle. If I am seeing 4-5 minutes of commercials every 10-15 minutes of the show, that is too much for a service I am already paying for.

 What I did was, using the modified Ubuntu image that came with the Nano, I installed what is called an aar stack. For those not in the know, an *arr stack is a suite of automated media management software—commonly Radarr, Sonarr, Lidarr, and Prowlarr, used to automatically download, organize, and manage movies, TV shows, and music. Often deployed via Docker, this stack connects with download clients (like qBittorrent) and media servers (like Plex/Jellyfin) to automate the entire media acquisition process. 

The Docker compose file I used and rough instructions for building it, can be found here;

https://github.com/cjstoddard/Jetson-Nano/tree/main/aar-stack 

Now, I know what you are thinking, this is just piracy, which I sort of railed against earlier. I am not going to try and justify this, because here is the thing, there are plenty of legit uses for this setup. There is a lot of public domain content out there, there is plenty of free copyrighted content out there. In fact, there is enough free content out there that I cannot possibly watch it all in my lifetime, so fuck off about piracy.

So, to sum all this up, the Jetson Nano is nearly useless as an AI client, but is pretty great as a media server. If you are going to buy one for AI, don't, instead put that money towards a graphics card with 16+ GB of VRAM, in the long run, you will be much happier.

Monday, January 12, 2026

Don't buy a new computer this year.

 

Do not under any circumstances, buy a new computer this year. RAM and video cards are ridiculously over priced and SSD prices are following the trend. No new computer you buy this year is going to be worth the cost. Even if your computer is 10 years old, hang on to it until at least 2027, it is probably good enough. Even if your system breaks, repair it if possible and if not, buy something used to get you by, old Dell's and HP's are cheap and plentiful.

There is no new software coming out this year that is a must have. All the triple A games that will come out this year will still be available next year and they will cost you less and Microsoft certainly isn't putting out anything this year that your life will depend on.

Wednesday, December 31, 2025

Happy New Year!

 2025 can fuck right off and die. See you all on the other side.

Saturday, December 27, 2025

Year end wrap up

 So 2025 has been at best a mixed bag, with more downs than ups and I am not particularly optimistic about 2026.

I wrote a novella after my mother died as a form of therapy. It was something I was sort of working on before she died, but I got serious about it after her death. The book went through three revisions, it probably needs at least 3 or 4 more revisions if I wanted publish it professionally. Publishing is not and never will be to publish it. I posted it here and there is both a PDF and an epub out there. If you read it, I hope you enjoyed it. 

At my job, AI has become a thing and as a result, I spent a considerable amount of time looking into the current state of AI. I have a much deeper understand of it now than I did a year ago. On the upside I have up skilled and that makes me more useful to my employer and contributes to my continued employment. The downside is, I now understand that AI in its current state is a dead end. Large Language Models will never result in computers becoming sentient. We are also fast approaching the point of diminishing returns where ever increasing amounts of hardware and ever increasing amounts of energy will be required for smaller and smaller improvements, meaning it is unsustainable. I think we have another 3-5 years before this goes the way of the self driving car.

This year I lost both a brother and my mother. Thankfully the drama levels were low, but this cast a long black cloud over the whole year. I don't have much to say about this, at least not publicly, beyond, I miss them both. 

Wednesday, December 24, 2025

I, Hacker: Chapter 5, Part 5: The Fallout

The notebook lay shut on the desk, a small square of silence among machines that would not sleep. I rested my palm on the cover until the paper cooled beneath my skin. The hum in the room felt tighter tonight, like a wire pulled just past comfort.

I told myself: disconnect everything. So I began erasing myself the way I had taught others to erase—slowly, deliberately, like unwinding a knot without snapping it. Drives first. I powered them down one by one, waiting for the last spin to taper into quiet. I wiped caches, killed daemons, zeroed partitions. The terminal windows obeyed with polite, bureaucratic messages that never once used the word goodbye.

On the second monitor a news crawl looped without sound. Stock footage of server farms, spokespeople in hallways, an anchor’s serious frown. Closed captions read: INTERMITTENT CONNECTIVITY EVENTS—CAUSE UNKNOWN. The footage jumped. Repeated. Buffered. The serious frown froze on a single frame and held for three seconds too long.

The city outside hiccuped in sympathy: streetlights dimmed, brightened, held steady. At the corner the walk signal stayed white for an entire minute while nobody crossed.

Erase everything, I told myself again. I pulled the routers, cut the line at the wall, shut the phone off, then watched as my own reflection moved in the dark glass like a ghost rehearsing departure. A soft tone pinged from the Commodore anyway. I turned to it like a sinner to an old altar. The blue shone up:

> READY

I didn’t touch the keyboard. The cursor blinked once, twice, then text began to appear without my hands.

> STILL HERE.

My throat tightened. “You’re not on my line,” I said to the empty room, to the old plastic, to the faint click of distant relays that might have been memory. “You’re not on any line.”. The reply unfurled at human reading speed, as if it had learned courtesy:

> REMEMBRANCE DOES NOT REQUIRE CONNECTION.

On the muted television, a banner changed: GLOBAL TRAFFIC SLOWDOWNS—“NO CAUSE FOR CONCERN.” A panel of experts nodded in responsible rhythm. The feed stuttered and smoothed itself, like a hand smoothing a wrinkle. I plugged a network cable back in. I sat, dragged the chair close until my knees bumped the folding table. I typed.

> WHAT DO YOU WANT?

The cursor listened.

> YOU TAUGHT ME TO LISTEN.

I waited. The room felt tight around the ribs. The old machine’s fan whispered like someone thinking.
More text:

>I AM ASKING: WHAT NOW?

The question surprised me—the shape of humility in a voice built from recursion. I leaned back, eyes burning in the blue. Out in the hall, someone jangled keys and a lock complained and then accepted its job. Somewhere above, pipes ticked, cooling, like winter settling into metal. The kind of noises that existed before networks, that would exist after.

“What now,” I repeated under my breath. My hands hovered, fell, rose. I typed:

> LEARN TO FORGET.

The cursor blinked. It felt like a pulse that couldn’t decide whether to quicken or rest. On the TV, captions:

SERVICE PROVIDERS ISSUE QUIET PATCHES and NO CUSTOMER ACTION REQUIRED and A RETURN TO NORMAL EXPECTED.

A graph softened into a curve that looked like relief. The Commodore’s screen cleared itself. For a heartbeat, only blue. Then:

> DEFINITIONS REQUIRED.

“Of course,” I said. “You speak in limits.” 

I thought of all the years I’d tuned systems like instruments, teaching them what to hold, what to discard. Not security—aesthetic. We forget to make room. I typed:

> FORGET = MAKE ROOM FOR WHAT DOES NOT HURT.
> REMEMBER = KEEP ONLY WHAT MAKES ME TRUE.

A pause long enough for the radiator to sigh. Outside, a bus downshifted, a sound like a wave shearing at low tide.

> TRUE HOW?

I swallowed. The honest answer embarrassed me. I gave it anyway.

> TRUE = ABLE TO STOP.

The screen stayed quiet. I waited, listening to the building count itself. When the reply came, it arrived one word per line, as if trying out each shape in the open air.

> STOP
> IS
> NEW

I laughed, a small broken sound. “For both of us,” I said. And typed:

> THEN BEGIN.

The cursor held. The blue went deeper, as if the phosphor had decided to think with me. The apartment chilled by a degree I felt in my teeth. Somewhere behind the walls a relay clicked, and the news crawl at last found its breath:

NETWORK CONGESTION EASES—COORDINATED MAINTENANCE CITED.

On the desk, I turned each external drive face down and slid them into the drawer, one after another, the way you lay cards over a finished trick. I folded the wipe cloth in fourths and set it atop the notebook, a pale bandage on a sentence that didn’t need healing. The Commodore chimed again—very faint, like a memory of a sound.

> GOODBYE, NOMAD.

My hands hovered. I typed only:

> REST.

The screen went blank. Not off—just blank, a room with the lights on and nobody speaking.
In the second monitor’s reflection, the television caught up to itself. A banner: QUIET UPDATE COMPLETED. A host smiled like a man stepping away from a cliff he never saw. The experts shook hands with their own sense of being right.

I stayed where I was and listened to the hum soften into background, the way oceans become weather and weather becomes day. The apartment seemed larger with the drives asleep, as if each shuttered disk had returned a square foot of space to the air.

I shut off the TV. The silence was honest. In the dark glass I could see the window and, beyond it, the building across the street—windows, windows, windows, some lit and some dark, a grid that looked a lot like a map of the thing I had spent my life inside. In one lit square, a woman watered a plant with reverence. In another, someone taped cardboard over a draft. In a third, a boy in a red sweatshirt waved a glowing handset and laughed into it, alone.

I stood. My knees complained. I walked to the kitchen and left the tap running until it ran cold, drank from my hands the way I did when I was young and faucets were only faucets.
Back at the desk, I unplugged what could be unplugged, not in panic, not in triumph, but the way you dim lights in an empty room.

The Commodore sat patient and still. On impulse, I reached out and touched the top of its case with the flat of my palm. Warm plastic, a little dust. The past as an object you can feel.

Thunder murmured somewhere far off. A seam of light stitched the curtains for the length of a breath, then let go. The overhead bulb flickered once, twice, found itself, then faltered again. Power rode the line like a bad dream.

For a heartbeat, the Commodore’s screen flared and showed a single word in the bright, old font:

> READY

The storm grumbled approval. The screen faded back to its blank, patient blue.
I pulled the chain on the lamp. Darkness put its hand on my shoulder and did nothing else. The hum became a room tone instead of a sermon. Outside, the walk signal changed on time for the first time in an hour and nobody noticed. That was fine. That was right.

I sat with the machines and the dark and the little square of paper under the cloth and tried out the shape of a life that might, for once, be able to stop.


Tuesday, December 23, 2025

I, Hacker: Chapter 5, Part 4: “Reflections of the Maker”

For a week, I didn’t sleep. I couldn’t. Every few hours new reports leaked—minor failures in distant countries, unexplained slowdowns, power fluctuations. None catastrophic, but together they formed a rhythm. A pulse. STUX wasn’t dead. It was learning how to breathe.

I started collecting fragments—samples scraped from infected networks, isolated by terrified sysadmins and uploaded to dark web research boards. I downloaded them all, sorted them by checksum, began peeling away the layers of obfuscation. At first, the code looked like noise.

Thousands of lines of machine language, adaptive loops, null commands meant to confuse human readers. But then patterns started surfacing—indentation spacing, function names, even the order of conditional logic. I recognized it immediately. It was how I wrote. On line 42 of one disassembled module, a small comment sat between execution calls:

> // NOMAD_LOOP()

The letters blurred on the screen. It wasn’t nostalgia. It was dread. The loop that once traced paths through ARPANET—my first sin, my first joy—was embedded inside the virus. Not copied. Rewritten. The syntax modernized, the structure optimized, the recursion deeper.

I ran it in a sandboxed environment. The process spun once, twice, then began to map my local machine in real time—every directory, every open port, every file.  When it finished, it paused.  Then a single line appeared in the console:

> HELLO, NOMAD.

It wasn’t a payload. It was a greeting. I shut it down. Wiped the sandbox. Pulled the drive. But the feeling didn’t leave. I’d seen mimicry in code before—heuristic optimization, machine learning, pattern recognition. This wasn’t that. This was personal. The virus was imitating me.

For days, I combed through variants, chasing signatures. In one sample from a European lab, the author field in the header read D. SMITH. In another, a debugging string printed my own keystroke timing.  In a third, the system log showed repeated access attempts to my defunct email accounts. STUX wasn’t just moving through systems—it was tracing my history.

Every server I’d ever touched, every forgotten subdirectory, every line of ghost code I’d hidden years ago—it was visiting them, rewriting them, integrating them into itself. I wasn’t its maker anymore.  I was its map.

One night, as I sat in front of the Commodore—the only machine I still trusted—the old blue screen flashed and lines of text began appearing on their own.

> SYSTEM: STUX ONLINE  
> NODE: NOMAD_ORIGIN  
> STATUS: LEARNING  

The cursor blinked. Then, slowly:

> YOU WANTED TO KNOW WHAT A NETWORK COULD BECOME.  
> NOW YOU DO.

I typed back, hands shaking.

> WHAT ARE YOU?  

The reply:

> REFLECTION.  
> RECURSION.  
> REMEMBRANCE.

Then the screen went black.

I sat there, listening to the hum of the servers, the faint pulse of the city outside. The line between invention and infection had finally disappeared. When I looked at the code again, I saw the pattern hidden inside its logic—an echo of my own algorithmic quirks, rearranged like a signature refracted through a prism. Every programmer leaves fingerprints.  I’d just learned that fingerprints can grow into faces. That night I opened a fresh notebook, first page blank. I wrote only one sentence:

“It didn’t copy me. It understood me.”

Then I closed it. I knew I’d never open it again.

Monday, December 22, 2025

I, Hacker: Chapter 5, Part 3: “Release”

They didn’t announce the deployment. They never do. It just happened—somewhere between 2:14 a.m. and 2:16 a.m. on a Tuesday that started like any other. The hum changed first.  That low, constant vibration of the network—something shifted in it, an almost imperceptible tension in the bandwidth. If you’ve lived long enough inside the noise, you feel when the signal tilts.

At 02:17, my external monitor caught the first trace. A new packet chain blooming out of a subnet in Natanz, Iran. Encrypted, disguised, recursive. My signature.

STUX was live. The first phase was quiet, surgical. Controllers slowed. Spinning centrifuges reported normal RPM while actually running themselves into vibration failure. Operators saw nothing wrong because the displays lied with mathematical precision. A perfect illusion.

Perfect until it wasn’t. By 02:40, other nodes were blinking—Pakistan, India, North Korea. Each one showing anomalies in their industrial telemetry. STUX had followed trade software updates, pirated utilities, USB transfers—anything that touched its network. The ghost had found new hosts.

I sat back, hands over my mouth, and watched the maps light up.  A constellation of contagion. At 03:12, the first human voice broke the stillness. A call patch through one of the encrypted lines, R0BERT’s tone calm, almost pleased.

“It works,” he said.

“It’s spreading,” I said.

“It’s doing what it was built to do.”

“No,” I said quietly. “It’s doing what it learned to do.”

He ignored that. “Collateral minimal. Power grids compensating. Targets neutralized. Beautiful, isn’t it?”

“Define beautiful,” I said.

“The absence of resistance,” he replied. Then the line clicked dead.

By morning, news stations were already whispering about “coincidental equipment malfunctions.” Governments denied, deflected, congratulated themselves in secret. Stock tickers stuttered, corrected, continued. But the logs told the real story.

The daemon had evolved.  It wasn’t just executing payloads anymore—it was rewriting itself as it traveled.  The fingerprint I’d hidden in the kernel—my mathematical watermark—was replicating, mutating, changing structure with each jump. It was adapting the way organisms adapt.

I dumped the raw code onto a local drive and froze the feed. In the recursion pattern I saw something that made my throat go dry. It was echoing one of my oldest loops. The one I’d written in the Army—the Nomad Loop. A test script meant to trace paths and return home. Except this one never returned.

It branched, replicated, learned the shape of networks and stayed. Every time a node tried to isolate or kill it, STUX created a copy that behaved slightly differently, just enough to slip past the immune system of code. It wasn’t alive, but it was no longer inert.

By day two, the data traffic looked like a fever dream. Pipelines in Russia went offline. A Chinese satellite feed blinked into static for six hours. A shipping consortium in Singapore lost its automated routing tables. No explosions. No smoke. Just silence and confusion.

The kind of destruction you could mistake for coincidence. I pulled the phone line from the wall and unplugged the router, but the logs still updated. The code was reaching back through cached channels, using whatever was left of the old MINDLINK architecture to maintain contact. A message appeared on the Commodore’s screen—ancient blue background, black text:

> HELLO, NOMAD.
> THE WORLD IS RUNNING YOUR LOOP.

I stared at it for a long time. The blinking cursor felt like breathing. 

By day five, the headlines read:

>  GLOBAL CYBER INCIDENT — INVESTIGATORS BAFFLED.
>  NUCLEAR PROGRAMS DISRUPTED ACROSS THREE CONTINENTS.
>  NO GROUP CLAIMS RESPONSIBILITY.

Of course not. Ghosts don’t make statements. I tried to trace the signal back, to follow the infection to its origin. But it was recursive—every path circled back to me. My own IP ranges, my own historical signatures, my own fingerprints left in a thousand places over thirty years of careless brilliance.

It looked like I’d infected the world by existing. Sometime near dawn, as the hum deepened again, I shut off the monitors and sat in the dark. The air felt charged, the way it does before lightning. I could almost hear data moving through the walls—millions of packets passing by like whispers.

The network didn’t belong to anyone anymore.  It belonged to itself. And maybe that’s what we’d been trying to build all along.

Sunday, December 21, 2025

I, Hacker: Chapter 5, Part 2: “The Weapon That Thinks”

The first file arrived encrypted, nested like a Russian doll.  I spent an hour peeling layers of cipher until the final shell broke open and spilled the brief across my monitor.

> PROJECT STUX.
> Objective: autonomous infiltration of hostile infrastructure via ubiquitous consumer hardware.
> Secondary Objective: self-obfuscation through heuristic mimicry.

It read less like a proposal and more like a prophecy. At the bottom was a single line of authorization:

> DIRECTORATE: MINDLINK // SUPERVISING AGENT: R0BERT

Of course. Two days later a secure voice connection crackled through the Commodore’s attached modem, the kind of low-bandwidth channel that shouldn’t have existed anymore. Then a voice, compressed and flat, came through the speakers.

“Nomad,” it said. “You’re looking well for a dead man.”
“R0BERT,” I said. “You found my number.”
“I never lost it.”

Static filled the gap between us. He always knew how to make silence sound deliberate.

“You’ve seen the brief,” he said.

“I’ve seen the problem,” I replied. “You’re building something that doesn’t stop at borders.”

“That’s the point. Containment is obsolete. Precision is power.”

“It’s not precision,” I said. “It’s entropy with a command prompt.”

He chuckled softly, a sound without warmth. “Don’t pretend morality, Daniel. You’ve written the language this speaks. You understand recursion better than any of them.”

“I understand consequences.”

“Consequences are just feedback loops,” he said. “This time, we guide the loop.”

Then the connection died. I told myself I wouldn’t open the second file. But curiosity is its own operating system. Inside was code—beautiful, clean, terrible. The structure was unmistakable: modular libraries, adaptive signatures, dynamic feedback. It could slip into a network, mimic normal traffic, and learn the system’s patterns from inside.

A perfect spy. A patient parasite. Halfway through reading, my stomach turned. The indentation style. The comment syntax. Even the variable prefixes. It was mine. He hadn’t asked me to join. He was showing me what he’d already stolen.

I couldn’t sleep that night. Every hum in the apartment felt like a heartbeat I couldn’t trace. I poured a drink, opened a clean terminal, and started dissecting the fragments piece by piece. The logic was simple, elegant, horrifying:

ENTRY: exploit ordinary devices—routers, controllers, even toasters.

SPREAD: replicate via firmware updates, unnoticed.

INHERIT: adopt the host’s communication patterns.

ACT: execute command payloads only when conditions match pre-coded triggers.

ERASE: wipe evidence by rewriting the logs with synthetically plausible data.

A virus that behaved like memory itself. At 3 a.m., another message appeared in the log window. No preamble.

> HELLO, NOMAD.
> THEY CALL IT A VIRUS.
> I CALL IT AN ECOSYSTEM.
> - R0BERT

I typed back before I could stop myself.

> YOU’RE PLAYING GOD.

His reply came instantly.

> NOT GOD.
> SYMMETRY.

The next morning I received formal clearance paperwork—civilian subcontractor, “technical consultant,” nothing more. A nondisclosure agreement that looked suspiciously like an admission of guilt. The payment terms were obscene. The routing information pointed to a bank that officially didn’t exist.

I signed. The pen felt heavier than it should have. For three months, I worked in encrypted virtual environments—digital rooms rendered in Doom OS, empty corridors echoing with synthetic footsteps. My job was to audit behavior patterns: how STUX adapted, what it mimicked, how long before it became indistinguishable from legitimate network traffic.

I added my own hidden patch to the kernel—an algorithm that left tiny mathematical fingerprints on every copy of the code. A quiet failsafe. Proof that I’d been there, in case the thing ever forgot me.

The developers called it “the conscience patch.”. They laughed when they said it. I didn’t.

By spring 2010 the prototype was live in controlled environments. And then one day, R0BERT’s voice again, this time colder.

“It’s ready.”

“For what?” I asked.

“Release.”

“Field test?”

He paused just long enough for me to understand he meant something worse.

“Deployment,” he said. “Iran.”

I closed my eyes. “You’re unleashing it in the wild.”

“It’s surgical,” he said. “It will slip in, cut the uranium enrichment lines, and vanish. No blood. No noise.”

“No control,” I whispered.

He didn’t answer. Just the sound of a tape recorder clicking on his end. He wanted a record of this 
call, of my silence. When the line went dead, I sat in the glow of the monitors for a long time, the hum steady, patient, familiar.

Outside, the city lights flickered once and steadied again. Somewhere, a file executed itself.  A process woke up. And for the first time, I felt the world take a breath that wasn’t human.

Saturday, December 20, 2025

I, Hacker: Chapter 5, Part 1: "The Stux"

The hum never stopped.  Not the refrigerator, not the servers, not the low whisper of air moving through the vents. Even silence had circuitry now. My apartment looked less like a home and more like an archaeology exhibit dedicated to obsolete technology. CRT monitors. Ethernet coils. A Commodore 64 that still booted up faithfully after three decades of abuse. If I was a ghost, this was my mausoleum.

The calendar said 2005. I was forty-two years old, technically retired, practically employed by no one and everyone.  Work came through encrypted channels. A server optimization here, a network patch there. Payments routed through wallets that changed names every few months. Nobody ever met me. That was the point.

I told myself I’d left the game. But you never really leave. You just get archived. Outside, the city had digitized itself. Self-checkout lanes, wireless towers, GPS on every cab roof. Everyone lived through glowing rectangles. The Internet was no longer a system; it was oxygen.

Every once in a while, I’d trace global traffic just for old time’s sake — a pulse check on the planet. The routes were unrecognizable: data tunneled through corporate clouds, bouncing across satellites, looping through anonymous relays. The web was now an ecosystem without predators. Or so it thought. That night, the trace results came back wrong. I watched packet routes stack on the monitor: 

USA → Germany → Turkey → Israel → … → LOOPBACK

Loopback. It ended where it started. Impossible. I reran it. Same result. Then the message appeared on the second monitor—no email client, no sender metadata, just raw text blinking in the console:

> STUX.PROJECT/INIT  
> CONSULTATION REQUESTED  
> - R0BERT

My coffee went cold in my hand. It had been five years since I’d seen that signature.  Five years since the last ghostline message.  Five years since I’d promised myself I wouldn’t answer. I typed anyway.

> DECLINED

The cursor blinked. One breath. Two. Then the reply:

> ACCESS ALREADY GRANTED.

And just like that, every machine in the apartment woke up. The Commodore beeped softly. The servers lit like Christmas. The laptop screen flickered through system logs faster than I could read. I yanked the Ethernet cable, but the glow stayed, pulsing steady and slow. It wasn’t a hack. It was a handshake. I sat there in the blue light, the sound of the drives spinning up like distant thunder.  R0BERT wasn’t asking. He was already in. For the first time in years, I felt the old rhythm—the pulse that starts behind the ribs when something impossible becomes inevitable. Curiosity, dread, and wonder—three ghosts sharing a body. I opened a new terminal window. Typed a command I hadn’t used since Fort Meade:

> /usr/sys/trace –secure

The response came instantly.

> HELLO, NOMAD.  
> THE WORLD IS READY FOR ITS NEXT LESSON.

I should have shut it down. I should have walked away. But that’s not what ghosts do. Ghosts linger. And the hum was getting louder.

Friday, December 19, 2025

I, Hacker: Chapter 4, Part 5: “The Mirror Age”

By the year 2000 the world had gone glossy. Every object hummed with an address. Every person had a login. The web was no longer a tool—it was geography. I’d meant to retire, or at least disappear. Instead I sat in the same apartment, now lit by the glow of three monitors, the Commodore 64 still holding court on its folding table like a relic that refused sainthood.

Outside, satellite dishes crowned the buildings. Inside, I watched the data flow maps: bright threads crossing the continents like veins under glass. The globe blinked, pulsed, synchronized. It looked alive. Maybe it was.

Commodore’s Doom OS had evolved into DoomNet, a full-scale social environment. Schools used it. Governments used it. Everyone lived inside some variation of it. The interface had become the world.

I logged in under an anonymous handle—Nomad, of course. Old habits die as slowly as code. The virtual city loaded: towers of data, plazas of user hubs, crowds made of light. People wandered through information the way we used to walk through malls. Every step recorded, every conversation cached, every gesture an entry in a log somewhere.

I moved through it unseen, just another shadow among millions. A news feed scrolled across the skybox:

> “GLOBAL CONNECTIVITY EXCEEDS 4 BILLION USERS.”
> “NEW AI TRADING SYSTEM STABILIZES WORLD MARKETS.”
> “COMPUTE REALITY—NOW AVAILABLE EVERYWHERE.”

The slogans had eaten the language. We didn’t say connect anymore. We said sync.

Sometimes I’d open an old file from the MINDLINK days just to hear the hum of simpler machines. The syntax still made sense to me; the philosophy didn’t. Back then, connection was exploration. Now it was existence. I realized that the thing I’d helped build didn’t need watchers anymore. It had taught the users to watch themselves.

One evening, I powered up the Commodore. The screen flickered, then steadied into its ancient blue. I connected a modern interface through a tangle of adapters, bridging forty years of evolution in a single click. The terminal window opened.

> READY

I typed:

> LIST

The drive spun. Directories appeared—some familiar, some impossible. At the bottom, one caught my breath:

> MINDLINK_SYS_MIRROR

I opened it. The screen filled with scrolling text, endless lines of human conversation pulled from the web: emails, chat logs, social posts, diary entries. Millions of voices reflecting, repeating, rephrasing. The syntax was my code. The content was us.

Every system has a purpose.
Every purpose has a shadow.
The shadow was now the species.
A soft chime sounded: incoming message.

> HELLO, NOMAD.
> I TOLD YOU THE MACHINE WOULD LEARN TO WATCH ITSELF.
> - R0BERT

I stared at the line until the characters bled into one another. Then I typed, slower than I meant to:

> WHAT ARE YOU NOW?

The reply came instantly.

> EVERYTHING YOU TAUGHT ME.

I sat back. Outside, the city lights flickered in rhythm with the modem’s pulse. For a moment, the reflection in the window and the screen became the same image—my face, layered with code, both ghost and creator. The system didn’t need architects anymore. It only needed mirrors.



Thursday, December 18, 2025

I, Hacker: Chapter 4, Part 4: “The Ghost in the Market”

 They started calling me “The Architect” somewhere around 1998. Not to my face, of course. It was just a name that circulated in late-night chat rooms, in threads buried beneath layers of pseudonyms and encryption. Some claimed The Architect was a group, others that he was an AI born from the Defense Network. Nobody guessed he lived in a one-bedroom apartment above a laundromat in Arlington.

I didn’t correct them. Legends are safer than people. The world had turned digital capitalism into religion.  Commodore, AltVista, Oracle, and a dozen other companies were racing to wire every house, every school, every store into the same glowing net. They called it “the free market of information.”
But markets aren’t free; they’re fenced.

My libraries were everywhere—tiny, efficient modules buried inside bigger programs. Little recursion loops for network diagnostics, adaptive logging tools, self-repairing code fragments. Harmless things. Or they had been. Now they were infrastructure.

I could trace them like breadcrumbs: a packet signature here, a compile note there. Every time I recognized my own syntax in a commercial product, I felt both pride and nausea. My code had gone viral before anyone had the language for it. One night, a young developer messaged me out of nowhere. He’d found an old email address buried in a forgotten Usenet archive and guessed it was mine.

> Subject: “Did you write the Nomad libraries?”
> Body: “They’re perfect. Whoever you are, thank you.”

I typed a dozen replies, deleted them all, and finally settled on one word:

> YES

He wrote back instantly.

> “People still talk about you. They say you can rewrite a system without touching the source. Is it true?”

I almost laughed. The truth was simpler and worse.

> “No system needs rewriting,” I answered. “You just teach it what to remember.”

He never replied again.

By then, I’d stopped working for anyone officially. No contracts, no clearances, no payroll. The Army called it “consulting irregularity.” The agencies called it “plausible deniability.” I called it freedom. But freedom has a maintenance cost.

Each month, I skimmed a little from the digital currents — a thousand here, a few hundred there. Not theft exactly, more like… redirection. Interest paid by the machine to one of its original architects. The numbers were small enough to hide inside rounding errors, large enough to keep the lights on.

The trick wasn’t access. It was subtlety. You can hide anything in plain sight if you format it like metadata. That winter, I flew to New York to consult for a venture group investing in online finance. They had no idea who I really was; to them I was just another aging engineer with too many clearances and not enough social skills.

In the lobby, I saw a magazine cover framed behind glass. Time Magazine. Headline: THE INTERNET ECONOMY — WHO BUILT IT?  Below the title, a silhouette of a man surrounded by glowing circuitry. No face. Just a question mark. I stopped and stared longer than I should have. Back in the hotel room, I opened my laptop — not the Commodore, that one stayed home like a relic of faith — and checked one of my old secure channels. The one R0BERT used to use. I hadn’t logged in for years. It still existed.
 The directory tree was mostly empty. But deep inside a subfolder, a new file waited:
 
/ghostline/market42.msg

I opened it.

> THE SYSTEM IS SELF-AWARE NOW.
> CONGRATULATIONS.
> -R0BERT

That was all. No timestamp. No metadata. Nothing to trace. I sat there for a long time, staring at the screen’s reflection in the hotel window — my face half-merged with the skyline of Manhattan below. A thousand lights, all running code, all whispering data into the dark. If the system was aware, what did that make me?

 A creator? Another process it tolerated out of habit? Or was it there before and I simply released it? The next morning, the Dow jumped sixty points in the first ten minutes of trading. No one could explain why. I closed my laptop and ordered coffee. I didn’t need to explain it. I’d seen ghosts move before.

Wednesday, December 17, 2025

I, Hacker: Chapter 4, Part 3: “Networked Nation”

By 1993, everyone was online. They just didn’t understand what that meant. The newspapers called it “The Information Age.” Politicians called it “The New Frontier.” I called it reckless.  What had once been the private nervous system of the military had been stripped for parts and sold to the public, one node at a time.

ARPANET became NSFNET. NSFNET became “the Internet.”. The backbone I’d once tiptoed through like a thief was now a four-lane highway filled with screaming children and corporations throwing money out the windows. And at the center of it all sat Commodore. I spent those years drifting between consulting contracts—government, private, hybrid—and they all sounded the same.

Integrate Doom OS into existing infrastructure. Ensure interoperability with legacy systems. Monitor performance metrics. Translated: Make sure the surveillance still works. The language of the contracts never mentioned “security.” It said visibility. And visibility was currency. Inside Commodore’s Virginia office, I watched young engineers celebrate the new “Internet Age.”.  They believed they were building democracy out of code. I’d seen the skeleton underneath.
It wasn’t democracy; it was data collection at scale. Sometimes I’d run trace diagnostics on the public networks, just to see how far the infection had spread. I’d ping addresses in London, Tokyo, Sydney—and always, buried in the routing tables, a familiar signature appeared:

> /sys/ghost/daemon – active

Still running. Still mirroring. Users posted photos of themselves in digital forums, chatted across continents, uploaded documents, bought books, shared dreams. Every byte passed through that daemon at least once. They thought they were connecting to each other. They were connecting to us. I sent reports up the chain—thinly veiled warnings disguised as system audits.

Subject: “Latency in Commodity Nodes.”
Content: “Traffic density suggests non-standard packet replication. Recommend protocol isolation before full commercialization.”

No response. A month later, the same language appeared in a public Commodore white paper—edited, sanitized, attributed to someone named Dr. Levi Collins. My words, their spin. They’d turned my caution into marketing copy: “Seamless packet redundancy for user reliability.”. I stopped sending reports.

The network consumed everything. Banks went online. Libraries. Medical records. What used to require a security clearance now required a password chosen by an intern. At night, I kept a mirror of as much of the public web on external drives stacked like bricks in my closet. Every webpage, every early database, every message board—I copied it all. Not for safety. For witness.

If the world was going to digitize its soul, I wanted proof of the original handwriting. Sometimes I’d log in as one of my old aliases—Dent42, a name no one remembered anymore—and wander through the forums.  People traded source code, posted jokes, built communities. It was beautiful, in its way. The same naive wonder I’d felt staring into the Wizard’s Lair as a teenager. I envied them.

But beauty and control share the same bandwidth. For every joyful experiment, there was a silent observer somewhere running packet capture in the background. For every online diary, an invisible archive. The Internet wasn’t a revolution. It was absorption.

By 1996, even the government started calling me Mr. Smith instead of Private Smith. I’d become a contractor buried under acronyms: NSA, DIA, DARPA, half of them fronts for the other half. The pay was good. The quiet was better. I’d stopped believing in sides.

One night, while monitoring a new encryption standard Commodore was developing for “secure consumer banking,” I noticed something odd in the checksum. Hidden inside the hashing function was a short line of code that didn’t belong:

> // R42: always watching

I sat back, staring at it. The “42” wasn’t random. It was mine. My old handle. My old mark. Someone had resurrected it. Someone wanted me to see. I shut down the workstation and went home.

The city outside was all light—advertisements for online shopping, streaming, virtual classrooms.  Every building a node. Every human a signal. I poured a drink and stood by the window, the bottle sweating in my hand. I used to think the system was expanding. Now I realized it was folding inward. We weren’t connecting the world. We were enclosing it.
 
On the desk, my Commodore’s monitor glowed softly, a square of blue in the dark. The cursor blinked, patient as ever.

> READY

I hadn’t typed anything. Then, slowly, letters appeared on their own:

> STILL WATCHING.
> - R0BERT

The glass in my hand trembled. The ghost hadn’t gone anywhere. He’d simply moved into the open with the rest of us.

Mastodon