Timeline Sandbox

@prologic@twtxt.net

Problems are Solved by Method\" ๐Ÿ‡ฆ๐Ÿ‡บ๐Ÿ‘จโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿฆฏ๐Ÿนโ™” ๐Ÿ“โšฏ ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง๐Ÿ›ฅ -- James Mills (operator of twtxt.net / creator of Yarn.social ๐Ÿงถ)

@prologic@twtxt.net

๐Ÿ‘‹ Calling all decentralised enthusiasts that still remembers and use IRC ๐Ÿ˜Ž

Please come join us in a new, truely, decentralised IRC-based chat experience by standing up your own Parley instance on your own domain (bring your own OIDC auth or use the built-in).

Pick your favourite IRCv3-compatible client (there's heaps out there!).

And peer with either me james@mills.io or Admin -> Peers -> Add mills.io or @david via david@ratha.us or simply ratha.us (in Admin -> Peers -> Add).

See you online! ๐Ÿคž #decentralised #irc #chat

Read replies 3 weeks ago
@prologic@twtxt.net

@itsericwoodward Then by all means, follow the instructions at https://git.mills.io/prologic/parley and setup your own instance on your own domain. It's partly inspired by Twtxt/Yarn.social and Salty.im -- in at least the way teh DNS discovery and WKID works. Once your instance is up and running and you've gone through the /setup and created yourself an account (or seti it up with an appropraite ODIC IDP) try something like /msg james@mills.io Hey! at which point you should automatically start peering with my instance. You should then be able to /join <a href="?search=lobby1" class="tag">#lobby1</a> (a globally federated channel already across 2 instances so far). ๐Ÿคž

In reply to: #2q5mrho5lvmo 1 month ago
@prologic@twtxt.net

iPhone Duo - Apple Sorry Appleโ„ข, I'm really finding it quite hard to justify spending thousands of dollar on your products!

From $1999 or $83.29/mo. for 24 mo.*

Fark me ๐Ÿคฆโ€โ™‚๏ธ When it was just me and my wife, maybe, fine, okay. But now I have two young children that also want the same shitโ„ข as we do. This starts becoming a nearly ~$8k expensve just for some fucking whoop-ti-do-da foldable iPhone with a bigger screen.

Who cares? ๐Ÿค” I want my ~A$800 iPhone back that fits in my hand. #Apple #Rants #Expensive #Crap

Read replies 1 month ago
@prologic@twtxt.net

I am finally building a Twtxt / Yarn.social inspired Git forge. I'm actually quite confident that y'all will quite like it, but I won't post links yet until I'm quietly confident in its design, functionality and behaviour(s).

Stay tuned ๐Ÿคž It'll be like no other Git forge you've ever seen! ๐Ÿคฃ Actually, it's already more like cgit than anything with plain text feeds that power it's "pure decentralization" as you can no doubt imagine ๐Ÿ˜… #twtxt #git #forge

Read replies 1 month ago
@prologic@twtxt.net

Oh man wow ๐Ÿ˜ฎ Problem 9 was quite hard ๐Ÿ˜ฑ I had to build two new functions in the Mu stdlib for computing combinations and permutations, but then the combinations of range(1000) for triples such as a + b == c is enormous! So i had to write iterator versions of these to do lazy evaluation. Anyway solution follows:

#!/usr/bin/env mu

// Special Pythagorean Triplet

import "iter"

fn usage() {
  print("Usage:", args()[0], "<n>")
}

fn sqr(x) { x * x }

fn main() {
  if len(args()) < 2 {
    usage()
    exit(1)
  }

  n := must(int(args()[1]))
  print("n:", n)

  // For a < b < c and a + b + c == n, both a and b are strictly less
  // than n/2. Generate only (a,b) combinations and derive c directly. This
  // keeps the search lazy and reduces n=1000 from C(999,3) = 165,668,499
  // candidate triples to C(499,2) = 124,251 candidate pairs.
  pairs := iter.combinations(iter.range(1, n / 2), 2)

  triples := iter.map(pairs, fn(xs) {
    a := xs[0]
    b := xs[1]
    return [a, b, n - a - b]
  })

  // Enforce b < c; a < b is already guaranteed by combinations over an
  // increasing range, and a + b + c == n holds by construction.
  triples = iter.filter(triples, fn(xs) {
    return xs[1] < xs[2]
  })

  // Euler 9 has one answer for n=1000. find() stops the entire upstream
  // iterator chain as soon as the first Pythagorean triple is found.
  answer := iter.find(triples, fn(xs) {
    return sqr(xs[0]) + sqr(xs[1]) == sqr(xs[2])
  })

  print(answer)

  if answer != nil {
    print(answer[0] * answer[1] * answer[2])
  }
}

main()
In reply to: #tz4dru7nwzct 1 month ago
@prologic@twtxt.net

Gonna recreate the classic [Break out](https://en.wikipedia.org/wiki/Breakout_(video_game) game this weekend for the Mills Games Cabinet -- Anyone else got any ideas, requests? ๐Ÿค” #games #ebitengine

Read replies 2 months ago
@prologic@twtxt.net

I will very likely add a way to delete your feed(s) from the search engine, because I do thing that's important. But as Art 17 points out, we can't really guaranteed deletion in everyone's caches around the planet haha ๐Ÿ˜†

In reply to: #cygi2ndm5jt3 2 months ago
@prologic@twtxt.net

The only place where this would be an issue is the Twtxt Search Engine -- But as the GDPR also points out:

Art. 17

The one place the "it propagated and I can't recall it" problem is legally acknowledged is Art. 17(2), and it explicitly scales to what's technically feasible:

"โ€ฆthe controller, taking account of available technology and the cost of implementation, shall take reasonable steps, including technical measures, to inform controllers which are processing the personal data that the data subject has requested the erasureโ€ฆ"

Best-effort, given the technology. A decentralised, append-only, content-addressed feed is the available technology, and its limits are baked into the standard the law applies. Nobody โ€” not the user, not you โ€” is obliged to guarantee every cached copy vanishes.

In reply to: #cygi2ndm5jt3 2 months ago
@prologic@twtxt.net

@itsericwoodward Well I clearly suck ๐Ÿคฃ putt.day #62 โ›ณ 22/12 +10 ๐ŸŸก๐ŸŸข๐ŸŸก๐ŸŸก๐Ÿ”ด๐Ÿ”ด๐ŸŸก๐ŸŸข๐ŸŸข๐ŸŸข๐ŸŸก๐Ÿ”ด๐Ÿ”ด๐ŸŸข๐ŸŸข๐ŸŸข๐ŸŸก๐ŸŸข๐ŸŸข๐ŸŸข +2 https://putt.day/s/b4UKsjw0olkS

In reply to: #megfcguk4az7 2 months ago
@prologic@twtxt.net

@david Yeah the search engine/crawler has only found 28 active users in the ecosystem so far ๐Ÿ˜…

In reply to: #7ho6a6motsog 2 months ago
@prologic@twtxt.net

Say hello to the Twtxt Social Graph ๐Ÿ˜… #Twtxt #social #Graph

Read replies 3 months ago
@prologic@twtxt.net

๐Ÿฅณ Finally! After nearly 4 years, yarnd v0.16.0 "Silver Sojourner" is out! ๐Ÿš€ Twt Hash v2, SQLite FTS5 search, HTMX-powered UI, first-time setup wizard and literally hundreds of bug fixes ๐Ÿ›

Release notes: https://git.mills.io/yarnsocial/yarn/releases/tag/0.16.0

Upgrading is fully automatic โ€” the Twt Hash v2 migration re-fetches all feeds on first start, so expect the first cycle to be a bit heavier. Images on Docker Hub as prologic/yarnd:0.16.0 ๐Ÿ‘Œ

cc @kat @abucci @shinyoukai @eldersnake ๐Ÿ™

Read replies 3 months ago
@prologic@twtxt.net

you should see the new search engine stats page where I've added, spark lines, and time series graphs ๐Ÿ‘Œ

In reply to: #o4gmqrklw42c 3 months ago
@prologic@twtxt.net

@balloonfu-sen Thank you for doing this ๐Ÿ™ -- Just a thought... It might be possible for this to be fully automated from the Twtxt Search engine / crawler? Right? ๐Ÿค” It has all of the data... I also think it might be possible to distinguish between 1-way feedsa and "real folks" (ya know, 2-ways feeds) ๐Ÿคฃ

In reply to: #h6og3tbw5qfy 3 months ago
@prologic@twtxt.net

@GabesArcade Did you by change edit or otherwise delete the Twt you replied to (2nd last in your feed) with the reply/thread id lleeypvkzbw2? That Twt was never ingested by twtxt.net (and likely the search engine) so umm hmmm threading breaks ๐Ÿคฃ

Read replies 3 months ago
@prologic@twtxt.net

Hello everyone ! ๐Ÿ‘‹ Behold I bring you (after many years) the launch of the Twtxt App ๐Ÿ˜… -- Ye, this is a Desktop and Mobile app built as a Progressive Web App (PWA) using a little framework (Swag) I put together iafter some experiments @xuu and I did in Go and HTMX and Service Workers.

The App is offline-first and supports installing to Desktop and Mobile (add to Home screen) and supports a number of publishing backends, including Yarn.social's yarnd Pod, Github, Codeberg/Gitea, and a little tiny twtd Twtxt server (See: https://git.mills.io/yarnsocial/twtd).

Please try it out, no need for any account(s) or such, works with your existing feed(s) (as long as the publishing backends work well enough for you!). Please give me feedback! ๐Ÿ™

Also, did you know the Twtxt Search Engine is back? ๐ŸŽ‰

Read replies 3 months ago
@prologic@twtxt.net

Hey folks ๐Ÿ‘‹ Today I announce the re-release of the Twtxt Search Engine now live and running and actively re-crawling and re-indexing. ๐ŸŽ‰ Please report bugs or any useability issues to me! ๐Ÿ™ #Twtxt #Search

Read replies 3 months ago
@prologic@twtxt.net

Got absolutely jack and sick of all the fucking useless bots, C&C and shitโ„ข hitting my Git server tonight ๐Ÿคฌ So I sat down and built a lightweight version of Anubis, called caddy-pow. So now going forward, you'll have to (sorry) have a HS-enabled browser to hit git.mills.io which will hopefully make most (if not all) bots just go the fuck away ๐Ÿคฆโ€โ™‚๏ธ #Hostile #Web

Read replies 4 months ago
@prologic@twtxt.net

I spent the day today integrating @xuu's double ratcheting work and [ratchet](Blank front page) library back into the reference client/broker implementation saltyim as a v2 branch. I completely redesigned and rewrite the salty-chat TUI client as well, which now includes proper notifications and a background agent that keeps running so you never miss any messages. It all "just works"โ„ข and I'm quite happy with the outcome! ๐Ÿคฉ #saltyim #revamp

Read replies 8 months ago
@prologic@twtxt.net

I built Audiofern to make it simple to turn PDFs into audiobooks. Upload a document, get clean, chapterized narration with natural voices, and share it via a hosted playerโ€”or download M4A/M4B and keep it forever. Files are private by default, and pricing is transparent: pay once by audio hour or subscribe to build a listening library.

https://audiofern.com

#audiobooks #accessibility #builders

Read replies 8 months ago
@prologic@twtxt.net

Have finally put together the beginnings of a site for Mu (ยต) https://mu-lang.dev ๐Ÿคž #mu #mu-lang

Read replies 8 months ago
@prologic@twtxt.net

Behold! ๐Ÿฅณ My first (hopefully it doesn't fail ๐Ÿคž) ยตSaaS (microSaaS)

Audiofern

Turn PDFs into audiobooks.

(only supports PDF(s) at the moment, books, papers, etc)

Happy reading/listening ๐Ÿค“ ๐Ÿ‘‚ #Audiofern #Audiobooks #microSaaS

Read replies 8 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 9 months ago
@prologic@twtxt.net

I just completed "Printing Department" - Day 4 - Advent of Code 2025 #AdventOfCode https://adventofcode.com/2025/day/4 โ€“ Again, Iโ€™m doing this in mu, a Go(ish) / Python(ish) dynamic langugage that I had to design and build first which has very few builtins and only a handful of types (ints, no flots). ๐Ÿคฃ

Read replies 9 months ago
@prologic@twtxt.net

I just completed "Lobby" - Day 3 - Advent of Code 2025 #AdventOfCode https://adventofcode.com/2025/day/3 -- Again, I'm doing this in mu, a Go(ish) / Python(ish) dynamic langugage that I had to design and build first which has very few builtins and only a handful of types (ints, no flots). ๐Ÿคฃ

Read replies 9 months ago
@prologic@twtxt.net

I just completed "Gift Shop" - Day 2 - Advent of Code 2025 #AdventOfCode https://adventofcode.com/2025/day/2 -- But again, I'm solving this in my own language mu that I had to build first ๐Ÿคฃ

Read replies 9 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 9 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 10 months ago
@prologic@twtxt.net Read replies 10 months ago
@prologic@twtxt.net

When I try to login to PayPal I now see:

Please enable JS and disable any ad blocker

Here's the thing. PayPal takes fees from transactions and payments received and sent.

I have very right not have ads shoved in my face for something that isn't actually free in the first place and costs money to use. If PayPal would like to continue to piss off folks me like, then I'll happily close my PayPal account and go somewhere else that doesn't shove ads in my face and consume 30-40% of my Internet bandwidth on useless garbage/crap.

#PayPal #Ads

Read replies 10 months ago
@prologic@twtxt.net

Pretty happy with my zs-blog-template starter kit for creating and maintaining your own blog using zs ๐Ÿ‘Œ Demo of what the starter kit looks like here -- Basic features include:

  • Clean layout & typography
  • Chroma code highlighting (aligned to your site palette)
  • Accessible copy-code button
  • โ€œOn this pageโ€ collapsible TOC
  • RSS, sitemap, robots
  • Archives, tags, tag cloud
  • Draft support (hidden from lists/feeds)
  • Open Graph (OG) & Twitter card meta (default image + per-post overrides)
  • Ready-to-use 404 page

As well as custom routes (redirects, rewrites, etc) to support canonical URLs or redirecting old URLs as well as new zs external command capability itself that now lets you do things like:

$ zs newpost

to help kick-start the creation of a new post with all the right "stuff"โ„ข ready to go and then pop open your $EEDITOR ๐Ÿคž

#awesome #zs

Read replies 1 year 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 1 year 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 1 year ago
@prologic@twtxt.net

Over the past few weeks I've been experimenting with and doing some deep learning and researching into neutral networks and evolutionary adaptation of them. The thing is I haven't gotten very far. I've been able to build two different approaches so far with limited results. The frustrating part is that these things are so "random" it isn't even funny. Like I can't even get a basic ANN + GA to evolve a network that solves the XOR pattern every time with high levels of accuracy. ๐Ÿ˜ž

Read replies 1 year ago
@prologic@twtxt.net

Farrrk me Google search is and these days. Will they please "fuck off" with this Gemini AI garbage at the top that takes forever and is distracting as shitโ„ข ๐Ÿ’ฉ Fark me ๐Ÿคฆโ€โ™‚๏ธ #Google #Search #Sucks #AI #Gemini

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

And speaking of Twtxt (See: #xushlda, feeds should be treated as append-only. Your client(s) should be appending Twts to the bottom of the file. Edits should never modify the timestamp of the Twt being edited, nor should a Twt that was edited by deleted, unless you actually intended to delete it (but that's more complicated as it's very hard to control or tell clients what to do in a truely decentralised ecosystem for the deletion case). #Twtxt #Client #Recommendations

Read replies 1 year ago
@prologic@twtxt.net

Just like we don't write emails by hand anymore (See: #a3adoka), we donโ€™t manually write Twts or update our twtxt.txt feeds. Instead, we use modern Twtxt clients that conform to the specifications at Twtxt.dev for a seamless, automated experience. #Twtxt #Twt #UserExperience

Read replies 1 year ago
@prologic@twtxt.net

Nobody writes emails by hand using RFC 5322 anymore, nor do we manually send them through telnet and SMTP commands. The days of crafting emails in raw format and dialing into servers are long gone. Modern email clients and services handle it all seamlessly in the background, making email easier than ever to send and receiveโ€”without needing to understand the protocols or formats behind it! #Email #SMTP #RFC #Automation

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

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

Dam the search here is sooo good now ๐Ÿ˜…

Read replies 1 year ago
@prologic@twtxt.net

Search syntax appears to be:

hello
"hello world"
hello AND world
hello OR world
hello NOT world
"this is a phrase"
Read replies 1 year ago
@prologic@twtxt.net

FYI: I've re-opened up search for anonymous use. So things like this now work without having to have an account on this pod or login. ๐Ÿ‘Œ #search #twtxt

Read replies 1 year ago
Comment via email