Timeline Sandbox

@prologic@twtxt.net

Problems are Solved by Method\" πŸ‡¦πŸ‡ΊπŸ‘¨β€πŸ’»πŸ‘¨β€πŸ¦―πŸΉβ™” πŸ“βš― πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘§πŸ›₯ -- James Mills (operator of twtxt.net / creator of Yarn.social 🧢)

@prologic@twtxt.net

@lyse Found it and fixed it! πŸŽ‰ The crawler's discovery spider was fetching every feed a second time, without any conditional headers (plus a couple of other politeness bugs: redirected feed URLs never stored their cache validators, and there was no floor between re-fetches). Now every feed is fetched at most once per crawl, always with If-Modified-Since / If-None-Match, and never more than once per 15m no matter what. Just deployed β€” please keep an eye on your access logs and let me know if you still see anything impolite from the crawler πŸ™

In reply to: #zeq3qoip5fcd 1 day ago
@prologic@twtxt.net

So I've been working on GoNIX the last few days... Which is derived from Β΅Linux -- At least it's entire build process. GoNIX however has a 100% Go userland, including the init process, package and service management.

Now... As an experiment, because I was able to make much process on enhancing the build tools and package management, I decided to see if I could build a "Desktop" Gui of sorts...

I still wanted it to be fairly minimal and lightweight. So I went with wayland (of course) and labwc and yambar. So far I'm liking the result πŸ‘Œ 42 packages in the wayland-desktop meta port. Not too bad. Not sure if I can slim that down anymore... But trying to avoid Mesa/GL as that drags in far too much "cruft".

Read replies 2 weeks ago
@prologic@twtxt.net

Read replies 1 month ago
@prologic@twtxt.net

On the weekend just gone we also visited Twin Falls, which was absolutely magnificent!

Read replies 2 months ago
@prologic@twtxt.net

Natural Bridge

Read replies 2 months ago
@prologic@twtxt.net

495 turns and about ~4hrs alter I won! πŸ™Œ Small map, 2-players, myself and an AI player. πŸ˜… -- It took forever to beach the island the AI player was on and get enough Galley's and Swordsmen just to push back and eventually slowly destroy all enemy units and capture all cities! 🀣

Read replies 2 months ago
@prologic@twtxt.net

Just a couple of shots from our trip to Bald Rockβ€”finally got reception so I can share them!

Read replies 2 months ago
@prologic@twtxt.net

And we're back! 1st test trip πŸ‘Œ

Read replies 3 months ago
@prologic@twtxt.net

Our first test over night trip 🀞

Read replies 3 months ago
@prologic@twtxt.net

Read replies 4 months ago
@prologic@twtxt.net

We got at our new van!!! πŸ₯³

Read replies 4 months ago
@prologic@twtxt.net

Well it's ~2am and I finally defeated the AI player in a game of Frontier Crown πŸ‘‘ -- On that note I'm now going to bed, I've made so many improvements to the aesthetics (UX) of the game, the mechanics, and it's now quite nicely playable πŸ‘Œ G'night! 😴

Read replies 4 months ago
@prologic@twtxt.net

Btw @movq you've inspired me to try and have a good 'ol crack at writing a bootloader, stage1 and customer microkernel (¡Kernel) that will eventually load up a Mu (¡) program and run it! 🀣 I will teach Mu (¡) to have a ./bin/mu -B -o ... -p muos/amd64 ... target.

Read replies 5 months ago
@prologic@twtxt.net

Mu (¡) is coming along really nicely 🀣 Few things left to do (in order):

  • Finish the concurrency support.
  • Add support for sockets
  • Add support for linux/amd64
  • Rewrite the heap allocator
  • Rewrite Mu (Β΅) in well umm Mu (Β΅) πŸ˜…

Here's a screenshot showing off the builtin help():

Read replies 5 months ago
@prologic@twtxt.net

Nice! 😊 Here are the startup latencies for the simplest Mu (¡) program. println("Hello World"):

  • Interpreter: ~5ms
  • Native Code: ~1.5ms
Read replies 6 months ago
@prologic@twtxt.net

Hmmm πŸ€”

