# 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=1872
# next = https://watcher.sour.is?uri=https://twtxt.net/user/mckinley/twtxt.txt&offset=1972
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/mckinley/twtxt.txt&offset=1772
Something I've noticed about the Nostr people is that they aren't the same as the software minimalism people. It seems like it's all JavaScript, Go, and Rust with dependency counts in the hundreds.
@lyse

>I fear it’s a rather complicated protocol.

The core protocol looks very simple but I'm sure you can get in the weeds with extensions.

>you can’t really change your keys without losing your identity

I think you're right but that seems reasonable to me. Your public key *is* your identity, similar to certain cryptocurrencies or Tor hidden services. Why would you want to change your key without changing your identity?
@bender How so?
QOTD: What are your thoughts on nostr?
PSA: If you're on Arch Linux and you want to use some of your own scripts on multiple machines, it is incredibly easy to write a PKGBUILD. Then, you can scp the built package around and install it with pacman -U. Let Pacman handle your dependencies so they can easily be removed later and only when they're no longer required.
Hey, it worked! I just had to refresh the conversation page.
Hey, it worked!
@xuu. Let's see. I just followed @bender and I only typed @bender just now.
@xuu Let's see. I just followed @bender and I only typed @bender just now.
@quark You're right. I thought they *were* addressed and I started doing @nick mentions again out of laziness. Thanks for pointing it out.
@eldersnake The Linux kernel package on Arch Linux weighs 130.7 MB on its own. Any live image that fits on a CD is tiny in my book.
@lyse I just might have to snag that for my ~/.local/bin. I like that magic spell using sed for --help. That's a really smart way to do it.~
@lyse @bender I do the same. I just thought it was interesting.
@movq I see. It's interesting to see commit history visualized that way.
@movq What happened in March of 2018 with all those commits across your projects?
Congrats!
@movq Yeah, it seems like that should never happen under any circumstances but that's the best explanation I can come up with for what happened and once I fixed the space issue the other problems went away. That particular filesystem is on a LUKS device on a disk image served with NBD. The machine in question and the NBD server are both on Arch Linux so it has potentially unstable versions of all the software involved.

It's a real house of cards and I'm not surprised something like this happened. I'm keeping lots of backups.
@movq Yeah, it seems like that should never happen under any circumstances but that's the best explanation I can come up with for what happened and once I fixed the space issue the other problems went away. That particular filesystem is on a LUKS device on a disk image served with NBD. The machine in question and the NBD server are both on Arch Linux so it has potentially unstable versions of all the software involved.

It's a real house of cards and I'm not surprised something like this happened. I'm keeping lots of backups. My setup is pretty unique but I stand by my original post. Running out of space on Btrfs isn't fun, even when it's functioning properly.
@movq Pretty much. In my situation I was able to delete some files and snapshots and run a couple of different btrfs balance commands to move some allocations around. It looked like writes weren't all committed properly to the disk but nothing told me that explicitly.

I did a system update in this state and I think I remember mkinitcpio throwing more warnings than usual but I was doing something else and I didn't pay close attention to them. This coincided with a power outage and there was a lot of inconsistency, making me think it was hardware related. It was just btrfs, as far as I can tell, and I fixed it by reinstalling all the packages on the system once there was enough room. Luckily, I hadn't done anything important with that computer after the system update.
@prologic That looks pretty nice. It seems like the pricing model is reasonable as well. They don't try to nickel-and-dime you with features most people would probably need like others I've seen. Good luck with it.
@prologic It's true that the major players in the WYSIWYG-website-for-dummies industry not only function poorly but are also proprietary SaaS garbage. However, I don't know if it's really possible to make them function any better. HTML and CSS just aren't made for that.
@prologic Probably not the most helpful reply, but I posted my thoughts in a note. Websites are really complicated and there's a lot that goes into making one. When you put too many layers of abstraction on it, you have to cut corners somewhere.
@xuu ungoogled-chromium strips out the rest of it. Librewolf is my browser of choice and it has been for a couple years now. I like it a lot. It's basically un-Mozilla'd Firefox.
@thecanine That bit about haveibeentrained.com is wild. Do you have a source for that?
@lyse I also can't find the user agent string they use, which seems like it would be important information.
A Good HP Laptop: https://mckinley.cc/blog/20240123.xhtml
I had so many complaints about this Web page it wouldn't fit in a twt. https://mckinley.cc/notes/20240122-terrible-website.xhtml
@prologic Well, he did create a file system. That would probably drive a normal person to madness, if you didn't have to be crazy to do it in the first place.
@movq Haha, me too. I could have sworn I heard a fiddle when I rebooted.
Basically NBD for DOS, that's pretty cool.
@eapl.me There is HTTPS but it doesn't seem to be enforced. My browser always connects with TLS if it's available and the message is present with or without TLS or extensions, even when using cURL. I would notice if my VPN service injected things like this because I disable JavaScript and cookies by default. I think it's unlikely I'm being MiTMed because the certificate is definitely from Let's Encrypt. Also, I don't see the point in MiTMing me just to put a JavaScript challenge on someone's personal website.

