blog.ratterobert.com

Timeline

Recent posts from feeds followed by pftnhr@blog.ratterobert.com

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 3 weeks ago
prologic (twtxt.net)

Ultimately, Go sits in the sweet spot on the complexity vs performance chart:

  • Minimal syntax & concepts → low learning curve
  • Compiled speed → high throughput
  • Built-in CSP concurrency → scalable by default

See Rob Pyke's presentation on Expressiveness of Go

In reply to: #da7zlha 1 month ago
bender (twtxt.net)

@thecanine right. Spell checkers are not AI. Full grammar checking, and correction? That one I have not seeing, but on AI. So, what I meant was, let the grammar gaffes show; we type as we speak (most of the time). About spelling mistakes, well, let them be corrected as we have done since 1971(?).

In reply to: #zgkwt4q 1 month ago
bender (twtxt.net)

Grok's "daddy" teaching it the good stuff early on:

Elon Musk’s artificial intelligence chatbot Grok has been repeatedly mentioning “white genocide” in South Africa in its responses to unrelated topics and telling users it was “instructed by my creators” to accept the genocide “as real and racially motivated”.

Read replies 1 month ago
sorenpeter (darch.dk)

<2025-05-10T19:34:00+00:00 https://andros.dev/texudus.txt> Nice:) And is this implemented in your client as well? I've started to brainstorm on how to parse texudus in php, but I guess it could snatch some code from you?

Read replies 1 month ago
bender (twtxt.net)

@anth happy birthday, “youngster!”

Domain Name: NETBROS.COM Registry Domain ID: 1193243_DOMAIN_COM-VRSN Registrar WHOIS Server: whois.cloudflare.com Registrar URL: https://www.cloudflare.com Updated Date: 2025-03-29T04:08:33Z Creation Date: 1998-04-29T04:00:00Z

In reply to: #ga4xdaq 1 month ago
prologic (twtxt.net)

According to a very old email one of my more personal family domains was registered in 2013 making it 12 years old, so I was closed 🤣 my public facing one is much much older 🤣

In reply to: #ga4xdaq 1 month ago
sorenpeter (darch.dk)

@andros You seem to be a bit ahead of your time: https://darch.dk/timeline/conv/jl2mf2a

In reply to: #jl2mf2a 2 months ago
sorenpeter (darch.dk)

@andros About the URL, since it no longer used for hashing there might be no need to change it. I agree that we keep all the parts that already are out there for the most parts. Instead of a contact field you could also just use links like: link = Email mailto:user@example.dk or link = Signal https://signal.me/sthF4raI5Lg_ybpJwB1sOptDla4oU7p[...]

In reply to: #22qxisq 2 months ago
prologic (twtxt.net)

@eapl.me I honestly believe you are overreacting here a little bit 🤣 I completely emphasize with you, it can be pretty tough to feel part of a community at times and run a project with a kind of "democracy" or "vote by committee". But one thing that life has taught me about open source projects and especially decentralised ecosystems is that this doesn't really work.

It isn't that I've not considered all the other options on the table (which can still be), it's just that I've made a decision as the project lead that largely helped trigger a rebirth of the use of Twtxt back in July 1 2020. There are good reasons not to change the threading model right now, as the changes being proposed are quite disruptive and don't consider all the possible things that could go wrong.

In reply to: #ceripcq 2 months ago
eapl.me (eapl.me)

July 1st. 63 days from now to implement a backward-incompatible change, apparently not open to other ideas like replacing blake with SHA, or discussing implementation challenges for other languages and platforms. Finally just closing #18, #19 and #20 without starting a proper discussion and ignoring a 'micro consensus' feels... not right.

I don't know what to think rather than letting it rest (May will be busy here) and focus on other stuff in the future.

twt-hash-v2.md#implementation-timeline

In reply to: #ceripcq 2 months ago
prologic (twtxt.net)

LOL Amazon displaying tariff prices "hostile and political," White House say is this the kettle calling the pot black? 🤣 Trump, pfft, what a fucking idiot. No clue how economies work, let alone countries.

Read replies 2 months ago
prologic (twtxt.net)

I will be adding the code in for yarnd very soon™ for this change, with a if the date is >= 2025-07-01 then compute_new_hashes else compute_old_hashes

In reply to: #ceripcq 2 months 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 2 months ago
prologic (twtxt.net)

@lyse Very nice! 👌 So lovely and green 😅 -- What's with the sign in 16? 🧐

In reply to: #bijqtea 2 months ago
prologic (twtxt.net)