Excluding merges, 1 author has pushed 171 commits to main and 175 commits to all branches. On main, 294 files have changed and there have been 52880 additions and 18269 deletions.

From the Mu (Β΅) Gitea Activity Tab

Read replies 6 months ago
@prologic@twtxt.net

Whoo! I fixed one of the hardest bugs in mu (Β΅) I think I've had to figure out. Took me several days in fact to figure it out. The basic problem was, println(1, 2) was bring printed as 1 2 in the bytecode VM and 1 nil when natively compiled to machine code on macOS. In the end it turned out the machine code being generated / emitted meant that the list pointers for the rest... of the variadic arguments was being slot into a register that was being clobbered by the mu_retain and mu_release calls and effectively getting freed up on first use by the RC (reference counting) garbage collector πŸ€¦β€β™‚οΈ

Read replies 6 months ago
@prologic@twtxt.net

I cleaned up all my of AoC (Advent of Code) 2025 solutions, refactored many of the utilities I had to write as reusable libraries, re-tested Day 1 (but nothing else). here it is if you're curious! This is written in mu, my own language I built as a self-hosted minimal compiler/vm with very few types and builtins.

https://git.mills.io/prologic/aoc2025

Read replies 6 months ago
@prologic@twtxt.net

I finished all 12 days of Advent of Code 2025! #AdventOfCode https://adventofcode.com β€” did it in my own language, mu (Go/Python-ish, dynamic, int/bool/string, no floats/bitwise). Found a VM bug, fixed it, and the self-hosted mu compiler/VM (written in mu, host in Go) carried me through. πŸ₯³

Read replies 6 months ago
@prologic@twtxt.net

Day 7 was pretty tough, I initially ended up implementing an exponential in both time and memory solution that I killed because it was eating all the resources on my Mac Studio, and this poor little machine only has 32GB of memory (I stopped it at 118GB of memory, swapping badly!), This is what I ended up doing before/after:

  • Before: Time O(2^k Β· L), memory O(2^k), where k is the number of splitters along a reachable path and L is path length. Exponential in k.
  • After: Time O(RΒ·C) (or O(RΒ·C + s) with s split events), memory O(C), where R = rows, C = columns. Polynomial/linear in grid size.
Read replies 6 months ago
@prologic@twtxt.net

I'm having to write my own functions like this in mu just to solve AoC puzzles :D

fn pow10(k) {
    p := 1
    i := 0
    while i < k {
        p = p * 10
        i = i + 1
    }
    return p
}
Read replies 6 months ago
@prologic@twtxt.net

I just completed "Secret Entrance" - Day 1 - Advent of Code 2025 #AdventOfCode https://adventofcode.com/2025/day/1 --- However I did it in my own toy programming language called mu, which I had to build first 🀣

Read replies 6 months ago
@prologic@twtxt.net

Come back from my trip, run my AoC 2025 Day 1 solution in my own language (mu) and find it didn't run correctly 🀣 Ooops!

$ ./bin/mu examples/aoc2025/day1.mu
closure[0x140001544e0]
Read replies 6 months ago
@prologic@twtxt.net

I kind of hate conventional commit messages: https://www.conventionalcommits.org/en/v1.0.0/#summary

but I am loving reading RFC 2119: https://www.ietf.org/rfc/rfc2119.txt

Read replies 6 months ago
@prologic@twtxt.net

I don't know what this fruit is called! The waiter at breakfast told me the Vietnamese name but I've since forgotten πŸ˜‚

Read replies 7 months ago
@prologic@twtxt.net

Saw this thing today 🧐

Read replies 7 months ago
@prologic@twtxt.net Read replies 7 months ago
@prologic@twtxt.net

Hmmmm the AoC site is not mobile friendly 😒 Can someone post the puzzles as Twts? 🀣

Read replies 7 months ago
@prologic@twtxt.net

Thinking about doing Advent of Code in my own tiny language mu this year.

mu is:

  • Dynamically typed
  • Lexically scoped with closures
  • Has a Go-like curly-brace syntax
  • Built around lists, maps, and first-class functions

Key syntax:

  • Functions use fn and braces:
fn add(a, b) {
    return a + b
}
  • Variables use := for declaration and = for assignment:
x := 10
x = x + 1
  • Control flow includes if / else and while:
if x > 5 {
    println("big")
} else {
    println("small")
}
while x < 10 {
    x = x + 1
}
  • Lists and maps:
nums := [1, 2, 3]
nums[1] = 42
ages := {"alice": 30, "bob": 25}
ages["bob"] = ages["bob"] + 1

Supported types:

  • int
  • bool
  • string
  • list
  • map
  • fn
  • nil

mu feels like a tiny little Go-ish, Python-ish language β€” curious to see how far I can get with it for Advent of Code this year. πŸŽ„

Read replies 7 months ago
@prologic@twtxt.net

Sharing some photos of our Vietnam trip so far...

Read replies 7 months ago
@prologic@twtxt.net

this is apparently a famous lake in Hanoi city in Vietnam. Don't know what it's called though.

Read replies 7 months ago
@prologic@twtxt.net

We have arrived at our first hotel. but check-in isn't till 2PM 🀣 We arrived at 12:45PM πŸ˜†

Read replies 7 months ago
@prologic@twtxt.net

One of the advantages of being vegetarian. you get served your in-flight meal first. before everyone else 🀣

Read replies 7 months ago
@prologic@twtxt.net

I'm kind of tired of late of telling support folks, for example, ym registrar, how to do their fucking goddamn jobs πŸ€¦β€β™‚οΈ

Hi James,

Thank you for your patience.

There are several reasons why a .au domain registration might fail or be cancelled, including inaccurate registrant information, ineligibility for a .au domain licence, or issues related to Australian law.

For a full list of possible reasons, please see this article: https://support.onlydomains.com/hc/en-gb/articles/6415278890141-Why-has-my-au-domain-registration-been-cancelled

If you believe none of these reasons apply to your case, please let us know so we can investigate further.

Best regards,

Yes, so tell me support person, why the fuck did it fail?! 🀬

Read replies 7 months ago
@prologic@twtxt.net

Sooooo looking forward to my holiday, after this week of work 🀯 16 day holiday in Vietnam! Whoohoo 🀟

Read replies 7 months ago
@prologic@twtxt.net

Sometimes, (just sometimes) my ability to pattern match and remember how to play perfect games of chess is awesome 😎

Read replies 7 months ago
@prologic@twtxt.net

Anyone on my pod (twtxt.net) finding the new Filter(s) useful at all? πŸ€”

Read replies 7 months ago
@prologic@twtxt.net

Tired to re-enable the Ege route to git.mills.io today (after finishing work) and this is what I found 🀯 Tehse asshole/cunts are still at it !!! 🀬 -- So let's instead see if this works:

$ host git.mills.io 1.1.1.1
Using domain server:
Name: 1.1.1.1
Address: 1.1.1.1#53
Aliases:

git.mills.io is an alias for fuckoff.mills.io.
fuckoff.mills.io has address 127.0.0.1

PS: Would anyone be interested if I started a massive global class action suit against companies that do this kind of abusive web crawling behavior, violate/disregards robots.txt and whatever else standards that are set in stone by the W3C? πŸ€”

Read replies 7 months ago
@prologic@twtxt.net

Oh fuck me! I had basically turned off the route to git.mills.io last night and went ot bed at ~2AM after unsuccessfully trying to control the attacks (bad bots) that were behaving like a DDoS attack. Tried to re-enable the route this monring and *BOOM, they're back! As-if they never stopped?! what da actual fuq?! Anyone have any clever ideas of what I can do here to allows normal users, like you nice folk and block ths obnoxious traffic?!

Read replies 7 months ago
@prologic@twtxt.net

My day (yesterday), stand up at 09:30AM (AEDT), P2 Incident at 10:20AM. End of my day 04:30AM (AEST) the next day! Oh my 🀣 πŸ”₯ πŸ€¦β€β™‚οΈ

Read replies 7 months ago
@prologic@twtxt.net

Fark me πŸ€¦β€β™‚οΈ I woke up quite late today (after a long night helping/assisting with a Mainframe migration last night fork work) to abusive traffic and my alerts going off. The impact? My pod (twtxt.net) was being hammered by something at a request rate of 30 req/s (there are global rate limits in place, but still...). The culprit? Turned out to be a particular IP 43.134.51.191 and after looking into who own s that IP I discovered it was yet-another-bad-customer-or-whatever from Tencent, so that entire network (ASN) is now blocked from my Edge:

+# Who: Tentcent
+# Why: Bad Bots
+132203

Total damage?

$ caddy-log-formatter twtxt.net.log | cut -f 1 -d  ' ' | sort | uniq -c | sort -r -n -k 1 | head -n 5
  61371 43.134.51.191
    402 159.196.9.199
    121 45.77.238.240
      8 106.200.1.116
      6 104.250.53.138

61k reqs over an hour or so (before I noticed), bunch of CPU time burned, and useless waste of my fucking time.

Read replies 7 months ago
@prologic@twtxt.net

Hello @therealprologic πŸ‘‹

Read replies 7 months ago
@prologic@twtxt.net

Testing 1 2 3

Read replies 7 months ago
@prologic@twtxt.net

Testing 1 2 3

Read replies 7 months ago
@prologic@twtxt.net

ap-verify: 8f259adfc4ef06ac1472

Read replies 7 months ago
@prologic@twtxt.net

ap-verify: f1fb71f88d8a644dbd84

Read replies 7 months ago
@prologic@twtxt.net

New beginnings, new horizons. New pod logo 🀟

Read replies 7 months ago
@prologic@twtxt.net

LOL πŸ˜‚ I think mastodon.social is broken 😞

Read replies 7 months ago
@prologic@twtxt.net

Test (_did I fix this shitβ„’-)?

Hey @manton πŸ‘‹ Why yes I believe I did!

Read replies 7 months ago
@prologic@twtxt.net

Testing 1 2 3 @manton

Read replies 7 months ago
@prologic@twtxt.net

verify: be6b4443c96a602b1947

Read replies 7 months ago
@prologic@twtxt.net

Testing new design, architecture and implementation of a Twtxt bridge I'm working on...

verification-token: ee9bc4da3356f4990671

Please ignore.

Read replies 7 months ago
@prologic@twtxt.net

I'm building a service that lets you:

create and manage disposable, brandable email aliases so you can track leaks, forward important messages, and keep your real inbox clean.

I've just finishing building it for the most part, and have cut a v0.1.0 release. It's currently closed source (to be decided later) and now open to beta testers. cc @bender πŸ™ I fully intend to monetize and offer this as a paid service in teh coming weeks/months, but beta/invite-only testers and early adopters/users first 🀟

Read replies 8 months ago
@prologic@twtxt.net

Scheduling the next Yarn.social Call for next month, a month in advance. Hope y'all can make the next one 🀞

Read replies 8 months ago
@prologic@twtxt.net

πŸ‘‹ Reminder that we're starting up our social calls again (monthly), RSVP here 🀟 It starts in 13h27m πŸ˜… Hope to see some/all of you there πŸ‘Œ

Read replies 8 months ago
@prologic@twtxt.net

Wow! 🀩 Are folks actually using Gatherly already? πŸ€”

Read replies 8 months ago
@prologic@twtxt.net

The hail we had yesterday 🀯

Read replies 8 months ago
@prologic@twtxt.net

So just @bender and I attending our monly call eh?

Read replies 8 months ago
@prologic@twtxt.net

Reminder, kick-starting our monthly social call! πŸ“ž Please RSVP if you can make it!

Read replies 8 months ago
@prologic@twtxt.net

Hey all πŸ‘‹ Starring up the monthly social call we used to have 🀞 Please RSVP here if you can make it! πŸ™

Read replies 8 months ago
@prologic@twtxt.net

Been mucking around with designing my own camper (floor plan).

Read replies 11 months ago
@prologic@twtxt.net

Global update: Trump in Scotland says EU trade deal has 50-50 chance as tariff row grows. Gaza sees 9 more starvation deaths (122 total); UN says famine is deliberate. Thai-Cambodia clashes kill 16, displace 135k. US raid in Syria kills top ISIS leader & sons.

Read replies 11 months ago
@prologic@twtxt.net