I still think it's a hosting provider thing. It doesn't really matter to me, I'm just curious.
@xuu I caught AT&T doing this last year. They were also hijacking DNS queries if I remember correctly.
@movq Today I learned this package is installed on my computer. Unnecessary dependencies are really annoying on Arch. If I switch to Gentoo this will be a major reason why.
@sorenpeter If I go to your website, it makes my browser complete a JavaScript challenge and send the result to a special location on your domain using a form called "wsidchk". After I complete that I get a cookie and I can browse your website freely. It isn't Cloudflare. I imagine it's because I'm using a VPN service with somewhat disreputable IP addresses. Is this something your hosting provider does automatically?
@sorenpeter Looks good, but how come I have to enable JavaScript and cookies to "verify" my request? It doesn't look like Cloudflare.
@lyse Ubuntu was the first distribution I used. I didn't know what I was doing and broke the bootloader trying to do something related to dual booting and I couldn't figure out how to fix it. I went back to Windows after that.

Many still recommend it as a first distribution. While I'm sure it's still well polished and easy to use, I don't like Ubuntu because of Canonical's shady practices in the past and their move toward Snaps instead of Debian-style packages.

SpiralLinux seems like the best of both worlds. I'm really very impressed. If you are looking for a distribution for some one who isn't so technical, but also something easy to fix when it breaks, consider looking into it. Use a different password for root, restrict sudo, mount /home with noexec, configure unattended upgrades, and I think it'd be very solid. It is just Debian Stable after all.
First Impressions of SpiralLinux: https://mckinley.cc/blog/20231029.xhtml
First Impressions of SpiralLinux: https://mckinley.cc/blog/20231029.xhtml
Does anyone have any personal experience with Spiral Linux? It is just preconfigured Debian + your choice of DE installed with Calamares. After the installation is completed, you aren't dependent on anything except the existing Debian infrastructure which is, of course, rock-solid.
@lyse I read this as "files" until I realized that you probably aren't talking about JPEGs of apples.
I just caught a bit flip in a tmpfs. The 42 MiB file only existed for about 3 minutes before the error was first detected by the FLAC decoder. Very unlikely.

$ xxd -b ../08.\ New\ World\ Rising.flac >old
$ xxd -b 08.\ New\ World\ Rising.flac >new
$ diff old new
2959577c2959577
< 010ef510: 11110011 01001010 11111010 10011111 11110011 00111011  .J...;
---
> 010ef510: 11110011 11001010 11111010 10011111 11110011 00111011  .....;
I just caught a bit flip in a tmpfs. The 42 MiB file only existed for about 3 minutes before the error was first detected by the FLAC decoder. Very unlikely.

$ xxd -b ../08.\\ New\\ World\\ Rising.flac >old
$ xxd -b 08.\\ New\\ World\\ Rising.flac >new
$ diff old new
2959577c2959577
< 010ef510: 11110011 01001010 11111010 10011111 11110011 00111011  .J...;
---
> 010ef510: 11110011 11001010 11111010 10011111 11110011 00111011  .....;
I just caught a bit flip in a tmpfs. Very unlikely. The file only existed for about 3 minutes before the error was first detected by the FLAC decoder.

