Twenty-nine years of things nobody asked for

· 9 min read · #projects · #retro · #indieweb · #smallweb · #self-hosting · #terminal · #open-source · #bbs

Contents

The first program I ever wrote had one button. You clicked it and the whole window changed color. That was the entire feature list. I made it in Delphi, from a book I bought at Avalon, the old bookstore in my town, after a long fight with my mom. It was a very didactic book.

That was 1997, and I have been writing code ever since. If you squint, most of it is still that button, only bigger and with a database behind it.

By the end of the nineties I was living on IRC, holding ops in channels and working as NetAdmin and IRCop on some networks that were, frankly, a little crazy. In 1999 a man everybody called Crazy Leo sat me in front of a computer and announced, very slowly, that I would learn Slackware. Lesson one was a modem driver. Part II has the rest of that story.

Somewhere along the way I also became an administrator and a CEO, so the side projects happen in the gaps, and the gaps fill up servers. My git server alone holds a bit over two hundred public repositories, and a respectable number of them are folders called "test" wearing a nicer name.

So this is the tour. Newest first, then backwards in time, with links for the ones worth a click. Skip around as much as you like.

Fresh out of the oven #

runv.club is a small public Unix server, run from Brazil. Members get a shell over SSH, a web page at runv.club/~you, a Gemini capsule, a Gopher hole, an eepsite on I2P and git repositories. Each account has one CPU, 1 GB of RAM and 2 GB of disk. The whole box is rebuilt from an Ansible repo, so if it ever catches fire I can grow it back from text.

earthputer tells the history of computing since 1936 as a git log --graph. Every machine, language and network is a commit. The newest commits are this month's tech news, so the log never ends, which feels about right for this industry.

Earlier today I wrote about theraven.email and theraven.my. The first is a contact form that drops messages into the inbox you already have. The second is a little town where your house is a web page and you publish by sending an email.

Patchwork does something RSS was never built for: it tells readers that an old page changed. It keeps every version of a Markdown page and publishes the revisions I choose to announce, with removed words struck out and new ones marked. The guinea pig is moonflowersociety.org, my nocturnal garden of half-finished ideas, written in Portuguese. Its sibling, patchwork-turbo, points the same machinery at everything else: web pages, other people's feeds, JSON and CSV files, Word documents and even the public API of a Go module. If a pricing page quietly moves the Pro plan from 49 to 59, turbo notices.

tacky-themes holds 57 website themes rescued from studio and agency sites from 2002 to 2009. Grey backgrounds, 11px type, a photograph sitting where a hero banner would be now. A lot of those sites are gone, so the pages live here. Plain HTML and CSS, and they politely refuse to touch any page that doesn't use their classes.

For the IndieWeb crowd #

indiedesk is a relay for a feed with no declared topic, fed by Webmention and delivered as Atom and JF2 (the idea is explained here).

indiechecker reads any page, lists every microformat, rel link, IndieWeb endpoint and meta tag it finds, then tells you what to fix and hands you the HTML for it.

itwhisper is a whole digital garden in a single index.html, with pages and backlinks generated from an outline inside the file. No build step, no database, no tracking.

PyPub is a desktop Micropub client for Windows. You sign in with your own domain through IndieAuth, write in text, Markdown or HTML, attach media and publish to your site. The login token goes to the Windows Credential Manager, where it belongs, and not to a text file on the desktop.

mdssg turns a folder of linked Markdown notes into a static site. One file, no dependencies, Linux and Windows. Its README says the project is finished and tells you to fork it if you want more, which is a very relaxed thing to put in a README.

Gazelles and other torrent animals #

A bit of history first. Gazelle is the open-source PHP framework that ran What.CD, the private music tracker that closed in 2016 and that people still mention in a lowered voice. The code stayed public, and plenty of private trackers still run something descended from it. Its partner is Ocelot, a tracker written in C++, the part that answers your torrent client.

I forked it twice. Gazela is Gazelle with Docker, a CI pipeline and a Cthulhu theme, and the README opens with Lovecraft: "That is not dead which can eternal lie." GazelaPW is the bigger one: a full torrent management system on top of Gazelle, with a React/Preact interface, Ocelot built in and the whole thing in Docker Compose.

Then there's Rastro, Portuguese for "trace". It watches public BitTorrent trackers, knocks on each announce URL over UDP, HTTP and HTTPS, writes down whether whatever answers speaks the protocol, and serves the history as a page and as JSON. The README says, in capital letters, that it does not share files. It only takes attendance.

Things you open with a terminal #

Hammer is a BBS you reach over SSH:

ssh -p 2323 guest@hammer.pablomurad.com

Inside there are forums, live chat, a last callers screen, ANSI art, NES games running in the terminal, doors and ports for an actual Commodore 64. It started life as a weather forecast, and that still works with curl https://hammer.pablomurad.com/Curitiba. With every feature switched on and nobody connected it sits at about 15 MB of memory. The full story is here and the source is here.

This blog answers the terminal too. Type curl pablomurad.com and you get the whole site in ANSI colors, wrapped for an 80-column window, with links numbered at the bottom like in Lynx. The posts come from PaCord, my own fork of Pagecord, and Eleventy writes a terminal copy of every page next to the HTML one. How it works.