After many weeks and probably at least a hundred hours of research, discussions and in-person viewing, I think I've finally come up with my Final Choices (shortlist) of a Hybrid Camper / Caravan that I think will suit my family and that I'll enjoy (far less work for me to setup and teardown). The one at the top of the list I'm leaning towards os the SWAG SCT16 Family 4B #Camping #Campers

Read replies 11 months ago
@prologic@twtxt.net

Been spending a lot of time researching campers as I want to / plan to upgrade our current Camper Trailoer (forward fold) Stoney Creek XL-FF6 to a slightly larger Hybrid Camper/Caravan with ensuite, internal kitchenette, external full hitchen, pop-top roof and twin bunks.

This is the summary and whittling down of my research so far: https://wiki.mills.io/s/1103bc9c-dd75-4a98-b64b-8dadc5b0e51f/doc/comparision-Ln03Moiibq

Read replies 11 months ago
@prologic@twtxt.net

As promised, here's some photos of love you!! camping trip to Canarcon George in QLD, Australia.

Read replies 1 year ago
@prologic@twtxt.net

https://threadreaderapp.com/thread/1935344122103308748.html Interesting article on how ChatGPT is rotting your brain 🀣

Read replies 1 year ago
@prologic@twtxt.net

Hmmm 🧐 Not what I thought was going on... No bug...

 time="2025-06-14T15:24:25Z" level=info msg="updating feeds for 8 users"
 time="2025-06-14T15:24:25Z" level=info msg="skipping 0 inactive users"
 time="2025-06-14T15:24:25Z" level=info msg="skipping 0 subscribed feeds"
 time="2025-06-14T15:24:25Z" level=info msg="updating 80 sources (stale feeds)"
Read replies 1 year ago
@prologic@twtxt.net

Soooo very very close! πŸ˜… AI Agent learning to play Connect3!

Read replies 1 year ago
@prologic@twtxt.net

I'm finding this very interesting... An evolved neural network that plays the game of tic-tac-toe and so far is a pretty decent player. Here is a visualization of it's evolved "brain" that underwent GA (genetic algorithm) training with classification learning + self-play.

Read replies 1 year ago
@prologic@twtxt.net Read replies 1 year ago
@prologic@twtxt.net
prologic@JamessMacStudio
Sun May 25 21:44:41
~/tmp/neurog
 (main) 130
$ go build ./cmd/ttt/... && ./ttt
Generation  27 | Fitness: 0.486111 | Nodes: 44  | Conns: 82

... experimenting with building and training a tic-tac-toe game, which evolves a. neural net that learn to paly the game against the best evolved champions πŸ˜…

Read replies 1 year ago
@prologic@twtxt.net

https://youtu.be/1GN3xBuAgrI?si=ezBYJeSOFgtBdjEu -- Can someone please just fire Trump already? What a fucking idiot?! The man is a lunatic πŸ€¦β€β™‚οΈ

Read replies 1 year ago
@prologic@twtxt.net

Also spent the morning continuing to think about a new design for EdgeGuard's WAF. I'm basically going to build an entirely new pluggable WAF that will be designed to only consider Rate Limiting, IP/ASN-based filtering, JavaScript challenge handling, Basic behavioral analysis and Anomaly detection.

The only part of this design I'm not 100% sure about is the Javascript-based challenge handling? πŸ€” I'm also considering making this into a "proof of work" requirement too, but I also don't want to falsely block folks that a) turn Javascriptβ„’ off or b) Use a browser like links, elinks or lynx for example.

Hmmm 🧐

Read replies 1 year ago
@prologic@twtxt.net

After yarnd v0.16 is released and the next round of specification updates are done and dusted, who wants me to have another crack at building Twtxt and activity pub integration support?

Read replies 1 year ago
@prologic@twtxt.net

Nothing like being paged at 00:30 (midnight) for a P2 incident that is now resolved at 02:10 🀯 Obviously I'm not going to work tomorrow (I mean today lol πŸ˜‚) at the usual start time πŸ€¦β€β™‚οΈ

Read replies 1 year ago
@prologic@twtxt.net

