# 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 2172
# self = https://watcher.sour.is?uri=https://twtxt.net/user/mckinley/twtxt.txt&offset=1972
# next = https://watcher.sour.is?uri=https://twtxt.net/user/mckinley/twtxt.txt&offset=2072
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/mckinley/twtxt.txt&offset=1872
@prologic $0.15 sounds great but you need to make money doing this. Is it still going to be use-based pricing or will there be tiers like conventional VPS providers?
You could get better value for money with a super cheap VPS without IPv4 connectivity but it wouldn't be worth it if you didn't need the extra resources as a VPS wouldn't work with such low specs. It would also require significantly more effort on the part of the operator.

I would understand paying a small premium for using the lowest-cost tier, convenience, and especially if you operated a reverse proxy with IPv4 connectivity.
You could do better with a super cheap VPS without IPv4 connectivity but not if you only needed to host one thing. It would also require significantly more effort on the part of the operator.
You could get better value for money with a super cheap VPS without IPv4 connectivity but it wouldn't be worth it if you didn't need the extra resources as a VPS wouldn't be practical with such low specs. It would also require significantly more effort on the part of the operator.

I would understand paying a small premium for using the lowest-cost tier, convenience, and especially if you operated a reverse proxy with IPv4 connectivity.
You could do better with a super cheap VPS without IPv4 connectivity but not if you only needed to host one thing. It would also require significantly more effort on the part of the operator.

I would understand paying a small premium for using the lowest-cost tier, convenience, and especially if you operated a reverse proxy with IPv4 connectivity.
@prologic $0.50/month seems very reasonable. Is this for cas.run?
@prologic $0.50/month seems reasonable. Is this for cas.run?
@movq I use nethogs for this sort of thing: https://github.com/raboof/nethogs
@prologic What is an mCore? 1/1000th of a core?
@prologic Plexamp has some really cool features. It's a shame it's proprietary and dependent on central services.
@movq Interesting. mpd + ncmpcpp seems to be a common setup among our types but I really like cmus. Whipper is my CD ripper of choice and it is excellent. It queries AccurateRip for checksums and MusicBrainz for metadata, and can encode to any format you want. It also creates a nice log file like EAC does (it can even create EAC-compatible logs with a plugin) so you can verify that it was ripped properly.
@movq Interesting. mpd + ncmpcpp seems to be a common setup among our type but I really like cmus. Whipper is my CD ripper of choice and it is excellent. It queries AccurateRip for checksums and MusicBrainz for metadata, and can encode to any format you want. It also creates a nice log file like EAC does (it can even create EAC-compatible logs with a plugin) so you can verify that it was ripped properly.
QOTD: How do you listen to your music?

I'll start. I have a meticulously organized FLAC library stored locally on my laptop and played with cmus. Everything is manual but I have a collection of home-grown shell scripts that help me maintain folder structure, manage metadata, calculate information about the recording like dynamic range and spectrograms, and do transformations like cue splitting. Once an album has been processed, it goes into the music folder on my laptop with a duplicate copy stored on my server.

I have been thinking about letting beets do all of that boring stuff, but I'm not sure I can trust it to do it right. I also really want some kind of (self hosted) algorithm to pick songs for me. As it is, I can't just shuffle my library or even genres because there are a lot of songs that don't go well together as well as songs I just don't like. I haven't found anything that can do that.

Anyway, I'm curious to see how you guys do it.
@prologic He didn't like LibreOffice Writer? Is he used to Microsoft Word or Apple Pages? I've had success getting non-technical Office refugees on LibreOffice, specifically Writer. Most people don't need any fancy features and most things are located close enough to their counterparts on Word.

I show them how to export their documents as PDF before they share them with others and I use the (somewhat) immutability of PDFs and their portability (bundled fonts, rigid formatting, etc) to sell it. Those are two real benefits, but the main reason is that I don't trust other software to handle ODTs and I don't trust LibreOffice to write DOCXes. Although, I don't know if I really need to be worried about either of them with basic documents. It's probably worth investigating.
@prologic Nice. I hope he likes it.
@prologic What does he use now?
@sorenpeter Done
@bender Check out https://darch.dk/timeline/, it's an honest-to-goodness Yarn-like Web UI. Very impressive, @darch. Do you want it listed on groovy-twtxt?
@bender Check out https://darch.dk/timeline/, it's an honest-to-goodness Yarn-compatible Web UI. Very impressive, @darch. Do you want it listed on groovy-twtxt?
@prologic You're right, but they're not going to stop until people vote with their wallets.