$ xxd -b ../08.\\ New\\ World\\ Rising.flac >old
$ xxd -b 08.\\ New\\ World\\ Rising.flac >new
$ diff old new
2959577c2959577
< 010ef510: 11110011 01001010 11111010 10011111 11110011 00111011  .J...;
---
> 010ef510: 11110011 11001010 11111010 10011111 11110011 00111011  .....;
@prologic They can't win unless they do it cryptographically, i.e. with real DRM. Even then, I think it's still easy enough to extract a Widevine L3 key from an Android phone.
@prologic They can't win unless they do it cryptographically, i.e. real DRM.
Even then, I think it's still easy enough to extract a Widevine L3 key from an Android phone.
An update on the NTFS situation: I got a reproducible ntfs3-related kernel panic on my server just by reading every file with md5sum on the NTFS I actually want to back up with ntfsclone. It very well could have been related to mounting it partition read-only or using a USB to SATA adapter. I'll try it again another time, probably on a machine that isn't doing anything else important. I don't know if I finally encountered the instability they talk about on Arch or if the ntfs3 driver just isn't there yet. ntfs-3g has been okay for reads in my experience, but I've had issues writing.
An update on the NTFS situation: I got an ntfs3-related kernel panic on my server twice just by reading every file with md5sum on the NTFS I actually want to back up with ntfsclone. It very well could have been related to mounting it partition read-only or using a USB to SATA adapter. I'll try it again another time, probably on a machine that isn't doing anything else important. I don't know if I finally encountered the instability they talk about on Arch or if the ntfs3 driver just isn't there yet. ntfs-3g has been okay for reads in my experience, but I've had issues writing.
@xuu As it turns out, btrfs is very cool. I've always used one big root partition, but getting the advantages of root+home partitions with no downside is just one reason why I'll probably use btrfs on my next OS install. It could be a while, I'm a little sentimental about this one on ext4.


$ head -n 1 /var/log/pacman.log 
[2021-08-15T21:36:08+0000] [PACMAN] Running 'pacman -r /mnt -Sy --cachedir=/mnt/var/cache/pacman/pkg --noconfirm base linux linux-firmware networkmanager nm-applet i3wm base-devel vim'
I don't have this problem :) https://mckinley.cc/blog/20220506.xhtml

I've started working on an update at least 3 times in the past year, maybe now is the time to get it out.
I don't have this problem :) https://mckinley.cc/blog/20220506.xhtml

I've started working on an update to that post at least 3 times in the past year, maybe now is the time to get it out.
The future of the Web, as of 2000: https://mckinley.cc/notes/20231013-xhtml-for-dummies.xhtml
@movq RFC 3339 is where it's at
@darch Thank you, but the first four of those have no license. I only want to include software with a posted free software license on the list. I will add twtxt-php, though.
Everyone: If I'm missing anything on groovy-twtxt please let me know.
It's also an opportunity to mess with btrfs, which I hear is also very cool.
It's also an opportunity to mess with btrfs, which I hear is very cool.
@mckinley I am testing some of the ntfsprogs with the ntfs3 driver on a drive with unimportant data to make sure they can reasonably be expected to do their jobs. Yesterday evening, I started ntfsresize while SSHed from my laptop right before I realized I needed to go somewhere, with my laptop. Usually, I'm pretty good at starting a tmux session before doing something like that, but reptyr saved me and all the data is intact, which is very cool.
@prologic Don't forget https://git.mills.io/mckinley/groovy-twtxt !
@prologic Don't forget https://git.mills.io/mckinley/groovy-twtxt!
@movq It's an e-ink display, which makes it a little more practical from a design perspective, but it's still completely ridiculous.
@prologic In that paragraph, I was comparing it to iOS devices because you cannot install another operating system on them. That is the point of Microsoft® Secure Boot after all.

