@prologic@twtxt.net would you please check my web interface? is that a normal thing or am I missing something?
TWO HOURS wasted today trying to figure out why an image wasnāt loading on some web page and what I was doing wrong⦠when the issue is the frigginā DSL router is injecting headers into http (non-https) pages. GAH! Iām ready to throw the thing. Iāve never been so mad at CPE. š¤¬
āFu*** IRC maaan, all the cool kids are on Discord! IRC sucksā
LOL, Now substitute IRC and Discord with Gopher/Gemini and Web.
I hope you get the joke š
@prologic@twtxt.net does that include mine? otherwise it would make them 8 and 5, maybe even throw off your maths by 0.00001% š ⦠and, come on! 1.04% seems like a good ratio considering how many gopher holes and gem capsules compared to how many Web servers out there in the world š
if twtxt 2 is dropping gemini support, i will probably move on and spend more time on my gemini social zine protocol instead. i think the direction of the protocol is probably fine, but for me web is a tier 2 publishing channel. if the choice is between gemini and http iām always going to pick gemini. its been a fun ride, but i guess this is where i get off.
.deb to install Headscale, or some other method?
I ended up installing Headscale on my little VPS. Just in case the collide, I turned off WireGuard. Turning that one off (which ran on a container) also frees some memory. Headscale is running quite well! Indeed, I have struggled getting any web management console to work, but it really isnāt needed. Everything needed to commandeer the server is available through the CLI.
@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
@quark@ferengi.one It looks like the part about traditional topics has been removed from that page. Here is an old version that mentions it: https://web.archive.org/web/20221211165458/https://dev.twtxt.net/doc/twtsubjectextension.html . Still, I donāt see any description of what is actually allowed between the parentheses. May be worth noting that twtxt.net is displaying the twts with the subject stripped, so some piece of code is recognizing it as a subject (or, at least, something to be removed).
@movq@www.uninformativ.de Non-ASCII characters were broken. Like U+2028, degrees (°), etc.
Turns out I used a silly library to detect the encoding and transform to UTF-8 if needed. When there is no Content-Type header, like for local files, it looks at the first 1024 bytes. Since it only saw ASCII in that region, the damn thing assumed the data to be in Windows-1252 (which for web pages kinda makes sense):
// TODO: change default depending on user's locale?
return charmap.Windows1252, "windows-1252", false
https://cs.opensource.google/go/x/net/+/master:html/charset/charset.go;l=102
This default is hardcoded and cannot be changed.
Trying to be smart and adding automatic support for other encodings turned out to be a bad move on my end. At least I can reduce my dependency list again. :-)
I now just reject everything that explicitly specifies something different than text/plain and an optional charset other than utf-8 (ignoring casing). Otherwise I assume itās in UTF-8 (just like the twtxt file format specification mandates) and hope for the best.
i have been using grapheneos for a long time (maybe 7 years now?) and i would fully reccomend it to anyone who is OK with buying a new pixel device to run it on. the install instructions are really easy to follow and can be executed on any device that supports WebUSB https://grapheneos.org/install/web
so this path has been trod and its bad lmao https://web.archive.org/web/20230926192451/https://gemini.spam.works/~emery/sigil-report.gmi
you can just have a web address.. i added mine.. though i think they have changed up the protocol so my key doesnāt seem to work anymore. https://key.sour.is/id/me@sour.is
@prologic@twtxt.net wellā¦
how would that work exactly?
To my limited knowledge, Keyoxide is an open source project offering different tools for verifying oneās online persona(s). Thatās done by either A) creating an Ariande Profile using the web interface, a CLI. or B) Just using your GPG key. Either way, you add in Identity claims to your different profiles, links and whatnot, and finally advertise your profile ⦠Then there is a second set of Mobile/Web clients and CLI your correspondents can use to check your identity claims. I think of them like the front-ends of GPG Keyservers (which keyoxide leverages for verification when you opt for the GPG Key method), where you verify profiles using links, Key IDs and Fingerprintsā¦
Who maintains cox site? Is it centralized or decentralized can be relied upon?
- Maintainers? Definitely not me, but hereās their Git stuff and OpenCollective page ā¦
- Both ASP and Keyoxide Webtools can be self-hosted. I donāt see a central authority here⦠+ As mentioned on their FAQ page the whole process can be done manually, so you donāt have to relay on any one/thing if you donāt want to, the whole thing is just another tool for convenience (with a bit of eye candy).
Does that mean then that every user is required to have a cox side profile?
Nop. But it looks like a nice option to prove that Iām the same person to whom that may concern if I ever change my Twtxt URL, host/join a yarn pod or if I reach out on other platforms to someone Iāve met in her. Otherwise Iām just happy exchanging GPG keys or confirm the change IRL at a coffee shop or something. š
Interesting.. QUIC isnāt very quick over fast internet.
QUIC is expected to be a game-changer in improving web application performance. In this paper, we conduct a systematic examination of QUICās performance over high-speed networks. We find that over fast Internet, the UDP+QUIC+HTTP/3 stack suffers a data rate reduction of up to 45.2% compared to the TCP+TLS+HTTP/2 counterpart. Moreover, the performance gap between QUIC and HTTP/2 grows as the underlying bandwidth increases. We observe this issue on lightweight data transfer clients and major web browsers (Chrome, Edge, Firefox, Opera), on different hosts (desktop, mobile), and over diverse networks (wired broadband, cellular). It affects not only file transfers, but also various applications such as video streaming (up to 9.8% video bitrate reduction) and web browsing. Through rigorous packet trace analysis and kernel- and user-space profiling, we identify the root cause to be high receiver-side processing overhead, in particular, excessive data packets and QUICās user-space ACKs. We make concrete recommendations for mitigating the observed performance issues.
@prologic@twtxt.net Some criticisms and a possible alternative direction:
Key rotation. Iām not a security person, but my understanding is that itās good to be able to give keys an expiry date and replace them with new ones periodically.
It makes maintaining a feed more complicated. Now instead of just needing to put a file on a web server (and scan the logs for user agents) I also need to do this. What brought me to twtxt was its radical simplicity.
Instead, maybe we should think about a way to allow old urls to be rotated out? Like, my metadata could somehow say that X used to be my primary URL, but going forward from date D onward my primary url is Y. (Or, if you really want to use public key cryptography, maybe something similar could be used for key rotation there.)
Itās nice that your scheme would add a way to verify the twts you download, but https is supposed to do that anyway. If you donāt trust https to do that (maybe you donāt like relying on root CAs?) then maybe your preferred solution should be reflected by your primary feed url. E.g. if you prefer the security offered by IPFS, then maybe an IPNS url would do the trick. The fact that feed locations are URLs gives some flexibility. (But then rotation is still an issue, if I understand ipns right.)
@bender@twtxt.net On twtxt, I follow all feeds that I can find (there are some exceptions, of course). Thereās so little going on in general, it hardly matters. š
And I just realized: Muttās layout helps a lot. Skimming over new twts is really easy and itās not a big loss if there are a couple of shitposts⢠in my ātimelineā. This is very different from Mastodon (both the default web UI and all clients Iāve tried), where the timeline is always huge. Posts take up a lot of space on screen. Makes me think twice if I want to follow someone or not. š
(I mostly only follow Hashtags on Mastodon anyway. Itās more interesting that way.)
@prologic@twtxt.net One of your twts begins with (#st3wsda): https://twtxt.net/twt/bot5z4q
Based on the twtxt.net web UI, it seems to be in reply to a twt by @cuaxolotl@sunshinegardens.org which begins āIāve been sketching outā¦ā.
But jenny thinks the hash of that twt is 6mdqxrq. At least, thereās a very twt in their feed with that hash that has the same text as appears on yarn.social (except with ā instead of ā).
Based on this, it appears jenny and yarnd disagree about the hash of the twt, or perhaps the twt was edited (though I canāt see any difference, assuming ā vs ā is just a rendering choice).
early preview of my new web-based twtxt client https://sunshinegardens.org/static/howl/
@prologic@twtxt.net My pod, which is running the same commit you are, does not return an error like that. It returns the same HTML it always has. Try it. I nuked my cache before restarting.
Edit: Oh wait, the plot thickens. I do get an error if I use curl or if I use a web browser that isnāt logged in. Thatās good!
yarnd that's been around for awhile and is still present in the current version I'm running that lets a person hit a constructed URL like
@prologic@twtxt.net This does not seem to fix the problem for me, or Iāve done something wrong. I did the following:
- Pull the latest version from
git(I have commit7ad848, same as ontwtxt.netI believe).
make buildandmake install
- Restart
yarnd
- Refresh cache in Poderator Settings
Yet I still see these bogus /external things on my pod when I hit URLs like the one I sent you recently. When I hit such a URL with curl I think itās giving an error? But in a web browser, the (buggy) response is the same as it was before I updated.
So, this problem is not fixed for me.
yarnd that's been around for awhile and is still present in the current version I'm running that lets a person hit a constructed URL like
@prologic@twtxt.net I believe you are not seeing the problem I am describing.
Hit this URL in your web browser:
https://twtxt.net/external?nick=lovetocode999&uri=https://socialmphl.com/story19510368/doujin
Thatās your pod. I assume you donāt have a user named lovetocode999 on your pod. Yet that URL returns HTTP status 200, and generates HTML, complete with a link to https://socialmphl.com/story19510368/doujin, which is not a twtxt feed (thatās where the twtxt.txt link goes if you click it). That link could be to anything, including porn, criminal stuff, etc, and it will appear to be coming from your twtxt.net domain.
What I am saying is that this is a bug. If there is no user lovetocode999 on the pod, hitting this URL should not return HTTP 200 status, and it should definitely not be generating valid HTML with links in it.
Edit: Oops, I misunderstood the purpose of this /external endpoint. Still, since the uri is not a yarn pod, let alone one with a user named lovetocode999 on it, I stand by the belief that URLs like this should be be generating valid HTML with links to unknown sites. Shouldnāt it be possible to construct a valid target URL from the nick and uri instead of using the podās /external endpoint?
@bender@twtxt.net Iām not a yarnd user, but automatically unfollowing on 404 doesnāt seem right. Besides @lyse@lyse.isobeef.orgās example, I could imagine just accidentally renaming my own twtxt file, or forgetting to push it when I point my DNS to a new web server. Iād rather not lose all my yarnd followers in a situation like that (and hopefully they feel the same).
159-196-9-199.9fc409.mel.nbn.aussiebb.net
@bender@twtxt.net 404 could be indeed a temporary error if the file resides on a mounted remote filesystem and then the mount point fails for some reason. With a symlink from the web root to the file on the mount, the web server probably will not recognize the mount point failure as such. Thus, it might not reply with a 503 Service Unavailable (or something like that), but 404 Not Found instead. (I could be wrong on that, though.)
The right⢠way is to signal 410 Gone if the feed does not exist anymore and will not come back to life again. But thatās hard to come by in the wild. Somebody has to manually configure that in almost all situations.
But yes, as @falsifian@www.falsifian.org points out, exponential backoff looks like a good strategy. Probably even report a failure to users somehow, so they can check and potentially unsubscribe.
You dāont need html | https://web.archive.org/web/20230719135333/http://no-ht.ml/
OTS works Soo great! š Juat got my mother to use it to share some creds so I could take over her web hosting needs š¤£
I setup and switched to Headscale last night. It was relatively simple, I spent more time installing a web GUI to manage it to be honest, the actual server is simple enough. The native Tailscale Android app even works with it thankfully.
After that talk about the Ladybird browser the other day, I see this article just pop up:
Seems itās gaining some recognition and support, I hope it can gain traction as we sure as anything need some genuine alternatives.
s/(www\.)?youtube.com\/watch?v=([^?]+)/tubeproxy.mills.io/play/\1 for example? š¤
Have not tried any of them, but some of these seem to fit the bill:
Very cool! Interestingly using your web app, the result was a higher bitrate than when I downloaded the best audio only option in yt-dlp (258 kbit/s vs 140 kbit/s).
Donāt quite understand that but nice work š
@bender@twtxt.net Hmmmm Iām not sure about this⦠š§ Does anyone have any other opinions that know this web/session security better than me?
Some(one/thing) is going Berserk at my web server and some of their requests are "GET /etc/shadow HTTP/1.1" and "GET /.ssh/id_ed25519 HTTP/1.1" ⦠I think they should try and POST some kind of sudo rm -rf /* while theyāre at it; it would be funnier.
š If yāall notice any weird quirks or UI/UX bugs of late on my pod, please let me know! š For those that have a Javascript enabled web browser will notice (hopefully) a SPA (single page app) like experience, even in Mobile! No more full page refreshes! All this without writing a single line of Javascript (let alone React or whatever) š ā HTMX is pretty damn cooL! š #htmx
Une voiture a cognĆ© ma portiĆØre semi-ouverte alors que jāaccrochais la ceinture de mon fils Ć lāarriĆØre. Bilan : un rĆ©tro cassĆ© pour lui et une porte tordue pour moi, avec un petit bleu dans la jambe. Des accidents comme on en voudrait + souvent, tout le monde va bien. @im-in.space@im-in.space
QOTD: Which web search engine do you use? š
Le pi zero 2 est maintenant alimentƩ par un panneau solaire et son pijuice :-) Il hƩberge le site web.
Well! My 24 hrs without a GUI Web browser was quite of a nice experience.
As a matter of fact, and as long as Iām not doing any 3D work, I kind of donāt need gui applications as much as it feels like.
Even though, a couple of websites asked me to eff off because they need
JavaScript to work. Some others handed me a cold ā402 Upgrade Requiredā client
error response⦠(LOL letās not even talk about how Github repos looked
and felt like). I have managed to fix a couple of things Iāve been meaning to
for quite some time but never got, mainly to because of my browsing
habits. I tend to open a lot of tabs, read some, get distracted then
open some more and down the rabbit hole (or shall I say tabs) I go.
All in all, it was quite a nice experience.
How nice? It was an āIām dropping into a full TTY experience for another
24 hrsā kind of nice!
Although, I miss using a mouse already, but hey, I would have never
heard about gpm(8) otherwise.
I guess Iām not missing my GUI Web Browser yet. In fact, I think Iām enjoying this. š

I might even drop to TTY to try stuff I read about earlier today.
Do you believe one can survive surfing the web using a text-based web browser? (i.e: Lynx or W3m) no CSS no Bling for at least 24 hours š²
Lāinterface web par dĆ©faut de mastodon est dĆ©cidĆ©ment trĆØs lourde. Jāadore utiliser Ć la place pinafore. Cāest un bon compromis devant brutaldon. Dommage que lāauto-hĆ©berger semble si fragile, mais le site officiel est trĆØs bien: https://pinafore.social/
sloweb : comment je rƩduis mon temps passƩ en ligne: https://si3t.ch/log/2024-03-12-sloweb-le-web-sans-s-essoufler.txt
HĆ© oui ^^. Je suis curieux de voir comment Ƨa fonctionne. JāapprĆ©cie de voir une configuration trĆØs semblable Ć httpd. LāidĆ©e de relĆ©guer les cgi Ć slowcgi me semble intelligente. Il y a des logs plus courants Ć parser. Et surtout, Ƨa Ć©vite le cumul de relayd+inetd. <@https://im-in.space/web/@solene@bsd.network/112020802069845381>
Somewhere I read that changing location, like entering a room, can rejigger neural pathways so that some thoughts and memories are somehow associated with the space. Itās the same for me when picking up a laptop. My purpose feels clear until I open a blank web browser window and my mind goes blank, too. In all the moments where Iām drawing a total blank, and then suddenly the thoughts come easily again: maybe thatās my brain looking for the room it was in before.
Planètes, décors, machines, personnages⦠Je veux tout :P <@https://im-in.space/web/@noroanka/111913341057705258>
A ver, ahĆ va un experimentoā¦
Un āagregadorā para la Web pequeƱa en espaƱol, por lo pronto con unos cuantos feeds. (CompĆ”rteme los tuyos)
Muy inspirado en Antenna, aunque con una forma un poco diferente (tomando en cuenta que en espaƱol escribimos menos seguido)
90% of web apps are just fancy forms.
With all M$ās apps being basically fancy web apps, there is no need to actually install any of their legacy applications locally anymore. Since I am online basically 100% of the time this turns my Office experience in a Chromebook like one. No installs, never outdated software. Just a yearly subscription contribution to worry about.
@eapl.me@eapl.me I have many fond memories of Turbo pascal and Turbo C(++). They really did have a great help system. And debug tools! Its rare for language docs to be as approachable. QBasic was great. As was PHP docs when I first came into web.
Feeling nostalgia for simpler web development times.