# 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=1172
# next = https://watcher.sour.is?uri=https://twtxt.net/user/mckinley/twtxt.txt&offset=1272
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/mckinley/twtxt.txt&offset=1072
@movq recording @i
It's 94° here in the land of Fahrenheit. That's a little over 34°C for the rest of the world. Thank goodness for air conditioning.
Your timestamps look well-formed, but you seem to be posting in the future. It might be a local offset problem, see RFC 3339: Local Offsets.

I'm not sure how you're generating your feed, but the POSIX date utility can give you the current time as an RFC 3339 timestamp, so long as your computer has the correct time: date -u +%Y-%m-%dT%TZ. POSIX date isn't aware of the local offset, so it will give you timestamps in UTC.

GNU date is aware of the local offset, and it has shorthand for RFC 3339 timestamps. date -Is will give you the local time with the proper offset.
Your timestamps look well-formed, but you seem to be posting in the future. It might be a local offset problem, see RFC 3339: Local Offsets.

I'm not sure how you're generating your feed, but the POSIX date utility can give you the current time as an RFC 3339 timestamp, so long as your computer has the correct time: date -u +%Y-%m-%dT%TZ. POSIX date isn't aware of the local offset, so that command gives you timestamps in UTC.

GNU date is aware of the local offset, and it has shorthand for RFC 3339 timestamps. date -Is will give you the local time with the proper offset.
Your timestamps look well-formed, but you seem to be posting in the future. It might be a local offset problem, see RFC 3339: Local Offsets.

I'm not sure how you're generating your feed, but the POSIX date utility can give you the current time as an RFC 3339 timestamp, so long as your computer has the correct time: date -u +%Y-%m-%dT%TZ. POSIX date isn't aware of the local offset, so that command gives you timestamps in UTC.

GNU date is aware of the local offset, and it has shorthand for these sorts of timestamps. date -Is will give you the local time with the proper offset.
@prologic It's an online forum, and I'm really not clear on the whole controversy. I'm going to wait for the propaganda to settle down before I look into it further.
@prologic They blocked KiwiFarms: https://blog.cloudflare.com/kiwifarms-blocked/ https://kiwifarms.net/
@jason You can use it in twtxt files. From the original spec (emphasis mine):

> The twtxt file contains one status per line, each of which is equipped with an RFC 3339 date-time string (with or without UTC offset) followed by a TAB character (\t) to separate it from the actual text. A specific ordering of the statuses is not mandatory.

Actually, feeds generated by yarnd are on UTC, using the zulu suffix
@jason You can use it in twtxt files. From the original spec (emphasis mine):

> The twtxt file contains one status per line, each of which is equipped with an RFC 3339 date-time string (with or without UTC offset) followed by a TAB character (\\t) to separate it from the actual text. A specific ordering of the statuses is not mandatory.

Actually, feeds generated by yarnd are on UTC, using the zulu suffix
@movq Time zones are challenging to work with :)
@movq It's alright, time zones are challenging to work with :)
@prologic @jason @movq I went on the mastodon feed and it seems the twtxt posts have been ahead by an hour since at least July 1st. It's possible the bug was never fixed but we didn't notice until someone with a different client tried to respond to @maya.
@prologic It's definitely a good thing that malicious actors can't just make a post in the future and effectively be "pinned" on every Yarn pod. I'm glad that was fixed.
@prologic Hmm, it's not on twt.nfld.uk's external user page either.
@prologic It looks like yarnd ate that twt. It's definitely on the original feed, but not on the external user page.
Nice little chat tonight with @ocdtrekkie. @prologic was very selfishly out having fun with his family instead of talking to us internet strangers. Happy birthday, man!

Some things we talked about:
* Video games
* Video games *on Linux*
* Microsoft Active Directory
* Microsoft ClearType
* Windows' 30 year old spaghetti code leading to dialog boxes like this*
@ocdtrekkie I'm totally fine if we just do it next week. I know it's not very entertaining being the only one using a microphone.
@ocdtrekkie I'm totally fine if we just do it next week. I know it's not very entertaining to be the only one using a microphone.
@ocdtrekkie I'm up to chat for a bit. I don't think @prologic is around, though.
@akoizumi I see.
@akoizumi Do you need all those code forge features? What about stagit? I've been thinking about using that myself.
@akoizumi Do you need all those code forge features? What about stagit? I've been thinking about using it myself, and I think it's what @movq uses for https://www.uninformativ.de/git/.
@akoizumi That's probably why nobody self-hosts it. :)
@akoizumi All the SourceHut services are free software and self-hostable in theory, but I've never seen one anywhere but sr.ht. It's documented at https://man.sr.ht/installation.md
@prologic Nope! A bunch of people argued about it for 11 years and then everyone forgot about the whole thing. https://bugzilla.mozilla.org/show_bug.cgi?id=98168
@prologic Yes, it is there.