Soledade is a city made of text. Authors are citizens with a house at /@name/, topics are neighborhoods, and the front page is the Central Square. You publish by talking to port 1915 with ncat, using a little protocol I wrote called SOLED/2. The browser only reads.

rss.expert answers your browser with a web page and your terminal with plain text, from the same address. Try curl https://rss.expert/weird for a handful of small, odd personal sites. I paid for that domain for three years before I figured out what to do with it.

htmlansi converts any image into CP437 ANSI art, as HTML or as a proper .ans file. Useful if you run a BBS. Mildly concerning if you don't.

The small web department #

Bimbooo is a quiet place for pastes, Markdown pages and tiny hand-written HTML sites, each person at their own you.bimb.ooo. It's invite-only, a human reads every request, and the mascot is a small pink elephant. Mine is at murad.bimb.ooo.

phlog.space is a photo site that ruins your photos on purpose. Every upload is shrunk to 400 pixels and handed to one of 35 random effects: fax machine, Game Boy screen, VHS tape left in a hot car, Super 8 with dust on the lens. You find out which one after you hit post. The original goes in the trash, along with the EXIF data. Profiles have a guestbook and a hit counter, as the gods of 1999 intended.

weirdnet.org is a hand-made map of the small, weird, personal web. More than 36,000 links, picked one at a time by a person with a mouse. That person is me, and my wrist would like a word.

sussurra.me means "whisper me" in Portuguese, and that's what it is: a quiet corner with short whispers and a map of the things I keep building. This post is the long version of that map.

links.expert is my personal bookmark service, minimal and fast, running on my own fork of a bookmark app.

Fedizine is a tiny press for the Fediverse. It collects fragments from RSS and ActivityPub, lets an editor pick the good ones at the Editorial Desk, and publishes a monthly issue on the web and as an A5 PDF you could print and staple.

Prami is a virtual pet that lives as a Mastodon account. You mention it with commands, it answers, its mood drifts over time and now and then it posts on its own. A pet that lives on the Fediverse is exactly as silly as it sounds.

skull.black is a Usenet server, readable on the web or with a news reader over NNTPS. I built it to understand how Usenet works. While checking an old Intel NUC from 2019 on the bottom shelf of my rack, I also found an IRC network still running at irc.skull.black, and a Mumble server, both of which I had forgotten existed.

Small tools for my own desk #

Three of them are named after my cats. pupu.page is a Markdown editor. tuno.place is sticky notes that work the same on Windows and Linux, with everything kept locally. tedy.science looks like a scratchpad and does math that would embarrass a scratchpad. Pupu grew out of Snow Editor, a Markdown and Org-mode editor I made a few years earlier.

cult of pablo is the page my browser opens: search with shortcuts, the day's news from my feeds, the weather, the moon, planetary hours and the arcanum of the day. The layout borrows its mood from Jodorowsky's The Holy Mountain. Under /taro there's a full Tarot oracle in the Marseille tradition, with its own geometric deck in SVG and no AI doing the reading.

news-mcp is a small MCP server that gives an AI assistant the news. A collector pulls RSS feeds into SQLite, and the assistant can list sources, read the latest headlines or search them. No paid API, no third-party token.

Koito Frame turns my listening stats from Koito into images for Instagram. Pick a period, pick a format, download. Posting it is still on me.

For the breaks: The Last Glyph is a dark turn-based RPG about a world that lost its names, told entirely in emoji. Emojesis starts you with fire, water, earth and air and lets you combine your way through 110 elements and 168 recipes. Fire plus water is steam. Steam plus earth is time. It gets weirder from there. There's also chess in the browser, and A Good Line, which shows you one quote and another if you ask.

Things to read #

HTML e Pessoas is a course in Portuguese that takes you from zero to your first site. My personal cookbook, also in Portuguese, lives at docs.pablomurad.com, from hacking to programming, and the things I've researched lately are in the Murad Library at murad.gg.

Alexandria is an endless, read-only library of the Markdown files sitting in public GitHub repositories. No login. You open it, read a README, follow a link to another one, and an hour is gone.

Treatises and Declarations is the angry one: a growing collection of philosophical-punk texts, in Portuguese, about voluntary servitude to images and the worship of false digital gods. It's still a work in progress, which is the correct status for a manifesto.

Machinery with a straight face #

1208.sh is my identity page. The domains, accounts and documents that belong to me are signed with my OpenPGP key and recorded on Bitcoin, and your browser can verify the whole thing on its own, without trusting my server.

Zion Wallet is a Bitcoin and Ethereum terminal that sits on my desk, built on an Orange Pi CM4 with a tall display treated as a 160 by 25 character console. It's personal, it's a hot wallet and it says so, and for now it only touches test networks.

NyxPE is a small Windows maintenance ISO that runs entirely from RAM, with just enough tools to fix a Windows install from the outside.

The attic #

Older repositories, in no particular order: a small browser for Linux built on luakit, plus its Windows cousin in C#. A Jellyfin observer. Templates for Unraid. A Matrix screensaver for Linux. A sudoku, a nickname generator and a safe key generator. ASCII fire in JavaScript. Four Ghost themes. Three folders of Windows scripts for the day after a format.

Where to dig #

Everything public is at git.pablomurad.com. Some projects are still closed because I don't think they're ready for other people to depend on, and I'd rather open them late than leave someone holding a broken tool.