# 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 4637
# self = https://watcher.sour.is?uri=https://twtxt.net/user/https://twtxt.net/user/prologic/twtxt.txt/twtxt.txt&offset=4537
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/https://twtxt.net/user/prologic/twtxt.txt/twtxt.txt&offset=4437
@reednj Oh nevermind, it works now 😀 weird!
@twtxt User came and left, deleted their account 😭 (_they're allowed to!_)
@rodolpho Join our cause/project and help us make one aspect at least a happy medium between cost of ownership and convenience 😀
@reednj I can't seem to follow you...\n\n
\nError following feed @<reednj http://twtxt.xyz/u/reednj.txt,>: error: request failed with non-200 response\n
\n\nSomeone broken on twtxt.xyz?
@jlj Yeah it's a giant PITA that's for sure! 😢
Somehow this conv went haywire 🤣 I dunn how :D
@jlj Damn that’s a shame 😥
@eldersnake This was a very interesting read indeed! So much so I shared it with my work colleagues 🤗 Thanks for sharing!
Sorry I misspoke, actually uLinux also uses [suckless's init]https://core.suckless.org/sinit/) which apparently this also uses 🤣
Oh my! Why's wrong with good 'ol fashioned /sbin/init like what uLinux uses? :)
@codebalion Major pods? I wouldn't call twtxt.net (_my pod_) "major" in any way 🤣 But I know what you mean. we also have @jlj @xuu and @thewismit that all run their own pods now, some single-user pods, some multi-user. It's all very nice! 👌
@eldersnake this isn’t the first time I’ve heard something like this… Closest friends and family being on the traditional big tech giant social media platforms.\n\nI wonder how we can re-educate and encourage more to leave to join more docentralized solutions like what we’re building here? 🤔\n\nOTOH it’s probably impossible due to the convenience and addiction factors 😥 and not everyone will understand why or what they’re entrapped in 😥
@jlj Hmmm is there a summary of the different archetypes? 🤔
@jlj Ahhh! 🤦‍♂️
@jlj CoC? 🤔
anyone here have a Spotify account? I can’t say I ever tried myself, are used to have a sky.fm account which later got rebranded to digitally imported. I was at the other way around? 🤔 until I realize that with the combination Plex and my own local music archive I actually had a better music experience than what any streaming service could ever provide 🤣 you do not want to see the boxes and boxes of CDs I’ve collected over the years 😳
In addition we (@xuu and I) are looking to start building out support for Distributed Tags which will make this whole thing make a lot more sense -- At least between pods, but even regular twtxt clients _could_ pull tags too into their cache.
Sorry for the _very_ delayed response (_I've been sick all week :/_), but I just remembered that one of the benefits of using full URLs for Tags or Twt Hashes (_which are themselves tags_) is for cross-pod discovery. An example came up the other day when @jlj responded to a Twt that came from an RSS/Atom -> Twtxt aggregation that I didn't follow so I only saw his side of the "conv". I just follow the tag though to his pod, then the conversation from there. So its useful from that perspective.
looking at the source code it looks like development stopped around August last year…
@darch I think I’ve seen this...there are a few SSB based social things out there. I’ve tried a couple and well you try it and let us know what you think 😁
interesting thought here 🤔 what is it do you think that still makes you consume from the others? 🤔 not that anyone is judging of course! 🤣
@jlj Very cool! 😎 🎲
@hecanjog Do you mean it doesn’t run to properly anymore or doesn’t even connect?
@xjix what is this whole techbro thing? 🤔
@darch 👍
@weert Hey there! 👋 Welcome! 🤗
@eldersnake Pretty much! I mean the same complaints the OP has with Go he would have with C 🤣\n\nAstounding rally 😳
@adfadf Hey there! 👋
@eldersnake Ahahahahah just in the first paragraph Lauren the original poster compares Go with a dynamic language Ruby! I have no respect for this person 🤣 And have stopped! 😂\n\nthis is a classic example of comparing apples and oranges 😁
@eldersnake Wtf?’ 😳 never ever expected to see this ever !!! 😱
@louisguica Hey there! 👋
@jlj oh my 😥
Hello @alip 👋 Welcome! 🤗
@adi Spin up a $5 DO VM for a few hours? 🤔
@darch Yeah I _think_ we have to be careful here. We have _some_ constraints that _may_ limit the display of "nested conversations". Each pod has configurable --max-cache-ttl and --max-cache-items limits meaning that you can't "arbitrarily" show nested or even flat conversations as far back as you want. Replies/Posts eventually fall off active caches into the archive. This is why content addressing / hashes are so important as it is the only way to bring up the matching root of a conversation -- even if that conversation is long gone, it could get "re-sparked"...
As well as dee-duplication.
@darch The interesting properties are that the hashes are content addressable both forwards and backwards. They are effectively "pointers" that can be computed at any time. They serve as a location to a Twt. That becomes very useful for archival, conversation retrieval as well as reconstruction.
@movq Yes but let's bring it up in an issue for discussion anyway. I'm sure @xuu has some _thoughts_ around this. I'm not sure we _should_ take thee schema into account when computing the Hash myself as the same "content" could be provided over gopher://, http://, https:// or even ftp:// 🤣 (_but really we only support http/https at this time_)
Wow! 😳 That is literally insane! 🤣 Reminds me of a class I took in uni years back in "User Interface Design" 😂 -- I have a Citibank account myself and frankly its pretty awful (_not as awful as some interfaces I've seen, but pretty high up there on the awful list!_)
we’ve also changed this once already in the last few months so changing the whole scheme again would not be very great user experience \nor compatibility
@jlj by the way just curious, what is your professional background actually? 🤔
No we should stick to hashes. They have interesting useful properties.\n\n@https://www.uninformativ.de/twtxt.txt> can you file a bug report?
Hey @wskoie1 👋 Welcome! 🤗
shops\n\n> shops is a simple command-line tool written in Go that helps you simplify the way you manage configuration across a set of machines. shops is your configuration management tool of choice when Chef, Puppet, Ansible are all too complicated and all you really want to do is run a bunch of regular shell against a set of hosts.\n\nAppreciate some early feedback if anyone is interested in trying this tool out in anger to "manage" their server configurations/state. Also shop is the best name I could come up with at the time...
@eldersnake Yep I somehow think you’re right about that
I think this is typically “evidence-based research and critical thinking right? 🤔
as an example I don’t actually know whether the US presidential elections were rigged or not and I don’t really care because a) I don’t live there and b) it doesn’t really seem to affect me at all that much. So I choose not to believe anything at the moment until one day it is very clearly documented on say some Wikipedia article and agreed-upon by numerous pieces of first class evidence.
@slashdot tools like Birdwatch from Twitter again reinforce the whole idea and concept of a Skinners box. This is largely one of the big problems with large scale centralized social media platforms like Twitter and Facebook. Why is it so difficult for people to use their own intellect to work out truths and lies for themselves? Have we become so dull and dimwitted that we can’t figure this out anymore?
@xjix The way we have private messages working on parts is using mbox for storage and SMTP and POP3 three for delivery and access including by the web API\n\nThe hard part is doing private messaging across pods where we somehow figure out how to build some kind of authenticated mutual trust between pods
@xjix I think just getting into the habit of sending encrypted messages is fine to me. My closest friends and family I keep on signal so I’m not that concerned
@xjix I agree with that
@jlj Hey! I listen to all seven minutes of your very nicely put together podcast including your daughter in the background which was very cute 😎 \n\nI think all of the ideas that you presented are excellent and we should implement them all almost exactly as you described! 👌
@darch This looks really fantastic! 👌
@adi @jlj Yes ☺️
@melyanna Hello! 👋
@adi Ahh yes that one... No it's also not what I want. I looked at it (_I think from you linking it a while back?_). It lacks one very important thing, state._
@adi \n\n> Judo is an easy-to-use Command Line Interface (CLI) integration testing framework, driven from a simple yaml file that instructs the framework what commands to run and how to assert the outcome.\n\nThis isn't even remotely close to what I'm building...
Speaking of projects... Anyone got any good ideas for a name of a tool/project whose scope is:\n\n> xxx is a simple command-line tool written in Go\nthat helps you simplify the way you manage configuration across a set of\nmachines. xxx is your configuration management tool of choice when Chef,\nPuppet, Ansbile are all too complicated and all you really want to do is\nrun a bunch of regular shell against a set of hosts.
@movq Can you share any interesting porjects underway? 🤔
@movq I also use the standard web client as well
@eldersnake Haha 🤣🤣🤣
@movq \n\n> there’s only so much you can do in a day …\n\nWhat's that saying... Something like:\n\n> Rome wasn't built in a day, It was built overnight?\n\n🤣 You just gotta sleep less! 😂
Honestly I _actually_ tried Maston for a few weeks just to be fair and see what it's all like. I got nowhere with it. I think the only person I ended up interacting with was @antonio (_part of our core development team_) so yeah it was a pretty poor experience. Everything about Maston was _just too hard_ IHMO.
@movq (#p7rnj3q) \n\n> #AllHailTwtxt\n\nAmen! I mean:\n\n> All hail Yarn.social 😂
@jlj I _think_ that's a great idea! This is bigger than me, so the more eyes on it the better 👌
@adi Yup you’ve understood it perfectly 👌
I’m also not really clear on his viewpoint of privacy and this forward mechanism he mentioned
Hmmm interesting read... I didn’t particularly get the impression that he’s a fan of the traditional social media giants with all the whizbang who ha\n\nit felt more like a rant piece to me than anything else
@eldersnake interesting I’ll have a read
@movq Thanks! I know why. I recent change we made means we're missing this behavior. I'll see if we can fix it. cc @xuu It was the move from http.ServeContent() to effectively io.Copy()...
@xjix this is just not right 🤣\n\nhttps://twtxt.net/twt/k6uqcna
@xjix Whoah what happened there?’ 😳
I couldn’t keep up to be honest but then again I left for a slightly different reasons mostly due to hypocrisy 😥
@xjix I dunno... some posts are worth keeping 😁
@xjix Did you mean to say the same thing 3× 1 minute apart? 😁
At only ~260 lines of Go code, this is already pretty useful and very powerful. You just write checks and actions in regular shell. You use checks to verify and validate state, and actions to correct failed state.~
What else do we need? 🤔 It uses your local SSH agent for authentication. Only opens a single SSH connection per host. Is serial right now, but plan to make per-host operations concurrent, i.e: all config is applied to all hosts concurrently in one go.
The test.yml config looks like this:\n\n
\n---\nversion: 1\n\nitems:\n  - name: Ensure /root/foo exists\n    check: ls /root/foo\n    action: touch /root/foo\n  - name: Check Uptime\n    check: false\n    action: uptime\n
Initial proof-of-concept:\n\n
\n(⎈ |local:default)\nprologic@Jamess-iMac\nSat Feb 20 12:24:53\n~/Projects/shops\n (master) 0\n$ ./shops -f ./test.yml 10.0.0.50\n10.0.0.50:22:\n Ensure /root/foo exists ✅ -> /root/foo\n Check Uptime ✅ -> 02:24:56 up 18 days, 42 min,  0 users,  load average: 0.00, 0.00, 0.00\n
@sonic_squirrel Hey! 👋 Welcome! 🤗
@quocs Hello there! 👋 Welcome! 🤗
@rolandorag Hey! 👋 Welcome! 🤗
@ns Hey! 👋 Welcome! 🤗
@eldersnake Not to say that they are not faultless of course, monopolistic positions that they take for example...
@eldersnake I don’t even think corporations are to blame here. The fact is most politicians especially in Australia are at least in their 60s and in some cases even older. Unfortunately many of them just simply don’t understand anything about technology or the Internet or the web. Example the senators that question Zuckerberg on numerous occasions just simply didn’t understand anything about how Facebook the web or advertising business models worked at all! or another example our telecommunications minister trying to explain how web links work on a webpage 😳 quite embarrassing!
Or another alternative TL;DR. The likes of the Murdoch's and the Packer's business models no longer function in our modern evolved inter-connected web, with large social media platforms and huge search engines. So instead of coming up with a new sustainable business model, they've sought to but buy off politicians to get a new law passed so they can "suck" up some of that money they never earned themselves. 🤣
@adi TL;DR: Sites like Google, Facebook, Twitter, etc now have to go into negotiation with News and Media companies and pay them compensation just to link to their articles in the first place. e.g: I as pod owner of twtxt.net would have to pay News Corp just for linking to for example Facebook’s ‘dog act’ against all Australians
 (_which obviously I will not do!_).
And he's right.
But remember we still have ignorant fools down under trying to pass a new bill into law News and Media Bargaining Code. We've even had the inventor of the World Wide Web (WWW) or just Web, Tim Berners-Lee , come out and say here:\n\n> Australian Law Could Make Internet ‘Unworkable’...
@adi i’m not I don’t think there’s anything particularly wrong with the Internet. The web on the other hand is a different story but I think it something that we can take into our own hands 🤗
@jlj by the way do I remember correctly some weeks ago you offered to help us re-structure and redo our documentation? 🤔
@lyse Very nice! 👌\n\neasy to mistake things from a distance eh? 🤔
wow! 😱
you have got to be kidding me!
But that’s only my opinion ☺️
@jlj Ahh I see! It’s interesting that’s for sure, but isn’t the only thing I’ve seen like this... I also believe “identity” should be your own and decentralized, problem is that’s quite hard to do 🤣\n\nI just find many of these p2p “things” to be a bit too complicated, many of them using either complex protocols like ActivityPub requiring complex software or DHT(s) requiring a PhD in math 😂
Btw... @xuu Thank you for all the hard work you've put into this project thus far. 🙇‍♂️ Really appreciate it! 👌
@xjix and yet you want to write another client? 🤔 🤣\n\nAlso I am a blind engineer 😳 as-in I have less than 1% useful sight 😎
I won’t try because I prefer simpler things but let me know how it goes if you end up trying it out ☺️
Hmmm 🤔\n\ncouple of critisisms...\n\n> We think the internet can’t be saved. The way things are going, MEGACORP will always control our apps and services because we can no longer run them\n\nThis is simply not true as evidenced by you guys all running pods 😁\n\nSecond, it looks like this is still tied to a centralized identity network.