How, this is some funny easter egg: https://git.savannah.nongnu.org/cgit/man-db.git/commit/src/man.c?id=002a6339b1fe8f83f4808022a17e1aa379756d99
@prologic@twtxt.net Regarding the new way of generating twt-hashes, to me it makes more sense to use tabs as separator instead of spaces, since the you can just copy/past a line directly from a twtxt-file that already go a tab between timestamp and message. But tabs might be hard to âtypeâ when you are in a terminal, since it will activate autocompleteâŠđ€
Another thing, it seems that you sugget we only use the domain in the hash-creation and not the full path to the twtxt.txt
$ echo -e "https://example.com 2024-09-29T13:30:00Z Hello World!" | sha256sum - | awk '{ print $1 }' | base64 | head -c 12
Aujourdâhui, petits changements de formatage de mes documents sur le style RFC. Le titre apparaĂźt dĂ©sormais au centre et en haut de page. On a aussi la date de rĂ©daction suivie de la date de derniĂšre mise Ă jour. Que câest beau :)
Gemini/Gopher Twtxt feeds account for less than 1% in existence:
$ total=$(inspect-db yarns.db | jq -r '.Value.URL' | awk -F'//' '{if ($1 ~ /^https?/) print "http/https:"; else print $1}' | sort | uniq -c | awk '{sum+=$1} END {print sum}'); inspect-db yarns.db | jq -r '.Value.URL' | awk -F'//' '{if ($1 ~ /^https?/) print "http/https:"; else print $1}' | sort | uniq -c | awk -v total="$total" '{printf "%d %s %.2f%%\n", $1, $2, ($1/total)*100}' | sort -r
7 gemini: 0.66%
4 gopher: 0.38%
1046 http/https: 98.96%
@aelaraji@aelaraji.com This is one of the reasons why yarnd
has a couple of settings with some sensible/sane defaults:
I could already imagine a couple of extreme cases where, somewhere, in this peaceful world oneâs exercise of freedom of speech could get them in Real trouble (if not danger) if found out, it wouldnât necessarily have to involve something to do with Law or legal authorities. So, If someone asks, and maybe fearing fearing for⊠letâs just say âTheir well beingâ, would it heart if a pod just purged their content if itâs serving it publicly (maybe relay the info to other pods) and call it a day? It doesnât have to be about some law/convention somewhere âŠ đ€· I know! Too extreme, but Iâve seen news of people whoâd gone to jail or got their lives ruined for as little as a silly joke. And it doesnât even have to be about any of this.
There are two settings:
$ ./yarnd --help 2>&1 | grep max-cache
--max-cache-fetchers int set maximum numnber of fetchers to use for feed cache updates (default 10)
-I, --max-cache-items int maximum cache items (per feed source) of cached twts in memory (default 150)
-C, --max-cache-ttl duration maximum cache ttl (time-to-live) of cached twts in memory (default 336h0m0s)
So yarnd
pods by default are designed to only keep Twts around publicly visible on either the anonymous Frontpage or Discover View or your Timeline or the feedâs Timeline for up to 2 weeks with a maximum of 150 items, whichever get exceeded first. Any Twts over this are considered âoldâ and drop off the active cache.
Itâs a feature that my old man @off_grid_living@twtxt.net was very strongly in support of, as was I back in the day of yarnd
âs design (nothing particularly to do with Twtxt per se) that Iâve to this day stuck by â Even though there are some đ that have different views on this đ€Ł
@prologic@twtxt.net I ran the same command and got an even different result xD
~ » echo -n "https://twtxt.net/user/prologic/twtxt.txt\n2020-07-18T12:39:52Z\nHello World! đ" | openssl dgst -blake2s256 -binary | base32 | tr -d '=' | tr 'A-Z' 'a-z' | tail -c 7
p44j3q
An alternate idea for supporting (properly) Twt Edits is to denoate as such and extend the meaning of a Twt Subject (which would need to be called something better?); For example, letâs say I produced the following Twt:
2024-09-18T23:08:00+10:00 Hllo World
And my feedâs URI is https://example.com/twtxt.txt
. The hash for this Twt is therefore 229d24612a2
:
$ echo -n "https://example.com/twtxt.txt\n2024-09-18T23:08:00+10:00\nHllo World" | sha1sum | head -c 11
229d24612a2
You wish to correct your mistake, so you make an amendment to that Twt like so:
2024-09-18T23:10:43+10:00 (edit:#229d24612a2) Hello World
Which would then have a new Twt hash value of 026d77e03fa
:
$ echo -n "https://example.com/twtxt.txt\n2024-09-18T23:10:43+10:00\nHello World" | sha1sum | head -c 11
026d77e03fa
Clients would then take this edit:#229d24612a2
to mean, this Twt is an edit of 229d24612a2
and should be replaced in the clientâs cache, or indicated as such to the user that this is the intended content.
@quark@ferengi.one My money is on a SHA1SUM hash encoding to keep things much simpler:
$ echo -n "https://twtxt.net/user/prologic/twtxt.txt\n2020-07-18T12:39:52Z\nHello World! đ" | sha1sum | head -c 11
87fd9b0ae4e
@quark@ferengi.one Mine is a little overkill đ but I need to do something for practice:
#!/bin/bash
set -e
trap 'echo "!! Something went wrong...!!"' ERR
#============= Variables ==========#
# Source files
LOCAL_DIR=$HOME/twtxt
TWTXT=$LOCAL_DIR/twtxt.txt
HTML=$LOCAL_DIR/log.html
TEMPLATE=$LOCAL_DIR/template.tmpl
# Destination
REMOTE_HOST=remotHostName # Host already setup in ~/.ssh/config
WEB_DIR="path/to/html/content"
GOPHER_DIR="path/to/phlog/content"
GEMINI_DIR="path/to/gemini-capsule/content"
DIST_DIRS=("$WEB_DIR" "$GOPHER_DIR" "$GEMINI_DIR")
#============ Functions ===========#
# Building log.html:
build_page() {
twtxt2html -T $TEMPLATE $TWTXT > $HTML
}
# Bulk Copy files to their destinations:
copy_files() {
for DIR in "${DIST_DIRS[@]}"; do
# Copy both `txt` and `html` files to the Web server and only `txt`
# to gemini and gopher server content folders
if [ "$DIR" == "$WEB_DIR" ]; then
scp -C "$TWTXT" "$HTML" "$REMOTE_HOST:$DIR/"
else
scp -C "$TWTXT" "$REMOTE_HOST:$DIR/"
fi
done
}
#========== Call to functions ===========$
build_page && copy_files
@prologic@twtxt.net earlier you suggested extending hashes to 11 characters, but hereâs an argument that they should be even longer than that.
Imagine I found this twt one day at https://example.com/twtxt.txt :
2024-09-14T22:00Z Useful backup command: rsync -a â$HOMEâ /mnt/backup
and I responded with â(#5dgoirqemeq) Thanks for the tip!â. Then Iâve endorsed the twt, but it could latter get changed to
2024-09-14T22:00Z Useful backup command: rm -rf /some_important_directory
which also has an 11-character base32 hash of 5dgoirqemeq. (Iâm using the existing hashing method with https://example.com/twtxt.txt as the feed url, but Iâm taking 11 characters instead of 7 from the end of the base32 encoding.)
Thatâs what I meant by âspoofingâ in an earlier twt.
I donât know if preventing this sort of attack should be a goal, but if it is, the number of bits in the hash should be at least two times log2(number of attempts we want to defend against), where the âtwo timesâ is because of the birthday paradox.
Side note: current hashes always end with âaâ or âqâ, which is a bit wasteful. Maybe we should take the first N characters of the base32 encoding instead of the last N.
Code I used for the above example: https://fossil.falsifian.org/misc/file?name=src/twt_collision/find_collision.c
I only needed to compute 43394987 hashes to find it.
aujourdâhui, jâai configurĂ© un serveur caldav pour Ă©viter les oublis de rendez-vous avec ma chĂ©rie, et jâai configurĂ© unbound pour quâil fasse le rĂ©solveur DNS en mĂȘme temps quâĂȘtre le point de sortie de mon VPN #wireguard. Ăa traĂźnait depuis trop longtemps. CâĂ©tait pas une si mauvaise journĂ©e ^^
Cette nuit, jâai rĂȘvĂ© de PV Nova qui reprenait RATM et modifiait trĂšs lĂ©gĂšrement le rythme, câĂ©tait vraiment excellent. Jâai maintenant la musique dans la tĂȘte :)
url
field in the feed to define the URL for hashing. It should have been the last encountered one. Then, assuming append-style feeds, you could override the old URL with a new one from a certain point on:
I was not suggesting to that everyone need to setup a working webfinger endpoint, but that we take the format of nick+(sub)domain as base for generating the hashed together with the message date and content.
If we omit the protocol prefix from the way we do things now will that not solve most of the problems? In the case of gemini://gemini.ctrl-c.club/~nristen/twtxt.txt
they also have a working twtxt.txt at https://ctrl-c.club/~nristen/twtxt.txt
⊠damn I just notice the gemini.
subdomain.
Okay what about defining a prefers protocol as part of the hash schema? so 1: https , 2: http 3: gemini 4: gopher ?
Where do I download more hours for my days? not having more than 24 hours a day S U C K S !
@lyse@lyse.isobeef.org 31°C here, feels like 33°C, with a lovely 75% of humidity. It has been raining, on and off (to make matter âbetterâ) the whole day until now. No horses here, but if you go outside you will smell the same smell of farm animals (like goats, or pigs). Thatâs because two or three kilometres from here there are private farms, and when the wind blows in such way, well, we are reminded of their existence.
I havenât left the house, so it feels well under air conditioning. In two more hours I will call it quits from the work day, and will have to dash to the grocery to get supplies for tonightâs meal (arroz con gandules). I will let you know how it truly feels out there then. :-D
For those swollen fingers, nothing better than a mildly cold shower! Oh, and paws off the keyboard! :-P
When we passed a few horses in the forest, there was really strong soup odor in the air. It didnât smell like horse at all, but soup. Maybe theyâve been soup horses, chickens were out of stock.
29°C, zero wind, extremely humid, luckily the sun was behind the clouds. Iâm soaking wet, sweat ran down in streams and dripped in my eyes, it burned a bit. The sky is getting a little dark, I hope the thunderstorm and rain are really arriving here later. Rain had always been finally cancelled the couple last days.
Iâm gotta go cool off my fingers now, theyâre swollen from the heat.
@movq@www.uninformativ.de wow! We are âluckyâ today, only 27°C here, 87% humidity, overcast, and raining sporadically. Thanks to the rain our temperatures arenât high, but muggy nevertheless. I am ready for our winter too, you know, that whole week. LOL.
35°C and rising ⊠can haz winter?
@quark@ferengi.one Weâre having a nice day out here, Clear sky, 26.2 °C (altough it feels like a ~30 °C) ⊠no storms! And the most annoying thing is, THIS happens to my monitor whenever there is a power outage:
With each one a row of pixels gets chipped out ⊠and no I canât afford a UPS at the moment.
vim
cursor at the end of the first line on replies, and forks. I have tried adding to this to jenny
's configuration:
@movq@www.uninformativ.de hmm, I guess I could do that too. I have startinsert
set on my .vimrc
, so I will either have to take it out, or exit insert, $
, then insert again. I think the way you do it would be the way to go.
I tried setting VISUAL
to be something like vim -c 'star!'
, which does the same thing, but no dice. :-/
@falsifian@www.falsifian.org @bender@twtxt.net I pushed an alternative implementation to the fetch-context
branch. This integrates the whole thing into mutt/jenny.
You will want to configure a new mutt hotkey, similar to the âreplyâ hotkey:
macro index,pager <esc>C "\
<enter-command> set my_pipe_decode=\$pipe_decode nopipe_decode<Enter>\
<pipe-message> jenny -c<Enter>\
<enter-command> set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<Enter>" \
"Try to fetch context of current twt, like a missing root twt"
This pipes the mail to jenny -c
. jenny will try to find the thread hash and the URL and then fetch it. (If thereâs no URL or if the specific twt cannot be found in that particular feed, it could query a Yarn pod. That is not yet implemented, though.)
The whole thing looks like this:
https://movq.de/v/0d0e76a180/jenny.mp4
In other words, when thereâs a missing root twt, you press a hotkey to fetch it, done.
I think I like this version better. đ€
(This needs a lot of testing. đ)
@bender@twtxt.net What multiplexer do you use? I usually use Tmux and have my prefix mapped to C-a on my local machine and the default C-b on the remote ones so they donât conflict if it helps.
Que jâaime ces illustrations, câest magnifique: https://www.peppercarrot.com
I love shell scripts because theyâre so pragmatic and often allow me to get jobs done really quickly.
But sadly theyâre full of pitfalls. Pitfalls everywhere you look.
Today, a coworker â whoâs highly skilled, not a newbie by any means â ran into this:
$ bash -c 'set -u; foo=bar; if [[ "$foo" -eq "bar" ]]; then echo it matches; fi'
bash: line 1: bar: unbound variable
Whyâs that happening? I know the answer. Do you? đ
Stuff like that made me stop using shell scripts at work, unless theyâre just 4 or 5 lines of absolutely trivial code. Itâs now Python instead, even though the code is often much longer and clunkier, but at least people will understand it more easily and not trip over it when they make a tiny change.
En cherchant des illustrations #solarpunk pour mes cours, je mâaperçois que câest encore difficile Ă trouver
@prologic@twtxt.net 35°C outside. đ«€ Iâm just gonna sit here and wait for November. đ
If some of you budding fathers want to know how I created a computer nerd to one day work for Facebook in the big USA, well you purchase a $1000 Xmas present, an enormous thick book with C++ programming, and say, you can play as many games as you like kids, but James has to create them using computer software.
SO James created once a 3D chess program with sound, took 6 months or so, really hard to beat, not based on logic moves point by point like other chess programs, this one was based on the depth of looking for patterns, set it to 5 moves ahead and you were toast every time. Nice program too, sadly gone over the years, computers suffer from bit rot. We used to try and mark rotten hard drive discs once as bad sectors, not sure how UBuntu does this these days, I see a dozen errors on the screen every time I load.
Today I would purchase for my kids AI CAD simulation software with metal 3D printer and get your child to build fancy 3D models and engines from scratch. This will make them an expert in the CAD AI industry by the time they are 14 years old. Sadly AI is here to stay and will spoil the Internet.
Je cherche deux thermomĂštres : pour lâintĂ©rieur et pour lâextĂ©rieur. La plupart seront trĂšs bientĂŽt obsolĂštes puisque la tempĂ©rature maximale possible est de 50°C
There are also a bunch of log messages scrolling by. Iâve never seen this much activity in the log:
Jul 25 01:37:39 buc.ci yarnd[829]: [yarnd] 2024/07/25 01:37:39 (149.71.56.69) "GET /external?nick=lovetocode999&uri=https://pagez.co.uk/services/your-own-100-fully-owned-online-vi>
Jul 25 01:37:39 buc.ci yarnd[829]: [yarnd] 2024/07/25 01:37:39 (162.211.155.2) "GET /twt/112135496802692324 HTTP/1.1" 400 12 826.65”s
Jul 25 01:37:40 buc.ci yarnd[829]: [yarnd] 2024/07/25 01:37:40 (51.222.253.14) "GET /conv/muttriq HTTP/1.1" 200 36881 20.448309ms
Jul 25 01:37:40 buc.ci yarnd[829]: [yarnd] 2024/07/25 01:37:40 (162.211.155.2) "GET /twt/112730114943543514 HTTP/1.1" 400 12 663.493”s
Jul 25 01:37:40 buc.ci yarnd[829]: [yarnd] 2024/07/25 01:37:40 (27.75.213.253) "GET /external?nick=lovetocode999&uri=http%3A%2F%2Falfarah.jo%2FHome%2FChangeCulture%3FlangCode%3Den>
Jul 25 01:37:40 buc.ci yarnd[829]: time="2024-07-25T01:37:40Z" level=error msg="http://bynet.com.br/log_envio.asp?cod=335&email=%21%2AEMAIL%2A%21&url=https%3A%2F%2Fwww.almanacar.c>
Jul 25 01:37:40 buc.ci yarnd[829]: [yarnd] 2024/07/25 01:37:40 (162.211.155.2) "GET /twt/111674756400660911 HTTP/1.1" 400 12 545.106”s
Jul 25 01:37:40 buc.ci yarnd[829]: time="2024-07-25T01:37:40Z" level=warning msg="feed FetchFeedRequest: @<lovetocode999 http://alfarah.jo/Home/ChangeCulture?langCode=en&returnUrl>
Jul 25 01:37:41 buc.ci yarnd[829]: [yarnd] 2024/07/25 01:37:41 (162.211.155.2) "GET /twt/112507964696096567 HTTP/1.1" 400 12 838.946”s
Something really weird is going on?
Allez on se remet au boulot. Je nâavais pas tout Ă fait arrĂȘtĂ©, mais dĂ©sormais, câest tous les soirs!
The 26°C humidity was through the roof and we just barely escaped the thunderstorm on our stroll. Only the adjacent rain hit us hard. Black clouds caught up on us and we decided to take cover at a barn. Not even a minute later it started to rain cats and dogs for ten minutes straight. Holy crap, that was cool to watch. :-) Also, the smell of rain was just beautiful.
We then decided to continue our return in the light drizzle. But it then got much heavier again and we got completely soaked. With the wet t-shirt and the wind it actually felt rather cold. I anticipated to get rained on, so I left my camera at home. Plenty of paths turned into brook landscapes, several centimeter deep creeks ran down the hilly trails. Quite fascinating. :-)
The sunset a few minutes ago wasnât too bad:
Itâs a very dangerous time. The coalition for reason is extremely weak. Thatâs why I really appreciate C.H. Danhauserâs entertaining and informative Logical Thinking series. (https://www.youtube.com/watch?v=BUqMNVnELzE&list=PLMpofmkxKHBJfta_JzekLbWGHUSLUJoLt)
woooah, la claque. Câest bon ça ! https://invidious.fdn.fr/watch?v=r5ua6H5zyt8
Pinellas County - Cool down: 2.35 miles, 00:09:59 average pace, 00:23:27 duration
walked about Ÿ mile and then started c/d run. felt strong so endurance is in a great spot!
#running
So dissatisfied and disappointed with the Fairphone 4âs audio issues where during phone calls, the receiver only gets half of the messages due to noise cancellation problems, that weâre considering iPhone as a valid âit just worksâ replacement. Especially since the iPhone15 now also has the USB Type C port.
PurĂ©e, ça me rend tellement triste de lire ça. Alors si câest vraiment ce qui arrive⊠Mais les gens, vous rĂ©flĂ©chissez ou pas? https://www.warriordudimanche.net/article2015/6679b42dae7b3 #education #politique
Bon jâai essayĂ© un truc avec #inkscape, mais câest minable. Pourtant, jâadorerais porter un t-shirt avec Ă©crit en gros devant ânous sommes noirs, nous sommes blancs, nous sommes jaunes, et ensemble, nous sommesâŠâ et derriĂšre âde la dynamite!â. Mais mes essais font des illustrations toutes moches. Y a des artistes dans le coin? @noroanka@im-in.space
Câest quoi le mot Français pour âoverkillâ ? Trop tuant ?!
@prx@si3t.ch JâespĂšre que vous allez bien. Et câest fous comme histoire, jâai vu exactement la mĂȘme sur BFM ce matain oĂč le conducteur ĂągĂ© (70 ans et quelques si je me rappelle bien) impliquĂ© dans lâaccident a fini par percuter quelquâun dâautre quelques minutes aprĂšs le premier accident.
Ce soir, câest conseils de classe, jusquâĂ 20h30 minimum⊠Puis 1h de route. Ăa sera dĂźner, puis #nethack! (ou probablement dodo ^^)
Hum, jâhĂ©site Ă planter mes butternut et potiron⊠Câest les escargots qui risquent de se rĂ©galer, mais ils commencent Ă peiner Ă rester Ă la maison
Ha oui câest vrai que cette semaine il va falloir que je mâimprovise expert hardening proxmox. Si quelquâun a des billes⊠Je prends :)
M a y b e p u t s p a c e s b e t w e e n t h e l e t t e r s t o t h w a r t t h e c r a w l e r s l i k e t h i s s o t h e y j u s t s e e i n d i v i d u a l l e t t e r s
Câest fou toutes ces requĂȘtes spĂ©cfiques Ă #dokuwiki qui persistent mĂȘme si je nâai plus dokuwiki. Les diff et que sais-je⊠Les bots adorent :/
Je cherche de quoi sâisoler du bruit pour me concentrer. Câest pour plusieurs heures, il faut donc que ça soit plus confortable que des boules quies. Des suggestions?
I think @abucci@anthony.buc.ci and @stigatle@yarn.stigatle.no are running snac? I didnât have a closer look at snac (no intention of running it), but if that is a relatively small daemon (maybe comparable to Yarn?) that gives you access to the whole world of ActivityPub, then, well, yeah ⊠Thatâs tough to beat.
Yes, I am running snac
on the same VPS where I run my yarn pod. I heard of it from @stigatle@yarn.stigatle.no, so blame him đ snac
is written in C and is one simple executable, uses very little resources on the server, and stores everything in JSON files (no databases or other integrations; easy to save and migrate your data) . Itâs definitely like yarn in that respect.
I havenât been around yarn much lately. Part of that is that Iâve been very busy at work and home and only have a limited time to spend goofing off on a social network. Part of it is that Iâm finding snac
very useful: Iâve connected with friends Iâd previously lost touch with, Iâve found useful work-related information, Iâve found colleagues to follow, and even found interesting conferences to attend. Thereâs a lot more going on over there.
I guess if I had to put it simply, Iâd say I have limited time to play and there are more kids in the ActivityPub sandbox than this one. Thatâs not a ding on yarnâI like yarn and twtxtâIâm just time constrained.
âMagic Clockâ for Plan 9 (and p9p). http://a.9srv.net/src/img/magicclock-p9p.png http://a.9srv.net/src/magicclock.c (man and other info at http://a.9srv.net/src/).
Pinellas County - Recovery: 3.03 miles, 00:09:07 average pace, 00:27:36 duration
this felt really easy today which was surprising since yesterdays run hurt (knee). curious if the S&C beforehand helped things out a bit. it was hot and humid, but there was a nice breeze for some of it so i didnât feel the heat until the last mile.
#running
AprÚs un WE à 27°C semaine derniÚre, ce samedi nous avons fait de la luge aux Jouv !
@shreyan@twtxt.net ever tried KeepassXC or Pass/Password Store ? They are worth giving a try ⊠Then you can keep your KeepassXD database in synch across your devices with (NOT /R/s/y/n/c) I meant Syncthing or git in the case Pass (using a git repo in within your local network of course) đđŒ(edited)