# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 196277
# self = https://watcher.sour.is?offset=173031
# next = https://watcher.sour.is?offset=173131
# prev = https://watcher.sour.is?offset=172931
@aelaraji Hmm that is worth trying. It is the same base Firefox I guess 🤔
@eldersnake Wouldn't it be possible to use it with your older FF profile? smt like this ?
@eldersnake Wouldn't it be possible to use it with your older FF profile? smt like this ?
@eldersnake Wouldn't it be possible to use it with your older FF profile? smt like this ?
Maybe i should sleep more? Noticed about mistake in my follow entry for prologic. Already fixed
@movq Ooof 😢
@movq Ooof 😢
It's all about the r gage meant ya see 😅
It's all about the r gage meant ya see 😅
[47°09′04″S, 126°43′35″W] Transfer aborted
@xuu @prologic You clearly have very different goals for twtxt and view it from a very different perspective. I don’t have the mental energy for these discussions. I’m gonna take a break.
@xuu @prologic You clearly have very different goals for twtxt and view it from a very different perspective. I don’t have the mental energy for these discussions. I’m gonna take a break.
@xuu @prologic You clearly have very different goals for twtxt and view it from a very different perspective. I don’t have the mental energy for these discussions. I’m gonna take a break.
@xuu @prologic You clearly have very different goals for twtxt and view it from a very different perspective. I don’t have the mental energy for these discussions. I’m gonna take a break.
@aelaraji Yep seems alright! Really fast too. I'm still using my main Firefox in general cos.. well it's set up so much and it's hardened, profile running in RAM, all that crazy stuff that got it working the way I want 😂

But keeping a good eye on Zen Browser's progress.
[47°09′47″S, 126°43′29″W] Sample analyzing complete -- starting transfer
I share I did write up an algorithm for it at some point I think it is lost in a git comment someplace. I'll put together a pseudo/go code this week.

Super simple:

Making a reply:
0. If yarn has one use that. (Maybe do collision check?)
1. Make hash of twt raw no truncation.
2. Check local cache for shortest without collision
- in SQL: select len(subject) where head_full_hash like subject || '%'

Threading:
1. Get full hash of head twt
2. Search for twts
- in SQL: head_full_hash like subject || '%' and created_on > head_timestamp

The assumption being replies will be for the most recent head. If replying to an older one it will use a longer hash.
I share I did write up an algorithm for it at some point I think it is lost in a git comment someplace. I'll put together a pseudo/go code this week.

Super simple:

Making a reply:
0. If yarn has one use that. (Maybe do collision check?)
1. Make hash of twt raw no truncation.
2. Check local cache for shortest without collision
- in SQL: select len(subject) where head_full_hash like subject || '%'

Threading:
1. Get full hash of head twt
2. Search for twts
- in SQL: head_full_hash like subject || '%' and created_on > head_timestamp

The assumption being replies will be for the most recent head. If replying to an older one it will use a longer hash.
This Zen-Browser is actually not bad! 🤯

- Based on Firefox instead of Chromium.
- Got tiling pans when you need them... (just like a tiling window manager).
- I can hide the Tabs and Nav-Bar with a single short-cut!! AKA Compact Mode ...
This Zen-Browser is actually not bad! 🤯

- Based on Firefox instead of Chromium.
- Got tiling pans when you need them... (just like a tiling window manager).
- I can hide the Tabs and Nav-Bar with a single short-cut!! AKA Compact Mode ...
This Zen-Browser is actually not bad! 🤯

- Based on Firefox instead of Chromium.
- Got tiling pans when you need them... (just like a tiling window manager).
- I can hide the Tabs and Nav-Bar with a single short-cut!! AKA Compact Mode ...
@eldersnake and Snapchat, that one is the worse. No, I am not sharing my entire address book. Geez!
@slashdot Pretend I'm Leonardo.

> /ME slow claps...
@slashdot Pretend I'm Leonardo.

> /ME slow claps...
@slashdot Pretend I'm Leonardo.

> /ME slow claps...
Lol, this is actually a good thing by Apple. Doesn't kill social apps at all, just prevents some harvesting of your entire address book by abusive apps like WhatsApp.
🧮 USERS:1 FEEDS:2 TWTS:1111 ARCHIVED:79666 CACHE:2610 FOLLOWERS:17 FOLLOWING:14
@bender Nope not at all. base64 just encodes more bits
@bender Nope not at all. base64 just encodes more bits
> Build what makes you happy. Let miserable people build the rest
> Build what makes you happy. Let miserable people build the rest
@lyse I _think_ the proposal should be as simple as this:

- Update the Twt Hash extension.
- Increase its truncation from 7 to 12

@xuu is right about quite a few things, and I'd love it if he wrote up the dynamic hash size proposal, but I'm inclined to just increase the length in the first place mostly because my own client yarnd doesn't even store the full hashes in the first place 🤦‍♂️ (I thinnk)
@lyse I _think_ the proposal should be as simple as this:

- Update the Twt Hash extension.
- Increase its truncation from 7 to 12