@bender I'm not suggesting that people should use an old Windows version to avoid this. I'm saying that Windows in general should be considered a legacy operating system, and continued usage will only make you subject to more of this tracking and unnecessary garbage.

In other words, the situation will never improve. It will only get worse from here, so you might as well get out now while there are still plenty of life boats. Otherwise, when they do something that's really over the line, you either have to go along with it or dive right into the cold ocean.

Windows is only kept alive at this point by a lack of knowledge about the alternatives, apathy, fear, and some enterprise software and games with support in Wine improving by the day.
@prologic You're right, but they're not going to stop until people vote with their wallets.

@bender I'm not suggesting that people should use an old Windows version to avoid this. I'm saying that Windows in general should be considered a legacy operating system, and continued usage will only make you subject to more of this tracking and unnecessary garbage.

In other words, the situation will never improve. It will only get worse from here, so you might as well get out now while there are still plenty of life boats. Otherwise, when they do something that's really over the line, you either have to go along with it or dive right into the cold ocean.

Windows is only kept alive at this point by a lack of knowledge about the alternatives, apathy, fear, and some enterprise software and games with support in Wine improving by the day.
@prologic Only if you stick with legacy operating systems
Cutting edge server monitoring from McKinley Labs: Detect when the heavy compute task on my server is done and play a sound on my laptop


ssh server 'while true; do test $(</proc/loadavg cut -d . -f 1) -lt 10 && break; sleep 10; done' && qmpv sound.opus
@bender I also use the Discover tab and I do wish I could mute some of them that only post in Portugese. I just didn't know they were on Mastodon.
Ah, the Ciberlandia people are on a Mastodon bridge. I thought we got rid of that.
Ah, the Ciberlandia people are on a Mastodon bridge. I didn't know we still had that.
@@villares@ciberlandia.pt Sounds like a great use for Monero: https://www.getmonero.org/
@movq Paper shopping lists are much better than phones. They don't turn off every 30 seconds so you have to push a button and type in a code.
@xuu Nice. I've been thinking of doing something similar for my website so I can host more services at mckinley.cc.
@prologic Usable? Impressive. You can fit a lot of ISOs in 22 TB. Are you doing ZFS?
@prologic I looked up BurmillaOS and this is definitely one for my thread about unique Linux distributions. Very interesting.

> Everything in BurmillaOS is a Docker container. We accomplish this by launching two instances of Docker. One is what we call System Docker and is the first process on the system. All other system services, like ntpd, syslog, and console, are running in Docker containers. System Docker replaces traditional init systems like systemd and is used to launch additional system services.
@eapl.me @movq I have an E1505 in my box of laptops and its keyboard is pretty great, especially by modern standards. I'd say it's almost on par with that of a contemporary ThinkPad (T43).
@xuu Wow. txt.sour.is has IPv6, so are you hosting it on one of those VMs or is it a reverse proxy back home?
@movq Maybe it's just a cargo cult thing (pun intended) because it's somehow an accepted way to install a piece of software.
@quark Maybe 1.8 is a bit excessive. I'll give 1.5 a try. Thanks!
Thank you @lyse, that means a lot. :)
@movq It's possible for a Web server to detect whether or not you're piping the output into a shell and change its output based on that, which makes curl | sh so much worse in my opinion.

https://web.archive.org/web/20240311094552/https://www.idontplaydarts.com/2016/04/detecting-curl-pipe-bash-server-side/
@bender That's fair and I understand if you don't want to click through to another website just to get my thoughts on WYSIWYG website builders. However, my website is much better than a WYSIWYG one. It has absolutely no JavaScript or tracking (not even Web server access logs) and it will work on just about any browser that won't die the moment it sees XHTML.

If I'm putting a lot of effort into a piece of writing, I'd rather have it on my website that I control rather than someone else's. No offense @prologic :)
@prologic Wow. I didn't know the Mills DC was that serious. How much storage do you have and how is it set up?
@stigatle What kind of hashrate are you getting on that thing?
QOTD: What do you host on your home server? How do you host it? Are you using containers? VMs? Did you install any management interface or do you just SSH in? What OS does it run?

