# 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=4337
# next = https://watcher.sour.is?uri=https://twtxt.net/user/https://twtxt.net/user/prologic/twtxt.txt/twtxt.txt&offset=4437
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/https://twtxt.net/user/prologic/twtxt.txt/twtxt.txt&offset=4237
Huh?
Another thought... The way the tags and the parser @xuu wrote works now, is that, one day we might be able to change the URL they point to, to say a search engine rather than the source pod the conversation started from.
The point re discoverability is an important one. I have to admit I didn't think of that myself, funny how things get used unexpectedly. πŸ˜€ As @lyse points out I _would_ think about changing this rather carefully, the point about mentions also causing noise when reading the raw form is also quite valid. IHMO clients should be presenting Twts in a nice readable form and provide a good UX.
@ns Hello! πŸ‘‹ Welcome! πŸ€—
@will For what reason?! 😳
@eli_oat Yup I agree!
Wow! 😳
test
test
Ahh brilliant! I'll file a bug report and we'll see if we can get this fixed! cc @antonio
Odd πŸ€”
@eldersnake Oh yeah you noticed too! Hmmm weird πŸ€” Any chance you pressed the "Post" button twice or something? Can't say I've seen this happen too often, but πŸ€·β€β™‚οΈ
@eldersnake You should talk to @markwylde about all this, he has some interesting points of view too!
@eldersnake \n\nActually it looks like according to your feed file you made that same comment twice:\n\n
\n2021-02-15T09:22:08Z\t@<adi https://twtxt.net/user/adi/twtxt.txt> (#<iwddgwa https://twtxt.net/search?tag=iwddgwa>) thank you!\n2021-02-15T09:22:10Z\t@<adi https://twtxt.net/user/adi/twtxt.txt> (#<iwddgwa https://twtxt.net/search?tag=iwddgwa>) thank you!\n
\n\nAbout ~2s apart. Not sure how that happened, _could_ be a bug or some weird infra thing.\n\n@https://txt.sour.is/user/xuu/twtxt.txt> nevermind, this is different to what we're seeing with @anth doubling up I think.~
@xuu Another example of doubling up πŸ€”\n\n
@anth I’m familiar 😁
@bml Up for the challenge then? 😁
@bml Having read the spec I think it really was an April fools joke 🀣
that’s a brilliant idea 🀣
@eldersnake πŸ‘ completely agree!
@anth Yeah we've always supported both forms. @xuu shall we stop fully expanding tags out?
@movq As for developing a Twtxt 2.0 spec/format/protocol, I'm not sure. On one hand @buckket _seems_ to be quite upset that we've used his format/spec and named a "codebase" with a similar/identical name or something, actually I'm not really sure I'm just guessing, but its part of the rebranding issue at place here... So maybe we should? Maybe we should just develop our own protocol entirely? I'm not sure. It really isn't up to me per se now as there is a community to think about that spans multiple pods now.
@anth @lyse @movq Actually... I _think_ we could change the Twt Hash extension a bit here and remove the need to fully qualify and expand them into full URLs. The reason we did that in the first place was we were just extending the @<nick url> syntax from the original spec and just using a different prefix @ for mentions # for tags, etc. But this is probably unnecessary as the hashes themselves are content addresses and don't need to be URLs. Hmmm? πŸ€”
Very cool! 😎
@vain Nice!
Hahah! 🀣 Really glad you like it so far! πŸ˜€ That was actually one of my goals, was to make it boot insanely fast, so I was _quite_ deliberate in it's design and component choices. Most of the system is comprised of shell scripts and the busybox userland and the finit init daemon. uLinux's secondary goal was to be a lightweight container ready OS, so it comes ready to run Docker and any other container orchestration system including box and others... πŸ‘Œ
@adi I've been toying with thee idea of writing a Linux Userland in Go. Basically take uLinux, strip out busybox and finit and write my own init and set of userland. Might be a lot of work though, but it would be fun πŸ˜€
Tutorial - Write a Shell in C β€’ Stephen Brennan\n\ncc @adi
50 Years Ago, Sugar Industry Quietly Paid Scientists To Point Blame At Fat : The Two-Way : NPR
@darch\n\n> EDIT: right now the twt.social client does not allow you to move the (#v5yaeha) …\n\nNo it does not. 🀣 Its meant to be "idiot proof"! Recall that the goal here is to bring the simplicity of what Twtxt provides to the masses. There's no good in having a set of standard well document specs if we don't follow them πŸ˜‰
If we're strictly talking about about presentation / UX issues here, @xuu already largely solved this already in changes to how the parser works. See for example:\n\n \n\nIt would just be a matter of stripping out the "Twt Subject" out now from the presentation layer. But somehow I don't think @anth is talking about this, or is using an old client with a more bland UX?
@lyse Haha! 🀣
@lyse How _could_ they be made "more elegant"? πŸ€” Is it just a presentation thing? (UX)?
@bml Probably if you recompile the Kernel with 32bit support 🀣
@bml Have you come across my take on Linux yet uLinux? 😁
@jlj Hah! Hopedully nothing bad 🀣
@off_grid_living You _are_ right. I only have limited computing and networking resources at my disposal right now. In order to scale the infrastructure up, I'd need to 10x my compute resources and at least 2-5x my networking resources. All doable of course with enough money injected. The concept is done and proovable, just needs more time, energy and effort behind it!\n\nThanks for reading! πŸ™‡β€β™‚οΈ
@movq I _really_ appreciate you saying this! Thank you! πŸ™‡β€β™‚οΈ To be fair @anth we just took something that we were observing happening in the real-world and "formalized" it. You can thanks @dbohdan for the initial work on Twt Hash(es) really, and @lyse for making a a format document for it!
@anth (re Hash Tags) you just need to improve your client. The alternative is this particular Twt itself. We formalized and documented this too as Twt Subject Extension. But then extended it further as hashes are a good way to globally and uniquely address individual posts. But up to you πŸ€·β€β™‚οΈ
Also this is a bit bizware for the platform I use, but _somehow_ I _think_ there's another use on my pod that follows you under a different alias and is _somehow_ showing duplicates retries for you!\n\nA bug/edge-case wo work out for another day!\n\n
@anth Yeah me neither Way back when, when it first started, I mined a few BTC with some Butterfly hardware until it got too "difficult" that I just stopped, because it was either purchase more hardware or bigger/better hardware or stop. Somehow I had a gut instinct all those years ago to pull out. Thank goodness I did because BTC is now one of the worst ecological disasters of the modern dage!
@xuu Yup I think so! probably just a couple of tweaks to the lexer?
So I'm a Knucklehead eh?
consider the following scenario... you’re driving along the highway and all of a sudden the traffic slows to a halt until you go past a crash on the side of the road and then the traffic speeds up again. Why is this? πŸ€”
if you believe that then you must also believe human socialism is also terrible and bad? πŸ€” \nin my opinion it’s not terrible and bad, but the problem is it doesn’t scale and things like Facebook and Twitter take advantage of human psychology and weaknesses in all of us πŸ˜₯
@eldersnake Agreed!
Again, anti-competitive behavior. I _think_ the only reason Google isn't in more trouble than they currently are for their anti-competitive behavior is that early on they did build some very compelling search experience, their secretive algorithms/secret-sauce, that at the time meant every other search engine just died a swift death. So they initially won the search engine wars quite easily. But everything else they've done in this space is "anti-competitive" in my opinion.
For example, there used to be a Web API that _could_ have enabled more competition in the search market and make it easier from a UX point of view to make one search engine the default over another just by visiting it. I'm fairly sure Google squashed that and it's no more. Today there is the OpenSearch API and spec so you can at least get your search engine like Spyda in to your browser, but it takes a few extra manual steps to make it your default 😒
@eldersnake that’s exactly right and that’s what’s called a monopoly and anti-competitive behavior where you buy up the competition and force everyone else’s products around you to use your thing, so yes in that sense it is quite difficult to compete with
@rolandorag Hello! πŸ‘‹ Welcome! πŸ€—
i;e: Integrate it into your Hugo publish scripts if that's what you're using...
Hey @xuu another mention that didn't render ☝️\n\n@https://twtxt.psynergy.io/user/thewismit/twtxt.txt> Hey! It's easy. Just install the twt CLI with something like:\n\n
\ngo get github.com/jointwt/twtxt/cmd/twt/...\n
\n\nThen use it in some hooks/scripts to post some content to your Pod.
The problem is two -fold. Building a distributed, efficient search index to go with that data. And getting enough people to user your search engine for it to be worth it. Someone has to help pay for the infrastructure of course. But Billions of dollars, No fucking way. 10s of Millions _maybe_. If someone gave me $20-30M tomorrow, you know what I'd do with it right? Spyda.dev goes Boom! πŸ’₯
Building a search engine to rival Google could cost billions β€” and that's not the only problem - ABC News\n\nIt _really_ does not and would not cost $Billions to build, crawl and index the Web. Google has only indexed roughly ~100 Billions pages. If you build a decent distributed web crawler that can crawl the web at a measly concurrent rate of 10k pages/s, which really isn't that hard, you'd be done by year's end! ...~
Yeah what @eldersnake said! Despite twtxt.net being effectively a multi-user web client with an API and Mobile App; it is very open and the feeds are directly accessible, even on disk using plain β€˜ol text files!
@xuu that mention didn’t render. Should it have since a ? is not valid part of a username?
@xuu puny code?
I kind of like the look of for example as an idea/concept. What do you think @darch?
@xuu you can’t be any worse than me ha ha πŸ˜‚ I completely suck at UI/UX 🀣
@adi oh yes that it is you are right πŸ‘Œ
@xuu Huh?
@xj9 that’s actually one of our long-term goals is to provide appropriate API and tooling to do off-line and syncing... maybe you can help us with this? πŸ€”
don’t worry with every single Twt archived one day you’ll be able to write a book about all this πŸ‘Œ
what’s it about? I also find it extremely difficult to watch movies with subtitles for obvious reasons πŸ˜₯
@xuu Sounds good actually! πŸ‘Œ Who’s building this? 🀣
@adi Far too much effort 😁 I stopped being a β€œsysadmin” long ago! 😳 There is nothing worse than having to maintain machines as β€œpets” πŸ˜₯
Yeah not yet, we have to re-merge the PR. @xuu and I are still arguing over which way to go 🀣
Well first of all we _might_ have to re-follow you and adjust our clients πŸ˜€ But aside from that, go fer it! 🀞
Yeah I think we can do this. That’s what I was saying about forking
One day I will completely move off Google once Google stop supporting my grandfathered Google apps account that I pay nothing for 🀣
@anth Brilliant! 🀣
thinking about this some more I think it would be easier if we built in a mechanism to fork a conversation using the same mechanisms we already have in place
@xuu Yeah probably
@xuu Probably a lot to be honest. I'm not even sure how we would do it with the data models we have :)
@eldersnake Yeah I do! I use a software bundle/package called Poste -- Mail In a Box is similar. But yeah really good set of software/packages bundled in a nice way so you don't have to spend too much time "sys-admin"'ing your Mail setup.
@eldersnake But on-pod things are a little quicker...
@eldersnake You _actually_ helped uncovered two bugs, but the later is a bit hard to explain. Essentially around supporting "forked" conversation. Say you write an OP, then I reply to it. Then you go change your OP. This _should_ fork the already-in-play conversation. But _before_ the "Conversation" button would show up on the already-in-play conversation because the backend wasn't checking the Archive for the OP Hash's validity (_which it is because the pod archives everything it sees_). You _basically_ have ~5mins to change your mind cross-pod.~
@eldersnake Yup! Thank you!
@eldersnake Regarding putting things in <angle> brackets like (which you won't be able to see), is that we take your post from the feed and process it through a Markdown parser, then a HTML sanitizer. So what's happening here is it's just getting completely stripped out for security reasons. There are a subset of HTML markup you can use in your posts like this for bold (I think). But otherwise best to use back-ticks to enclose stuff like that...
@eldersnake The change will roll out soon...
Thanks @eldersnake πŸ™‡β€β™‚οΈ You helped me uncover a minor bug important bug we missed in the transition and refactor from concrete types to interfaces for much of the internal Twt and Twter structures. Thank you! Fixed in 1e42f7d -- We need to build out a more extensive test suite πŸ˜‚
@eldersnake Right. I'll check that out too. Thanks! Also I confirmed there is a bug here somewhere... I'll try to fix it, but it's bloody hot here today! πŸ₯΅
@eldersnake \n\n> And interesting, I edited my comment and it put it after yours.\n\nHmmm since posts are sorted in chronological order, this _technically_ shouldn't happen.\n\nThe way "Edit" works is to nuke your last line in your feed file and re-append the edited content. But it uses the timestamp of the deleted/edited post it just deleted. I smell a bug, just looking at the code, it _should_ be using the exact same timestamp as before? Hmmm πŸ€”
Iridium Browser | A browser securing your privacy. That’s it.\n\nJust came across this very nice Web Browser. It's a nice alternative to Google Chrome without all the call-to-home and tracking stuff you either don't need or care to want. Really lightweight and super fast too!
@eldersnake Like Kubernetes (k8s) 🀣
but if we kept things simple stupid I how would the poor little darlings in middle-management have a job? πŸ˜‚
I _can_ safe with a high degree of confidence that implementing and supporting WebMentions _really_ hasn't been all that useful here, as seen by @twtxt 's own feed where there are 17 sucb MENTION(s) and over 1.7k FOLLOW(s) events. So πŸ€·β€β™‚οΈ
@eldersnake I actually agree with you franky. Having also implemented WebMentions in twtd (_we haven't renamed the binary yet!_) it _was_ quite difficult to build and implement properly. We do support it though, although I'm not 100% sure it still works. It supports outbound WebMentions(s) as well as inbound to Twt(s) (_we'll be calling them Yarns right? 🀣_). So it was possible to -mention someone cross-pod without having to follow them and it would trigger a notif. But OTOH it hasn't really proved all that useful really IHMO..._
That's the thing... We'll honestly probably never know for sure until many decades or even centuries later. As seen here in #jkp7qkq China is _basically_ refusing to hand over the raw data of the initial outbreak to WHO. So if we can't actually get any data from the source, I'm not sure how we're supposed to find out for sure? πŸ€”
@darch Nah, that's okay πŸ˜€ Competition in any space is a "good" thing! πŸ‘ micro.sub btw is the "subscription" protocol to micro.pub -- I have _some_ issues with micro.pub / micro.sub though, namely that it is a little more complicated to implement against and use (_just look at any code that uses these protocols, not as bad as ActivityPub though_) and it supports a "bit too much" IHMO. Simplicity has always been one of our goals, in that you can join and participate in (_well let's start using the new name_) Yarn.social by simply hosting a couple of files
@off_grid_living Haha yeah it’s often better to build things yourself! Even in the software world 🀣
@jlj Nkce! πŸ‘Œ
@jlj No worries 🀣
@xuu You want us to put a Text logo at the top? There are libraries that can do this 😁\n\nAlso I think the preamble of pods should link back to this project somewhere ? πŸ€”
@lazarus My god! 😱 I mean on one hand this is a really cool piece of tech, on the other hand imagine getting it hacked?! 😳
@darch Possibly. It’s called Tagline in our stricts but no reason it can’t be called something else or we support mutilple aliases keys? πŸ€”
Don't forget description or tagline. This one is important for feeds so we should formalize on it, its completely an optional field, but for rss/atom/news/feeds it becomes quite useful to describe wtf the feed is :)
@xuu Speak of lang... Do you _think_ we could detect the user's lang by what they write? Probably just inspect a random subset?
@vain is right, But it's also about managing change. Software _can_ be considered done, absolutely, but as is the case for Yarn.social (_since we've decided on the rebranding now_), we're quite a long ways from even considering it "done". 🀣
If you follow our Git commits or PRs at all you'll have seen we merged a new feature (_Preamble_) but it broke all on-pod feeds. So I reverted pretty quickly. We have two proposed fixed to the problem and will re-add the preamble feature back soon.