These ideas are dr the two books:

  • Drift into Failure: From Hunting Broken Components to Understanding Complex Systems by Sidney Dekker (2011)
  • Engineering a Safer World by Nancy Leveson (2011)

The former I haven't read. The later I haven't finished reading 😅

In reply to: #wuzfgia 2 months ago
prologic (twtxt.net)

@andros Thanks! 🙏 Just re-followed @important_dev_news 👌

In reply to: #wtggy4a 2 months ago
bender (twtxt.net)

@lyse mooooo, mooooooooo, moooooooooooo! Those cows are not facing the same direction, they are rebels!

In reply to: #gwglesq 2 months ago
eapl.me (eapl.me)

on timeline the mention looks OK. Is there an issue on Yarn?

It's an interesting topic. For example on Bsky it's natural to allow domains https://bsky.social/about/blog/4-28-2023-domain-handle-tutorial

Although TwiXter only allows (letters A-Z, numbers 0-9 and of underscores) https://help.x.com/en/managing-your-account/x-username-rules

In reply to: #7dl5bsq 2 months 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 2 months 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 2 months ago
prologic (twtxt.net)

Timeline of Evolution of Twtxt/Yarn.social:

  • 2016 – Twtxt created by John Downey: plain text + HTTP = minimalist microblogging
  • 2017–2019 – Community builds CLI tools, but adoption remains niche
  • 2020 – Yarn.social launched by @prologic with federation, threading, UI
  • 2021–2023 – Pods sync, user mentions, blocking, search, and media support added
  • 2024+ – Yarn.social becomes the reference Twtxt platform, with active federated pods
In reply to: #2dh7m3q 2 months 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 2 months ago
prologic (twtxt.net)

I use restic and Backblaze B2 for offline backup storage at a cost of $6/TB/month. I don't backup my entire ~20TB NAS and its datasets however, so I'm only paying about ~$2/month right now. I only backup the most important things I cannot afford to lose or annot re-created.

In reply to: #7n4klda 2 months ago
eapl.me (eapl.me)

it should be `# 2025-04-13T11:02:12+02:00

In reply to: #2zhuzoa 2 months ago
eapl.me (eapl.me)

my main itch with the DMs extensions is that these messages are intended to be private, not public information. That's why other extensions make sense, but DMs are another kind of feature. TwiXter, Mastodon, FB and some other services usually hide the DMs in another section, so they are not mixed with the public timeline.

I find the DM topic interesting, I even made an indie experiment for a centralized messaging system here https://github.com/eapl-gemugami/owl. Although, as I've said a few times here, I'm not particularly interested in supporting it on microblogging, as I don't use it that much. In the rare case I've used them, I don't have to manage public and private keys, and finally none of my acquaintances use encrypted email. Nothing personal against anyone, and although I like to debate and even fight, it's not the case here. This proposal is the only one allowing DMs on twtxt, and if the community wants it, I'll support it, with my personal input, of course.

A good approach I could find with a good compromise between compatibility with current clients and keeping these messages private is 'hiding' the DMs in comments. For example: `# 2025-04-13T11:02:12+02:00

In reply to: #2zhuzoa 2 months ago
prologic (twtxt.net)

@bender Sadly my earlier Twt back in ~2020 is now gone from at least this pod's cache 🤣 -- It might still exist in other pods though? 🤔 It does! https://txt.sour.is/twt/o6dsrga

In reply to: #pnkf5rq 2 months ago
prologic (twtxt.net)

@bender There is only one commit that I can think of that might be the cause here. Shall I revert and redeploy? 🤔

In reply to: #b5nxyxq 2 months ago
bender (twtxt.net)

One article assigning a draw of 20 watts to the human brain.

In reply to: #iepincq 2 months ago
bender (twtxt.net)

@prologic you wrote:

“Based on a recent study of the brains of mice I estimated the human brain to have 200B cells/neurons and 50,000T connections.”

What’s the relation between the brains of mice, and the human brain? I am kind of lost trying to make the connection.

I also read that it isn’t 5 watts, but more like 10-20 watts. Still a super tiny consumption, comparing to what it takes to run anything AI.

In reply to: #iepincq 2 months ago
prologic (twtxt.net)

Based on a recent study of the brains of mice I estimated the human brain to have 200B cells/neurons and 50,000T connections. We have several orders of magnitude to go before we reach that kind of scale with these fucking stupid Big LLMs 🤣 And the best part of all? 🧐 It is estimated that the human brain only consumes the equivalent of 5 Watts of power !!! 🤣🤣🤣