Mine runs Arch (btw) and hosts a handful of things using Docker. Adguard Home, http://mckinley2nxomherwpsff5w37zrl6fqetvlfayk2qjnenifxmw5i4wyd.onion/, and some other things. NFS, Flexo, and Wireguard (peer and bounce server in my personal network) are outside Docker. I have a hotkey in my window manager that spawns a terminal on my server using SSH. It makes things very easy and I highly recommend it.

I am thinking about replacing Docker with Podman because the Common Wisdom seems to say it's better. I don't really know if it is or isn't.

Also, how much of your personal infrastructure is on IPv6? I think all the software I use supports both, but I've mostly been using IPv4 because it's easier to remember the addresses. I've been working for the last couple days on making it IPv6-only.
QOTD: What do you host on your home server? How do you host it? Are you using containers? VMs? Did you install any management interface or do you just SSH in? What OS does it run?

Mine runs Arch (btw) and hosts a handful of things using Docker. Adguard Home, http://mckinley2nxomherwpsff5w37zrl6fqetvlfayk2qjnenifxmw5i4wyd.onion/, and some other things. NFS, Flexo, and Wireguard (peer and bounce server in my personal network) are outside Docker. I have a hotkey in my window manager that spawns a terminal on my server using SSH. It makes things very easy and I highly recommend it.

I am thinking about replacing Docker with Podman because the Common Wisdom seems to say it's better. I don't really know if it is or isn't.
QOTD: What do you host on your home server? How do you host it? Are you using containers? VMs? Did you install any management interface or do you just SSH in? What OS does it run?

Mine runs Arch (btw) and hosts a handful of things using Docker. Adguard Home, http://mckinley2nxomherwpsff5w37zrl6fqetvlfayk2qjnenifxmw5i4wyd.onion/, and some others. NFS, Flexo, and Wireguard (peer and bounce server in my personal network) are outside Docker. I have a hotkey in my window manager that spawns a terminal on my server using SSH. It makes things very easy and I highly recommend it.

I am thinking about replacing Docker with Podman because the Common Wisdom seems to say it's better. I don't really know if it is or isn't.

Also, how much of your personal infrastructure is on IPv6? I think all the software I use supports both, but I've mostly been using IPv4 because it's easier to remember the addresses. I've been working for the last couple days on making it IPv6-only.
QOTD: What do you host on your home server? How do you host it? Are you using containers? VMs? Did you install any management interface or do you just SSH in? What OS does it run?

Mine runs Arch (btw) and hosts a handful of things using Docker. Adguard Home, http://mckinley2nxomherwpsff5w37zrl6fqetvlfayk2qjnenifxmw5i4wyd.onion/, a Monero node, and some others. NFS, Flexo, and Wireguard (peer and bounce server in my personal network) are outside Docker. I have a hotkey in my window manager that spawns a terminal on my server using SSH. It makes things very easy and I highly recommend it.

I am thinking about replacing Docker with Podman because the Common Wisdom seems to say it's better. I don't really know if it is or isn't.

Also, how much of your personal infrastructure is on IPv6? I think all the software I use supports both, but I've mostly been using IPv4 because it's easier to remember the addresses. I've been working for the last couple days on making it IPv6-only.
QOTD: What do you host on your home server? How do you host it? Are you using containers? VMs? Did you install any management interface or do you just SSH in? What OS does it run?

Mine runs Arch and hosts a handful of things using Docker. Adguard Home, http://mckinley2nxomherwpsff5w37zrl6fqetvlfayk2qjnenifxmw5i4wyd.onion/, and some other things. NFS, Flexo, and Wireguard (peer and bounce server in my personal network) are outside Docker.