Another thing about i{Pad,}OS, it's impossible to use it without an online account with the operating system vendor. Windows, of course, is getting increasingly harder to use without a Microsoft account. The goal is clear.
@prologic I wouldn't want to give away my location, now, would I?
@lyse That's already the case where I live. There are also some DMV kiosks in public places, usually grocery stores, and you can renew your registration right there. If I remember correctly, it will even print your updated registration and give you the sticker for your license plate so you don't have to wait for the mail.
That article links to this one.

So, you buy a new computer for $800 and you have to pay a subscription just to use it? There's no doubt the subscription will start out optional, but if things continue the way they're going we will get there. When that day comes, the general public will get out their credit cards and do what the computer says. I have no faith whatsoever that they won't.

Of course, by that time, I imagine you won't be able to turn off Secure Boot or enroll your own keys on most computers, making your computer an appliance completely owned by Microsoft, just like an iPad is completely owned by Apple.
@lyse The thing is, if it didn't connect to the Internet on its own, it would be basically fine. You could make a device like this that communicates directly with an app on your phone. The app would spy on you, I'm sure, but just about all of the user-facing features I can see could be done in the app alone and the plate could be updated over Bluetooth or something. You could prevent people from incorrectly changing their registration year or plate number with cryptographic signatures from either Reviver or the DMV, which I hope they're doing already.

Of course, on a phone, you have all those pesky permissions that people can turn off.
@movq Yes, you can only get a number in the US or Canada for now.
@mckinley I figured it out: Digital License Plates Considered Harmful
@mckinley I rewrote it: Digital License Plates Considered Harmful
Wireguard is incredible.
I have an old smartphone but it doesn't leave my house. I plan to switch to jmp.chat soon and start using my laptop instead.
@movq Maybe you just got better at the game. I hope 2005 isn't considered "retro" yet.
QOTD: Aside from work, what technology related events do you attend in the real world? Are you part of any social clubs dedicated to technology, e.g. user groups?
@abucci If Google is suggesting you do something, it's probably a good idea to do the opposite.
@prologic It's more likely that someone gets unauthorized access to your computer and deletes your account through the web UI. You should probably have to type in your password to delete your account.
@prologic It's likely that someone gets unauthorized access to your computer and deletes your account through the web UI. You should probably have to type in your password to delete your account.
@stigatle I don't have anything to report. I was wondering if anyone was having a more interesting weekend. Is a busy weekend an interesting one?
@darch Maybe I don't have the right idea of what lists are. Why do they need to be in a user's public feed in the first place? I thought it was just a function of Yarn as a twtxt client that would allow one to sort their followed feeds into lists to make it easier to digest your timeline.
@darch So, the format is based on the metadata extension? Why not just $NICK\\t$URL\\n?
@darch So, the format is based on the metadata extension? Why not just $NICK\t$URL\n?
What are we up to this weekend?
@abucci I'm glad it's not just me.
@lyse I will occasionally get some command (or even certain arguments for a command) in muscle memory and type it by accident instead of the one I want. It hasn't been disastrous yet, but it has cost me some time.

I also find that I compulsively type 'ls' whenever I'm in a terminal, even if I don't need it. It's strange.
I've been using Grim to take my screenshots on Sway since I started using it in April 2022 and I don't recall giving it explicit permission to do so. This issue suggests Sway doesn't yet support restricting screencopy.
@adi Huh, you're right. I never thought about that.
@adi I see where you're coming from. There is something to completely understanding a piece of software, reading all the documentation, and writing a config file by hand. However, if you aren't doing it as a hobby project and you aren't being paid a lot of money to do it "right" I definitely see the appeal of Docker. I started using it for some of the more annoying software packages when I set up my home server.
@xkcd I don't see Google shutting down Gmail any time soon. They realized, as did the ISPs, that e-mail addresses tie you to their service for life. It's just too much hassle for most people to change their e-mail address that they've been giving to people and services for decades. This is why the FCC mandates that you have the ability to port your phone number to a different provider. There's no
@prologic There's always Jabber :)
@abucci Thank you very much. I am paying an absurd amount to my current phone provider and it's time to start considering other options.
I came up with a few more questions.

1. Are you hosting your Jabber server yourself or are you using the hosted Snikket instance?
2. Does group texting work? The FAQ says it's in beta. If so, how does it work? Is it just an MUC?