Read replies 2 months ago
bender (twtxt.net)

ABC Australia is reporting of a potential market manipulation in the US. Potential? I would call it almost certain. For as much as I would like not to be dragged into politics, it is rather impossible these days.

Read replies 2 months ago
prologic (twtxt.net)

@lyse Also very nice! Mf favourite has to be this one 👌

In reply to: #o3lankq 2 months ago
bender (twtxt.net)

@lyse nice! My favourite from this series is this one.

My favourite

In reply to: #o3lankq 2 months ago
prologic (twtxt.net)

OH wait! 😳 Why am I storing the timestamp as created = 2025-04-07T19:59:51Z ?! 😱 @movq's feed shows:


2025-04-07T19:59:51+00:00
In reply to: #4uctaca 2 months ago
prologic (twtxt.net)

@movq Not according to the output of ./yarnc debug <your feed url>:


znf6csa 2025-04-07T19:59:51+00:00
In reply to: #2znenta 2 months ago
prologic (twtxt.net)

Doesn't look like it Hmmm

sqlite> select * from twts where content LIKE '%Linux installation%';
    hash = znf6csa
feed_url = https://www.uninformativ.de/twtxt.txt
 content = I wonder if my current Linux installation will actually make it to 20 years:

    $ head -n 1 /var/log/pacman.log
    [2011-07-07 11:19] installed filesystem (2011.04-1)

It’s not toooo far into the future.

It would be crazy … 20 years without reinstalling once … phew. 🥴
 created = 2025-04-07T19:59:51Z
 subject = (<a href="?search=znf6csa" class="tag">#znf6csa</a>)
mentions = []
    tags = []
   links = []
In reply to: #2znenta 2 months ago
prologic (twtxt.net)

Ahhh! It's all Soren's fault 🤣

commit ea9eaaf3d3977701dcb84b927c77c4f921bdbf43
Author: sorenpeter <sorenpeter@noreply@mills.io>
Date:   Sat Sep 24 23:34:07 2022 +0000

    Replacing Pico.css with Simple.css (<a href="?search=990" class="tag">#990</a>)

    Replacing pico.css with simple.css along with some small UI changes
In reply to: #rk3npuq 3 months ago
eapl.me (eapl.me)

In Mexico you couldn't register the word Sonora (state), nor Taqueria (kind of restaurant) as there are two common words, but perhaps the combination of both is trademarkable, I'm not sure, so many 'taquerias' here don't file a trademark request. It's usually "Taquería [LAST_NAME]" or "Taquería [PLACE]".

At the same time, the word "taqueria" was trademarked in UK, like it would be "Paris" or "Pub" I guess, so basically Sonora Taqueria didn't reply to the cease and desist, based on:

[Lizbeth García]: A brand may not use a word that is generic or descriptive of the products or services it is putting into circulation on the market.

Since he (Ismael, Taqueria's representative) didn’t get any response, he decided to leave it in the hands of his law firm.

In early 2023, after all the noise on the internet and the mobilization caused by this case, an agreement was finally reached with Taquería to settle the matter peaceably.

In March 2023, Michelle and Sam decided to register the Sonora Taquería brand and logo with the UK Intellectual Property Office.

In reply to: #j6oqhoa 3 months ago
eapl.me (eapl.me)

well, I assume by syntax you mean Gemtext (which I like a lot, my personal blog is built on top of it), so I think it might work for twtxt clients...

I knew of twtxt in Gemini Antenna, so at least the 2017 spec might work on that protocol. I think the main issue with extensions is that they weren't designed with many URLs and protocols in mind.

Also I have to admit that the Gemini community significantly reduced in the last few years. I don't know how worth it is to add support for Gemini now.

In reply to: #6kqvwyq 3 months ago
eapl.me (eapl.me)

do you mind sharing a picture ?

I can't find something similar here, but my wife gave this one last year, and I've been using it a bit. I'd say it's useful as you've shared. A horrible picture of the calendar on my desk

We also have a shared calendar in the kitchen for family events, and it's working great.

In reply to: #3nbdgya 3 months ago
eapl.me (eapl.me)

pls elaborate on a 'p2p database', 'all story' and 'Registries'.

My first thought takes me to something like secure-scuttlebutt which it's painful to sync data using clients, and too slow compared to downloading a text file.

Also I'd like for twtxt to avoid becoming an ActivityPub. Works well but it's uses too many resources IMO. https://kingant.net/2025/02/mastodon-the-cost-of-running-my-own-server/

I'm defending being able to self-host your Web client (like you'd do with a Wordpress, twtxt is a micrologging, at the end), instead of federated instances, so in a first thought I'd say Registries have many disadvantages being the first one that someone has to maintain them active.

In reply to: #ep5rg4q 3 months ago
sorenpeter (darch.dk)

#testing @Bob Hi Bob, nice to meet you!

Read replies 3 months ago
eapl.me (eapl.me)

Hey everyone!

About the idea of improving the "thread" extension, what if we set aside March 2025 to gather proposals and thoughts from everyone? We could then vote on them at the end of the month to see if the change and migration are worth it.

The voting could include client maintainers (and maybe even users too). That way, we get a good mix of perspectives before taking a decision in a decent timelapse.

What do you think? If this sounds good, we can start agreeing on this. Let me know your thoughts!

Read replies 4 months ago
eapl.me (eapl.me)

I like this syntax, you have my vote, although I'd change it a bit like #<Alice https://example.com/twtxt.com#2024-12-18T14:18:26+01:00>

Hashes are not a problem on PHP, I dont know why it's slow to calculate them from your side, but I agree with your points.

BTW, did you have the chance to read my proposal on twtxt 2.0? I shared a few ideas about possible improvements to discuss: https://text.eapl.mx/a-few-ideas-for-a-next-twtxt-version https://text.eapl.mx/reply-to-lyse-about-twtxt

In reply to: #tyiy6nq 4 months ago
eapl.me (eapl.me)

trying to implement it quickly, I get the same questions than you

# https://www.php.net/manual/en/function.openssl-pbkdf2.php
    $password = $sharedKey;
    $salt = openssl_random_pseudo_bytes(16);  # What's the salt length ?
    $keyLength = 20;  # What's the key length here ?
    $iterations = 100000;
    $generatedKey = openssl_pbkdf2($password, $salt, $keyLength, $iterations, 'sha256');
    echo bin2hex($generatedKey)."\n";
    echo base64_encode($generatedKey)."\n";

    $iv = openssl_random_pseudo_bytes(16); // AES-256-CBC requires 16-byte IV
    $cipherText = openssl_encrypt($message, 'aes-256-cbc', $generatedKey, OPENSSL_RAW_DATA, $iv);
    return base64_encode($iv . $cipherText);
In reply to: #fyr2v5a 4 months ago
eapl.me (eapl.me)

You have a microwave oven at home, right?

You can type 3 and 0 for 30 seconds, 100 for a minute (shown as 1:00), or 200 for two minutes (2:00).

What would happen if you type 777 and Start? A) Nothing B) Self-destruction C) Will run for 7 minutes and 77 seconds (boring!)