@xuu is right about quite a few things, and I'd love it if he wrote up the dynamic hash size proposal, but I'm inclined to just increase the length in the first place mostly because my own client yarnd doesn't even store the full hashes in the first place 🤦‍♂️ (I thinnk)
@xuu Good point.
@xuu Good point.
@xuu I guess @movq 's point is there isn't one that is available as standard on OpenBSD? 😅
@xuu I guess @movq 's point is there isn't one that is available as standard on OpenBSD? 😅
End the apartheid, End the war. #FreePalestine
here are plenty of implementations https://www.blake2.net/#su
here are plenty of implementations https://www.blake2.net/#su
stick computers, to snugly fit in reclaimed plastic tubes/containers #halfbaked #coding #programming #embedded #electronics
I mean sure if i want to run it over on my tooth brush why not use something that is accessible everywhere like md5? crc32? It was chosen a long while back and the only benefit in changing now is "i cant find an implementation for x" when the down side is it breaks all existing threads. so...
I mean sure if i want to run it over on my tooth brush why not use something that is accessible everywhere like md5? crc32? It was chosen a long while back and the only benefit in changing now is "i cant find an implementation for x" when the down side is it breaks all existing threads. so...
[47°09′10″S, 126°43′53″W] Taking samples
Necropost: btw i have twt alias for twet 😅
@bender Yes, a proposal alone is certainly not enough, but a good start. Absolutely necessary in my opinion. With everything just in thin air and constantly changing (at least it appears to me that way), I'm lost.

I have the feeling that the hashing part is the most important one that should be sorted first.
@lyse I agree. Yet, even with a proposal, it is hard to finally agree to something, because it is not about developing a unique, sole client, but agreeing on a set of "standards" to be used on a handful(?) of clients, make by different people.

Using Mastodon as a---albeit poorly---contrast, they set their road-map, and clients (even other server implementations!) that want to cater/communicate with it using similar APIs will have to adjust. No other way. That doesn't apply to twtxt.