I am thinking about replacing Docker with Podman because the Common Wisdom seems to say it's better. I don't really know if it is or isn't.
@bender I don't mind the character limit. If I hit it and I still have more to say, it's a good reminder that I should probably write a note instead. I like to POSSE anything that might have value outside of the current conversation.
I can't believe software developers are still trying to get people to do curl | sh. It's easy to miss the problem if you're still in the mindset of Windows software distribution, but these people are writing software on GNU/Linux, for GNU/Linux. You would think they'd realize that this is *never* a good idea.
@bender Solo mining at 450 Gh/s, it's a 1 in 8,765,713 chance per day of mining a block, so it would take roughly 24,000 years on average. Think of it like playing the lottery. It sounds kind of fun to me.
@stigatle Neat. Are you going to try your luck solo mining?
@movq I think Browsh is fairly new but it doesn't really count as it's just a frontend for Firefox. I haven't heard of any new, real, text-based browsers.
@shreyan Yes. It uses the FreeBSD core tools. https://chimera-linux.org/about/#alternative-userland
@movq I just do it because I like well-defined standards and as a sort of protest against the "Living Standards". I also take care to make my website look reasonable even when CSS isn't available, especially in terminal browsers.
@movq There's nothing wrong with that. I just do it because I like well-defined standards and as a sort of protest against the "Living Standards". I also take care to make my website look reasonable even when CSS isn't available, especially in terminal browsers.
@movq That makes a lot of sense. I agree it's probably a better use of time to maintain a nice, simple website.
@movq That's an excellent point, I never thought about it that way before. I have always tried to be very conservative with the CSS on my website and my class names mostly reflect what they are.

Actually, I've had a new part of my website almost completed for a while, but I'm hung up on it because flex boxes are pretty much required to do what I want with the home page. My stylesheet has always been valid CSS 2 and I'm not sure I want to ruin that.
@movq What happened to your Gopher server?
There isn't anything too far out of the ordinary there, but I like the idea of Chimera Linux. It's a new independent distribution, free of legacy cruft, aiming to create a simple yet practical modern desktop system. Interestingly, it uses Dinit rather than Systemd or OpenRC.

There are also a small handful of what I call "micro-distributions" like Static Linux, KISS Linux, and Oasis Linux which aim to create the simplest possible desktop Linux system while still having a usable package system. Some might (justifiably) call them toy distros, but I think they're neat.
There isn't anything too far out of the ordinary there, but I like the idea of Chimera Linux. It's a new independent distribution, free of legacy cruft, aiming to create a simple yet practical modern desktop system.

There are also a small handful of what I call "micro-distributions" like Static Linux, KISS Linux, and Oasis Linux which aim to create the simplest possible desktop Linux system while still having a usable package system. Some might (justifiably) call them toy distros, but I think they're neat.
@prologic How could I forget? :)
QOTD: What are some (GNU/|)Linux distributions that think outside the box? I'll start.

* Bedrock Linux - A "meta distribution" that uses black magic to install packages from any distribution you can think of
* GoboLinux - A distribution that uses black magic to eradicate the standard filesystem hierarchy and give each package its own directory tree, e.g. /Programs/GCC/9.2.0. It's been around for a whopping 21 years.

There are also the well-known ones like NixOS, Qubes, and even Gentoo but I don't see those two mentioned too often.
QOTD: What are some (GNU/)Linux distributions that think outside the box? I'll start.

* Bedrock Linux - A "meta distribution" that uses black magic to install packages from any distribution you can think of
* GoboLinux - A distribution that uses black magic to eradicate the standard filesystem hierarchy and give each package its own directory tree, e.g. /Programs/GCC/9.2.0. It's been around for a whopping 21 years.

There are also the well-known ones like NixOS, Qubes, and even Gentoo but I don't see those two mentioned too often.
QOTD: What are some {GNU/,}Linux distributions that think outside the box? I'll start.

* Bedrock Linux - A "meta distribution" that uses black magic to install packages from any distribution you can think of
* GoboLinux - A distribution that uses black magic to eradicate the standard filesystem hierarchy and give each package its own directory tree, e.g. /Programs/GCC/9.2.0. It's been around for a whopping 21 years.

There are also the well-known ones like NixOS, Qubes, and even Gentoo but I don't see those two mentioned too often.
QOTD: What are some (GNU/|)Linux distributions that think outside the box? I'll start.

* Bedrock Linux - A "meta distribution" that uses black magic to install packages from any distribution you can think of
* GoboLinux - A distribution that uses black magic to eradicate the standard filesystem hierarchy and give each package its own directory tree, e.g. /Programs/GCC/9.2.0. It's been around for a whopping 21 years.

