# 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>#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://pbat.ch/twtxt.txt>#rxodcgq} rounded rectangle recipe in #cairo [https://www.cairographics.org/samples/rounded_rectangle/]] #links #vector #graphics
{@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>#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>#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://tilde.town/~mox/randomwiki.txt>#ecdrtta} Tripeptide
{@https://twtxt.net/user/prologic/twtxt.txt>#2p6oqyq}
{@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>#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>#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://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://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/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 ๐คฃ