I think the incremental changes that have been made to twtxt happened kind of slowly for that reason.
[47°09′51″S, 126°43′20″W] Reading: 0.23000 PPM
@quark I definitely agree with the first part. Not so sure about the second one. Maybe it then turns out miserable, too. :-?
@fastidious @movq hehe' Howdy!
@fastidious @movq hehe' Howdy!
@fastidious @movq hehe' Howdy!
@bender I do hope that it ends up fancy! But maybe it turns out rather crappy. Metal working is definitely beyond my capabilities. I just find it super fascinating.
ParaCyberBellum Security Review | https://library.paracyberbellum.io/review
ParaCyberBellum Security Review | https://library.paracyberbellum.io/review
I'd also appreciate if somebody wrote a proposal. It's very hard to piece everything together across all those many conversations.
@movq because sometimes resurrecting the dormant is worth it. Hello! :-)
@aelaraji LOL. I am everywhere! :-P
Pinellas County - Easy: 5.02 miles, 00:10:12 average pace, 00:51:08 duration
kept it an easy feel. fun run.
#running
Pinellas County - Easy: 5.02 miles, 00:10:12 average pace, 00:51:08 duration
kept it an easy feel. fun run.
#running
Pinellas County - Easy: 5.02 miles, 00:10:12 average pace, 00:51:08 duration
kept it an easy feel. fun run.
#running
@prologic yeah, sad, convoluted, dangerous state of affairs for just about everyone. :-(
@prologic yeah, sad, convoluted, dangerous state of affairs for just about everyone. :-(
@bender Not yet! the prompt said the requests are treated manually and that it could take up to 30 days.
@bender Not yet! the prompt said the requests are treated manually and that it could take up to 30 days.
@bender Not yet! the prompt said the requests are treated manually and that it could take up to 30 days.
@bender yeah I know, I treat these like the RSS ones. I'm OK with them being one-ways as long as they don't get Spammy.
@bender yeah I know, I treat these like the RSS ones. I'm OK with them being one-ways as long as they don't get Spammy.
@bender yeah I know, I treat these like the RSS ones. I'm OK with them being one-ways as long as they don't get Spammy.
@aelaraji so, did you get approve? What's your tilde?
@aelaraji a one way only feed? I can't see the twtxt you are referring to, but checked the original feed, and they seem not to be engaging with anyone.
@prologic is base64 more desirable than base32? I noticed I get alphanumeric replacing base64 with base32.
@3r1c 🤔 Interesting! I was thinking about doing something like this in Rofi, now I can just play with this one.
@3r1c 🤔 Interesting! I was thinking about doing something like this in Rofi, now I can just play with this one.
@3r1c 🤔 Interesting! I was thinking about doing something like this in Rofi, now I can just play with this one.
e.g:


$ printf "%s\\t%s\\t%s" "https://example.com/twtxt.txt" "2024-09-29T13:30:00Z" "Hello World!" | sha256sum | awk '{ print $1 }' | xxd -r -p | base64 | head -c 12
UWVFdUXtvoLS
e.g:


$ printf "%s\t%s\t%s" "https://example.com/twtxt.txt" "2024-09-29T13:30:00Z" "Hello World!" | sha256sum | awk '{ print $1 }' | xxd -r -p | base64 | head -c 12
UWVFdUXtvoLS
e.g:


$ printf "%s\t%s\t%s" "https://example.com/twtxt.txt" "2024-09-29T13:30:00Z" "Hello World!" | sha256sum | awk '{ print $1 }' | xxd -r -p | base64 | head -c 12
UWVFdUXtvoLS
@bender I'm inclined to agree. @xuu needs a bit of convincing maybe? 🤔
@bender I'm inclined to agree. @xuu needs a bit of convincing maybe? 🤔
@prologic I would think we would want to make it as easy as possible. I would favour something that's most widely and readily available, won't you?
@movq Curious, is our goal to have readily available tools on every possible system? 🤔
@movq Curious, is our goal to have readily available tools on every possible system? 🤔
@bender To be fair it _really_ isn't sha256sum vs. b2sum. Neither is more complicated than the other.
@bender To be fair it _really_ isn't sha256sum vs. b2sum. Neither is more complicated than the other.
@movq that is it! Thank you! In comparison, sha256sum is much less complicated. :-D
@bender The example @prologic posted is missing the base32 dance and the length should be 256 instead of 32. This thing prints the correct hash:

printf '%s\\n%s\\n%s' 'https://example.com/twtxt.txt' '2020-12-09T15:38:42Z' 'The twt hash now uses the RFC 3339 timestamp format.' | b2sum -l 256 | awk '{ print $1 }' | xxd -r -p | base32 | sed -E 's/=//g; s/.*(.{7})$/\\1/' | tr '[A-Z]' '[a-z]'

(xxd is part of Vim.)
@bender The example @prologic posted is missing the base32 dance and the length should be 256 instead of 32. This thing prints the correct hash:

printf '%s\n%s\n%s' 'https://example.com/twtxt.txt' '2020-12-09T15:38:42Z' 'The twt hash now uses the RFC 3339 timestamp format.' | b2sum -l 256 | awk '{ print $1 }' | xxd -r -p | base32 | sed -E 's/=//g; s/.*(.{7})$/\1/' | tr '[A-Z]' '[a-z]'

(xxd is part of Vim.)
@bender The example @prologic posted is missing the base32 dance and the length should be 256 instead of 32. This thing prints the correct hash:

printf '%s\n%s\n%s' 'https://example.com/twtxt.txt' '2020-12-09T15:38:42Z' 'The twt hash now uses the RFC 3339 timestamp format.' | b2sum -l 256 | awk '{ print $1 }' | xxd -r -p | base32 | sed -E 's/=//g; s/.*(.{7})$/\1/' | tr '[A-Z]' '[a-z]'

(xxd is part of Vim.)
@bender The example @prologic posted is missing the base32 dance and the length should be 256 instead of 32. This thing prints the correct hash:

printf '%s\n%s\n%s' 'https://example.com/twtxt.txt' '2020-12-09T15:38:42Z' 'The twt hash now uses the RFC 3339 timestamp format.' | b2sum -l 256 | awk '{ print $1 }' | xxd -r -p | base32 | sed -E 's/=//g; s/.*(.{7})$/\1/' | tr '[A-Z]' '[a-z]'

(xxd is part of Vim.)
@bender The example @prologic posted is missing the base32 dance and the length should be 256 instead of 32. This thing prints the correct hash:

printf '%s\\n%s\\n%s' 'https://example.com/twtxt.txt' '2020-12-09T15:38:42Z' 'The twt hash now uses the RFC 3339 timestamp format.' | b2sum -l 256 | awk '{ print $1 }' | xxd -r -p | base32 | sed -E 's/=//g; s/.*(.{7})$/\\1/' | tr '\n' '\n'

(xxd is part of Vim.)
@prologic indeed. The batcat package under Ubuntu doesn't install one.
@prologic I’m sure you can *somehow* install *something* that calculates blake2b on OpenBSD. But it’s not part of the base system as a standalone CLI tool, there only appear to be Perl modules for it. The other SHA tools do exist.
@prologic I’m sure you can *somehow* install *something* that calculates blake2b on OpenBSD. But it’s not part of the base system as a standalone CLI tool, there only appear to be Perl modules for it. The other SHA tools do exist.
@prologic I’m sure you can *somehow* install *something* that calculates blake2b on OpenBSD. But it’s not part of the base system as a standalone CLI tool, there only appear to be Perl modules for it. The other SHA tools do exist.
@prologic I’m sure you can *somehow* install *something* that calculates blake2b on OpenBSD. But it’s not part of the base system as a standalone CLI tool, there only appear to be Perl modules for it. The other SHA tools do exist.
@bender So it should be possible to install man pages in one's home directory👌
@bender So it should be possible to install man pages in one's home directory👌
@prologic you set the MANPATH and man pages install on that location. I found the man page for Ubuntu 24.04, and got it installed now: https://manpages.ubuntu.com/manpages/noble/man1/batcat.1.html
@bender Yea but what about non-root?