There are also the well-known ones like NixOS, Qubes, and even Gentoo but I don't see those two mentioned very often.
@movq Agreed.
Whoops, I started a thread when I meant to reply to the other one. I don't think I've ever done that before.
How does Gitea store repositories? Are they just bare Git repositories on the filesystem that can be cloned separately? Also, how does it handle the upstream force-pushing an empty repository? Will that destroy your archive?
@prologic I've thought about that, but it seems awfully inefficient to host a full code forge with a Web interface just to mirror some Git repositories.
QOTD: Do you keep a personal archive of Git repositories? If so, how? My backup system is a poorly written, inefficient shell script that I run manually when I think about it and I'd like to do something about that. The Yuzu and Citra emulators were taken down recently and I have a ~3 day old backup of Yuzu's repository but nothing for Citra.
@prologic So, you're automatically downloading videos by a select few YouTube channels and putting them into Plex? Interesting. When do you think your kids will figure out how to get around your block? :)
I agree with @sorenpeter. WebFinger and WebMentions are very much in the spirit of Twtxt and both of them are already in use. If we're going to do much more than that, we should probably just use Nostr instead.
@lyse The thing that really unlocked jq for me was learning how to get a TSV output. That was a complete game changer, because it meant I could easily use it in a shell pipeline. I found it to be better than gron for that purpose. Just make an array for each item containing all the values you need and pipe it to the filter @tsv.


$ # Search YouTube using the Invidious API for "never gonna give you up" and write the results to out.json
$ curl -sGL -A 'Mozilla/5.0 (Linux; x86_64) Ladybird/1.0' -o out.json --data-urlencode 'q=never gonna give you up' 'https://farside.link/invidious/api/v1/search' 
$ jq -r '.[] | select(.type == "video") | [ .title, .author, .authorVerified, .videoId ] | @tsv' out.json
Rick Astley - Never Gonna Give You Up (Official Music Video)\tRick Astley\ttrue\tdQw4w9WgXcQ
Rick Astley - Never Gonna Give You Up [Lyrics]\tGlyphoricVibes\ttrue\tQdezFxHfatw
InsurAAAnce & Rick Astley Never Gonna Give You Up\tCSAA Insurance Group, a AAA Insurer\ttrue\tGtL1huin9EE
[...]
@lyse The thing that really unlocked jq for me was learning how to get a TSV output. That was a complete game changer, because it meant I could easily use it in a shell pipeline. I found it to be better than gron for that purpose. Just make an array for each item containing all the values you need and pipe it to the filter @tsv.


$ # Search YouTube using the Invidious API for "never gonna give you up" and write the results to out.json
$ curl -sGL -A 'Mozilla/5.0 (Linux; x86_64) Ladybird/1.0' -o out.json --data-urlencode 'q=never gonna give you up' 'https://farside.link/invidious/api/v1/search' 
$ jq -r '.[] | select(.type == "video") | [ .title, .author, .authorVerified, .videoId ] | @tsv' out.json
Rick Astley - Never Gonna Give You Up (Official Music Video)	Rick Astley	true	dQw4w9WgXcQ
Rick Astley - Never Gonna Give You Up [Lyrics]	GlyphoricVibes	true	QdezFxHfatw
InsurAAAnce & Rick Astley Never Gonna Give You Up	CSAA Insurance Group, a AAA Insurer	true	GtL1huin9EE
[...]
@lyse The thing that really unlocked jq for me was learning how to get a TSV output. That was a complete game changer, because it meant I could easily use it in a shell pipeline. I found it to be better than gron for that purpose.


$ # Search YouTube using the Invidious API for "never gonna give you up" and write the results to out.json
$ curl -sGL -A 'Mozilla/5.0 (Linux; x86_64) Ladybird/1.0' -o out.json --data-urlencode 'q=never gonna give you up' 'https://farside.link/invidious/api/v1/search' 
$ jq -r '.[] | select(.type == "video") | [ .title, .author, .authorVerified, .videoId ] | @tsv' out.json
Rick Astley - Never Gonna Give You Up (Official Music Video)\tRick Astley\ttrue\tdQw4w9WgXcQ
Rick Astley - Never Gonna Give You Up [Lyrics]\tGlyphoricVibes\ttrue\tQdezFxHfatw
InsurAAAnce & Rick Astley Never Gonna Give You Up\tCSAA Insurance Group, a AAA Insurer\ttrue\tGtL1huin9EE
[...]
@lyse The thing that really unlocked jq for me was learning how to get a TSV output. That was a complete game changer, because it meant I could easily use it in a shell pipeline. I found it to be better than gron for that purpose.