What about 7777 ?

Read replies 4 months ago
sorenpeter (darch.dk)

Added support for uploading images to to #Timeline Right now you need to copy the markdown code yourself, but next up would be to lean some JS or use HTMX to make the process more smooth.

Read replies 4 months ago
eapl.me (eapl.me)

that's a fair point.

Perhaps, since Twitter in 2006 never implemented read flags, every derivative microblogging system never saw that as an expected feature. This is curious because Twitter started with SMS, where on our phones we can mark messages as read or unread. I think it all comes from the difference between reading an email (directed to you) vs. reading public posts (like a blog or a 'wall,' where you don't mark posts as read). It's not necessary to mark it as 'read', you just jump over it.

Reading microblogging posts in an email program is not common, I think, and I haven't really used it, so I cannot say how it works, and whether it would be better for me or not. However, I've used Thunderbird as a feed reader, and I understand the advantages when reading blog posts.

About read flags being simple, well... we just had a discussion this morning about how tracking read messages would require a lot of rethinking for clients such as timeline where no state is stored. Even considering some kind of 'notification of unread messages or mentions' is not expected for those minimalist client, so it's an interesting compromise to think about.

In reply to: #6x5fkia 4 months ago
eapl.me (eapl.me)

another one would be to allow changing public keys over time (as it may be a good practice [0]). A syntax like the following could help to know what public key you used to encrypt the message, and which private key the client should use to decrypt it:

!<nick url> <encrypted_message> <public_key_hash_7_chars>

Also I'd remove support for storing the message as hex, only allowing base64 (more compact, aiming for a minimalistic spec, etc.)

[0] https://www.brandonchecketts.com/archives/its-2023-you-should-be-using-an-ed25519-ssh-key-and-other-current-best-practices

In reply to: #eelvuca 5 months ago
Reply via email