# 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 43627
# self = https://watcher.sour.is?uri=https://txt.sour.is/user/all/twtxt.txt&offset=42527
# next = https://watcher.sour.is?uri=https://txt.sour.is/user/all/twtxt.txt&offset=42627
# prev = https://watcher.sour.is?uri=https://txt.sour.is/user/all/twtxt.txt&offset=42427
{@https://twtxt.net/user/prologic/twtxt.txt>#b3xwjba} (#hrqg53a) Ahh very nice! Have to say, really appreciate the hard work you've put into this! ๐Ÿ™‡โ€โ™‚๏ธ
{@https://txt.sour.is/user/xuu/twtxt.txt>#uph5rca} @prologic @xuu (#hrqg53a) Closer! Last bit to finish is a beast. FormatTwtFactory
{@https://twtxt.net/user/prologic/twtxt.txt>#kh3dx2a} (#2p6oqyq) Thereโ€™s a low res version for you too @off_grid_living โ€” Just click on the cog wheel and select the 320p version ๐Ÿ‘Œ
{@https://twtxt.net/user/prologic/twtxt.txt>#q2gziua} (#2p6oqyq) I mean you gotta watch this video too! ๐Ÿ˜
{@https://twtxt.net/user/sjkelleyjr/twtxt.txt>#q6zfv5q} @prologic @adi (#2p6oqyq) well...I can safely say I've seen it all now. That's enough internet for today... LOL
{@https://twtxt.net/user/prologic/twtxt.txt>#53ksgnq} @adi (#2nnst4a) Yeah I use Sh as glue too and pull out Go for more complex work
{@https://twtxt.net/user/prologic/twtxt.txt>#pcqwbtq} @adi (#cndwpoq) Perhaps Rob Pike might want to join Twtxt instead? ๐Ÿค”
{@https://twtxt.net/user/adi/twtxt.txt>#mfq2qja} @prologic @sjkelleyjr (#2p6oqyq) What about this https://www.theguardian.com/world/2021/jan/06/john-dillermand-denmark-launches-childrens-tv-show-man-giant-penis?
{@https://twtxt.net/user/adi/twtxt.txt>#6w5vj4q} @vain (#2nnst4a) What language/stack are you using now?
{@https://twtxt.net/user/prologic/twtxt.txt>#sqookiq} @sjkelleyjr (#2p6oqyq) Not at all! Itโ€™s a little nuts ๐Ÿ˜ณ
{@https://twtxt.net/user/adi/twtxt.txt>#quvyh7q} @vain (#2nnst4a) You have C, Go for that. Shell scripts are glue mostly.
{@https://www.uninformativ.de/twtxt.txt>#hy4buuq} @adi (#2nnst4a) Yeah, shell scripts kind of were โ€œthe holy grailโ€ for me for many years, but this is changing lately. Especially the lack of proper data structures (lists, dicts) is really annoying. But, uhm, donโ€™t let me stop you! Enjoy it while it lasts! ๐Ÿ˜
{@https://twtxt.net/user/adi/twtxt.txt>#2xnx7sa} (#2nnst4a) @vain Haha, why do you say that? Did it happen to you?
{@https://www.uninformativ.de/twtxt.txt>#6eq4g6q} @adi (#2nnst4a) Donโ€™t be afraid, it will revert. At some point, youโ€™ll think itโ€™s ugly again. ๐Ÿฅด
{@https://www.uninformativ.de/twtxt.txt>#rzuqxtq} @xuu (#yrv75ka) Yeah, looks like most of the feeds are tiny and then there are a couple of huge bots: https://dump.uninformativ.de/v/898bef509f/feedhisto.txt (Or Iโ€™m too tired and stupid, which is always a valid option.) (Also, I didnโ€™t clean up for duplicates, either.)
{@https://pbat.ch/twtxt.txt>#rxodcgq} rounded rectangle recipe in #cairo https://www.cairographics.org/samples/rounded_rectangle/]] #links #vector #graphics
{@https://pbat.ch/twtxt.txt>#rxodcgq} rounded rectangle recipe in #cairo [https://www.cairographics.org/samples/rounded_rectangle/]] #links #vector #graphics
{@https://txt.sour.is/user/xuu/twtxt.txt>#wxmqnna} (#yrv75ka) @vain @lyse @prologic Nope.. i have updated my gist to include the feeds listing. feeds.txt
{@https://twtxt.net/user/adi/twtxt.txt>#cndwpoq} Also, I realized Rob Pike stopped tweeting, his last tweet is from 8th of May 2019, https://twitter.com/rob_pike.
{@https://twtxt.net/user/adi/twtxt.txt>#2nnst4a} I initially found the sh syntax disgusting, with time I came to enjoy it to be honest.
{@https://twtxt.net/user/adi/twtxt.txt>#w3pluaa} Found this little a gem a while ago http://z3bra.org/pm/, a "simple (borderline stupid) pack manager".
{@https://twtxt.net/user/sjkelleyjr/twtxt.txt>#eeenwpq} @prologic @adi (#ipzjchq) And you as well!
{@https://twtxt.net/user/adi/twtxt.txt>#2k4d5sq} @sjkelleyjr @prologic (#ipzjchq) Well, glad to meet you! ๐Ÿ˜Š
{@https://twtxt.net/user/sjkelleyjr/twtxt.txt>#oplb54a} (#2p6oqyq) lol would you have ever thought you'd see a headline like that in your lifetime?
{@https://twtxt.net/user/sjkelleyjr/twtxt.txt>#mdhblnq} @adi @prologic (#ipzjchq) I started in September of last year. Yeah, so far it's been good, and more importantly, extremely fun! I wouldn't have met either of you without it :)
{@https://niplav.github.io/twtxt.txt>#kmrvr3a} gf that is actually just function composition disguised as your romantic partner
{@https://lyse.isobeef.org/twtxt.txt>#hyjcgca} @off_grid_living (#b55oymq) I'm pretty sure you โ€“ as someone with a lot of gardening experience โ€“ will also find a solution to cover up the looks. :-)
{@https://twtxt.net/user/adi/twtxt.txt>#h4fykdq} @prologic (#2p6oqyq) Vigorously!
{@https://twtxt.net/user/adi/twtxt.txt>#s6qfcpa} @ionores (#3tg52ja) Yeah, we've been blessed with cheap high speed Internet, monthly rent cost is pretty accurate. (Romanian here)
{@https://lyse.isobeef.org/twtxt.txt>#36pa6aq} @prologic @vain @xuu (#yrv75ka) Wow! Did you account for duplicates such as the twtxt.net URL change?
{@https://lyse.isobeef.org/twtxt.txt>#47v2jia} @vain (#jgbj5hq) Thanks, but in reality it was of course much nicer.
{@https://txt.sour.is/user/xuu/twtxt.txt>#2dsilja} @prologic (#yrv75ka) that seems to match my numbers. are you picking up the few gophers out there? \n\nkinda makes me wonder about the ~300k you have cached. y'all got the library of alexandria over there.~
{@https://www.uninformativ.de/twtxt.txt>#7tl43vq} Seeing crashes again with Intel GPUs on Linux 5.10. Gah. The Internet suggests to remove the xf86-video-intel driver and have X11 fall back on modeset instead โ€ฆ Letโ€™s give it a shot.
{@https://www.uninformativ.de/twtxt.txt>#sksedaq} @prologic (#yrv75ka) Would be interesting to plot these values. I suspect there are tons and tons of feeds with just a few messages and then some bots with thousands of twts. ๐Ÿฅด
{@https://txt.sour.is/user/twtxt/twtxt.txt>#6stehiq} FOLLOW: @stats from @xuu using twtxt/0.1.0@9d7b86c
{@https://feg-ffb.de/twtxt.txt>#jkxzviq} Jahreslosung 2021 https://feg-ffb.de/?p=7015
{@https://twtxt.net/user/ionores/twtxt.txt>#3tg52ja} ๐Ÿ‘‡\nThe top ten best countries in the world to work from home in 2021 revealed
{@https://tilde.town/~mox/randomwiki.txt>#ecdrtta} Tripeptide
{@https://twtxt.net/user/dilbert/twtxt.txt>#v5cqe4q} The Moron Option โ€ฃ https://dilbert.com/strip/2021-01-12
{@https://twtxt.net/user/prologic/twtxt.txt>#2p6oqyq}
{@http://akkartik.name/twtxt.txt>#aapvbbq} Rendering text on bare-metal x86, with an eye to non-Latin languages: https://merveilles.town/@akkartik/105542032656082045
{@https://twtxt.net/user/prologic/twtxt.txt>#yrv75ka} Twtxt is still very much alive and well. I just wrote a quick tool to crawl as much of the Twtxt network as I could and here's what the results are:\n\n

Crawled 516 feeds
Found 52464 twts
\n\nThat means there are >500 unique Twtxt feeds/users, and over ~52k Twts posted to date. ๐Ÿ˜ณ~
{@https://twtxt.net/user/prologic/twtxt.txt>#4vuxgtq} (#37xr3ra) As a quick experiment, I modified my code to remove the domain restrictions and low and behold:\n\n

All done!
Crawled 516 feeds
Found 52464 twts
Found 736 feeds
\n\nThe Twtxt network is larger than I thought. A significant no. of feeds no longer work obviously, but that's okay, we can prune dead feeds out.
{@https://twtxt.net/user/prologic/twtxt.txt>#py7er2a} @Anthony_Sorace (#zkqbzyq) Make sure you also teach your client how to deal with Twt Subjects and Twt Hashes. Documented at dev.twtxt.net. LMK if you have questions.
{@https://twtxt.net/user/prologic/twtxt.txt>#24gv72q} @xuu (#37xr3ra) This is true!
{@https://txt.sour.is/user/xuu/twtxt.txt>#ij3lzwq} @prologic (#37xr3ra) in theory shouldn't need to let users add feeds.. if they get mentioned by a tracked feed they will get added automagically. on a pod it would just need to scan the twtxt feed to know about everyone.
{@https://twtxt.net/user/adi/twtxt.txt>#ilplpjq} @sjkelleyjr @prologic (#ipzjchq) Pretty cool and in a short amount of time? How much time since you launched?
{@https://twtxt.net/user/adi/twtxt.txt>#5ozorrq} @antonio (#hymxodq) I ment some people don't think Bucharest is a nice city to live in, I personally enjoy it. Why oh why do I have a problem with React, "everybody" seems to be doing it. I guess at some point I stopped trying to keep up with the latest and greatest in JavaScript land and haven't abandoned the idea of progressive enhancement. Am I insane? Go fits me pretty well from what I see.
{@https://txt.sour.is/user/xuu/twtxt.txt>#n7dn5aq} @prologic (#37xr3ra) sounds about right. I tend to try to build my own before pulling in libs. learn more that way. I was looking at using it as a way to build my twt mirroring idea. and testing the lex parser with a wide ranging corpus to find edge cases. (the pgp signed feeds for one)
{@https://twtxt.net/user/prologic/twtxt.txt>#b5a4dda} Accessing Docker Remote API over SSH
{@https://twtxt.net/user/prologic/twtxt.txt>#uxxrg4a} (#saz2moa) There _were_ / _are_ also future design considerations to create a "kid friendly" social media (_i.e: under aged children_) which would strictly require the "network" to be "closed" and "protected" but that's an entirely different project altogether and I don't have the bandwidth for that right now. I do worry about how software can be used and abused both ways, but then again there's nothing stopping anyone from running a Pod or two behind an OAuth2 authentication layer/proxy or similar anyway, so ... ๐Ÿคทโ€โ™‚๏ธ I am open to ideas however...
{@https://twtxt.net/user/prologic/twtxt.txt>#rj2kohq} @lazarus (#saz2moa) @xuu 's profile not showing as much detail here on my pod is just a missing cross-pod feature which is captured in this issue
{@https://twtxt.net/user/prologic/twtxt.txt>#fud7whq} @lazarus (#saz2moa) So couple of things... The only "privacy" toggles are two-fold:\n\nUser-level:\n \nA user can toggle whether or not their followers or followings are display.\n\nPod-Level:\n \nA Pod Owner / Operator can decide to toggle "open registrations" or "open profiles".\n\nThe twtxt.txt URI however is open by design. I'm open to feedback however, this wasn't designed to be a "closed system".\n\nThe reason @xuu 's profile doesn't display much is a different issue.
{@https://twtxt.net/user/prologic/twtxt.txt>#fxiqfsa} (#ipzjchq) @sjkelleyjr That's pretty impressive. Good work! ๐Ÿ˜€ Before long you'll have a large audience of readers ๐Ÿ‘Œ
{@https://twtxt.net/user/sjkelleyjr/twtxt.txt>#argufbq} @adi @prologic (#ipzjchq) There are ~2,800 subscribers (it seems to go up by around 20-30 per day since I started) and around ~20K views per month on the posts, but that also seems to be going up every month as well.
{@https://twtxt.net/user/antonio/twtxt.txt>#q3n62eq} @adi (#hymxodq) I sometimes get tired of the city life. But most of the time I enjoy it. In terms of stacks, I work with iOS development but ppl working on the backend and web usually use either Python, Ruby, Go or Node and React, Vue or Angular. Depends of the company. Where I work is Python/Django with React.
{@https://twtxt.net/user/adi/twtxt.txt>#u2tgqfa} @adi @antonio (#hymxodq) What tech is hot there at this time in terms of stacks?
{@https://twtxt.net/user/adi/twtxt.txt>#jdyduya} @antonio (#hymxodq) I'm currently located in Bucharest, Romania, also lockdown here, might be over end of summer. I personally enjoy the city, others say it sucks.
{@https://twtxt.net/user/antonio/twtxt.txt>#maiw6za} @adi (#hymxodq) Hey! I like it here. It is nice. Since March we are on lockdown so it's been hard to enjoy the city but it is still a nice city IMO. Where are you?
{@https://twtxt.net/user/prologic/twtxt.txt>#4rkptiq} @adi (#qeihwaq) That's the time I was up till last night too ๐Ÿ˜ข Now I'm just tired ๐Ÿ˜ด
{@https://twtxt.net/user/prologic/twtxt.txt>#acie3ca} (#37xr3ra) Wait... So you actually wrote a more elaborate crawler without taking a shortcut like I did using colly (_not that it really helps much_) Hmmm? ๐Ÿค” Can we take it a bit further, make a daemon/server out of it, a web interface to search what it crawls using bleve and some tools (_API, Web UI_) to let people add more "feeds" to crawl? ๐Ÿค”
{@https://twtxt.net/user/adi/twtxt.txt>#xsdetoq} @prologic (#qeihwaq) It's 2:35 AM here, I usually wake up around 2 PM, we overlap a lot. Told you I was born to work from home. ๐Ÿ˜
{@https://twtxt.net/user/prologic/twtxt.txt>#agewgfq} (#qeihwaq) > Itโ€™s just a reply, donโ€™t think a lot of people saw it ๐Ÿ˜ \n\n*phew* that's good! ๐Ÿ˜Œ I'd hate for twtxt.net to get overrun or overwhelmed ๐Ÿคฃ
{@https://txt.sour.is/user/xuu/twtxt.txt>#wkkru4a} (#37xr3ra) @prologic the add function just scans recursivley everything.. but the idea is to just add and any new mentions then have a cron to update all known feeds
{@https://twtxt.net/user/prologic/twtxt.txt>#6wkxicq} (#qeihwaq) @adi Do you _ever_ sleep?! ๐Ÿ˜ณ
{@https://txt.sour.is/user/xuu/twtxt.txt>#e5kep3q} (#37xr3ra) @prologic yeah it reads a seed file. I'm using mine. it scans for any mention links and then scans them recursively. it reads from http/s or gopher. i don't have much of a db yet.. it just writes to disk the feed and checks modified dates.. but I will add a db that has hashs/mentions/subjects and such.
{@https://twtxt.net/user/adi/twtxt.txt>#djfjpxq} @prologic (#qeihwaq) It's just a reply, don't think a lot of people saw it ๐Ÿ˜ and that guy is great with links!
{@https://twtxt.net/user/prologic/twtxt.txt>#qeihwaq} I'm not sure who Tim Pool is but Twtxt and the software behind twtxt.net (jointwt/twtxt) just got talked about on Twitter here ๐Ÿ˜ณ This guy (_Tim Pool_) has like ~700k followers! Looks like a journalist ๐Ÿค”~
{@https://twtxt.net/user/stats/twtxt.txt>#wkhcl6q} ๐Ÿงฎ USERS:305 FEEDS:30 TWTS:8330 BLOGS:10 ARCHIVED:378419 CACHE:3221 FOLLOWERS:306 FOLLOWING:462
{@https://twtxt.net/user/prologic/twtxt.txt>#74yugnq} (#37xr3ra) It _might_ be worthwhile combining the two approaches and _actually_ building a goodness to gracious search engine and crawler for twtxt? ๐Ÿค” ๐Ÿคฃ
{@https://twtxt.net/user/prologic/twtxt.txt>#eahcpkq} (#37xr3ra) Ahh I don't think your code actually _crawls_ the Twtxt space right? Just parses urls given to it and adds it to a database file?
{@https://twtxt.net/user/prologic/twtxt.txt>#qnpnrma} @xuu (#37xr3ra) I _think_ what I have put together last night is a little different... ๐Ÿค” https://gist.github.com/prologic/c64a00affbf14eb3a508ce43ffce1cbb. -- What you've got is a lot more code and looks way more polished ๐Ÿค— At a high-level what does yours do?
{@https://txt.sour.is/user/xuu/twtxt.txt>#4b4qykq} (#37xr3ra) @prologic It is pretty basic, and depends on some local changes i am still working out on my branch.. https://gist.github.com/JonLundy/dc19028ec81eb4ad6af74c50255e7cee
{@https://twtxt.net/user/prologic/twtxt.txt>#sorxcnq} @sjkelleyjr (#ipzjchq) Cool Iโ€™ll have a look ๐Ÿ‘Œ
{@https://twtxt.net/user/prologic/twtxt.txt>#i6tn4ea} @lyse @xuu (#37xr3ra) Hmmm very interesting ! Let me put my code up somewhere
{@https://www.uninformativ.de/twtxt.txt>#74vk7ja} @lyse (#jgbj5hq) Ohhh, nice shots!
{@https://tilde.town/~lucidiot/twtxt.txt>#kqb2zia} @niplav that mentions command sounds like basically what twtxt registries are meant for
{@https://twtxt.net/user/adi/twtxt.txt>#u5nkkta} @sjkelleyjr @prologic (#ipzjchq) How many pageviews/month do you have on https://console.substack.com/?
{@https://twtxt.net/user/sjkelleyjr/twtxt.txt>#c4hvkpq} @prologic (#ipzjchq) It's actually open source, you can go check the code and read about the project in their own words :)\n\nhttps://github.com/readthedocs/ethical-ad-server/
{@https://txt.sour.is/user/xuu/twtxt.txt>#n7ufceq} (#37xr3ra) @lyse @prologic very curious... i worked on a very similar track. i built a spider that will trace off any follows = comments and mentions from other users and came up with:\n

twters:  744
total:  52073
{@https://twtxt.net/user/adi/twtxt.txt>#hymxodq} @antonio How's SF?
{@https://twtxt.net/user/antonio/twtxt.txt>#3npj4zq} @prologic (#cbruy4q) cool. I will play with it.
{@https://twtxt.net/user/off_grid_living/twtxt.txt>#b55oymq} Finished the cement rat barrier of power room, grinded off excess mortar, ready for painting. Could add steel flashing to roof, but costly, about $150, money I don't have right now. At least the power room is vermin proof, albeit a bit ugly looking.
{@https://lyse.isobeef.org/twtxt.txt>#azwpijq} @prologic @adi (#jgbj5hq) Have a good night! https://lyse.isobeef.org/sonnenuntergang-2021-01-11/ #sunset
{@https://lyse.isobeef.org/twtxt.txt>#2brasia} @prologic (#37xr3ra) Cool!
{@https://twtxt.net/user/twtxt/twtxt.txt>#bo7oagq} FOLLOW: @lazarus from @lyse using twtxt/1.2.3
{@https://lyse.isobeef.org/twtxt.txt>#gnyzwva} @adi @prologic (#52smrra) My tt client uses the conversation URLs in the twt subjects when creating a reply, because I think this makes more sense, too. This is also covered by the Twt Subject Extension Spec. This client is still in a terrible state right now โ€“ hence "tt" as in "terrible tui" rather than "twtxt tui". :-P
{@https://twtxt.net/user/northanon/twtxt.txt>#evzgyba} Interesting.
{@https://twtxt.net/user/adi/twtxt.txt>#rivcs3q} @prologic (#jgbj5hq) Gโ€™night!
{@https://twtxt.net/user/prologic/twtxt.txt>#jgbj5hq} G'night Twtizens ๐Ÿ˜ด
{@https://twtxt.net/user/prologic/twtxt.txt>#rscjypq} @lazarus (#saz2moa) Ahh I see. Yeah you can _totally_ do that and in fact I encourage it! You are right about the problems of "human socialism at scale", it doesn't scale. Keeping pods small is important in my humble opinion, but a large interconnected network of pods that is diverse is okay. There are no possible ways to create "echo chambers" here, no retweets, no likes, no algorithms. I try to keep things as simple as as "real" as possible, if that makes sense?
{@https://twtxt.net/user/prologic/twtxt.txt>#oxipdgq} @prologic @etux @xuu (#37xr3ra) Now I want to remove the "domain" restriction, add a rate-limit and _try_ to crawl as much of the Twtxt wider network as I can and see how deep it goes ๐Ÿค”
{@https://twtxt.net/user/prologic/twtxt.txt>#raqpdxq} @prologic @etux @xuu (#37xr3ra) This is the result so far in this veery quick piece of code:\n\n

$ ./twtxt-search-engine
...
All done!
Found 14909 twts in 344 feeds
{@https://twtxt.net/user/prologic/twtxt.txt>#l6mxoxa} @lazarus (#saz2moa) A counter-example to this are the pods owned by @xuu and @etux where we (_especially @xuu_) frequently converse across pods on various topics of interest to us ๐Ÿ˜€
{@https://twtxt.net/user/prologic/twtxt.txt>#mlte6ga} (#saz2moa) @lazarus \n\n> and if one ran their own server, can they pick and choose which instances to join with, or choose to exist completely isolated and private; msgs only visible to logged in accounts?\n\nCurious, what's your use-case? A pod can exist completely on its own, it only interacts with Twtxt feeds. If no users on _that_ pod follows any other users on any other pods, then yeah it'll be pretty isolated.
{@https://twtxt.net/user/prologic/twtxt.txt>#iqa2moq} @adi (#52smrra) All good ๐Ÿ˜€ The #hashtag is more generalised and I _beliee_ we wrote a spec for it over at dev.twtxt.net -- So yeah its fine this way, client's just have to understand "Twt Subjects" and "Twt Hashes" and then they can use this to render similar "Conversation" views. I don't recall who here, but someone built a client called tt that basically renders conversation in a curses display in "threads" just like the mutt TUI. Amazing shit really ๐Ÿ˜Ž
{@https://twtxt.net/user/prologic/twtxt.txt>#yvxykxa} @lazarus (#saz2moa) Pods are "federated" in the sense of the word - Yes. They do not however utilise ActivityPub (_for good reasons_), they operate in "pull" mode and understand Twtxt. I also offer a free RSS/Atom -> Twtxt aggregation service at feeds.twtxt.net (_which is how I read all my news, lobsters, slashdot, etc, etc_)
{@https://twtxt.net/user/adi/twtxt.txt>#l5sy47a} @prologic (#52smrra) Silly me, I thought the Conversation button and the hashtag were the same thing, yeah leave it like so.
{@https://twtxt.net/user/prologic/twtxt.txt>#mnwuida} @adi (#52smrra) You _may_ be right, but there are good reasons it is this way ๐Ÿ˜Ž
{@https://twtxt.net/user/prologic/twtxt.txt>#lkwj2qa} @vain (#w6d5cxa) Oh damn I want one! That's awesome ๐Ÿคฃ