$ curl -sGL -A 'Mozilla/5.0 (Linux; x86_64) Ladybird/1.0' -o out.json --data-urlencode 'q=never gonna give you up' 'https://farside.link/invidious/api/v1/search' 
$ jq -r '.[] | select(.type == "video") | [ .title, .author, .authorVerified, .videoId ] | @tsv' out.json
Rick Astley - Never Gonna Give You Up (Official Music Video)\tRick Astley\ttrue\tdQw4w9WgXcQ
Rick Astley - Never Gonna Give You Up [Lyrics]\tGlyphoricVibes\ttrue\tQdezFxHfatw
InsurAAAnce & Rick Astley Never Gonna Give You Up\tCSAA Insurance Group, a AAA Insurer\ttrue\tGtL1huin9EE
[...]
@lyse The thing that really unlocked jq for me was learning how to get a TSV output. That was a complete game changer, because it meant I could easily use it in a shell pipeline. I found it to be better than gron for that purpose. Just an array for each item containing all the values you need and pipe it to the filter @tsv.


$ # Search YouTube using the Invidious API for "never gonna give you up" and write the results to out.json
$ curl -sGL -A 'Mozilla/5.0 (Linux; x86_64) Ladybird/1.0' -o out.json --data-urlencode 'q=never gonna give you up' 'https://farside.link/invidious/api/v1/search' 
$ jq -r '.[] | select(.type == "video") | [ .title, .author, .authorVerified, .videoId ] | @tsv' out.json
Rick Astley - Never Gonna Give You Up (Official Music Video)\tRick Astley\ttrue\tdQw4w9WgXcQ
Rick Astley - Never Gonna Give You Up [Lyrics]\tGlyphoricVibes\ttrue\tQdezFxHfatw
InsurAAAnce & Rick Astley Never Gonna Give You Up\tCSAA Insurance Group, a AAA Insurer\ttrue\tGtL1huin9EE
[...]
@lyse The thing that really unlocked jq for me was learning how to get a TSV output. That was a complete game changer, because it meant I could easily use it in a shell pipeline. I found it to be better than gron for that purpose. Just an array for each item containing all the values you need and pipe it to @tsv.


$ # Search YouTube using the Invidious API for "never gonna give you up" and write the results to out.json
$ curl -sGL -A 'Mozilla/5.0 (Linux; x86_64) Ladybird/1.0' -o out.json --data-urlencode 'q=never gonna give you up' 'https://farside.link/invidious/api/v1/search' 
$ jq -r '.[] | select(.type == "video") | [ .title, .author, .authorVerified, .videoId ] | @tsv' out.json
Rick Astley - Never Gonna Give You Up (Official Music Video)\tRick Astley\ttrue\tdQw4w9WgXcQ
Rick Astley - Never Gonna Give You Up [Lyrics]\tGlyphoricVibes\ttrue\tQdezFxHfatw
InsurAAAnce & Rick Astley Never Gonna Give You Up\tCSAA Insurance Group, a AAA Insurer\ttrue\tGtL1huin9EE
[...]
@lyse Blank lines help a lot.
@lyse gron does something very similar with JSON. I used to use it more, but these days I just reach for jq instead.
@lyse gron does something very similar with JSON. I used to use it more, but these days I just find myself reaching for jq.
@lyse Regarding YAML's readability, I miss the - for list items *constantly* when reading YAML files. I'll get confused because I think I'm not in a list or I'm in the previous list item, then I have to go back. List items are all on the same indentation column and one tiny character is the only thing defining a new one. I don't know if others have this problem.
I spent hours creating a perfect Prosody config for my most recent XMPP server attempt (about 2-3 years ago now) and I lost that file because I deleted the VPS. That was the only important file on there and I just didn't think of it when I deleted it. I didn't have a single backup, not even an old copy I scped back to my PC for editing.

I hope I won't make that mistake again but I wouldn't be surprised if I did.
@lyse Lack of comments are definitely a shortcoming of JSON. I don't like TOML because it lets you have nested categories ([foo] [foo.bar] [foo.baz]) and it just feels confusing to me, even with indentation.

The Prosody XMPP server's configuration file is just a Lua script because Prosody is written in Lua, and that's excellent.
@lyse Lack of comments are definitely a shortcoming of JSON. I don't like TOML because it lets you have nested categories ([foo] [foo.bar] [foo.baz]) and it just feels confusing to me, even with indentation. Simple INI files are okay.