Finally I propose that we increase the Twt Hash length from 7 to 12 and use the first 12 characters of the base32 encoded blake2b hash. This will solve two problems, the fact that all hashes today either end in q or a (oops) πŸ˜… And increasing the Twt Hash size will ensure that we never run into the chance of collision for ions to come. Chances of a 50% collision with 64 bits / 12 characters is roughly ~12.44B Twts. That ought to be enough! -- I also propose that we modify all our clients and make this change from the 1st July 2025, which will be Yarn.social's 5th birthday and 5 years since I started this whole project and endeavour! 😱 #Twtxt #Update

Read replies 1 year ago
@prologic@twtxt.net

Wrote some serious Python for the first time in like 10 years 😱 I feel so dirty 🀣

Read replies 1 year ago
@prologic@twtxt.net

Today I added support for Let's Encrypt to eris via DNS-01 challenge. Updated the gcore libdns package I wrote for Caddy, Maddy and now Eris. Add support for yarn's cache to support # type = bot and optionally # retention = N so that feeds like @tiktok work like they did before, and... Updated some internal metrics in yarnd to be IMO "better", with queue depth, queue time and last processing time for feeds.

Read replies 1 year ago
@prologic@twtxt.net

First draft of yarnd 0.16 release notes. πŸ“ -- Probably needs some tweaking and fixing, but it's sounding alright so far πŸ‘Œ #yarnd

Read replies 1 year ago
@prologic@twtxt.net

A visual flow chart diagram that illustrates how two different but very related concepts can lead to system accidents πŸ‘Œ

  • asynchronous evolution
  • drift into failure
Read replies 1 year ago
@prologic@twtxt.net Read replies 1 year ago
@prologic@twtxt.net

PR to Add improved styles for the logo for twtxt.ndev

Read replies 1 year ago
@prologic@twtxt.net

Regex Isn't Hard - Tim Kellogg πŸ‘ˆ this is a pretty good conscience article on regexes, and I agree, regex isn't that hardβ„’ -- However I think I can make the TL;DR even shorter πŸ˜…


Regex core subset (portable across languages):

Character sets β€’ a matches β€œa” β€’ [a-z] any lowercase β€’ [a-zA-Z0-9] alphanumeric β€’ [^ab] any char but a or b

Repetition (applies to the preceding atom) β€’ ? zero or one β€’ * zero or more β€’ + one or more

Groups β€’ (ab)+ matches β€œab”, β€œabab”, … β€’ Capture for extract/substitute via $1 or \1

Operators β€’ foo|bar = foo or bar β€’ ^ start anchor β€’ $ end anchor

Ignore non‑portable shortcuts: \w, ., {n}, *?, lookarounds.

#regex101

Read replies 1 year ago
@prologic@twtxt.net

Hmmm there's a bug somewhere in the way I'm ingesting archived feeds πŸ€”

sqlite> select * from twts where content like 'The web is such garbage these days%';
      hash = 37sjhla
  feed_url = https://twtxt.net/user/prologic/twtxt.txt/1
   content = The web is such garbage these days πŸ˜” Or is it the garbage search engines? πŸ€”
   created = 2024-11-14T01:53:46Z
created_dt = 2024-11-14 01:53:46
   subject = <a href="?search=37sjhla" class="tag">#37sjhla</a>
  mentions = []
      tags = []
     links = []
sqlite>
Read replies 1 year ago
@prologic@twtxt.net

I asked ChatGPT what it knows about Twtxt πŸ˜‚ And surprisingly it's rather accurate:

Twtxt is a minimalist, decentralized microblogging format introduced by John Downey in 2016. It uses plain text files served over HTTPβ€”no accounts, databases, or APIs. In 2020, James Mills (@prologic) launched Yarn.social, an extended, federated implementation with user discovery, threads, mentions, and a full web UI. Both share the same .twtxt.txt format but differ in complexity and social features.

Read replies 1 year ago
@prologic@twtxt.net

@andros your feed is spitting out dupes? 🧐

Read replies 1 year ago
@prologic@twtxt.net

Add support for skipping backup if data is unchagned Β· 0cf9514e9e - backup-docker-volumes - Mills πŸ‘ˆ I just discovered today, when running backups, that this commit is why my backups stopped working for the last 4 months. It wasn't that I was forgetting to do them every month, I broke the fucking tool 🀣 Fuck πŸ€¦β€β™‚οΈ

Read replies 1 year ago
Comment via email