> Use a twtxt Yarn-compatible client that at least implements the Twt Subject Ext and Twt Hash Ext such as:
>
> * jenny: A console twtxt client with mutt integration (tutorial)
> ...*
@prologic Yes, it is there.

> Use a twtxt Yarn-compatible client that at least implements the Twt Subject Ext and Twt Hash Ext such as:
>
> * jenny: A console twtxt client with mutt integration (tutorial)
>
> ...*
@prologic Yes, it is there.

> Use a twtxt Yarn-compatible client that at least implements the Twt Subject Ext and Twt Hash Ext such as:
>
> * jenny: A console twtxt client with mutt integration (tutorial)*
@movq On twtxt.net, you *are* \@movq\@uninformativ.de now. All your posts show up without the subdomain. https://twtxt.net/external?uri=https%3a%2f%2funinformativ.de%2ftwtxt.txt&nick=movq

On txt.sour.is, you still have the subdomain https://txt.sour.is/external?uri=https%3a%2f%2fwww.uninformativ.de%2ftwtxt.txt&nick=movq
@movq On twtxt.net, you *are* \\@movq\\@uninformativ.de now. All your posts show up without the subdomain. https://twtxt.net/external?uri=https%3a%2f%2funinformativ.de%2ftwtxt.txt&nick=movq

On txt.sour.is, you still have the subdomain https://txt.sour.is/external?uri=https%3a%2f%2fwww.uninformativ.de%2ftwtxt.txt&nick=movq
@lyse Yes, but branches were what I was missing the most for my website. Having a blog post update in progress while writing a new one (that 2 others need to link to when it goes live) made me realize it's time to go back to Git. I guess you could say my HEAD got too messy. :)
@prologic I appreciate it. Do you mind if I improve the README?
@prologic Thanks, I'll create those issues.

> Do you want to be?

I'd be honored, but that's up to you, man. Access to the integrations repository could definitely make some things easier.
@prologic I'm not even part of the organization.
@prologic Yes, twtxt integration with other microblogging services like status.cafe.
@prologic Thank you very much, man.
@prologic I was just finished writing the issue on yarnsocial/yarn for discussing community outreach efforts, but I accidentally clicked a link and lost the entire thing.

I was thinking, though, would that type of discussion be better suited to its own repository? That way, we could have one issue per service.
@prologic I was just finished writing the issue on yarnsocial/yarn for discussing outreach efforts for twtxt integration elsewhere, but I accidentally clicked a link and lost the entire thing.

I was thinking, though, would that type of discussion be better suited to its own repository? That way, we could have one issue per service.
@akoizumi Everything except Gitea itself is hosted on their own instance. Issue #1029 tracks the status of this, and it says the migration of the Gitea repository is waiting for pull request #18165, "Add support to import repository data from an exported data of Github". Progress is being made, they're just not there yet.
Could someone do me a favor and send a bug report in to Gitea? I made an account on GitHub for the purpose but they "flagged" my account, whatever that means, and then my support request about it went to /dev/null. I made the bug report, but it isn't visible unless you're logged in to my account.

It would be awfully nice if they would eat their own dog food, because I've never had a problem signing up to a Gitea instance. I uploaded my bug report here. They have a form system, so you'll have to copy and paste the text into the fields. I didn't fill in any of the fields that aren't listed.
@prologic This is my only problem with Go, but it applies to just about every "modern" language. Language-specific package managers make it too easy to introduce another dependency to your project.

This eventually gets to a point where you get is-even, with 207,899 weekly downloads, the full source code of which is pasted below.


'use strict';

var isOdd = require('is-odd');

module.exports = function isEven(i) {
  return !isOdd(i);
};


is-odd gets 439,933 weekly downloads, and depends on is-number which gets a staggering 68,678,128 downloads per week. I'll leave it as an exercise for the reader to go read the source code of those. Don't worry, it's not a big time commitment.
Very enjoyable hour-long Sandstorm ad segment this week with @ocdtrekkie and @prologic. ;)

Some things we talked about:

* Insights on having children
* .NET development
* Features and approaches of different self-hosting platforms
* The future of GoNix
* Making a self-hosting platform "just work"*
@ocdtrekkie Bookmarked, I'll take a look at it later. Where is your blog?
@prologic No, let's do it man.
Who's coming to the call tonight?
@prologic The only thing it has going for it is ubiquity. I think there needs to be a brand new set of protocols for e-mail, perhaps implementing some of the concepts from Lars Wirzenius' Re-thinking electronic mail
@eaplmx I have on occasion, but most people don't care to do it. I don't do much actual communication over e-mail. Even if the content is encrypted, all the headers are out in the open.
@xuu I think you mean Power-line communication. We're talking about transmitting IP datagrams by printing them out and taping them to the feet of homing pigeons.
@eaplmx Let's try IPoAC
> https://www.wikiwand.com/en/Solarpunk

https://en.wikipedia.org/wiki/Solarpunk for those who don't like mandatory external JavaScript just to read the document.
> https://www.wikiwand.com/en/Solarpunk

https://en.wikipedia.org/wiki/Solarpunk for those who don't like requirements of external JavaScript to make the page load.
@prologic SponsorBlock has an "Interaction Reminder" category. You can configure it to automatically skip these segments.
@prologic SponsorBlock has an "Engagement Reminder" category. You can configure it to automatically skip these segments.
@stigatle I was playing some OpenTTD a little while ago.
@prologic I must be closer to Hawaii than you are, because I smell spam.
@prologic No worries. I'm going to bed anyway. Have a good night!
@prologic It was for the Gitea issue, see my new comment
@darch This is a test
@darch @prologic That looks like a minefield and I want no part of it. What's wrong with just having a weekly thread on Yarn where we announce our availability and come to a consensus on the time?
@darch @prologic That looks like a minefield and I want no part of it. What's wrong with just having a weekly thread on Yarn where we announce our availability and come to a consensus on the time?
Who mentioned Photon in the call last night? Was it @tel?
@prologic I'm contributing to the soft centralization myself, but choice is everything. As long as you can be part of the network with nothing but a text editor and some Web space (which I prove is possible with @mckinley), I don't think it's so bad that one pod has so many users.
@lyse-backup Welcome to the pod everyone uses on the Totally Not Centralized Yarn.social!
@tel Man, Revolt is getting to be a big deal, huh? I was part of the closed beta as a friend of a friend of the lead dev. I am part of the reason it uses the AGPL license. I stopped using it because of social media addiction, but I feel like I'm hearing about it every week now. It's definitely a lot better than Discord.

To me, the Mumble/XMPP combination is superior because of the lack of complexity in comparison to an all-in-one App™ that combines text, voice, and a Web interface. Perhaps some of this has changed in the past year or so, but Mumble's sound quality and latency is unmatched, and XMPP has end-to-end encryption and federation, two important features that Revolt doesn't have. I have never used Fosscord, so I don't know if it has either of them.
@ocdtrekkie @prologic Definitely a lot of fun. I don't have any notes because I missed most of the call. I'll do my best to be on time next week.
@darch I don't understand. What is the time zone? If UTC, why isn't it converting it to my time zone with some of the garbage it's downloading in the background? If it's my time zone, why isn't it telling me that?

I'm available this evening my time (Saturday 04:00-06:00 UTC) and tomorrow in the morning (Saturday 16:00-18:00 UTC) and the evening (Sunday 02:00-06:00 UTC). Here is a link to my time zone table. Screenshot of uMatrix on the doodle page
@tel @prologic https://usemumble.neocities.org/
@yarn_police Hold on a minute, txt.sour.is is out of your jurisdiction!
@darch @prologic I was going to suggest having a variable time based on the availability of those who intend to go. That could definitely work, it just seems pretty formal. @darch, what do you mean "doodle"?
@yarn_police This is more like a homeowners' association than a police department.
> Is TikTok influenced by the Chinese Communist Party?

> There is no evidence that TikTok is influenced by the Chinese Communist Party. TikTok is a social media platform that is popular with users in China, but it is owned by the Chinese company ByteDance.

BS! At least it didn't try to parrot the ByteDance deflection line "TikTok isn't even available in China" which is false because TikTok is available in China, they just call it Douyin instead.
> Is TikTok influenced by the Chinese Communist Party?

> There is no evidence that TikTok is influenced by the Chinese Communist Party. TikTok is a social media platform that is popular with users in China, but it is owned by the Chinese company ByteDance.

BS! At least it didn't try to parrot the ByteDance deflection line that "TikTok isn't even available in China" which is false because TikTok is available in China, they just call it Douyin instead.
@lyse It looks the AttachWarner plugin does just that. I'm going to enable it myself. Sounds handy.