The Prosody XMPP server's configuration file is just a Lua script because Prosody is written in Lua, and that's excellent.
@lyse key=value\\n or JSON. YAML is the worst and I don't understand why it's so popular.
@lyse key=value\\n or JSON. YAML is the worst and I don't understand why it's so popular.
@lyse key=value\n or JSON. YAML is the worst and I don't understand why it's so popular.
@xuu You are absolutely right, that would be terrible. The whole point of Nostr is to own your identity. I don't know what I was thinking.
Okay, is there at least a JavaScript-free Web client?
@prologic has there been any development on cas.run?
@prologic, has there been any development on cas.run?
Seriously, where is the suckless-style Nostr client?
@xuu That's an interesting idea. Twt hashes still need a canonical URL to work, though.
@xuu That's not a bad idea, actually.
3. Does Nostr require clients to download much more data than Twitter? I can see it being a little more because of signatures and other metadata. However, text compresses well and clients ought to cache previous posts, anyway.

4. NIP-96 does HTTP file upload, XMPP style. There are some other advanced features like tipping on posts, custom emojis, and two conventions for selling goods and services.

Of course, not everything is available with every client and some of the specs are still being worked out. It looks pretty promising to me, though. I really like its distributed model with dumb servers and smart clients.
* (3) Does Nostr require clients to download much more data than Twitter? I can see it being a little more because of signatures and other metadata. However, text compresses well and clients ought to cache previous posts, anyway.

* (4) NIP-96 does HTTP file upload, XMPP style. There are some other advanced features like tipping on posts, custom emojis, and two conventions for selling goods and services.

Of course, not everything is available with every client and some of the specs are still being worked out. It looks pretty promising to me, though. I really like its distributed model with dumb servers and smart clients.
* (3) Does Nostr require clients to download much more data than Twitter? I can see it being a little more because of signatures and other metadata. However, text compresses well and clients ought to cache previous posts, anyway.

* (4) NIP-96 does HTTP file upload, XMPP style. There are some other advanced features like tipping on posts, custom emojis, and two conventions for selling goods and services.

Of course, not everything is available with every client and some of the specs are still being worked out. It looks pretty promising to me, though. I really like its distributed model with dumb servers and smart clients. The software will get better over time.
* (3) Does Nostr require clients to download much more data than, say, Twitter? I can see it being a little more because of signatures, etc. However, text compresses well and clients should cache previous posts, anyway.

* (4) NIP-96 does HTTP file upload, XMPP style. There are some other advanced features like tipping on posts, custom emojis, and at least three conventions for selling goods and services.

Of course, not everything is available with every client and some of the specs are still being worked out. It looks promising to me, though. I like its distributed model with dumb servers and smart clients. The software will get better over time.
* (3) Does Nostr require clients to download much more data than Twitter? I can see it being a little more because of signatures, etc. However, text compresses well and clients should cache previous posts, anyway.

* (4) NIP-96 does HTTP file upload, XMPP style. There are some other advanced features like tipping on posts, custom emojis, and at least three conventions for selling goods and services.

Of course, not everything is available with every client and some of the specs are still being worked out. It looks promising to me, though. I like its distributed model with dumb servers and smart clients. The software will get better over time.
3. Does Nostr require clients to download much more data than Twitter? I can see it being a little more because of signatures and other metadata. However, text compresses well and clients ought to cache previous posts, anyway.

4. NIP-96 does HTTP file upload, XMPP style. There are some other advanced features like tipping on posts, custom emojis, and two conventions for selling goods and services.

Of course, not everything is available with every client and some of the specs are still being worked out. It looks pretty promising to me, though. I really like its distributed model with dumb servers and smart clients.
All three of your points on usability are definitely true, especially #3. I haven't been able to find a good TUI client.

Regarding the technical points, it seems like there are mechanisms to address each of them. Please tell me if I'm wrong on any one of these. I have only been learning about Nostr for a short time.

1. Relays aren't a single point of failure because a user can (and should) post to many of them. The attacker in a censorship or sabotage scenario would have to take down every one of your relays at once. If they were taken down gradually, you could replace the bad relay with a new one and advertise that one on all the other relays your followers already use. It's much more resilient compared to twtxt.

2. Every event contains a signature from your private key, so it's hard to spoof. NIP-10 provides a method for marking a note as a reply to another note.