If any other JMP users see this, please chime in.
@abucci Are you still with jmp.chat? If so, are you still as happy as you were before? Have you experienced any reliability issues, especially with receiving phone calls?
This is the best way in my opinion, at least for small children. I wouldn't trust any of the Algorithms with my children.
@prologic Discord is awful and it's a tragedy that so much information that used to be readily accessible on forums is now locked in a Discord group.
@prologic Protocols using TLS could probably share ports via SNI multiplexing. If you're using a plain text protocol or can't use SNI for some reason, you might have the option to get exclusive use of a random port for an extra fee. You could maybe even request specific ports for a larger fee on a first come, first serve basis. One IPv4 address can go a long way.

Virtual hosting is another reason why it's so cheap to run my website. NFS puts dozens of websites on each IPv4 address.
@prologic I had to do some research for this one. The answer is yes, in theory, as long as the client or server supports XEP-0368. However, this seems like the kind of thing that would be skipped by lazy implementations. I would be interested to see how this looks in practice.

SRV records are used in the XMPP core specification to determine the domain and port to which clients and servers (for s2s connections) should connect. XEP-0368 is an extension to the spec detailing how servers and clients should handle SRV records in relation to TLS connections. It says that the "Client or server MUST set SNI TLS extension to the JID's domain part."

As an aside, SRV records alone can be used, in theory, to change the default port used in c2s or s2s connections. If the ports were assigned randomly from the hosting provider, they could be specified in the SRV records and everything would hopefully just work. Again, I don't know how well this is supported in practice.
@prologic I had to do some research for this one. The answer is yes, in theory, as long as the client and server support XEP-0368. However, this seems like the kind of thing that would be skipped by lazy implementations. I would be interested to see how this looks in practice.

SRV records are used in the XMPP core specification to determine the domain and port to which clients and servers (for s2s connections) should connect. XEP-0368 is an extension to the spec detailing how servers and clients should handle SRV records in relation to TLS connections. It says that the "Client or server MUST set SNI TLS extension to the JID's domain part."

As an aside, SRV records alone can be used, in theory, to change the default port used in c2s or s2s connections. If the ports were assigned randomly from the hosting provider, they could be specified in the SRV records and everything would hopefully just work. Again, I don't know how well this is supported in practice.
@prologic I had to do some research for this one. The answer is yes, in theory, as long as the client or server support XEP-0368. However, this seems like the kind of thing that would be skipped by lazy implementations. I would be interested to see how this looks in practice.

SRV records are used in the XMPP core specification to determine the domain and port to which clients and servers (for s2s connections) should connect. XEP-0368 is an extension to the spec detailing how servers and clients should handle SRV records in relation to TLS connections. It says that the "Client or server MUST set SNI TLS extension to the JID's domain part."

As an aside, SRV records alone can be used, in theory, to change the default port used in c2s or s2s connections. If the ports were assigned randomly from the hosting provider, they could be specified in the SRV records and everything would hopefully just work. Again, I don't know how well this is supported in practice.
I might have a use for something like this right now, actually. I want to set up an XMPP server for a few people without giving out my home IP address. It would probably handle 20 messages per day on average. I really don't have a use for a VPS beyond this and I would be paying for a lot more than I need.

How will ports be allocated? Web traffic can go through a reverse proxy to share ports 80 and 443, but what about other protocols? Will it be possible to request specific ports like 5222 and 5269 for XMPP?
I might have a use for something like this right now, actually. I want to set up an XMPP server for a few people without giving out my home IP address. It would probably handle 20 messages per day on average. I really don't have a use for a VPS beyond this and I would be paying for a lot more than I need.

How would ports be allocated? Web traffic can go through a reverse proxy to share ports 80 and 443, but what about other protocols? Will it be possible to request specific ports like 5222 and 5269 for XMPP?
@prologic I'm glad I could help. You're working on a service similar to NearlyFreeSpeech in its usage-based pricing model but built around docker containers instead? It seems very useful. How will you handle payment? Will there be privacy-friendly options like Monero or cash-by-mail?