> What computer does Richard Stallman use?
> Richard Stallman uses a laptop with the GNU/Linux operating system.

Close enough.

> What computer does Richard Stallman use?

> Richard Stallman uses a laptop with the GNU/Linux operating system.

Close enough.
@prologic Thanks, man. Sorry I missed it before.

> Why is Facebook so successful?
@prologic Thanks, man. Sorry I missed it before.

> Why is Facebook so successful?

> There are many reasons for Facebook's success, but one of the main reasons is that it is a platform that allows users to connect with friends and family members easily. Facebook also allows users to share photos, videos, and other content easily.
@adi Hey, it's good to see you. How are things?
@lyse Would Claws Mail fit your needs? It's been my mail client of choice since I switched from Thunderbird.
Another great chat this week with @prologic. Some things we talked about:
* Porting Syslinux to Go for GoNix
* My shell script that generates an HTML time zone conversion table using information from a simple CSV file
* The ubiquity of seq despite not being part of POSIX
* Spam prevention on Yarn pods
* Subreply, another alternative microblogging service*
@movq Oh wow, that's really cool. Is that an A340?
@prologic I'll definitely be there. Same bat-time, same bat-Jitsi-room?
Are we doing the meeting this week? I think we're all individually being too flexible and so we can't come up with a time.

(Paging @prologic because nobody wants to come to the meeting if he isn't there)
Are we doing the meeting this week? I think we're all individually being too flexible and so we can't come up with a time.
Are we doing the meeting this week? I think we're all individually being too flexible and so we can't come up with a time.

(Paging @prologic because nobody wants to come to the meeting if he isn't there :) )
@movq I used to be intimidated by FFmpeg, but since I've been digging deeper into the options I'm having a lot of fun.
@abucci I've never tried Caddy. Nginx does what I need it to do, most of the time. I also use darkhttpd for testing.
@prologic Yes, that's him. It's the 4th anniversary of his death.
We've barreled past the microblog line and flew straight over the e-mail chain line. This is just social blogging.

+----------------+
|            ,   |
|           //   |
|          //    |
|       .'./     |   R I P   T E R R Y  A.  D A V I S
|    .'. . .'.   |
|   /\  //  /\   |         1 9 6 9 - 2 0 1 8
|  '--'//  '--'  |
|    '==.        |
|    //          |
+----------------+

+----------------+
|            ,   |
|           //   |
|          //    |
|       .'./     |   R I P   T E R R Y  A.  D A V I S
|    .'. . .'.   |
|   /\\  //  /\\   |         1 9 6 9 - 2 0 1 8
|  '--'//  '--'  |
|    '==.        |
|    //          |
+----------------+

+----------------+
|            ,   |
|           //   |
|          //    |
|       .'./     |   R I P   T E R R Y  A.  D A V I S
|    .'. . .'.   |
|   /\\  //  /\\   |         1 9 6 9 - 2 0 1 8
|  
--'// | | . |
| // |
+----------------+

+----------------+
|            ,   |
|           //   |
|          //    |
|       .'./     |   R I P   T E R R Y  A.  D A V I S
|    .'. . .
. |
| /\\ // /\\ | 1 9 6 9 - 2 0 1 8
| --'// --' |
| | | // | +----------------+
@prologic There isn't a whole lot I could do with those, besides trying to beat your server's transcodes in visual quality for the size. It wouldn't be much of an accomplishment, anyway, because I'm sure you don't want your server's CPU tied up for 20 minutes every upload.

I could always use practice optimizing for quality given a set of restraints but I would like a bigger project that requires combining a bunch of options and filters.
This is a weird request, but does anyone have something for me to encode with FFmpeg? The more complicated the project, the better. I am trying to improve my skills and I learn best with real-world use.
@prologic
> a self-hosted static file serving app which does nothing more than just serve up static files with a configured root path

Don't you mean "a web server"? :)
@movq I think audio compression techniques have come further than production. This sounds pretty darn good for 128kbps.
@prologic Don't let yourself get beaten down, man.
@lyse A week was only a few kilobytes of logs for me, so I just used grep and a text editor. @adi wrote a suite of command line tools for analyzing different web server log formats if you're interested: fl, cl, and cbl
@lyse A week was only a few kilobytes of logs for me, so I just used grep and a text editor. @adi wrote a suite of command line tools for analyzing different web server log formats if you're interested: `fl`, `cl`, and `cbl`